/// <summary>
        /// ��ʼ�����м�ص���ʱ����
        /// </summary>
        private void InitAllVariables()
        {
            #region ��ʼ������
            _curHightLightType = ClickLinkLabelType.None;
            _curFaultInfo = new MonitorErrData();
            _curAlarmInfo = new MonitorErrData();

            _tempStatisInfo = new TempAndHumiStatisticsInfo();
            _humiStatisInfo = new TempAndHumiStatisticsInfo();

            _curScanBoardIndex = -1;
            _totalFanSwitchCount = 0;
            _totalPowerSwitchCount = 0;
            //_scanCntOfInfoValid = 0;
            //_curMinTempValue = 0;
            //_curMaxTempValue = 0;
            //_curMinHumidityValue = 0;
            //_curMaxHumidityValue = 0;
            //_curTotalTemp = 0;
            //_curTotalHumidity = 0;
            //_curScreenTempList.Clear();
            //_curScreenHumidityList.Clear();

            _curTempMaxMinIndexInfo.MaxSBIndexList.Clear();
            _curTempMaxMinIndexInfo.MinSBIndexList.Clear();

            _curHumiMaxMinIndexInfo.MaxSBIndexList.Clear();
            _curHumiMaxMinIndexInfo.MinSBIndexList.Clear();
            #endregion
        }
 private void GetSocketErrData(string sn,List<SocketCableMonitorInfo> SocketCableInfo, DeviceRegionInfo deviceRegInfo)
 {
     if (SocketCableInfo==null)
     { return; }
     for (int i = 0; i < SocketCableInfo.Count; i++)
     {
         foreach (var item in SocketCableInfo[i].SocketCableInfoDict.Keys)
         {
             for (int j = 0; j < SocketCableInfo[i].SocketCableInfoDict[item].Count; j++)
             {
                 if(!SocketCableInfo[i].SocketCableInfoDict[item][j].IsCableOK)
                 {
                     MonitorErrData temp = new MonitorErrData();
                     temp.SN = sn;
                     temp.ErrorType = ErrType.Soket;
                     temp.MonitorResult = MonitorInfoResult.Fault;
                     temp.DeviceRegInfo = (DeviceRegionInfo)deviceRegInfo.Clone();
                     _newAllScreenMonitorErrData.Add(temp);
                     AddSystemRunData(ErrType.Soket, 1);
                     return;
                 }
             }
         }
     }
 }
        private void GetScanBoardErrData(string sn,LedAlarmConfig alarmConfig,List<ScannerMonitorInfo> scannerMonitor)
        {
            FLogService.Info("EMailSendMonitorErrMsg" + "接收卡数据解析开始");

            if (scannerMonitor == null || alarmConfig == null)
            {
                return;
            }
            MonitorErrData temp = null;
            for (int i = 0; i < scannerMonitor.Count; i++)
            {

                if(scannerMonitor[i].DeviceStatus==DeviceWorkStatus.Unknown)
                {
                    continue;
                }
                //接收卡
                if (scannerMonitor[i].DeviceStatus==DeviceWorkStatus.Error)
                {
                    temp = new MonitorErrData();
                    temp.SN = sn;
                    temp.ErrorType = ErrType.SBStatus;
                    temp.MonitorResult = MonitorInfoResult.Fault;
                    temp.DeviceRegInfo = (DeviceRegionInfo)scannerMonitor[i].DeviceRegInfo.Clone();
                    _newAllScreenMonitorErrData.Add(temp);
                    AddSystemRunData(ErrType.SBStatus, 1);
                }
                //板载温度
                ParameterAlarmConfig info = alarmConfig.ParameterAlarmConfigList.Find(a => a.ParameterType == StateQuantityType.Temperature);// && a.Disable == false);
                if (info != null && info.HighThreshold < scannerMonitor[i].Temperature)
                {
                    temp = new MonitorErrData();
                    temp.SN = sn;
                    temp.ErrorType = ErrType.Temperature;
                    temp.MonitorResult = MonitorInfoResult.Alarm;
                    temp.DeviceRegInfo = (DeviceRegionInfo)scannerMonitor[i].DeviceRegInfo.Clone();
                    _newAllScreenMonitorAlarmData.Add(temp);
                    AddSystemRunData(ErrType.Temperature, 1);
                }
            }
            FLogService.Info("EMailSendMonitorErrMsg" + "接收卡数据解析完成");
        }
        private void GetSenderErrData(string sn,List<SenderMonitorInfo> senderMonitor)
        {
            FLogService.Info("EMailSendMonitorErrMsg" + "发送卡数据解析开始");

            if (senderMonitor==null)
            {
                return ;
            }
            MonitorErrData temp = null;
            for (int i = 0; i < senderMonitor.Count; i++)
            {
                temp = new MonitorErrData();
                if (senderMonitor[i].DeviceStatus == DeviceWorkStatus.Error)
                {
                    temp = new MonitorErrData();
                    temp.SN = sn;
                    temp.ErrorType = ErrType.SenderCard;
                    temp.MonitorResult = MonitorInfoResult.Fault;
                    temp.DeviceRegInfo = (DeviceRegionInfo)senderMonitor[i].DeviceRegInfo.Clone();
                    _newAllScreenMonitorErrData.Add(temp);
                    AddSystemRunData(ErrType.SenderCard, 1);
                }
                //DVI
                temp = new MonitorErrData();
                if(!senderMonitor[i].IsDviConnected)
                {
                    temp = new MonitorErrData();
                    temp.SN = sn;
                    temp.ErrorType = ErrType.DVI;
                    temp.MonitorResult = MonitorInfoResult.Fault;
                    temp.DeviceRegInfo = (DeviceRegionInfo)senderMonitor[i].DeviceRegInfo.Clone();
                    _newAllScreenMonitorErrData.Add(temp);
                    AddSystemRunData(ErrType.DVI, 1);
                }
                for (int j = 0; j < senderMonitor[i].ReduPortIndexCollection.Count; j++)
                {
                    //冗余
                    if (senderMonitor[i].ReduPortIndexCollection[j].IsReduState)
                    {
                        temp = new MonitorErrData();
                        temp.SN = sn;
                        temp.ErrorType = ErrType.Redundancy;
                        temp.MonitorResult = MonitorInfoResult.Alarm;
                        temp.DeviceRegInfo = (DeviceRegionInfo)senderMonitor[i].DeviceRegInfo.Clone();
                        _newAllScreenMonitorAlarmData.Add(temp);
                        AddSystemRunData(ErrType.Redundancy, 1);
                        break;
                    }
                }
            }
            FLogService.Info("EMailSendMonitorErrMsg" + "发送卡数据解析完成");
        }
        private void GetMonitorErrData(string sn,LedAlarmConfig alarmConfig,List<MonitorCardMonitorInfo> monitorCardInfo)
        {
            FLogService.Info("EMailSendMonitorErrMsg" + "监控数据解析开始");

            if (monitorCardInfo == null || alarmConfig == null)
            {
                return;
            }
            MonitorErrData temp = null;
            for (int i = 0; i < monitorCardInfo.Count; i++)
            {
                //监控卡
                if(monitorCardInfo[i].DeviceStatus==DeviceWorkStatus.Error)
                {
                    temp = new MonitorErrData();
                    temp.SN = sn;
                    temp.ErrorType = ErrType.MonitorCard;
                    temp.MonitorResult = MonitorInfoResult.Fault;
                    temp.DeviceRegInfo = (DeviceRegionInfo)monitorCardInfo[i].DeviceRegInfo.Clone();
                    _newAllScreenMonitorErrData.Add(temp);
                    AddSystemRunData(ErrType.MonitorCard, 1);
                    continue;
                }
                else if (monitorCardInfo[i].DeviceStatus == DeviceWorkStatus.Unknown)
                {
                    continue;
                }
                //湿度
                ParameterAlarmConfig info = alarmConfig.ParameterAlarmConfigList.Find(a => a.ParameterType == StateQuantityType.Humidity);// && a.Disable == false);
                if (monitorCardInfo[i].HumidityUInfo!=null && monitorCardInfo[i].HumidityUInfo.IsUpdate && info != null && info.HighThreshold < monitorCardInfo[i].HumidityUInfo.Humidity)
                {
                    temp = new MonitorErrData();
                    temp.SN = sn;
                    temp.ErrorType = ErrType.Humidity;
                    temp.MonitorResult = MonitorInfoResult.Alarm;
                    temp.DeviceRegInfo = (DeviceRegionInfo)monitorCardInfo[i].DeviceRegInfo.Clone();
                    _newAllScreenMonitorAlarmData.Add(temp);
                    AddSystemRunData(ErrType.Humidity, 1);
                }//烟雾
                if (monitorCardInfo[i].SmokeUInfo!=null && monitorCardInfo[i].SmokeUInfo.IsUpdate && monitorCardInfo[i].SmokeUInfo.IsSmokeAlarm)
                {
                    temp = new MonitorErrData();
                    temp.SN = sn;
                    temp.ErrorType = ErrType.Smoke;
                    temp.MonitorResult = MonitorInfoResult.Alarm;
                    temp.DeviceRegInfo = (DeviceRegionInfo)monitorCardInfo[i].DeviceRegInfo.Clone();
                    _newAllScreenMonitorAlarmData.Add(temp);
                    AddSystemRunData(ErrType.Smoke, 1);
                }//箱门
                if (monitorCardInfo[i].CabinetDoorUInfo!=null && monitorCardInfo[i].CabinetDoorUInfo.IsUpdate && monitorCardInfo[i].CabinetDoorUInfo.IsDoorOpen)
                {
                    temp = new MonitorErrData();
                    temp.SN = sn;
                    temp.ErrorType = ErrType.CabinetDoor;
                    temp.MonitorResult = MonitorInfoResult.Alarm;
                    temp.DeviceRegInfo = (DeviceRegionInfo)monitorCardInfo[i].DeviceRegInfo.Clone();
                    _newAllScreenMonitorAlarmData.Add(temp);
                    AddSystemRunData(ErrType.CabinetDoor, 1);
                }//风扇
                info = alarmConfig.ParameterAlarmConfigList.Find(a => a.ParameterType == StateQuantityType.FanSpeed);// && a.Disable == false);
                if (monitorCardInfo[i].FansUInfo != null && monitorCardInfo[i].FansUInfo.IsUpdate && info != null)
                {
                    foreach (var item in monitorCardInfo[i].FansUInfo.FansMonitorInfoCollection.Keys)
                    {
                        if(monitorCardInfo[i].FansUInfo.FansMonitorInfoCollection[item] < info.LowThreshold)
                        {
                            temp = new MonitorErrData();
                            temp.SN = sn;
                            temp.ErrorType = ErrType.Fan;
                            temp.MonitorResult = MonitorInfoResult.Alarm;
                            temp.DeviceRegInfo = (DeviceRegionInfo)monitorCardInfo[i].DeviceRegInfo.Clone();
                            _newAllScreenMonitorAlarmData.Add(temp);
                            AddSystemRunData(ErrType.Fan, 1);
                            break;
                        }
                    }
                }
                //电源
                info = alarmConfig.ParameterAlarmConfigList.Find(a => a.ParameterType == StateQuantityType.Voltage);// && a.Disable == false);
                if (monitorCardInfo[i].PowerUInfo!=null && monitorCardInfo[i].PowerUInfo.IsUpdate && info != null)
                {
                    foreach (var item in monitorCardInfo[i].PowerUInfo.PowerMonitorInfoCollection.Keys)
                    {
                        //告警
                        if (monitorCardInfo[i].PowerUInfo.PowerMonitorInfoCollection[item] > info.HighThreshold)
                        {
                            temp = new MonitorErrData();
                            temp.SN = sn;
                            temp.ErrorType = ErrType.Power;
                            temp.MonitorResult = MonitorInfoResult.Alarm;
                            temp.DeviceRegInfo = (DeviceRegionInfo)monitorCardInfo[i].DeviceRegInfo.Clone();
                            _newAllScreenMonitorAlarmData.Add(temp);
                            AddSystemRunData(ErrType.Power, 1);
                            break;
                        }
                    }
                    foreach (var item in monitorCardInfo[i].PowerUInfo.PowerMonitorInfoCollection.Keys)
                    {
                        //故障
                        if (monitorCardInfo[i].PowerUInfo.PowerMonitorInfoCollection[item] < info.LowThreshold)
                        {
                            temp = new MonitorErrData();
                            temp.SN = sn;
                            temp.ErrorType = ErrType.Power;
                            temp.MonitorResult = MonitorInfoResult.Fault;
                            temp.DeviceRegInfo = (DeviceRegionInfo)monitorCardInfo[i].DeviceRegInfo.Clone();
                            _newAllScreenMonitorErrData.Add(temp);
                            AddSystemRunData(ErrType.Power, 1);
                            break;
                        }
                    }
                }
                //排线
                if (monitorCardInfo[i].SocketCableUInfo != null && monitorCardInfo[i].SocketCableUInfo.IsUpdate)
                {
                    GetSocketErrData(sn,monitorCardInfo[i].SocketCableUInfo.SocketCableInfoCollection, monitorCardInfo[i].DeviceRegInfo);
                }
            }
            FLogService.Info("EMailSendMonitorErrMsg" + "监控数据解析完成");
        }