protected override void OnCharacteristicValueChanged(GattCharacteristic sender, GattValueChangedEventArgs eventArgs) { if (sender.Uuid == AccelerometerCharacteristicUuid) { if (_accelerometerValueChanged != null) { uint dataLength = eventArgs.CharacteristicValue.Length; using (DataReader reader = DataReader.FromBuffer(eventArgs.CharacteristicValue)) { if (dataLength == 3) { var data = new byte[dataLength]; reader.ReadBytes(data); AccelerometerMeasurement measurement = new AccelerometerMeasurement(); sbyte x = (sbyte)data[0]; sbyte y = (sbyte)data[1]; sbyte z = (sbyte)data[2]; measurement.X = (double)x / 64.0; measurement.Y = (double)y / 64.0; measurement.Z = (double)z / 64.0; OnAccelerationMeasurementValueChanged(new AccelerometerMeasurementEventArgs(measurement, eventArgs.Timestamp)); } } } } }
public AccelerometerMeasurementEventArgs(AccelerometerMeasurement measurement, DateTimeOffset timestamp) { Measurement = measurement; Timestamp = timestamp; }