/// <summary> /// 读卡器处理 /// 读卡器有读取到刷卡时触发读取卡号 /// </summary> /// <param name="nHallID"></param> /// <param name="strPhysicalCardID"></param> private void ICCardMgmt(object sender, CSwiperEventArgs e) { try { int nHallID = e.HallID; string strPhysicalCardID = e.PhysicalCardID; CLOGException.Trace(m_nPLCID, "WorkFlowLib.CWorkFlow.ICCardMgmt ", string.Format("strPhysicalCardID:{0}", strPhysicalCardID)); if (!m_dictHallID.ContainsKey(nHallID) || string.IsNullOrWhiteSpace(strPhysicalCardID)) { CLOGException.Trace(m_nPLCID, "WorkFlowLib.CWorkFlow.ICCardMgmt ", "nHallID or strPhysicalCardID is invalid"); return;//打印日志 } struHallEquips struLocation = m_dictHallID[nHallID]; CRequestAction requestAction = new CRequestAction(); requestAction.struHallEquip = struLocation; int nActionFlag = 0; m_taskTrigger.SwipeICCard(ref nActionFlag, ref requestAction, strPhysicalCardID, struLocation); requestAction.PLCServer = m_commModule; requestAction.DicSound = m_dicSound; requestAction.RequestAction(nActionFlag, m_sendTelegramAction, m_modifyDBAction, m_soundAction); } catch (Exception ex) { //打印日志 CLOGException.Trace("WorkFlowLib.CWorkFlow.ICCardMgmt异常", CBaseMethods.MyBase.GetExceptionInfo(ex)); } }
private Dictionary <int, CSound> m_dicSound;//语音播放对象 public CRequestAction() { m_nSendIDMax = CConfigManagement.myPara.MaxTelegramID;//读取配置文件 lstAction = new List <CAbstractAction>(); m_PLCServer = null; m_telegram = null; m_lstTelegram = new List <struTelegram>(); // 发送报文列表 m_soundName = string.Empty; m_lstTableDto = new List <struTableDto>(); // SQL操作表格数据 m_ledContent = string.Empty; // LED显示文本内容 m_struTelegram = new struTelegram(); m_carLocationTBL = new CCarLocationDto(); m_deviceStatusTBL = new CDeviceStatusDto(); m_struHallEquip = new struHallEquips(); m_soundUpdateContent = string.Empty; m_dicSound = new Dictionary <int, CSound>(); }
/// <summary> /// 初始化函数 /// </summary> public void Init() { try { #region Led绑定 for (int nCounter = 0; nCounter < m_lstPLCID.Count; nCounter++) { Dictionary <int, CLedShower> dicHallHasLED = new Dictionary <int, CLedShower>(); Dictionary <int, struHallEquips> dictHallID = (Dictionary <int, struHallEquips>)CConfigManagement.myPara.DicHallIDDictionary[m_lstPLCID[nCounter]];//.GetHallIDDictionary(m_nPLCID); foreach (KeyValuePair <int, struHallEquips> pair in dictHallID) { struHallEquips hallEquip = pair.Value; if (hallEquip.nLEDAddress != 0) { CLedShower led = new CLedShower(hallEquip.nLEDAddress); dicHallHasLED.Add(pair.Key, led); CLOGException.Trace("AddLEDDevice", string.Format("Info- warehouse:{0},hallID:{1},ledCom:{2}", nCounter + 1, pair.Key, hallEquip.nLEDAddress)); } } m_dicLEDdevieLst.Add(m_lstPLCID[nCounter], dicHallHasLED); } #endregion for (int nCounter = 0; nCounter < m_lstPLCID.Count; nCounter++) { m_PLCThreads[nCounter] = new Thread(StartThread);//启动业务线程 if (null != m_PLCThreads[nCounter]) { CLOGException.Trace(m_lstPLCID[nCounter], "IEG_AP_Proc", "Start programme...(Ver:AutoParkingV200R001C01SPC100|AutoParkingV200R001C01SPC100)"); m_PLCThreads[nCounter].IsBackground = true;//后台线程在主线程关闭时,子线程随之关闭,速度很快。 m_PLCThreads[nCounter].Start(m_lstPLCID[nCounter]); } } } catch (Exception ex) { CLOGException.Trace("WorkFlowLib.CMainEntrance.Init 异常", CBaseMethods.MyBase.GetExceptionInfo(ex)); } }