//发送字节数据 private void sendBytesWithInfo(object obj) { while (sendThreaIsRunning) { while (!queueSendBuffer.IsEmpty) { BytesWithInfo bi = null; bool result = queueSendBuffer.TryDequeue(out bi); //Console.WriteLine("queue count : " + queueSendBuffer.Count); if (!result || null == bi) { continue; } try { serial.Write(bi.bytes, 0, bi.bytes.Length); eventSended?.Invoke(this, new ByteEventArgs(DateTime.Now, bi)); } catch (Exception e) { CommStateEventArgs args = new CommStateEventArgs(); args.opened = false; args.message = "发送异常, 请检查串口是否正常 : " + e.Message; eventStateChanged?.Invoke(this, args); } Thread.Sleep(5); } Thread.Sleep(10); } }
//发送字节数据 private void sendBytes(object obj) { BytesWithInfo bi = obj as BytesWithInfo; bi.bytes = obj as byte[]; try { serial.Write(bi.bytes, 0, bi.bytes.Length); eventSended?.Invoke(this, new ByteEventArgs(DateTime.Now, bi)); } catch (Exception e) { CommStateEventArgs args = new CommStateEventArgs(); args.opened = false; args.message = "发送异常, 请检查串口是否正常"; eventStateChanged?.Invoke(this, args); } }
private void closeResult(bool result) { if (null != eventStateChanged) { CommStateEventArgs args = new CommStateEventArgs(); args.opened = isOpen(); if (!args.opened) { args.message = "已关闭"; serial.DataReceived += Serial_DataReceived; } else { args.message = "关闭失败"; } eventStateChanged(this, args); } }
private void openResult(bool result) { if (null != eventStateChanged) { CommStateEventArgs args = new CommStateEventArgs(); args.opened = result; if (args.opened) { args.message = "打开成功"; serial.DataReceived += Serial_DataReceived; } else { args.message = "打开失败"; } eventStateChanged(this, args); } }