private void PeriodicTimerCallback(ThreadPoolTimer timer) { if (ValueChangeCompleted == null) { return; } if (_simulatorGoingUp) { _startSimulatorValue = (ushort)(_startSimulatorValue + _stepSimulatorValue); if (_startSimulatorValue > _maxSimulatorValue) { _startSimulatorValue = _maxSimulatorValue; _simulatorGoingUp = false; } } else { _startSimulatorValue = (ushort)(_startSimulatorValue - _stepSimulatorValue); if (_startSimulatorValue < _minSimulatorValue) { _startSimulatorValue = _minSimulatorValue; _simulatorGoingUp = true; } } ValueChangeCompleted(HeartbeatMeasurement.GetHeartbeatMeasurementFromData(_startSimulatorValue, DateTimeOffset.Now)); }
private void Oncharacteristic_ValueChanged(GattCharacteristic sender, GattValueChangedEventArgs args) { var data = new byte[args.CharacteristicValue.Length]; DataReader.FromBuffer(args.CharacteristicValue).ReadBytes(data); if (ValueChangeCompleted != null) { ValueChangeCompleted(HeartbeatMeasurement.GetHeartbeatMeasurementFromData(data, args.Timestamp)); } }