private void OnInvitationReceived(CBATTRequest[] requests)
        {
            var identifier = requests[0].Central.Identifier;
            var connectionManager = BluetoothClient.Instance.ConnectionManager;

            if (!connectionManager.IsConnected(identifier))
            {
                connectionManager.Connect(identifier);
            }
        }
        private void OnMessageReceived(CBATTRequest[] requests)
        {
            var data = requests.Where(r => r.Characteristic.IsUuidEqual(BluetoothServiceUuid.MessageCharacteristic))
                               .SelectMany(r => r.Value.ToArray());
            var message = Encoding.Unicode.GetString(data.ToArray());

            var handler = ReceivedMessage;
            if (handler != null)
            {
                handler(message, requests[0].Central);
            }
        }
 public override void ReadRequestReceived(CBPeripheralManager peripheral, CBATTRequest request)
 {
     try
     {
         if (request.Characteristic.Service.UUID.Equals(_service.UUID) && request.Characteristic.UUID.Equals(_characteristic.UUID))
         {
             // fill in the characteristic value for the request and return it to the central
             request.Value = _characteristic.Value;
             peripheral.RespondToRequest(request, CBATTError.Success);
         }
         else
         {
             peripheral.RespondToRequest(request, CBATTError.RequestNotSupported);
         }
     }
     catch (Exception ex)
     {
         SensusServiceHelper.Get().Logger.Log("Exception while servicing read request:  " + ex.Message, LoggingLevel.Normal, GetType());
     }
 }