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); } } } } } }
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(); }
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()); } } } }
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 }); }
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; } } }