Example #1
0
        private void Receive()
        {
            NetworkStream stream = LocalClient.GetStream();

            while (stream.DataAvailable)
            {
                Byte[] sRes = new Byte[200];

                if (stream.Read(sRes, 0, 199) > 0)
                {
                    string[] ReceiveStrings = System.Text.Encoding.ASCII.GetString(sRes).Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

                    foreach (string receiveString in ReceiveStrings)
                    {
                        string receiveValue = receiveString.Trim(new char[] { '\r', '\n', '\0' });

                        if (!String.IsNullOrWhiteSpace(receiveValue))
                        {
                            Console.WriteLine(receiveValue);

                            if (receiveValue == "OK" || receiveValue == "ERROR")
                            {
                                IsSendOK = true;
                                Thread.Sleep(100);  // "OK"のあとすぐに送信すると受け付けてくれないため100ms待つ
                            }
                            else
                            {
                                OnRecive(receiveValue);
                            }
                        }
                    }
                }
            }
        }
Example #2
0
        protected override void OnConnected()
        {
            NetworkStream peerStream = LocalClient.GetStream();


            TaskCancellation = new CancellationTokenSource();

            var t = Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    if (TaskCancellation.IsCancellationRequested)
                    {
                        TaskCancellation.Token.ThrowIfCancellationRequested();
                    }

                    Receive();
                    Send();
                    Thread.Sleep(1);
                }
            }, TaskCancellation.Token);



            ServiceLevelConnectionInitialization();
        }
Example #3
0
        private void Send()
        {
            lock (SendCmdList)
            {
                if (SendCmdList.Count > 0 && IsSendOK)
                {
                    try
                    {
                        IsSendOK = false;

                        NetworkStream stream = LocalClient.GetStream();

                        Byte[] dcB = System.Text.Encoding.ASCII.GetBytes(SendCmdList.First() + "\r");
                        stream.Write(dcB, 0, dcB.Length);

                        Console.WriteLine("Send:" + SendCmdList.First());

                        SendCmdList.RemoveAt(0);
                    }
                    catch
                    {
                        Console.WriteLine("Send Fail:" + SendCmdList.First());
                    }
                }
            }
        }
Example #4
0
 private void SessionConnect()
 {
     if (session == null)
     {
         session = new ObexClientSession(LocalClient.GetStream(), UInt16.MaxValue);
     }
     session.Connect(new byte[] { 0x79, 0x61, 0x35, 0xf0, 0xf0, 0xc5, 0x11, 0xd8, 0x09, 0x66, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66 });
 }
Example #5
0
        public static void ConnectDevice(BluetoothDeviceInfo device, string devicePin)
        {
            // set pin of device to connect with
            if (devicePin != null)
            {
                LocalClient.SetPin(devicePin);
            }

            // check if device is paired
            if (device.Authenticated)
            {
                // synchronous connection method
                LocalClient.Connect(device.DeviceAddress, BluetoothService.SerialPort);
                if (LocalClient.Connected)
                {
                    _stream             = LocalClient.GetStream();
                    _stream.ReadTimeout = 500;
                }
            }
        }