Esempio n. 1
0
 /// <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);
     }
 }
Esempio n. 2
0
        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)
                {
                }
            }
        }