示例#1
0
        private void OnCmdInitialize(string sn)
        {
            _sn = sn;
            LedAlarmConfig ledAlarm = null;

            if (MonitorAllConfig.Instance().LedAlarmConfigs == null)
            {
                return;
            }

            foreach (var item in MonitorAllConfig.Instance().LedAlarmConfigs)
            {
                if (_sn == MonitorAllConfig.Instance().ALLScreenName)
                {
                    ledAlarm = item;
                    break;
                }
                else if (_sn == item.SN)
                {
                    ledAlarm = item;
                    break;
                }
            }
            if (ledAlarm != null)
            {
                _isUI = true;
                InitialAlarmConfg(ledAlarm);
                _isUI = false;
            }
        }
示例#2
0
        private void InitialAlarmConfg(LedAlarmConfig ledAlarm)
        {
            if (ledAlarm.ParameterAlarmConfigList == null || ledAlarm.ParameterAlarmConfigList.Count == 0)
            {
                return;
            }
            foreach (ParameterAlarmConfig param in ledAlarm.ParameterAlarmConfigList)
            {
                if (param != null)
                {
                    switch (param.ParameterType)
                    {
                    case StateQuantityType.Temperature:
                        IsEnableTempAlarm    = !param.Disable;
                        TemperatureThreshold = (int)param.HighThreshold;
                        break;

                    case StateQuantityType.Humidity:
                        IsEnableHumidityAlarm = !param.Disable;
                        HumidityThreshold     = (int)param.HighThreshold;
                        break;

                    case StateQuantityType.Voltage:
                        if (param.Level == AlarmLevel.Warning)
                        {
                            IsEnableVoltageAlarm = !param.Disable;
                            VoltageThreshold     = (float)param.LowThreshold;
                            VoltageThresholdMax  = (float)param.HighThreshold;
                        }
                        else if (param.Level == AlarmLevel.Malfunction)
                        {
                            IsEnableVoltageErrorAlarm = !param.Disable;
                            VoltageErrorThreshold     = (float)param.HighThreshold;
                        }
                        break;

                    case StateQuantityType.FanSpeed:
                        IsEnableFanSpeedAlarm = !param.Disable;
                        FanSpeedThreshold     = (int)param.LowThreshold;
                        break;
                    }
                }
            }

            if (MonitorAllConfig.Instance().UserConfigInfo != null)
            {
                if (_tempType == TemperatureType.Celsius)
                {
                    StrTempFlag = "℃";
                }
                else
                {
                    StrTempFlag = "℉";
                }
            }
        }
示例#3
0
        private void SetScannerMonitor(LedBasicInfo ledInfo, List <ScannerMonitorInfo> scannerInfos,
                                       LedAlarmConfig ledAlarmConfig, MonitorDataFlag monitorFlag)
        {
            monitorFlag.IsSBStatusValid    = DeviceWorkStatus.Unknown;
            monitorFlag.IsTemperatureValid = DeviceWorkStatus.Unknown;
            float tempValue = 79;

            if (ledAlarmConfig.ParameterAlarmConfigList != null)
            {
                ParameterAlarmConfig param = ledAlarmConfig.ParameterAlarmConfigList.Find(a =>
                                                                                          a.ParameterType == StateQuantityType.Temperature);
                if (param != null)
                {
                    tempValue = (float)param.HighThreshold;
                }
            }

            foreach (ScannerMonitorInfo scannerInfo in scannerInfos)
            {
                if (scannerInfo.DeviceStatus == DeviceWorkStatus.Error)
                {
                    monitorFlag.IsSBStatusValid = DeviceWorkStatus.Error;
                    if (!_lctData.FaultMonitorInfos.ContainsKey(ledInfo.Commport))
                    {
                        _lctData.FaultMonitorInfos.Add(ledInfo.Commport, new MonitorErrData());
                    }
                    _lctData.FaultMonitorInfos[ledInfo.Commport].SBStatusErrCount++;
                }
                else if (scannerInfo.DeviceStatus == DeviceWorkStatus.OK &&
                         monitorFlag.IsSBStatusValid == DeviceWorkStatus.Unknown)
                {
                    monitorFlag.IsSBStatusValid = DeviceWorkStatus.OK;
                }
                if (scannerInfo.TemperatureIsVaild == true)
                {
                    if (scannerInfo.Temperature > tempValue)
                    {
                        monitorFlag.IsTemperatureValid = DeviceWorkStatus.Error;
                        if (!_lctData.AlarmMonitorInfos.ContainsKey(ledInfo.Commport))
                        {
                            _lctData.AlarmMonitorInfos.Add(ledInfo.Commport, new MonitorErrData());
                        }
                        _lctData.AlarmMonitorInfos[ledInfo.Commport].TemperatureAlarmCount++;
                        _lctData.ValidInfo.IsTemperatureValid = true;
                    }
                    else if (monitorFlag.IsTemperatureValid != DeviceWorkStatus.Error)
                    {
                        monitorFlag.IsTemperatureValid        = DeviceWorkStatus.OK;
                        _lctData.ValidInfo.IsTemperatureValid = true;
                    }
                }
            }
            _lctData.ValidInfo.IsSBStatusValid = true;
        }
