/// <summary> /// 发送数据消费者,每隔50ms读取队列数据,通过USB发送数据 /// </summary> public void UsbTxStart() { latch.Acquire(); while (NeedRunning) { var list = txQueue.PopAll(); foreach (var np in list) { try { var data = np.encode(); int len = data.Length; usb.sendDataSynchronous(ref data, ref len); LogHelper.GetLogger <ProcThread>().Debug("Send Data: " + ByteHelper.Byte2ReadalbeXstring(data)); } catch (Exception ex) { LogHelper.GetLogger <ProcThread>().Error(string.Format("Send data Error. Reason: {0}, Detail: {1}.", ex.ToString(), ex.StackTrace)); } } if (!NeedRunning) { break; } Thread.Sleep(50); } }
public void UdpTxStart() { while (NeedRunning) { try { List <Original> originalData = txQueue.PopAll(); if (originalData != null) { if (originalData.Count != 0) { foreach (Original original in originalData) { OriginalTxBytes oBytes = original as OriginalTxBytes; UdpNetClient udpClient = udpNetClients[oBytes.RemoteIpEndPoint.ToString()]; udpClient.Send(oBytes.Data); } } } Thread.Sleep(20); } catch (System.Exception ex) { } } }