public void DeleteMonitor(FrameMonitor monitor) { lock (((ICollection)listMonitor).SyncRoot) { listMonitor.Remove(monitor); } }
public FrameMonitor AddMonitor() { FrameMonitor monitor = new FrameMonitor(); lock (((ICollection)listMonitor).SyncRoot) { listMonitor.Add(monitor); } return(monitor); }
/// <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) { } }
public FrameMonitor AddMonitor() { FrameMonitor monitor = new FrameMonitor(); lock (((ICollection)listMonitor).SyncRoot) { listMonitor.Add(monitor); } return monitor; }