/// <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 + "】不在线!"); } } } } }
/// <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); } } }
/// <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()); }