/// <summary> /// Start notification on a specified variometer value /// </summary> /// <param name="value">Variometer value to start being notified</param> /// <returns>true if the operation succeeded, false otherwise</returns> public async Task <bool> StartNotification(VariometerValue value) { bool ret; // List characteristics ret = await InitCharacteristics(); if (ret) { // Look for the selected characteristic BleGattCharacteristic vario_characteristic = _variometer_characteristics[value]; ret = await BleDevice.RegisterValueNotificationAsync(vario_characteristic, OnVariometerNotification); } return(ret); }
/// <summary> /// Read a specified variometer value /// </summary> /// <param name="value">Variometer value to read</param> /// <returns>true if the operation succeeded, false otherwise</returns> public async Task <ReadVariometerValueResult> ReadVariometerValue(VariometerValue value) { ReadVariometerValueResult ret = new ReadVariometerValueResult(); // List characteristics ret.Success = await InitCharacteristics(); if (ret.Success) { // Look for the selected characteristic BleValue val = new BleValue(); BleGattCharacteristic vario_characteristic = _variometer_characteristics[value]; ret.Success = await BleDevice.ReadValueAsync(vario_characteristic, val); if (ret.Success) { switch (value) { case VariometerValue.Vario: { ret.VarioValue = val.ToInt16(); break; } case VariometerValue.Acceleration: { ret.AccelerationValue = val.ToUInt8(); break; } default: { ret.Success = false; break; } } } } return(ret); }