Exemplo n.º 1
0
        /// <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));
            }
        }
Exemplo n.º 2
0
        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>();
        }
Exemplo n.º 3
0
        /// <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));
            }
        }