Пример #1
0
 private void Disconnect()
 {
     lock (connectedTcpClientLock)
     {
         connectedTcpClient?.Close();
         connectedTcpClient = null;
         IsConnected        = false;
         ConnectChanged?.Invoke(this, new ConnectChangedEventArgs(false));
     }
 }
        // 해당 기기와 연결을 한다.
        public async void OpenDevice(string deviceName)
        {
            // 해당 deviceID를 기반으로 연결을 시도 한다.
            _selectedDevice = await BluetoothLEDevice.FromIdAsync(deviceName).AsTask();

            // 연결 확인을 처리한다.
            var result = await _selectedDevice.GetGattServicesAsync(BluetoothCacheMode.Uncached);

            if (result.Status == GattCommunicationStatus.Success)
            {
                ConnectChanged?.Invoke(true);
                System.Diagnostics.Debug.WriteLine($"device Name : {deviceName} Connect..!");
                // 연결 성공시 해당 기기와 Auth를 진행 한다.
            }
            else
            {
                // 연결 실패시..
                ConnectChanged?.Invoke(false);
                System.Diagnostics.Debug.WriteLine($"device Name : {deviceName} Not Connect..!");
            }
        }
Пример #3
0
        private void Connect()
        {
            try
            {
                var connectingTcpClient = new TcpClient();
                var connectTask         = connectingTcpClient.ConnectAsync(remoteEndPoint.Address, remoteEndPoint.Port);
                connectTask.Wait(cancelConnectToken);

                lock (connectedTcpClientLock)
                {
                    connectedTcpClient = connectingTcpClient;
                }

                IsConnected = true;
                ConnectChanged?.Invoke(this, new ConnectChangedEventArgs(true));
            }
            catch (Exception ex) when(ex is OperationCanceledException || ex is AggregateException)
            {
                IsConnected = false;
                ConnectChanged?.Invoke(this, new ConnectChangedEventArgs(false));
            }
        }
Пример #4
0
 /// <summary>
 /// Triggers an event ConnectChanged.
 /// </summary>
 private void OnConnectChanged()
 {
     ConnectChanged?.Invoke(this, new ObjectChangedEventArgs(connectionOptions));
 }