Releases: mbientlab/MetaWear-SDK-CSharp
Calibration and Data Fusion Support
v1.2.0 adds features to streamline the sensor fusion calibration and support for data fusion.
Changes
- Simplified the sensor fusion calibration process with Calibrate method
- Task only completes when IMUs are high accuracy
- Added support to write calibration data to the sensor fusion algorithm
- See documentation
- Added support for data fusion
- Fixed bug where accounter in count mode would attempt to compute data timestamps
Calibration State Support
v1.1.0 adds support for reading the sensor fusion calibration state.
Changes
- Added ReadCalibrationStateAsync to the
ISensorFusionBosch
interface- Only supported on boards running firmware v1.4.1 and newer
Bug Fixes and Code Reorg
v1.0.15 fixes null pointer and serialization issues, and reorganizes the solution such that only code relevant to the API is in this repository.
Changes
- Fixed serialization issues (see GH-2)
- Fixed null pointer exception that can occur when clearing log entries
- Converted
MetaWear.Test
project to .NET Core library - Moved Win10 code to the MetaWear-SDK-CSharp-Plugin-Win10 repo
Out of Pre-Release
The C# SDK is finally out of the pre-release stage. SDK v1.0.0 contains code improvements as well as breaking changes with the solution hierarchy, API and how it is distributed on NuGet.
The platform agnostic portion of the SDK is now built as a standalone .NET Standard 2.0 assembly and is distributed on NuGet under the existing MetaWear.CSharp id. The Windows 10 specific code has been moved to the MetaWear.CSharp.Win10 package; developers building Windows 10 apps should install both packages to allow updating the MetaWear.CSharp
package to newer versions.
Changes
- Added feature to refer to subscribers by name
- Use IRoute.LookupSubscriber to retrieve them
- Updated
Split
component to correctly handle data processor output - Implemented
IDataToken
slicing- Lets you use only a portion of the data for data forwarding
- Added power save and temp value support to
IDebug
interface - Added Odr and Range properties to the
IAccelerometer
interface - Added string variant of the Model property, ModelString
- Returns human friendly string instead of enum
- Changed disconnect during download to fault the task instead of cancelling it
- Let IMU data be casted as the FloatVector type
- Renamed
time
parameter tostandbyTime
for IBarometerBme280.Configure and IBarometerBmp280.Configure functions - Moved
Platform
namespace to reside under theImpl
namespace - Fixed bugs with anonymous routes
- Fixed bug with commands not being sent after an exception was thrown from a previous write characteristic attempt
- Fixed bug with scheduling an indefinite task
- Would instead only schedule with 255 repetitions
- Fixed string formatting errors reported by the VS2017 code analyzer
Feature and API Update
SDK v0.4 adds additional support for existing features and also introduces breaking changes to the IRoute, IGpio and ISettings interfaces.
Changes
- Added support for a few MMA8452Q features
- Orientation detection and configure the power mode and high-pass filter
- Added count mode support for the accounter processor
- See documentation for more details
- Moved subscriber related functions to the ISubscriber interface
- The
IRoute
interface exposes them with the Subscribers property
- The
- Separated tx power from ble ad config function
- Use SetTxPower to modify the tx power
txPower
field removed from EditBleAdConfig
- Refactored GPIO virtual pin implementation
- See documentation for more details
- Queue the values to be written to the command characteristic to enforce the write order
Android SDK Feature Sync
SDK v0.3.0 syncs many of the features from Android SDK v3.3 and updates the Bluetooth LE code for .NET console apps on the Fall Creators Update.
This release also adds another build that targets .NET Standard 2.0. Keep in mind that the .NET Standard build is platform agnostic i.e. only the API for the MetaWear protocol is provided. Developers will need to plugin their own Bluetooth LE and I/O code.
Changes
- Added build targeting .NET Standard 2.0
- Added support for anonymous routes
- See documentation for more details
- Cache discovered BLE characteristics
- Added support for tap, low/high-g, orientation, flat, and motion detection on the BMI160 and BMA255 accelerometers
- Have
IAnalogDataProducer
extend fromIForcedDataProducer
- Added options to configure the BMI160 digital filters
- Updated the Delay component to support 16 byte data
- Modified InitializeAsync to throw an exception if it times out
- Added TimeForResponse property
Firmware v1.3.4 Support and SDK Improvements
SDK v0.2.0 adds support for firmware v1.3.4 features, improves underlying the implementation, and expands the SDK's support of existing sensor features.
Furthermore, the serialization format has changed from the previous release and is not backwards compatible. Old states created from the previous SDK must be discarded and reserialized.
Changes
- Added support for the BMI160 step detector algorithm, see documentation for more details
- Added ClearDeviceCacheAsync to the
Application
class to remove all cached data for a board - Added Suspend method to the
IMagnetometerBmm150
interface- Will only send the command on boards running firmware v1.3.4 or later
- If
Suspend
is called, the magnetometer must be reconfigured before it can be used again
- Added support for the new data processors added in firmware v1.3.4
- Improved logging implementation to handle time rollover
- Fixed corner case in logging implementation that would think some entries from an 800Hz data sample were duplicates and discard them
- Fixed regex pattern for matching version strings
- Fixed exception that occurred if the SDK initializes a cached board that now has a different firmware version
- Updated serialization settings to preserve object references
- Changed the folder structure of the SDK cache for UWP apps
- Projects that upgrade to SDK v0.2 will have all previous cached data invalidated
First Release of C# SDK
The MetaWear C# SDK is now available for developers building Windows 10 apps. Unlike the previous C# wrapper classes, this SDK is fully implemented in C# and does not call into an underlying C library.
SDK documentation is available on the MbientLab website and we have tutorial apps on our GitHub page.
Note that the SDK is not yet complete though most features such as streaming, logging, and data processing are supported.