示例#4
0
        public bool OnCmdSaveAlarmConfig()
        {
            LedAlarmConfig ledAlarmCfg = GetAlarmConfg();

            //TODO:将系统配置入库 MonitorAllConfig.Instance().u(_sn, ledAlarmCfg);
            MonitorAllConfig.Instance().UserConfigInfo.TemperatureUnit = _tempType;
            if (!MonitorAllConfig.Instance().SaveUserConfig())
            {
                return(false);
            }
            return(MonitorAllConfig.Instance().UpdateLedAlarmConfig(_sn, ledAlarmCfg));
        }
示例#5
0
        private LedAlarmConfig GetAlarmConfg()
        {
            LedAlarmConfig ledAlarm = new LedAlarmConfig();

            ledAlarm.SN = SN;
            ledAlarm.ParameterAlarmConfigList = new List <ParameterAlarmConfig>();

            ParameterAlarmConfig param = new ParameterAlarmConfig();

            param.Disable       = !IsEnableTempAlarm;
            param.ParameterType = StateQuantityType.Temperature;
            if (_tempType == TemperatureType.Fahrenheit)
            {
                param.HighThreshold = (int)MonitorAllConfig.Instance().GetTempValueChanged(TemperatureType.Celsius, TemperatureThreshold);
            }
            else
            {
                param.HighThreshold = TemperatureThreshold;
            }
            ledAlarm.ParameterAlarmConfigList.Add((ParameterAlarmConfig)param.Clone());
            param.Disable       = !IsEnableHumidityAlarm;
            param.ParameterType = StateQuantityType.Humidity;
            param.HighThreshold = HumidityThreshold;
            ledAlarm.ParameterAlarmConfigList.Add((ParameterAlarmConfig)param.Clone());
            param.Disable       = !IsEnableVoltageAlarm;
            param.ParameterType = StateQuantityType.Voltage;
            param.LowThreshold  = VoltageThreshold;
            if (param.LowThreshold >= param.HighThreshold)
            {
                param.HighThreshold = VoltageThreshold + 0.1;
            }
            if (param.HighThreshold > 12)
            {
                param.HighThreshold = 12;
            }
            param.Level = AlarmLevel.Warning;
            ledAlarm.ParameterAlarmConfigList.Add((ParameterAlarmConfig)param.Clone());
            param.Disable       = !IsEnableVoltageErrorAlarm;
            param.ParameterType = StateQuantityType.Voltage;
            param.HighThreshold = VoltageErrorThreshold;
            param.LowThreshold  = 0;
            param.Level         = AlarmLevel.Malfunction;
            ledAlarm.ParameterAlarmConfigList.Add((ParameterAlarmConfig)param.Clone());
            param.Disable       = !IsEnableFanSpeedAlarm;
            param.ParameterType = StateQuantityType.FanSpeed;
            param.LowThreshold  = FanSpeedThreshold;
            param.HighThreshold = 0;
            ledAlarm.ParameterAlarmConfigList.Add((ParameterAlarmConfig)param.Clone());
            return(ledAlarm);
        }
