private void CarrierMsgUpdate(SocketMsgMod mod) { if (mod != null) { if (Monitor.TryEnter(_obj, TimeSpan.FromSeconds(2))) { try { CarrierTask task = DevList.Find(c => c.ID == mod.ID); if (task != null) { task.ConnStatus = mod.ConnStatus; if (mod.Device is DevCarrier carrier) { task.DevStatus = carrier; task.UpdateInfo(); CheckDev(task); if (carrier.IsUpdate || mTimer.IsTimeOutAndReset(TimerTag.DevRefreshTimeOut, carrier.ID, 5)) { MsgSend(task, carrier); } } CheckConn(task); } } catch (Exception e) { mlog.Error(true, e.Message, e); } finally { Monitor.Exit(_obj); } } } }
protected TcpBase(Device dev) { mMsgMod = new SocketMsgMod(); mMsgMod.ID = dev.id; DevID = dev.id; mDev = dev;//+"-"+dev.id _mLog = (Log) new LogFactory().GetLog(dev.name, false); mTimer = new MTimer(); }
private void FerryMsgUpdate(SocketMsgMod mod) { if (mod != null) { if (Monitor.TryEnter(_obj, TimeSpan.FromSeconds(2))) { try { FerryTask task = DevList.Find(c => c.ID == mod.ID); if (task != null) { task.ConnStatus = mod.ConnStatus; if (mod.Device is DevFerry ferry) { task.DevStatus = ferry; task.UpdateInfo(); if (ferry.IsUpdate || mTimer.IsTimeOutAndReset(TimerTag.DevRefreshTimeOut, ferry.ID, 5)) { MsgSend(task, ferry); } ///摆渡车对位中 if (_IsSetting) { if (_FerryPosSetList.Find(c => c.FerryId == task.ID && !c.IsRF) is FerryPosSet set) { PosMsgSend(task, ferry); } if (_FerryPosSetList.Find(c => c.FerryId == task.ID && c.IsRF) is FerryPosSet rfset) { RfPosMsgSend(rfset, ferry); } } } if (mod.Device is DevFerrySite site) { task.DevSite = site; if (_FerryPosSetList.Find(c => c.FerryId == task.ID && !c.IsRF) is FerryPosSet fset) { PosMsgSend(task, site); } if (_FerryPosSetList.Find(c => c.FerryId == task.ID && c.IsRF) is FerryPosSet rfset) { RfPosSiteMsgSend(rfset, task.ID, site); } } CheckConn(task); } } catch (Exception e) { mlog.Error(true, e.Message, e); } finally { Monitor.Exit(_obj); } } } }