private LedMonitoringConfig SetMonitorCfg() { LedMonitoringConfig ledHWCfg = new LedMonitoringConfig(); ledHWCfg.SN = _sn; ledHWCfg.MonitoringCardConfig = new MonitoringCardConfig(); ledHWCfg.MonitoringCardConfig.MonitoringEnable = IsMonitorCardConnected; if (!IsMonitorCardConnected) { return(ledHWCfg); } ledHWCfg.MonitoringCardConfig.ParameterConfigTable = new List <ParameterMonitoringConfig>(); ParameterMonitoringConfig pCfg = new ParameterMonitoringConfig(); //Humidity pCfg.ConfigMode = ParameterConfigMode.NoneExtendedMode; pCfg.MonitoringEnable = IsRefreshHumidity; pCfg.Type = StateQuantityType.Humidity; ledHWCfg.MonitoringCardConfig.ParameterConfigTable.Add(pCfg); //smoke ParameterMonitoringConfig pCfg1 = new ParameterMonitoringConfig(); pCfg1.ConfigMode = ParameterConfigMode.NoneExtendedMode; pCfg1.Type = StateQuantityType.Smoke; pCfg1.MonitoringEnable = IsRefreshSmoke; ledHWCfg.MonitoringCardConfig.ParameterConfigTable.Add(pCfg1); //cabinet ParameterMonitoringConfig pCfg2 = new ParameterMonitoringConfig(); pCfg2.Type = StateQuantityType.FlatCableStatus; pCfg2.ConfigMode = ParameterConfigMode.NoneExtendedMode; pCfg2.MonitoringEnable = IsRefreshCabinet; ledHWCfg.MonitoringCardConfig.ParameterConfigTable.Add(pCfg2); //cabinetdoor ParameterMonitoringConfig pCfg3 = new ParameterMonitoringConfig(); pCfg3.ConfigMode = ParameterConfigMode.NoneExtendedMode; pCfg3.Type = StateQuantityType.DoorStatus; pCfg3.MonitoringEnable = IsRefreshCabinetDoor; ledHWCfg.MonitoringCardConfig.ParameterConfigTable.Add(pCfg3); //fan ParameterMonitoringConfig pCfg4 = new ParameterMonitoringConfig(); if (FanInfo != null) { pCfg4.ReservedConfig = FanInfo.FanSpeed; if (FanInfo.IsRefreshFan) { if (FanInfo.AllFanOfCabinetSame) { pCfg4.ConfigMode = ParameterConfigMode.GeneralExtendedMode; pCfg4.MonitoringEnable = FanInfo.IsRefreshFan; pCfg4.GeneralExtendedConfig = FanInfo.FanCount; } else if (FanInfo.AllFanOfCabinetDif) { pCfg4.ConfigMode = ParameterConfigMode.AdvanceExtendedMode; pCfg4.ExtendedConfig = new List <ParameterExtendedConfig>(); if (FanInfo.AllFanCountDif != null) { foreach (KeyValuePair <string, byte> keyValue in FanInfo.AllFanCountDif) { ParameterExtendedConfig param = new ParameterExtendedConfig(); param.ReceiveCardId = keyValue.Key; param.ParameterCount = keyValue.Value; pCfg4.ExtendedConfig.Add(param); } } } } pCfg4.MonitoringEnable = FanInfo.IsRefreshFan; pCfg4.Type = StateQuantityType.FanSpeed; ledHWCfg.MonitoringCardConfig.ParameterConfigTable.Add(pCfg4); } //Power ParameterMonitoringConfig pCfg5 = new ParameterMonitoringConfig(); if (MCPower != null) { if (MCPower.IsRefreshPower) { if (MCPower.AllPowerOfCabinetSame) { pCfg5.ConfigMode = ParameterConfigMode.GeneralExtendedMode; pCfg5.MonitoringEnable = MCPower.IsRefreshPower; pCfg5.GeneralExtendedConfig = MCPower.PowerCount; } else if (MCPower.AllPowerOfCabinetDif) { pCfg5.ConfigMode = ParameterConfigMode.AdvanceExtendedMode; pCfg5.ExtendedConfig = new List <ParameterExtendedConfig>(); if (MCPower.AllPowerCountDif != null) { foreach (KeyValuePair <string, byte> keyValue in MCPower.AllPowerCountDif) { ParameterExtendedConfig param = new ParameterExtendedConfig(); param.ReceiveCardId = keyValue.Key; param.ParameterCount = keyValue.Value; pCfg5.ExtendedConfig.Add(param); } } } } pCfg5.MonitoringEnable = MCPower.IsRefreshPower; pCfg5.Type = StateQuantityType.Voltage; ledHWCfg.MonitoringCardConfig.ParameterConfigTable.Add(pCfg5); } return(ledHWCfg); }
private void SetMonitorCardMonitor(LedBasicInfo ledInfo, List <MonitorCardMonitorInfo> monitorCardInfos, LedAlarmConfig ledAlarmConfig, LedMonitoringConfig ledMonitorConfig, MonitorDataFlag monitorFlag) { if (ledMonitorConfig.MonitoringCardConfig == null || ledMonitorConfig.MonitoringCardConfig.MonitoringEnable == false) { monitorFlag.IsMCStatusValid = DeviceWorkStatus.UnAvailable; monitorFlag.IsFanValid = DeviceWorkStatus.UnAvailable; monitorFlag.IsHumidityValid = DeviceWorkStatus.UnAvailable; monitorFlag.IsPowerValid = DeviceWorkStatus.UnAvailable; monitorFlag.IsRowLineValid = DeviceWorkStatus.UnAvailable; monitorFlag.IsSmokeValid = DeviceWorkStatus.UnAvailable; monitorFlag.IsGeneralStatusValid = DeviceWorkStatus.UnAvailable; return; } monitorFlag.IsMCStatusValid = DeviceWorkStatus.Unknown; monitorFlag.IsFanValid = DeviceWorkStatus.Unknown; monitorFlag.IsHumidityValid = DeviceWorkStatus.Unknown; monitorFlag.IsPowerValid = DeviceWorkStatus.Unknown; monitorFlag.IsRowLineValid = DeviceWorkStatus.Unknown; monitorFlag.IsSmokeValid = DeviceWorkStatus.Unknown; monitorFlag.IsGeneralStatusValid = DeviceWorkStatus.Unknown; float fanValue = 1000; float humValue = 100; float valValue = 4; if (ledAlarmConfig.ParameterAlarmConfigList != null) { ParameterAlarmConfig param = ledAlarmConfig.ParameterAlarmConfigList.Find(a => a.ParameterType == StateQuantityType.FanSpeed); if (param != null) { fanValue = (float)param.LowThreshold; } param = ledAlarmConfig.ParameterAlarmConfigList.Find(a => a.ParameterType == StateQuantityType.Humidity); if (param != null) { humValue = (float)param.HighThreshold; } } ParameterMonitoringConfig monitorConfig = ledMonitorConfig.MonitoringCardConfig.ParameterConfigTable.Find (a => a.Type == StateQuantityType.FanSpeed); bool isFan = monitorConfig == null ? false : monitorConfig.MonitoringEnable; monitorConfig = ledMonitorConfig.MonitoringCardConfig.ParameterConfigTable.Find (a => a.Type == StateQuantityType.Humidity); bool isHumidity = monitorConfig == null ? false : monitorConfig.MonitoringEnable; monitorConfig = ledMonitorConfig.MonitoringCardConfig.ParameterConfigTable.Find (a => a.Type == StateQuantityType.Smoke); bool isSmoke = monitorConfig == null ? false : monitorConfig.MonitoringEnable; monitorConfig = ledMonitorConfig.MonitoringCardConfig.ParameterConfigTable.Find (a => a.Type == StateQuantityType.Voltage); bool isVoltage = monitorConfig == null ? false : monitorConfig.MonitoringEnable; monitorConfig = ledMonitorConfig.MonitoringCardConfig.ParameterConfigTable.Find (a => a.Type == StateQuantityType.DoorStatus); bool isDoorStatus = monitorConfig == null ? false : monitorConfig.MonitoringEnable; monitorConfig = ledMonitorConfig.MonitoringCardConfig.ParameterConfigTable.Find (a => a.Type == StateQuantityType.FlatCableStatus); bool isFlatCableStatus = monitorConfig == null ? false : monitorConfig.MonitoringEnable; _lctData.ValidInfo.IsMCStatusValid = true; foreach (MonitorCardMonitorInfo monitorCardInfo in monitorCardInfos) { if (monitorCardInfo.DeviceStatus == DeviceWorkStatus.Error) { monitorFlag.IsMCStatusValid = DeviceWorkStatus.Error; if (!_lctData.FaultMonitorInfos.ContainsKey(ledInfo.Commport)) { _lctData.FaultMonitorInfos.Add(ledInfo.Commport, new MonitorErrData()); } _lctData.FaultMonitorInfos[ledInfo.Commport].MCStatusErrCount++; } else if (monitorCardInfo.DeviceStatus == DeviceWorkStatus.OK && monitorFlag.IsMCStatusValid == DeviceWorkStatus.Unknown) { monitorFlag.IsMCStatusValid = DeviceWorkStatus.OK; } if (isFan == false) { monitorFlag.IsFanValid = DeviceWorkStatus.UnAvailable; } else if (monitorCardInfo.FansUInfo == null) { //if (monitorFlag.IsFanValid == DeviceWorkStatus.OK) //{ // monitorFlag.IsFanValid = DeviceWorkStatus.Error; //} } else if (monitorCardInfo.FansUInfo.IsUpdate && monitorCardInfo.FansUInfo.FansMonitorInfoCollection != null && monitorCardInfo.FansUInfo.FansMonitorInfoCollection.Count > 0) { foreach (int tmpValue in monitorCardInfo.FansUInfo.FansMonitorInfoCollection.Values) { if (tmpValue < fanValue) { monitorFlag.IsFanValid = DeviceWorkStatus.Error; if (!_lctData.AlarmMonitorInfos.ContainsKey(ledInfo.Commport)) { _lctData.AlarmMonitorInfos.Add(ledInfo.Commport, new MonitorErrData()); } _lctData.AlarmMonitorInfos[ledInfo.Commport].FanAlarmSwitchCount++; } else if (monitorCardInfo.DeviceStatus == DeviceWorkStatus.OK && monitorFlag.IsFanValid == DeviceWorkStatus.Unknown) { monitorFlag.IsFanValid = DeviceWorkStatus.OK; } } _lctData.ValidInfo.IsFanValid = true; } if (isHumidity == false) { monitorFlag.IsHumidityValid = DeviceWorkStatus.UnAvailable; } else if (monitorCardInfo.HumidityUInfo == null) { //if (monitorFlag.IsHumidityValid == DeviceWorkStatus.OK) //{ // monitorFlag.IsHumidityValid = DeviceWorkStatus.Error; //} } else if (monitorCardInfo.HumidityUInfo.IsUpdate) { if (monitorCardInfo.HumidityUInfo.Humidity > humValue) { monitorFlag.IsHumidityValid = DeviceWorkStatus.Error; if (!_lctData.AlarmMonitorInfos.ContainsKey(ledInfo.Commport)) { _lctData.AlarmMonitorInfos.Add(ledInfo.Commport, new MonitorErrData()); } _lctData.AlarmMonitorInfos[ledInfo.Commport].HumidityAlarmCount++; } else if (monitorFlag.IsHumidityValid != DeviceWorkStatus.Error) { monitorFlag.IsHumidityValid = DeviceWorkStatus.OK; } _lctData.ValidInfo.IsHumidityValid = true; } if (isDoorStatus == false) { monitorFlag.IsGeneralStatusValid = DeviceWorkStatus.UnAvailable; } else if (monitorCardInfo.CabinetDoorUInfo == null) { //if (monitorFlag.IsGeneralStatusValid == DeviceWorkStatus.OK) //{ // monitorFlag.IsGeneralStatusValid = DeviceWorkStatus.Error; //} } else if (monitorCardInfo.CabinetDoorUInfo.IsUpdate) { if (monitorCardInfo.CabinetDoorUInfo.IsDoorOpen) { monitorFlag.IsGeneralStatusValid = DeviceWorkStatus.Error; if (!_lctData.FaultMonitorInfos.ContainsKey(ledInfo.Commport)) { _lctData.FaultMonitorInfos.Add(ledInfo.Commport, new MonitorErrData()); } _lctData.FaultMonitorInfos[ledInfo.Commport].GeneralSwitchErrCount++; } else if (monitorFlag.IsGeneralStatusValid != DeviceWorkStatus.Error) { monitorFlag.IsGeneralStatusValid = DeviceWorkStatus.OK; } _lctData.ValidInfo.IsGeneralStatusValid = true; } if (isVoltage == false) { monitorFlag.IsPowerValid = DeviceWorkStatus.UnAvailable; } else if (monitorCardInfo.PowerUInfo == null) { //if (monitorFlag.IsPowerValid == DeviceWorkStatus.OK) //{ // monitorFlag.IsPowerValid = DeviceWorkStatus.Error; //} } else if (monitorCardInfo.PowerUInfo.IsUpdate && monitorCardInfo.PowerUInfo.PowerMonitorInfoCollection != null) { foreach (float tmpValue in monitorCardInfo.PowerUInfo.PowerMonitorInfoCollection.Values) { if (tmpValue < valValue) { monitorFlag.IsPowerValid = DeviceWorkStatus.Error; if (!_lctData.FaultMonitorInfos.ContainsKey(ledInfo.Commport)) { _lctData.FaultMonitorInfos.Add(ledInfo.Commport, new MonitorErrData()); } _lctData.FaultMonitorInfos[ledInfo.Commport].PowerAlarmSwitchCount++; } else if (monitorCardInfo.DeviceStatus == DeviceWorkStatus.OK && monitorFlag.IsPowerValid == DeviceWorkStatus.Unknown) { monitorFlag.IsPowerValid = DeviceWorkStatus.OK; } } _lctData.ValidInfo.IsPowerValid = true; } if (isSmoke == false) { monitorFlag.IsSmokeValid = DeviceWorkStatus.UnAvailable; } else if (monitorCardInfo.SmokeUInfo == null) { //if (monitorFlag.IsSmokeValid == DeviceWorkStatus.OK) //{ // monitorFlag.IsSmokeValid = DeviceWorkStatus.Error; //} } else if (monitorCardInfo.SmokeUInfo.IsUpdate) { if (monitorCardInfo.SmokeUInfo.IsSmokeAlarm) { monitorFlag.IsSmokeValid = DeviceWorkStatus.Error; if (!_lctData.AlarmMonitorInfos.ContainsKey(ledInfo.Commport)) { _lctData.AlarmMonitorInfos.Add(ledInfo.Commport, new MonitorErrData()); } _lctData.AlarmMonitorInfos[ledInfo.Commport].SmokeAlarmCount++; } else if (monitorFlag.IsSmokeValid != DeviceWorkStatus.Error) { monitorFlag.IsSmokeValid = DeviceWorkStatus.OK; } _lctData.ValidInfo.IsSmokeValid = true; } if (isFlatCableStatus == false) { monitorFlag.IsRowLineValid = DeviceWorkStatus.UnAvailable; } else if (monitorCardInfo.SocketCableUInfo == null) { // if (monitorFlag.IsRowLineValid == DeviceWorkStatus.OK) // { // monitorFlag.IsRowLineValid = DeviceWorkStatus.Error; // } } else if (monitorCardInfo.SocketCableUInfo.IsUpdate && monitorCardInfo.SocketCableUInfo.SocketCableInfoCollection != null && monitorCardInfo.SocketCableUInfo.SocketCableInfoCollection.Count > 0) { foreach (SocketCableMonitorInfo socket in monitorCardInfo.SocketCableUInfo.SocketCableInfoCollection) { if (socket.SocketCableInfoDict == null || socket.SocketCableInfoDict.Count == 0) { monitorFlag.IsRowLineValid = DeviceWorkStatus.Error; break; } foreach (List <SocketCableStatus> socketCables in socket.SocketCableInfoDict.Values) { foreach (SocketCableStatus socketcable in socketCables) { if (socketcable.IsCableOK == false) { monitorFlag.IsRowLineValid = DeviceWorkStatus.Error; if (!_lctData.AlarmMonitorInfos.ContainsKey(ledInfo.Commport)) { _lctData.AlarmMonitorInfos.Add(ledInfo.Commport, new MonitorErrData()); } _lctData.AlarmMonitorInfos[ledInfo.Commport].SoketAlarmCount++; } else if (socketcable.IsCableOK == true && monitorFlag.IsRowLineValid == DeviceWorkStatus.Unknown) { monitorFlag.IsRowLineValid = DeviceWorkStatus.OK; } } } if (monitorFlag.IsRowLineValid == DeviceWorkStatus.Error) { break; } } _lctData.ValidInfo.IsRowLineValid = true; } } }
private void InitialHwConfg(LedMonitoringConfig ledMonitorCfg) { if (ledMonitorCfg == null || ledMonitorCfg.MonitoringCardConfig == null || ledMonitorCfg.SN == null) { return; } IsMonitorCardConnected = ledMonitorCfg.MonitoringCardConfig.MonitoringEnable; if (ledMonitorCfg.MonitoringCardConfig.ParameterConfigTable == null || ledMonitorCfg.MonitoringCardConfig.ParameterConfigTable.Count == 0) { return; } ParameterMonitoringConfig cfg = ledMonitorCfg.MonitoringCardConfig.ParameterConfigTable.Find(a => a.Type.Equals(StateQuantityType.FlatCableStatus)); if (cfg != null) { IsRefreshCabinet = cfg.MonitoringEnable; } cfg = ledMonitorCfg.MonitoringCardConfig.ParameterConfigTable.Find(a => a.Type.Equals(StateQuantityType.DoorStatus)); if (cfg != null) { IsRefreshCabinetDoor = cfg.MonitoringEnable; } cfg = ledMonitorCfg.MonitoringCardConfig.ParameterConfigTable.Find(a => a.Type.Equals(StateQuantityType.Humidity)); if (cfg != null) { IsRefreshHumidity = cfg.MonitoringEnable; } cfg = ledMonitorCfg.MonitoringCardConfig.ParameterConfigTable.Find(a => a.Type.Equals(StateQuantityType.Smoke)); if (cfg != null) { IsRefreshSmoke = cfg.MonitoringEnable; } cfg = ledMonitorCfg.MonitoringCardConfig.ParameterConfigTable.Find(a => a.Type.Equals(StateQuantityType.FanSpeed)); FanInfo = new UC_HWConfig_CabinetFanInfo_VM(); if (cfg != null) { FanInfo.IsRefreshFan = cfg.MonitoringEnable; if (FanInfo.IsRefreshFan) { FanInfo.FanSpeed = cfg.ReservedConfig; if (_sn == MonitorAllConfig.Instance().ALLScreenName) { cfg.ConfigMode = ParameterConfigMode.GeneralExtendedMode; } if (cfg.ConfigMode == ParameterConfigMode.GeneralExtendedMode) { FanInfo.AllFanOfCabinetSame = true; FanInfo.AllFanOfCabinetDif = false; FanInfo.FanCount = cfg.GeneralExtendedConfig; } else if (cfg.ConfigMode == ParameterConfigMode.AdvanceExtendedMode) { FanInfo.AllFanOfCabinetSame = false; FanInfo.AllFanOfCabinetDif = true; FanInfo.AllFanCountDif = new SerializableDictionary <string, byte>(); foreach (ParameterExtendedConfig param in cfg.ExtendedConfig) { FanInfo.AllFanCountDif.Add(param.ReceiveCardId, (byte)param.ParameterCount); } } } } cfg = ledMonitorCfg.MonitoringCardConfig.ParameterConfigTable.Find(a => a.Type.Equals(StateQuantityType.Voltage)); MCPower = new UC_HWConfig_MonitorCardPower_VM(); if (cfg != null) { MCPower.IsRefreshPower = cfg.MonitoringEnable; if (MCPower.IsRefreshPower) { if (_sn == MonitorAllConfig.Instance().ALLScreenName) { cfg.ConfigMode = ParameterConfigMode.GeneralExtendedMode; } if (cfg.ConfigMode == ParameterConfigMode.GeneralExtendedMode) { MCPower.AllPowerOfCabinetSame = true; MCPower.AllPowerOfCabinetDif = false; MCPower.PowerCount = cfg.GeneralExtendedConfig; } else if (cfg.ConfigMode == ParameterConfigMode.AdvanceExtendedMode) { MCPower.AllPowerOfCabinetSame = false; MCPower.AllPowerOfCabinetDif = true; MCPower.AllPowerCountDif = new SerializableDictionary <string, byte>(); foreach (ParameterExtendedConfig param in cfg.ExtendedConfig) { MCPower.AllPowerCountDif.Add(param.ReceiveCardId, (byte)param.ParameterCount); } } } } }