예제 #1
0
        /// <summary>
        /// 道闸设备开闸
        /// </summary>
        /// <param name="channelCode"></param>
        /// <param name="strArr"></param>
        public static void OpenGate(ProcessRecord recordInfo)
        {
            var temp = CommHelper.GetOrgInfos(recordInfo.CHN_CODE, false);

            if (null != temp)
            {
                var   par          = temp.Where(x => x.channelType == enumChannelType.par).LastOrDefault();
                var   chargMap     = par.ListChargMap.Where(x => x.carType == (int)recordInfo.CarType).FirstOrDefault();
                int[] roadType     = chargMap.roadGateType;
                var   childrenList = GetOrgInfos(recordInfo.CHN_CODE);
                if (null != childrenList && childrenList.Count > 0)
                {
                    //查找道闸设备
                    var roadGateDevice = childrenList.Where(x => x.productLine == enumProductLine.RoadGate).FirstOrDefault();
                    if (null != roadGateDevice && !string.IsNullOrEmpty(roadGateDevice.IP))
                    {
                        //if (roadGateDevice.Online)
                        //{
                        var tempControlPanel = EngineContext.Current.Resolve <IControlPanel>(roadGateDevice.deviceType.ToString());
                        if (null != tempControlPanel)
                        {
                            LogHelper.Log.Info("道闸设备【" + roadGateDevice.ORGANIZATION_NAME + "】" + ";车牌号:" + recordInfo.INOUT_RECODE.VEHICLE_NO + ";发送开闸命令时间:" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                            tempControlPanel.OpenGate(roadGateDevice.IP, roadGateDevice.Port, roadType);
                            recordInfo.OPERATER_TYPE = enumOperaterType.OpenGate;
                            ThreadMessageTransact.Instance.triggerEvent(recordInfo, false);
                        }
                        //}
                        //else
                        //    LogHelper.Log.Info("道闸设备【" + roadGateDevice.ORGANIZATION_NAME + "】不在线!");
                    }
                    else  //找父节点 ----- (一般是主控板)
                    {
                        var boardDevice = childrenList.Where(x => x.productLine == enumProductLine.MasterBoard).FirstOrDefault();
                        if (null != boardDevice && !string.IsNullOrEmpty(boardDevice.IP))
                        {
                            //if (boardDevice.Online)
                            //{
                            var tempControlPanel = EngineContext.Current.Resolve <IControlPanel>(boardDevice.deviceType.ToString());
                            if (null != tempControlPanel)
                            {
                                LogHelper.Log.Info("道闸设备【" + boardDevice.ORGANIZATION_NAME + "】" + ";车牌号:" + recordInfo.INOUT_RECODE.VEHICLE_NO + ";发送开闸命令时间:" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                                tempControlPanel.OpenGate(boardDevice.IP, boardDevice.Port, roadType);
                                recordInfo.OPERATER_TYPE = enumOperaterType.OpenGate;
                                ThreadMessageTransact.Instance.triggerEvent(recordInfo, false);
                            }
                            //}
                            //else
                            //    LogHelper.Log.Info("道闸设备【" + boardDevice.ORGANIZATION_NAME + "】不在线!");
                        }
                    }
                }
            }
        }
예제 #2
0
 /// <summary>
 /// 道闸设备开闸
 /// </summary>
 /// <param name="channelCode"></param>
 /// <param name="strArr"></param>
 public static void ShowLED(Equipment device, string[] strArr, LedInfoMap info)
 {
     if (string.IsNullOrEmpty(device.IP))
     {
         var Org = CommHelper.GetOrgInfos(device.ORGANIZATION_CODE, false);
         device = Org.Where(x => x.deviceType == enumDeviceType.LonixControlPanelI).LastOrDefault();
     }
     if (null != device)
     {
         var tempLedScreen = EngineContext.Current.Resolve <ILEDScreen>();
         if (null != tempLedScreen)
         {
             tempLedScreen.ShowLedScreen(device.IP, device.Port, strArr, info.displayMode, info.serialNo + 1, info.displayColor);
         }
     }
 }
예제 #3
0
 /// <summary>
 /// 获取工作站所有设备
 /// </summary>
 /// <param name="WORKSTATION_CODE"></param>
 /// <returns></returns>
 public static List <Equipment> GetCurrentWorkStationOrgs(string WorkStationCode)
 {
     return(CommHelper.GetOrgInfos(WorkStationCode).Concat(CommHelper.GetOrgInfos(WorkStationCode, false)).OrderBy(x => x.ORG_LEVEL).ToList());
 }