/// <summary>
 /// ���һ�����տ���Ϣ
 /// </summary>
 /// <param name="sbMonitorInfo"></param>
 public void AddOneScanBoardInfo(SBInfoAndMonitorInfo sbMonitorInfo)
 {
     _curAllScanBoardMonitorInfList.Add(sbMonitorInfo);
 }
        /// <summary>
        /// ��ȡ������ʾ���͵���ɫ��ֵ���ַ���
        /// </summary>
        /// <param name="curSBIndex"></param>
        /// <param name="monitorData"></param>
        /// <param name="backColor"></param>
        /// <param name="diplayObj"></param>
        /// <param name="errFanOrPower"></param>
        private void GetOneScanBoardStatisticsInfo(string monitorKey, SBInfoAndMonitorInfo sbInfAndMonitInf)
        {
            ScannerMonitorData monitorData = null;
            ScanBoardRowLineStatus rowLineStatus = null;
            List<bool> generalStatusList = null;

            if (sbInfAndMonitInf != null)
            {
                if (sbInfAndMonitInf.MonitorData != null)
                {
                    monitorData = (ScannerMonitorData)sbInfAndMonitInf.MonitorData.Clone();
                }

                if (sbInfAndMonitInf.RowLineStatus != null)
                {
                    rowLineStatus = (ScanBoardRowLineStatus)sbInfAndMonitInf.RowLineStatus.Clone();
                }
                generalStatusList = sbInfAndMonitInf.GeneralSwitchList;
            }

            Color backColor = Color.Gray;
            bool bHasValidInfo = false;
            uint oneTypeFaultAlarmCnt = 0;
            switch (_curType)
            {
                #region ��ȡDataGridView��ʾ�ı�����ɫ
                case MonitorDisplayType.SBStatus:
                    StatisticsMonitorInfo.GetSBStatusFaultInfo(monitorData, out _monitorResType);
                    if (_monitorResType == MonitorInfoResult.Fault)
                    {
                        _curFaultInfo.SBStatusErrCount++;
                    }
                    else if (_monitorResType == MonitorInfoResult.Alarm)
                    {
                        _curAlarmInfo.SBStatusErrCount++;
                    }
                    break;
                case MonitorDisplayType.MCStatus:
                    StatisticsMonitorInfo.GetMCStatusFaultInfo(monitorData, out _monitorResType);
                    if (_monitorResType == MonitorInfoResult.Fault)
                    {
                        _curFaultInfo.MCStatusErrCount++;
                    }
                    else if (_monitorResType == MonitorInfoResult.Alarm)
                    {
                        _curAlarmInfo.MCStatusErrCount++;
                    }
                    break;
                case MonitorDisplayType.Smoke:
                    StatisticsMonitorInfo.GetSmokeAlarmInfo(monitorData, out _monitorResType);
                    if (_monitorResType == MonitorInfoResult.Alarm)
                    {
                        _curAlarmInfo.SmokeAlarmCount++;
                    }
                    break;
                case MonitorDisplayType.Temperature:
                    CaculateTempStatisticsInfo(monitorData);
                    break;
                case MonitorDisplayType.Humidity:
                    CaculateHumidityStatisticsInfo(monitorData);
                    break;
                case MonitorDisplayType.Fan:
                    _curMCFanCnt = GetMonitorColorAndValue.GetMonitorFanCnt(_curMonitorConfigInfo.MCFanInfo, monitorKey);
                    _totalFanSwitchCount += (uint)_curMCFanCnt;
                    StatisticsMonitorInfo.GetFanAlarmInfo(monitorData, _curMCFanCnt,
                                                          _curMonitorConfigInfo.MCFanInfo.AlarmThreshold,
                                                          out bHasValidInfo, out oneTypeFaultAlarmCnt);
                    _curAlarmInfo.FanAlarmSwitchCount += oneTypeFaultAlarmCnt;
                    break;
                case MonitorDisplayType.Power:
                    _curMCPowerCnt = GetMonitorColorAndValue.GetMonitorPowerCnt(_curMonitorConfigInfo.MCPowerInfo, monitorKey);
                    _totalPowerSwitchCount += (uint)_curMCPowerCnt;
                    if (_curMonitorConfigInfo.IsDisplayScanBoardVolt)
                    {
                        _totalPowerSwitchCount++;
                        if (monitorData != null)
                        {
                            StatisticsMonitorInfo.GetOneFanOrPowerAlarmInfo(monitorData.VoltageOfScanCard,
                                                                            _curMonitorConfigInfo.MCPowerInfo.AlarmThreshold,
                                                                            out _monitorResType);
                            if (_monitorResType == MonitorInfoResult.Alarm)
                            {
                                _curAlarmInfo.PowerAlarmSwitchCount++;
                            }
                        }
                    }
                    StatisticsMonitorInfo.GetMCPowerAlarmInfo(monitorData, _curMCPowerCnt,
                                                              _curMonitorConfigInfo.MCPowerInfo.AlarmThreshold,
                                                              _curMonitorConfigInfo.MCPowerInfo.FaultThreshold,
                                                              out bHasValidInfo, out oneTypeFaultAlarmCnt);
                    _curAlarmInfo.PowerAlarmSwitchCount += oneTypeFaultAlarmCnt;
                    break;
                case MonitorDisplayType.RowLine:
                    StatisticsMonitorInfo.GetRowLineFaultInfo(monitorData, rowLineStatus, out _monitorResType);
                    if (_monitorResType == MonitorInfoResult.Fault)
                    {
                        _curFaultInfo.SoketAlarmCount++;
                    }
                    break;
                case MonitorDisplayType.GeneralSwitch:
                    StatisticsMonitorInfo.GetGeneralSwitcAlarmInfo(monitorData, generalStatusList, out _monitorResType);
                    if (_monitorResType == MonitorInfoResult.Alarm)
                    {
                        _curAlarmInfo.GeneralSwitchErrCount++;
                    }
                    break;
                #endregion
            }
        }
Пример #3
0
 public object Clone()
 {
     SBInfoAndMonitorInfo newObj = new SBInfoAndMonitorInfo();
     bool res = this.CopyTo(newObj);
     if (!res)
     {
         return null;
     }
     else
     {
         return newObj;
     }
 }