Esempio n. 1
0
 public void DeleteMonitor(FrameMonitor monitor)
 {
     lock (((ICollection)listMonitor).SyncRoot)
     {
         listMonitor.Remove(monitor);
     }
 }
Esempio n. 2
0
        public FrameMonitor AddMonitor()
        {
            FrameMonitor monitor = new FrameMonitor();

            lock (((ICollection)listMonitor).SyncRoot)
            {
                listMonitor.Add(monitor);
            }

            return(monitor);
        }
Esempio n. 3
0
        /// <summary>
        /// 处理设备的请求命令
        /// </summary>
        private void ProcessRequest()
        {
            try
            {
                FrameMonitor monitor = AddMonitor();
                while (true)
                {
                    DeviceRequest[] requests = null;
                    lock (((ICollection)listRequest).SyncRoot)
                    {
                        requests = listRequest.ToArray();

                        listRequest.Clear();
                    }


                    if (requests == null || requests.Length <= 0)
                    {
                        eventRequest.WaitOne();
                        continue;
                    }

                    for (int i = 0; i < requests.Length; i++)
                    {
                        monitor.Cmd = requests[i].Cmd - 0x80;

                        SendSerialData(requests[i].Cmd, requests[i].Request);

                        monitor.Reset();


                        SerialFrame sf = monitor.GetFrame(500);
                        if (sf != null)
                        {
                            requests[i].AddResponse(sf.RawData);
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
        }
Esempio n. 4
0
 public void DeleteMonitor(FrameMonitor monitor)
 {
     lock (((ICollection)listMonitor).SyncRoot)
     {
         listMonitor.Remove(monitor);
     }
 }
Esempio n. 5
0
        public FrameMonitor AddMonitor()
        {
            FrameMonitor monitor = new FrameMonitor();

            lock (((ICollection)listMonitor).SyncRoot)
            {
                listMonitor.Add(monitor);
            }

            return monitor;
        }