コード例 #1
0
 public async Task Disconnect()
 {
     try
     {
         if (_uartService != null)
         {
             await _uartService.Stop();
         }
         if (_gattDeviceService != null)
         {
             _gattDeviceService.Dispose();
         }
         if (_bleDevice != null)
         {
             _bleDevice.Dispose();
         }
     }
     catch (Exception ex)
     {
         Debug.WriteLine("BLE_Device::Disconnect EXCEPTION " + ex.ToString());
     }
     finally
     {
         _uartService       = null;
         _gattDeviceService = null;
         _bleDevice         = null;
         _sbResponse.Clear();
     }
 }
コード例 #2
0
        public async Task <bool> Connect()
        {
            try
            {
                _bleDevice = await BluetoothLEDevice.FromBluetoothAddressAsync(BLEMacAddress);

                if (_bleDevice != null)
                {
                    GattDeviceServicesResult gattServicesResult = await _bleDevice.GetGattServicesAsync();

                    foreach (GattDeviceService service in gattServicesResult.Services)
                    {
                        if (service.Uuid.CompareTo(GattServiceUuids.UART) == 0)
                        {
                            _bleDevice.ConnectionStatusChanged += ConnectionStatusChanged;
                            _gattDeviceService       = service;
                            _uartService             = new UARTService();
                            _uartService.RXReceived += OnUARTServiceRXReceived;
                            bool result = await _uartService.Start(_gattDeviceService, true);

                            if (result)
                            {
                                return(true);
                            }
                            else
                            {
                                Debug.WriteLine("BLE_Device Connect UART Service start failure");
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("BLE_Device::Connect EXCEPTION " + ex.ToString());
            }
            await Disconnect();

            return(false);
        }