private void HWStatusMonitor_Exec_CompleteRefreshCommPortEvent(object sender, CompleteRefreshAllCommPortEventArgs e, bool isRetry) { _stopwatch.Stop(); _fLogService.Info("读取监控常规数据完成,开始解析..." + _stopwatch.ElapsedMilliseconds); _stopwatch.Start(); SendStatusMsg("GetScannerDataFinish"); #region 监控数据处理 if (_allComBaseInfo == null || _allComBaseInfo.AllInfoDict == null) { SendStatusMsg("ParsingScannerDataFinish"); if (isRetry) { _fLogService.Info("读取监控常规数据完成,重读通知..."); NotifyCompleteAllMonitor(); } else { _fLogService.Info("读取监控常规数据完成,开始读取多功能卡外设数据..."); _funcMonitor.ReadAllOutDevice(ReadAllOutDeviceCallback); } return; } foreach (string comName in _allComBaseInfo.AllInfoDict.Keys) { OneCOMHWBaseInfo baseInfo = _allComBaseInfo.AllInfoDict[comName]; if (baseInfo == null || baseInfo.LEDDisplayInfoList == null) { _fLogService.Debug("回调接收卡:得到串口的数据为什么会没有屏:" + comName); continue; } //枚举每个显示屏 for (int i = 0; i < baseInfo.LEDDisplayInfoList.Count; i++) { string sn = GetScreenUdid(baseInfo.FirstSenderSN, i); if (!_hwConfigs.ContainsKey(sn)) { _hwConfigs.Add(sn, new MarsHWConfig()); } //从所有硬件数据中找出当前显示屏的数据 ScreenModnitorData monitorData = FindScreenMonitorDataFromList(_allMonitorData.AllScreenMonitorCollection, sn); ILEDDisplayInfo displayInfo = baseInfo.LEDDisplayInfoList[i]; int scnanerCount = displayInfo.ScannerCount; for (int scannerOffset = 0; scannerOffset < scnanerCount; scannerOffset++) { ScanBoardRegionInfo regionInfo = displayInfo[scannerOffset]; if (regionInfo.SenderIndex == ConstValue.BLANK_SCANNER) { if (isRetry) { _allMonitorData.AllScreenMonitorCollection.Remove(monitorData); } continue; } int scanBoardCols = 0; int scanBoardRows = 0; bool isisComplex = false; GetScanBoardInPosition(displayInfo, regionInfo, ref scanBoardCols, ref scanBoardRows, ref isisComplex); SendStatusMsg("ParsingScannerData"); #region 接收卡监控数据 ScannerMonitorInfo scannerMInfo = new ScannerMonitorInfo(); scannerMInfo.DeviceRegInfo = new DeviceRegionInfo(); scannerMInfo.DeviceRegInfo.CommPort = comName; scannerMInfo.DeviceRegInfo.SenderIndex = regionInfo.SenderIndex; scannerMInfo.DeviceRegInfo.PortIndex = regionInfo.PortIndex; scannerMInfo.DeviceRegInfo.ConnectIndex = regionInfo.ConnectIndex; scannerMInfo.DeviceRegInfo.IsComplex = isisComplex; scannerMInfo.DeviceRegInfo.ScanBoardCols = scanBoardCols; scannerMInfo.DeviceRegInfo.ScanBoardRows = scanBoardRows; scannerMInfo.DeviceStatus = DeviceWorkStatus.OK; scannerMInfo.MappingList = GetScannerSearchMapping(i, regionInfo.SenderIndex, regionInfo.PortIndex, regionInfo.ConnectIndex); ScannerMonitorData scannerMData = new ScannerMonitorData(); if (!e.ScannerMonitorDataDicDic.ContainsKey(comName)) { scannerMInfo.DeviceStatus = DeviceWorkStatus.Unknown; } else { scannerMData = GetScannerMonitorDataFromScannerMDict(e.ScannerMonitorDataDicDic[comName], regionInfo); if (scannerMData != null) { if (!_allMonitorData.MonitorDataDic.ContainsKey(sn)) { _allMonitorData.MonitorDataDic.Add(sn, new SerializableDictionary<string, ScannerMonitorData>()); } if (!_allMonitorData.MonitorDataDic[sn].ContainsKey(GetScannerNameFlag(regionInfo))) { _allMonitorData.MonitorDataDic[sn].Add(GetScannerNameFlag(regionInfo), scannerMData); } if (e.ReadStatusResultDic.ContainsKey(comName)) { if (!_allMonitorData.MonitorResInfDic.ContainsKey(sn)) { _allMonitorData.MonitorResInfDic.Add(sn, e.ReadStatusResultDic[comName].CompleteTime); } else { _allMonitorData.MonitorResInfDic[sn] = e.ReadStatusResultDic[comName].CompleteTime; } } if (scannerMData.WorkStatus == WorkStatusType.OK) { scannerMInfo.TemperatureIsVaild = scannerMData.TemperatureOfScanCard.IsValid; scannerMInfo.Temperature = scannerMData.TemperatureOfScanCard.Value; scannerMInfo.Voltage = scannerMData.VoltageOfScanCard.Value; } else { scannerMInfo.TemperatureIsVaild = false; scannerMInfo.DeviceStatus = DeviceWorkStatus.Error; } } else { scannerMInfo.TemperatureIsVaild = false; scannerMInfo.DeviceStatus = DeviceWorkStatus.Error; } } monitorData.ScannerMonitorCollection.Add(scannerMInfo); #endregion SendStatusMsg("ParsingMonitorData"); #region 监控卡监控数据 MonitorCardMonitorInfo monitorCardMInfo = new MonitorCardMonitorInfo(); monitorCardMInfo.DeviceStatus = DeviceWorkStatus.OK; monitorCardMInfo.MappingList = GetMonitorCardSearchMapping(i, regionInfo.SenderIndex, regionInfo.PortIndex, regionInfo.ConnectIndex, 0); monitorCardMInfo.DeviceRegInfo = (DeviceRegionInfo)scannerMInfo.DeviceRegInfo.Clone(); if (!IsHWScreenConfigExist(sn) || _hwConfigs[sn].IsUpdateMCStatus == false) { continue; } else if (scannerMInfo.DeviceStatus != DeviceWorkStatus.OK || !IsHWScreenConfigExist(sn)) { if (scannerMInfo.DeviceStatus == DeviceWorkStatus.Error) { monitorCardMInfo.DeviceStatus = DeviceWorkStatus.Error; } else { monitorCardMInfo.DeviceStatus = DeviceWorkStatus.Unknown; } } else if (scannerMData.IsConnectMC) { #region 湿度状态 if (IsHWScreenConfigExist(sn) && _hwConfigs[sn].IsUpdateHumidity) { MCHumidityUpdateInfo humidityUInfo = new MCHumidityUpdateInfo() { IsUpdate = true, Humidity = scannerMData.HumidityOfMonitorCard.Value }; monitorCardMInfo.HumidityUInfo = humidityUInfo; } #endregion #region 烟雾状态 if (IsHWScreenConfigExist(sn) && _hwConfigs[sn].IsUpdateSmoke) { MCSmokeUpdateInfo smokeUInfo = new MCSmokeUpdateInfo() { IsUpdate = true, IsSmokeAlarm = scannerMData.SmokeWarn.IsSmokeAlarm }; monitorCardMInfo.SmokeUInfo = smokeUInfo; } #endregion #region 监控卡本板温度状态 MCTemperatureUpdateInfo tempUInfo = new MCTemperatureUpdateInfo() { IsUpdate = true, //_monitorSysData.SameMonitorSysData.IsUpdateTemperature, Temperature = scannerMData.TemperatureOfMonitorCard.Value }; monitorCardMInfo.TemperatureUInfo = tempUInfo; #endregion #region 风扇状态 if (IsHWScreenConfigExist(sn) && _hwConfigs[sn].IsUpdateFan && _hwConfigs[sn].FanInfoObj != null) { SerializableDictionary<int, int> fansMonitorInfoCollection = new SerializableDictionary<int, int>(); for (int fansIndex = 0; fansIndex < scannerMData.FanSpeedOfMonitorCardCollection.Count; fansIndex++) { ValueInfo valInfo = scannerMData.FanSpeedOfMonitorCardCollection[fansIndex]; if (scannerMData != null) { scannerMData.FanSpeedOfMonitorCardCollection[fansIndex] = new ValueInfo() { IsValid = valInfo.IsValid, Value = valInfo.Value / _hwConfigs[sn].FanInfoObj.FanPulseCount }; } if (_hwConfigs[sn].FanInfoObj.isSame) { if (fansIndex < _hwConfigs[sn].FanInfoObj.FanCount && valInfo.IsValid) { fansMonitorInfoCollection.Add(fansIndex, (int)valInfo.Value / _hwConfigs[sn].FanInfoObj.FanPulseCount); } } else { OneFanInfo oneInfo = _hwConfigs[sn].FanInfoObj.FanList.Find(a => a.ScanIndex == regionInfo.ConnectIndex && a.SenderIndex == regionInfo.SenderIndex && a.PortIndex == regionInfo.PortIndex); if (oneInfo != null && fansIndex < oneInfo.FanCount && valInfo.IsValid) { fansMonitorInfoCollection.Add(fansIndex, (int)valInfo.Value / _hwConfigs[sn].FanInfoObj.FanPulseCount); } } } monitorCardMInfo.FansUInfo = new MCFansUpdateInfo() { IsUpdate = true, FansMonitorInfoCollection = fansMonitorInfoCollection }; } #endregion #region 电源状态 if (IsHWScreenConfigExist(sn) && _hwConfigs[sn].IsUpdateMCVoltage && _hwConfigs[sn].PowerInfoObj != null) { SerializableDictionary<int, float> powerMonitorInfoCollection = new SerializableDictionary<int, float>(); for (int powerIndex = 0; powerIndex < scannerMData.VoltageOfMonitorCardCollection.Count; powerIndex++) { ValueInfo valInfo = scannerMData.VoltageOfMonitorCardCollection[powerIndex]; if (_hwConfigs[sn].PowerInfoObj.isSame) { if (powerIndex <= _hwConfigs[sn].PowerInfoObj.PowerCount) { powerMonitorInfoCollection.Add(powerIndex, valInfo.Value); } } else { OnePowerInfo oneInfo = _hwConfigs[sn].PowerInfoObj.PowerList.Find(a => a.ScanIndex == regionInfo.ConnectIndex && a.SenderIndex == regionInfo.SenderIndex && a.PortIndex == regionInfo.PortIndex); if (oneInfo != null && powerIndex <= oneInfo.PowerCount) { powerMonitorInfoCollection.Add(powerIndex, valInfo.Value); } } } monitorCardMInfo.PowerUInfo = new MCPowerUpdateInfo() { IsUpdate = true, PowerMonitorInfoCollection = powerMonitorInfoCollection }; } #endregion #region 箱门状态 if (IsHWScreenConfigExist(sn) && _hwConfigs[sn].IsUpdateGeneralStatus) { byte generalStatus = scannerMData.GeneralStatusData; List<bool> swithStatus = null; ParseGeneralSwitch.ParseMCGeneralSwitchStatus(generalStatus, scannerMData.IsConnectMC, out swithStatus); monitorCardMInfo.CabinetDoorUInfo = new MCDoorUpdateInfo() { IsUpdate = true, IsDoorOpen = (!swithStatus[0]) }; } #endregion #region 排线状态 if (IsHWScreenConfigExist(sn) && _hwConfigs[sn].IsUpdateRowLine) { byte[] moduleBytes = scannerMData.ModuleStatusBytes; ScanBoardRowLineStatus rowLineStatus = null; List<SocketCableMonitorInfo> socketCableInfoCollection = new List<SocketCableMonitorInfo>(); if (ParseRowLineData.ParseScanBoardRowLineData(moduleBytes, scannerMData.IsConnectMC, displayInfo.VirtualMode, out rowLineStatus)) { //插座的列表 for (int socketIndex = 0; socketIndex < rowLineStatus.SoketRowLineStatusList.Count; socketIndex++) { SocketCableMonitorInfo socketCableInfo = new SocketCableMonitorInfo(); socketCableInfo.DeviceStatus = DeviceWorkStatus.OK; socketCableInfo.MappingList = GetSocketCableStatus(i, regionInfo.SenderIndex, regionInfo.PortIndex, regionInfo.ConnectIndex, 0, socketIndex); SoketRowLineInfo socketOriginalInfo = rowLineStatus.SoketRowLineStatusList[socketIndex]; for (int rgbGroupIndex = 0; rgbGroupIndex < socketOriginalInfo.RGBStatusList.Count; rgbGroupIndex++) { OneGroupRGBStatus orStatus = socketOriginalInfo.RGBStatusList[rgbGroupIndex]; List<SocketCableStatus> allGroupStatusList = new List<SocketCableStatus>(); SocketCableStatus cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.ABCD_Signal; cableStatus.IsCableOK = socketOriginalInfo.IsABCDOk; allGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.CTRL_Signal; cableStatus.IsCableOK = socketOriginalInfo.IsCtrlOk; allGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.DCLK_Signal; cableStatus.IsCableOK = socketOriginalInfo.IsDCLKOk; allGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.LAT_Signal; cableStatus.IsCableOK = socketOriginalInfo.IsLatchOk; allGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.OE_Signal; cableStatus.IsCableOK = socketOriginalInfo.IsOEOk; allGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.Red_Signal; cableStatus.IsCableOK = orStatus.IsRedOk; allGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.Green_Signal; cableStatus.IsCableOK = orStatus.IsGreenOk; allGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.Blue_Signal; cableStatus.IsCableOK = orStatus.IsBlueOk; allGroupStatusList.Add(cableStatus); if (displayInfo.VirtualMode == VirtualModeType.Led4Mode1 || displayInfo.VirtualMode == VirtualModeType.Led4Mode2) { cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.VRed_Signal; cableStatus.IsCableOK = orStatus.IsVRedOk; allGroupStatusList.Add(cableStatus); } socketCableInfo.SocketCableInfoDict.Add(rgbGroupIndex, allGroupStatusList); } socketCableInfoCollection.Add(socketCableInfo); } } monitorCardMInfo.SocketCableUInfo = new MCSocketCableUpdateInfo() { IsUpdate = true, SocketCableInfoCollection = socketCableInfoCollection }; } #endregion } else { monitorCardMInfo.DeviceStatus = DeviceWorkStatus.Error; } monitorData.MonitorCardInfoCollection.Add(monitorCardMInfo); #endregion } } } _stopwatch.Stop(); _fLogService.Info("读取监控常规数据完成,开始读取多功能卡外设数据..." + _stopwatch.ElapsedMilliseconds); _stopwatch.Restart(); SendStatusMsg("ParsingScannerDataFinish"); if (_funcMonitor == null || isRetry) { NotifyCompleteAllMonitor(); } else { _funcMonitor.ReadAllOutDevice(ReadAllOutDeviceCallback); } #endregion }
private CompletedMonitorCallbackParams GetCompletedMonitorCallbackParams() { CompletedMonitorCallbackParams param = new CompletedMonitorCallbackParams(); AllMonitorData monitorData = new AllMonitorData(); param.MonitorData = monitorData; int createScreenCount = 3; int senderCount = 2; int scannerCount = 2; int fansCount = 2; int powerCount = 2; int cableCount = 1; int functionCount = 2; int peripheralCount = 2; int comFunctionCount = 2; const int deconcentratorCount = 1; for (int scrIndex = 0; scrIndex < createScreenCount; scrIndex++) { string scrUDID = "1306280000015920-" + scrIndex.ToString("X2"); ScreenModnitorData scrMonitorData = new ScreenModnitorData(scrUDID); for (int senderIndex = 0; senderIndex < senderCount; senderIndex++) { #region 添加发送卡数据 SendStatusMsg("StartReadDVIData" + senderIndex); SenderMonitorInfo sendInfo = new SenderMonitorInfo(); sendInfo.DeviceStatus = DeviceWorkStatus.OK; sendInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.Sender, senderIndex)); sendInfo.IsDviConnected = true; sendInfo.DviRate = 60; sendInfo.ReduPortIndexCollection.Add(new PortOfSenderMonitorInfo()); sendInfo.ReduPortIndexCollection.Add(new PortOfSenderMonitorInfo()); scrMonitorData.SenderMonitorCollection.Add(sendInfo); SendStatusMsg("FinishReadDVIData" + senderIndex); #endregion #region 分线器数据 scrMonitorData.DeconcentratorCollection = new List<DeconcentratorMonitorInfo>(); for (int deconcentratoIndex = 0; deconcentratoIndex < deconcentratorCount; deconcentratoIndex++) { SendStatusMsg("Start分线器数据Data" + deconcentratoIndex); DeconcentratorMonitorInfo deconcentratorInfo = new DeconcentratorMonitorInfo(); deconcentratorInfo.DeviceStatus = DeviceWorkStatus.OK; deconcentratorInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.Sender, senderIndex)); if (deconcentratoIndex < 1) deconcentratorInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.PortOfSender, 0)); else deconcentratorInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.PortOfSender, 1)); scrMonitorData.DeconcentratorCollection.Add(deconcentratorInfo); SendStatusMsg("End分线器数据Data" + deconcentratoIndex); } #endregion for (int scannerIndex = 0; scannerIndex < scannerCount; scannerIndex++) { #region 添加接收卡数据 SendStatusMsg("Start接收卡数据Data" + scannerIndex); ScannerMonitorInfo scannerInfo = new ScannerMonitorInfo(); scannerInfo.DeviceStatus = DeviceWorkStatus.OK; scannerInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.Sender, senderIndex)); if (scannerIndex < 50) { scannerInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.PortOfSender, 0)); } else { scannerInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.PortOfSender, 1)); } scannerInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.Scanner, scannerIndex)); scannerInfo.Temperature = 25.5f; scannerInfo.Voltage = 5.5f; scrMonitorData.ScannerMonitorCollection.Add(scannerInfo); SendStatusMsg("End接收卡数据Data" + scannerIndex); #endregion #region 添加监控卡数据 //MonitorCardMonitorInfo SendStatusMsg("Start监控卡数据Data" + scannerIndex); MonitorCardMonitorInfo monitorCardInfo = new MonitorCardMonitorInfo(); monitorCardInfo.DeviceStatus = DeviceWorkStatus.OK; monitorCardInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.Sender, senderIndex)); if (scannerIndex < 50) { monitorCardInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.PortOfSender, 0)); } else { monitorCardInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.PortOfSender, 1)); } monitorCardInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.Scanner, scannerIndex)); monitorCardInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.MonitorCard, 0)); monitorCardInfo.TemperatureUInfo = new MCTemperatureUpdateInfo() { IsUpdate = true, Temperature = 20.5f }; monitorCardInfo.HumidityUInfo = new MCHumidityUpdateInfo() { IsUpdate = true, Humidity = 80.5f }; monitorCardInfo.SmokeUInfo = new MCSmokeUpdateInfo() { IsUpdate = true, IsSmokeAlarm = false }; monitorCardInfo.CabinetDoorUInfo = new MCDoorUpdateInfo() { IsUpdate = true, IsDoorOpen = true }; SendStatusMsg("End监控卡数据Data" + scannerIndex); #region 风扇数据 SendStatusMsg("Start风扇数据Data" + scannerIndex); MCFansUpdateInfo mcFansUpdateInfo = new MCFansUpdateInfo(); mcFansUpdateInfo.IsUpdate = true; mcFansUpdateInfo.FansMonitorInfoCollection = new SerializableDictionary<int, int>(); for (int fansIndex = 0; fansIndex < fansCount; fansIndex++) { int speed = 3000; if (scannerIndex < 50) { speed = 3500; } mcFansUpdateInfo.FansMonitorInfoCollection.Add(fansIndex, speed); } monitorCardInfo.FansUInfo = mcFansUpdateInfo; SendStatusMsg("End风扇数据Data" + scannerIndex); #endregion #region 电源数据 SendStatusMsg("Start电源数据Data" + scannerIndex); MCPowerUpdateInfo mcPowerUInfo = new MCPowerUpdateInfo(); mcPowerUInfo.IsUpdate = true; mcPowerUInfo.PowerMonitorInfoCollection = new SerializableDictionary<int,float>(); for (int pwoerIndex = 0; pwoerIndex < powerCount; pwoerIndex++) { float power = 5.0f; if (scannerIndex < 50) { power = 4.5f; } mcPowerUInfo.PowerMonitorInfoCollection.Add(pwoerIndex, power); } monitorCardInfo.PowerUInfo = mcPowerUInfo; SendStatusMsg("End电源数据Data" + scannerIndex); #endregion #region 排线数据 SendStatusMsg("Start排线数据Data" + scannerIndex); List<SocketCableMonitorInfo> socketCableInfoCollection = new List<SocketCableMonitorInfo>(); for (int cableIndex = 0; cableIndex < cableCount; cableIndex++) { SocketCableMonitorInfo cableInfo = new SocketCableMonitorInfo(); cableInfo.DeviceStatus = DeviceWorkStatus.OK; cableInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.Sender, senderIndex)); if (scannerIndex < 50) { cableInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.PortOfSender, 0)); } else { cableInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.PortOfSender, 1)); } cableInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.Scanner, scannerIndex)); cableInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.MonitorCard, 0)); cableInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.SocketOfMonitorCard, cableIndex)); for (int groupIndex = 0; groupIndex < 8; groupIndex++) { List<SocketCableStatus> oneGroupStatusList = new List<SocketCableStatus>(); SocketCableStatus cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.ABCD_Signal; cableStatus.IsCableOK = true; oneGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.CTRL_Signal; cableStatus.IsCableOK = true; oneGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.DCLK_Signal; cableStatus.IsCableOK = true; oneGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.LAT_Signal; cableStatus.IsCableOK = true; oneGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.OE_Signal; cableStatus.IsCableOK = false; oneGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.Red_Signal; cableStatus.IsCableOK = false; oneGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.Green_Signal; cableStatus.IsCableOK = false; oneGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.Blue_Signal; cableStatus.IsCableOK = false; oneGroupStatusList.Add(cableStatus); cableStatus = new SocketCableStatus(); cableStatus.CableType = SocketCableType.VRed_Signal; cableStatus.IsCableOK = false; oneGroupStatusList.Add(cableStatus); cableInfo.SocketCableInfoDict.Add(groupIndex, oneGroupStatusList); } socketCableInfoCollection.Add(cableInfo); monitorCardInfo.SocketCableUInfo = new MCSocketCableUpdateInfo() { IsUpdate = true, SocketCableInfoCollection = socketCableInfoCollection }; } SendStatusMsg("End排线数据Data" + scannerIndex); #endregion scrMonitorData.MonitorCardInfoCollection.Add(monitorCardInfo); #endregion } for (int functionIndex = 0; functionIndex < functionCount; functionIndex++) { SendStatusMsg("Start多功能卡数据Data" + functionIndex); #region 添加网口上的多功能卡 FunctionCardMonitorInfo functionInfo = new FunctionCardMonitorInfo(); functionInfo.PeripheralInfoDict = new SerializableDictionary<int, PeripheralMonitorBaseInfo>(); functionInfo.DeviceStatus = DeviceWorkStatus.OK; functionInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.Sender, senderIndex)); functionInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.PortOfSender, 1)); functionInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.FunctionCard, functionIndex)); for (int sensorIndex = 0; sensorIndex < peripheralCount; sensorIndex++) { PeripheralMonitorBaseInfo sensorInfo; if (sensorIndex <= 2) { sensorInfo = new LightSensorMonitorInfo() { DeviceStatus = DeviceWorkStatus.OK, Lux = 280 }; } else { sensorInfo = new TemperatureSensorMonitorInfo() { DeviceStatus = DeviceWorkStatus.OK, Tempearture = 18.5f }; } functionInfo.PeripheralInfoDict.Add(sensorIndex, sensorInfo); } SendStatusMsg("End多功能卡数据Data" + functionIndex); scrMonitorData.FunctionCardInfoCollection.Add(functionInfo); #endregion } } monitorData.AllScreenMonitorCollection.Add(scrMonitorData); } //for (int comFuncIndex = 0; comFuncIndex < comFunctionCount; comFuncIndex++ ) //{ // #region 添加串口上的多功能卡 // FunctionCardMonitorInfo functionInfo = new FunctionCardMonitorInfo(); // functionInfo.DeviceStatus = DeviceWorkStatus.OK; // functionInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.FunctionCard, comFuncIndex)); // for (int sensorIndex = 0; sensorIndex < sensorCount; sensorIndex++) // { // LightSensorMonitorInfo sensorInfo = new LightSensorMonitorInfo(); // sensorInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.FunctionCard, comFuncIndex)); // sensorInfo.MappingList.Add(new DeviceSearchMapping(HWDeviceType.LightSensor, 0)); // sensorInfo.Birghtness = 2600; // functionInfo.LightSensorInfoDict.Add(sensorIndex, sensorInfo); // } // #endregion //} return param; }
public object Clone() { SocketCableStatus data = new SocketCableStatus(); if (!this.CopyTo(data)) { return null; } return data; }