/// <summary> /// Clear notifications on a characteristic, enqueueing the request /// </summary> /// <param name="iCharacteristic"></param> /// <param name="iDataSentCallback">Callback class with which to return the clear notification results</param> /// <returns>True if requested characteristic has been loaded</returns> public bool ClearCharacteristicNotification(Guid iCharacteristic, DeviceDataSentCallBack iDataSentCallback) { if (_characteristics.TryGetValue(iCharacteristic, out BluetoothGattCharacteristic characteristic)) { DisableNotifications(characteristic).With(iDataSentCallback).Fail(iDataSentCallback).Enqueue(); return(true); } return(false); }
/// <summary> /// Write data to the characteristic, enqueueing the request /// </summary> /// <param name="iCharacteristic">Guid representing the characteristic</param> /// <param name="iData">Data to be sent</param> /// <param name="iDataSentCallback">Callback class with which to return the write results</param> /// <returns>True if requested characteristic has been loaded</returns> public bool WriteCharacteristicData(Guid iCharacteristic, byte[] iData, DeviceDataSentCallBack iDataSentCallback) { if (_characteristics.TryGetValue(iCharacteristic, out BluetoothGattCharacteristic characteristic)) { WriteCharacteristic(characteristic, iData).With(iDataSentCallback).Fail(iDataSentCallback).Enqueue(); return(true); } iDataSentCallback?.OnRequestFailed(_currentDevice, (int)GattStatus.Failure); return(false); }
/// <summary> /// Enable notifications on a characteristic, enqueueing the request /// </summary> /// <param name="iCharacteristic"></param> /// <param name="iDataReceivedCallback">Callback class with which to return the notification read results</param> /// <param name="iDataSentCallback">Callback class with which to return the set notification results</param> /// <returns>True if requested characteristic has been loaded</returns> public bool EnableCharacteristicNotification(Guid iCharacteristic, IDataReceivedCallback iDataReceivedCallback, DeviceDataSentCallBack iDataSentCallback) { if (_characteristics.TryGetValue(iCharacteristic, out BluetoothGattCharacteristic characteristic)) { // Set up notification callback for receiving data from the gateway SetNotificationCallback(characteristic).With(iDataReceivedCallback); // Enable the notifications and enqueue the request EnableNotifications(characteristic).With(iDataSentCallback).Fail(iDataSentCallback).Enqueue(); return(true); } return(false); }