示例#6
0
        public bool OnCmdInitialize()
        {
            IsGetData = false;
            if (MonitorAllConfig.Instance().ScreenMonitorData == null || MonitorAllConfig.Instance().ScreenMonitorData.AllScreenMonitorCollection == null ||
                MonitorAllConfig.Instance().ScreenMonitorData.AllScreenMonitorCollection.Count == 0)
            {
                ScreenMonitorData = null;
                _fLogService.Error("获取数据结果为空,导致界面失败");
                return(false);
            }
            foreach (ScreenModnitorData oneScreenData in MonitorAllConfig.Instance().ScreenMonitorData.AllScreenMonitorCollection)
            {
                if (oneScreenData.SenderMonitorCollection == null || oneScreenData.SenderMonitorCollection.Count == 0 ||
                    oneScreenData.ScannerMonitorCollection == null || oneScreenData.ScannerMonitorCollection.Count == 0)
                {
                    _fLogService.Error("获取数据结果不完整,因此不能推送到主界面");
                    return(false);
                }
            }
            IsGetData = true;

            ScreenMonitorData = (AllMonitorData)MonitorAllConfig.Instance().ScreenMonitorData.Clone();
            List <string> screenList = new List <string>();

            _lctData = new LCTMainMonitorData();
            foreach (LedMonitoringConfig monitorConfig in MonitorAllConfig.Instance().LedMonitorConfigs)
            {
                _lctData.RefreshTypeInfo.IsUpdateMCStatus = true;
                LedBasicInfo led = MonitorAllConfig.Instance().LedInfoList.FirstOrDefault(a => a.Sn == monitorConfig.SN);
                if (led == null)
                {
                    continue;
                }
                if (monitorConfig.MonitoringCardConfig != null && monitorConfig.MonitoringCardConfig.MonitoringEnable == true &&
                    monitorConfig.MonitoringCardConfig.ParameterConfigTable != null)
                {
                    foreach (ParameterMonitoringConfig param in monitorConfig.MonitoringCardConfig.ParameterConfigTable)
                    {
                        if (param.Type == StateQuantityType.FlatCableStatus &&
                            _lctData.RefreshTypeInfo.IsUpdateRowLine == false && param.MonitoringEnable)
                        {
                            _lctData.RefreshTypeInfo.IsUpdateRowLine = true;
                        }
                        if (param.Type == StateQuantityType.DoorStatus &&
                            _lctData.RefreshTypeInfo.IsUpdateGeneralStatus == false && param.MonitoringEnable)
                        {
                            _lctData.RefreshTypeInfo.IsUpdateGeneralStatus = true;
                        }
                        if (param.Type == StateQuantityType.Humidity &&
                            _lctData.RefreshTypeInfo.IsUpdateHumidity == false && param.MonitoringEnable)
                        {
                            _lctData.RefreshTypeInfo.IsUpdateHumidity = true;
                        }
                        if (param.Type == StateQuantityType.Smoke &&
                            _lctData.RefreshTypeInfo.IsUpdateSmoke == false && param.MonitoringEnable)
                        {
                            _lctData.RefreshTypeInfo.IsUpdateSmoke = true;
                        }
                        if (param.Type == StateQuantityType.FanSpeed &&
                            _lctData.RefreshTypeInfo.IsUpdateFan == false && param.MonitoringEnable)
                        {
                            _lctData.RefreshTypeInfo.IsUpdateFan = true;
                        }
                        if (param.Type == StateQuantityType.Voltage &&
                            _lctData.RefreshTypeInfo.IsUpdatePower == false && param.MonitoringEnable)
                        {
                            _lctData.RefreshTypeInfo.IsUpdatePower = true;
                        }
                    }
                }
            }

            foreach (ScreenModnitorData oneScreenData in ScreenMonitorData.AllScreenMonitorCollection)
            {
                screenList.Add(oneScreenData.ScreenUDID);
                MonitorDataFlag monitorFlag = MonitorDataFlags.Find(a => a.SN == oneScreenData.ScreenUDID);
                if (monitorFlag == null)
                {
                    monitorFlag        = new MonitorDataFlag();
                    monitorFlag.SN     = oneScreenData.ScreenUDID;
                    monitorFlag.SNName = GetSnAlia(oneScreenData.ScreenUDID);
                    MonitorDataFlags.Add(monitorFlag);
                }
                else
                {
                    monitorFlag.SNName = GetSnAlia(oneScreenData.ScreenUDID);
                }
                LedAlarmConfig ledAlarmConfig = MonitorAllConfig.Instance().LedAlarmConfigs.Find(a =>
                                                                                                 a.SN == oneScreenData.ScreenUDID);

                LedMonitoringConfig ledMonitorConfig = MonitorAllConfig.Instance().LedMonitorConfigs.Find(a =>
                                                                                                          a.SN == oneScreenData.ScreenUDID);
                if (ledMonitorConfig == null)
                {
                    if (oneScreenData == null || string.IsNullOrEmpty(oneScreenData.ScreenUDID))
                    {
                        _fLogService.Error("获取数据结果:没有硬件配置导致异常");
                    }
                    else
                    {
                        _fLogService.Error("获取数据结果:没有硬件配置导致异常:" + oneScreenData.ScreenUDID);
                    }
                    ledMonitorConfig    = new LedMonitoringConfig();
                    ledMonitorConfig.SN = oneScreenData.ScreenUDID;
                    ledMonitorConfig.MonitoringCardConfig = new MonitoringCardConfig();
                    ledMonitorConfig.MonitoringCardConfig.MonitoringEnable = false;
                }

                LedBasicInfo ledInfo = MonitorAllConfig.Instance().LedInfoList.Find(a => a.Sn == oneScreenData.ScreenUDID);
                if (ledInfo == null)
                {
                    continue;
                }
                SetSenderMonitor(ledInfo, oneScreenData.SenderMonitorCollection, monitorFlag);
                SetScannerMonitor(ledInfo, oneScreenData.ScannerMonitorCollection, ledAlarmConfig, monitorFlag);
                SetMonitorCardMonitor(ledInfo, oneScreenData.MonitorCardInfoCollection, ledAlarmConfig, ledMonitorConfig, monitorFlag);
                SetRegisterMonitor(monitorFlag);
            }
            for (int i = 0; i < MonitorDataFlags.Count;)
            {
                if (screenList.Contains(MonitorDataFlags[i].SN))
                {
                    i++;
                }
                else
                {
                    MonitorDataFlags.RemoveAt(i);
                }
            }
            SetRedundantStateInfos();
            MonitorAllConfig.Instance().SendMonitorDataToLCT(_lctData);
            return(true);
        }
示例#7
0
        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;
                }
            }
        }