diff --git a/src/JiShe.CollectBus.Application/Subscribers/SubscriberAppService.cs b/src/JiShe.CollectBus.Application/Subscribers/SubscriberAppService.cs index 3c47b83..9df8c39 100644 --- a/src/JiShe.CollectBus.Application/Subscribers/SubscriberAppService.cs +++ b/src/JiShe.CollectBus.Application/Subscribers/SubscriberAppService.cs @@ -77,7 +77,6 @@ namespace JiShe.CollectBus.Subscribers if (device!=null) { await _tcpService.SendAsync(device.ClientId, issuedEventMessage.Message); - } } @@ -99,35 +98,30 @@ namespace JiShe.CollectBus.Subscribers [CapSubscribe(ProtocolConst.SubscriberReceivedHeartbeatEventName)] public async Task ReceivedHeartbeatEvent(MessageReceivedHeartbeat receivedHeartbeatMessage) { - _logger.LogInformation("心跳消费队列开始处理"); var protocolPlugin = _serviceProvider.GetKeyedService("StandardProtocolPlugin"); if (protocolPlugin == null) { - _logger.LogError("【心跳消费队列开始处理】协议不存在!"); + _logger.LogError("协议不存在!"); } else { await protocolPlugin.HeartbeatAsync(receivedHeartbeatMessage); await _messageReceivedHeartbeatEventRepository.InsertAsync(receivedHeartbeatMessage); - - _logger.LogInformation($"心跳消费队列完成处理:{receivedHeartbeatMessage.MessageId}"); } } [CapSubscribe(ProtocolConst.SubscriberReceivedLoginEventName)] public async Task ReceivedLoginEvent(MessageReceivedLogin receivedLoginMessage) { - _logger.LogInformation("登录消费队列开始处理"); var protocolPlugin = _serviceProvider.GetKeyedService("StandardProtocolPlugin"); if (protocolPlugin == null) { - _logger.LogError("【登录消费队列开始处理】协议不存在!"); + _logger.LogError("协议不存在!"); } else { await protocolPlugin.LoginAsync(receivedLoginMessage); await _messageReceivedLoginEventRepository.InsertAsync(receivedLoginMessage); - _logger.LogInformation("登录消费队列完成处理"); } } } diff --git a/src/JiShe.CollectBus.Protocol.Contracts/Abstracts/BaseProtocolPlugin.cs b/src/JiShe.CollectBus.Protocol.Contracts/Abstracts/BaseProtocolPlugin.cs index 15fa60f..b69c541 100644 --- a/src/JiShe.CollectBus.Protocol.Contracts/Abstracts/BaseProtocolPlugin.cs +++ b/src/JiShe.CollectBus.Protocol.Contracts/Abstracts/BaseProtocolPlugin.cs @@ -1,5 +1,4 @@ -using System.Globalization; -using DotNetCore.CAP; +using DotNetCore.CAP; using JiShe.CollectBus.Common.Enums; using JiShe.CollectBus.Common.Extensions; using JiShe.CollectBus.Common.Models; @@ -153,55 +152,55 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts /// public virtual List AnalyzeAmmeterParameterReadingDataAsync(MessageReceived messageReceived, Action? sendAction = null) { - var hexDatas = GetHexDatas(messageReceived.MessageHexString); + var hexData = GetHexData(messageReceived.MessageHexString); var meterList = new List(); - var count = (hexDatas[1] + hexDatas[0]).HexToDec(); + var count = (hexData[1] + hexData[0]).HexToDec(); //if (2 + count * 27 != hexDatas.Count - pWLen - tPLen - 2) // return; var index = 2;//数量 for (int i = 1; i <= count; i++) { - var meterNumber = $"{hexDatas[index + 1]}{hexDatas[index]}".HexToDec(); + var meterNumber = $"{hexData[index + 1]}{hexData[index]}".HexToDec(); index += 2; - var pn = $"{hexDatas[index + 1]}{hexDatas[index]}".HexToDec(); + var pn = $"{hexData[index + 1]}{hexData[index]}".HexToDec(); index += 2; - var baudRateAndPortBin = hexDatas[index].HexToBin().PadLeft(8, '0'); + var baudRateAndPortBin = hexData[index].HexToBin().PadLeft(8, '0'); var baudRate = baudRateAndPortBin.Substring(0, 3).BinToDec(); var port = baudRateAndPortBin.Substring(3, 5).BinToDec(); index += 1; - var protocolType = (CommunicationProtocolType)hexDatas[index].HexToDec(); + var protocolType = (CommunicationProtocolType)hexData[index].HexToDec(); index += 1; - var addressHexList = hexDatas.Skip(index).Take(6).ToList(); + var addressHexList = hexData.Skip(index).Take(6).ToList(); addressHexList.Reverse(); var address = string.Join("", addressHexList); index += 6; - var pwdHexList = hexDatas.Skip(index).Take(6).ToList(); + var pwdHexList = hexData.Skip(index).Take(6).ToList(); pwdHexList.Reverse(); var password = string.Join("", pwdHexList.Take(3).ToList()); index += 6; - var rateNumberBin = hexDatas[index].HexToBin().PadLeft(8, '0'); + var rateNumberBin = hexData[index].HexToBin().PadLeft(8, '0'); var rateNumber = rateNumberBin.Substring(4).BinToDec(); index += 1; - var intBitAndDecBitNumberBin = hexDatas[index].HexToBin().PadLeft(8, '0'); + var intBitAndDecBitNumberBin = hexData[index].HexToBin().PadLeft(8, '0'); var intBitNumber = intBitAndDecBitNumberBin.Substring(4, 2).BinToDec() + 4; var decBitNumber = intBitAndDecBitNumberBin.Substring(6, 2).BinToDec() + 1; index += 1; // hexDatas.GetRange() - var collectorAddressHexList = hexDatas.Skip(index).Take(6).ToList(); + var collectorAddressHexList = hexData.Skip(index).Take(6).ToList(); collectorAddressHexList.Reverse(); var collectorAddress = string.Join("", collectorAddressHexList); index += 6; - var userClassNumberBin = hexDatas[index].HexToBin().PadLeft(8, '0'); + var userClassNumberBin = hexData[index].HexToBin().PadLeft(8, '0'); var userClass = userClassNumberBin.Substring(0, 4).BinToDec(); var userSubClass = userClassNumberBin.Substring(4, 4).BinToDec(); index += 1; @@ -234,24 +233,24 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts /// public virtual CurrentPositiveActiveEnergyAnalyze AnalyzeActivePowerIndicationReadingDataAsync(MessageReceived messageReceived, Action? sendAction = null) { - var hexDatas = GetHexDatas(messageReceived.MessageHexString); + var hexData = GetHexData(messageReceived.MessageHexString); - var minute = Convert.ToInt32(hexDatas[0]); // 获取当前分钟数 - var hour = Convert.ToInt32(hexDatas[1]); // 获取当前小时数 - var day = Convert.ToInt32(hexDatas[2]); // 获取当前日期的日数 - var month = Convert.ToInt32(hexDatas[3]); // 获取当前月份 - var year = Convert.ToInt32(hexDatas[4]); // 获取当前日期的年份 + var minute = Convert.ToInt32(hexData[0]); // 获取当前分钟数 + var hour = Convert.ToInt32(hexData[1]); // 获取当前小时数 + var day = Convert.ToInt32(hexData[2]); // 获取当前日期的日数 + var month = Convert.ToInt32(hexData[3]); // 获取当前月份 + var year = Convert.ToInt32(hexData[4]); // 获取当前日期的年份 var dateTime = new DateTime(year, month, day, hour, minute, 0); // 转换为本地时间 var localDateTime = dateTime.ToLocalTime(); - var rateNumber = Convert.ToInt32(hexDatas[5]); - var kwhTotal = hexDatas.Skip(5).Take(5).ToList(); + var rateNumber = Convert.ToInt32(hexData[5]); + var kwhTotal = hexData.Skip(5).Take(5).ToList(); var kwhList = new List(); var index = 11; for (int i = 0; i < rateNumber; i++) { - var kwhHexList = hexDatas.Skip(index).Take(5).ToList(); + var kwhHexList = hexData.Skip(index).Take(5).ToList(); kwhHexList.Reverse(); var integerStr = $"{kwhHexList.Take(0)}{kwhHexList.Take(1)}{kwhHexList.Take(2)}"; var decimalValStr = $"{kwhHexList[3]}{kwhHexList[4]}"; @@ -280,19 +279,19 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts /// public virtual void AnalyzeDailyFrozenReadingDataAsync(MessageReceived messageReceived, Action? sendAction = null) { - var hexDatas = GetHexDatas(messageReceived.MessageHexString); + var hexData = GetHexData(messageReceived.MessageHexString); //附录A.20 日月年 - var td_dHex = hexDatas.Take(3).ToList(); + var td_dHex = hexData.Take(3).ToList(); //附录A.15 分时日月年 - var readingTimeHex = hexDatas.Skip(3).Take(5).ToList(); - var rateNumberHex = hexDatas.Skip(8).Take(1).FirstOrDefault().HexToDec(); + var readingTimeHex = hexData.Skip(3).Take(5).ToList(); + var rateNumberHex = hexData.Skip(8).Take(1).FirstOrDefault().HexToDec(); var datas = new List(); //附录A.14 kWh 5字节 for (int i = 0; i < rateNumberHex; i++) { var skipCount = 9 + i * 5; - var dataHexs = hexDatas.Skip(skipCount).Take(5).ToList(); + var dataHexs = hexData.Skip(skipCount).Take(5).ToList(); var data = AnalyzeDataAccordingToA14(dataHexs[0], dataHexs[1], dataHexs[2], dataHexs[3], dataHexs[4]); datas.Add(data); } @@ -344,83 +343,83 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts /// //F25ReadingAnalyze public virtual Analyze3761Data AnalyzeF25ReadingDataAsync(MessageReceived messageReceived, Action? sendAction = null) { - var hexDatas = GetHexDatas(messageReceived.MessageHexString); + var hexData = GetHexData(messageReceived.MessageHexString); //A.15 分时日月年 - var readingTimeHex = hexDatas.Take(5).ToList(); + var readingTimeHex = hexData.Take(5).ToList(); var readingTime = AnalyzeDataAccordingToA15(readingTimeHex[0], readingTimeHex[1], readingTimeHex[2], readingTimeHex[3], readingTimeHex[4]); //A.9 kW - var crntTotalActivePowerHexs = hexDatas.Skip((int)F25DataItemEnum.CrntTotalActivePower).Take(3).ToList(); + var crntTotalActivePowerHexs = hexData.Skip((int)F25DataItemEnum.CrntTotalActivePower).Take(3).ToList(); var crntTotalActivePower = AnalyzeDataAccordingToA09(crntTotalActivePowerHexs[0], crntTotalActivePowerHexs[1], crntTotalActivePowerHexs[2]); - var crntActivePowerOfAHexs = hexDatas.Skip((int)F25DataItemEnum.CrntActivePowerOfA).Take(3).ToList(); + var crntActivePowerOfAHexs = hexData.Skip((int)F25DataItemEnum.CrntActivePowerOfA).Take(3).ToList(); var crntActivePowerOfA = AnalyzeDataAccordingToA09(crntActivePowerOfAHexs[0], crntActivePowerOfAHexs[1], crntActivePowerOfAHexs[2]); - var crntActivePowerOfBHexs = hexDatas.Skip((int)F25DataItemEnum.CrntActivePowerOfB).Take(3).ToList(); + var crntActivePowerOfBHexs = hexData.Skip((int)F25DataItemEnum.CrntActivePowerOfB).Take(3).ToList(); var crntActivePowerOfB = AnalyzeDataAccordingToA09(crntActivePowerOfBHexs[0], crntActivePowerOfBHexs[1], crntActivePowerOfBHexs[2]); - var crntActivePowerOfCHexs = hexDatas.Skip((int)F25DataItemEnum.CrntActivePowerOfC).Take(3).ToList(); + var crntActivePowerOfCHexs = hexData.Skip((int)F25DataItemEnum.CrntActivePowerOfC).Take(3).ToList(); var crntActivePowerOfC = AnalyzeDataAccordingToA09(crntActivePowerOfCHexs[0], crntActivePowerOfCHexs[1], crntActivePowerOfCHexs[2]); - var crntTotalReactivePowerHexs = hexDatas.Skip((int)F25DataItemEnum.CrntTotalReactivePower).Take(3).ToList(); + var crntTotalReactivePowerHexs = hexData.Skip((int)F25DataItemEnum.CrntTotalReactivePower).Take(3).ToList(); var crntTotalReactivePower = AnalyzeDataAccordingToA09(crntTotalReactivePowerHexs[0], crntTotalReactivePowerHexs[1], crntTotalReactivePowerHexs[2]); - var crntReactivePowerOfAHexs = hexDatas.Skip((int)F25DataItemEnum.CrntReactivePowerOfA).Take(3).ToList(); + var crntReactivePowerOfAHexs = hexData.Skip((int)F25DataItemEnum.CrntReactivePowerOfA).Take(3).ToList(); var crntReactivePowerOfA = AnalyzeDataAccordingToA09(crntReactivePowerOfAHexs[0], crntReactivePowerOfAHexs[1], crntReactivePowerOfAHexs[2]); - var crntReactivePowerOfBHexs = hexDatas.Skip((int)F25DataItemEnum.CrntReactivePowerOfB).Take(3).ToList(); + var crntReactivePowerOfBHexs = hexData.Skip((int)F25DataItemEnum.CrntReactivePowerOfB).Take(3).ToList(); var crntReactivePowerOfB = AnalyzeDataAccordingToA09(crntReactivePowerOfBHexs[0], crntReactivePowerOfBHexs[1], crntReactivePowerOfBHexs[2]); - var crntReactivePowerOfCHexs = hexDatas.Skip((int)F25DataItemEnum.CrntReactivePowerOfC).Take(2).ToList(); + var crntReactivePowerOfCHexs = hexData.Skip((int)F25DataItemEnum.CrntReactivePowerOfC).Take(2).ToList(); var crntReactivePowerOfC = AnalyzeDataAccordingToA09(crntReactivePowerOfCHexs[0], crntReactivePowerOfCHexs[1], crntReactivePowerOfCHexs[2]); //A.5 % - var crntTotalPowerFactorHexs = hexDatas.Skip((int)F25DataItemEnum.CrntTotalPowerFactor).Take(2).ToList(); + var crntTotalPowerFactorHexs = hexData.Skip((int)F25DataItemEnum.CrntTotalPowerFactor).Take(2).ToList(); var crntTotalPowerFactor = AnalyzeDataAccordingToA05(crntTotalPowerFactorHexs[0], crntTotalPowerFactorHexs[1]); - var crntPowerFactorOfAHexs = hexDatas.Skip((int)F25DataItemEnum.CrntPowerFactorOfA).Take(2).ToList(); + var crntPowerFactorOfAHexs = hexData.Skip((int)F25DataItemEnum.CrntPowerFactorOfA).Take(2).ToList(); var crntPowerFactorOfA = AnalyzeDataAccordingToA05(crntPowerFactorOfAHexs[0], crntPowerFactorOfAHexs[1]); - var crntPowerFactorOfBHexs = hexDatas.Skip((int)F25DataItemEnum.CrntPowerFactorOfB).Take(2).ToList(); + var crntPowerFactorOfBHexs = hexData.Skip((int)F25DataItemEnum.CrntPowerFactorOfB).Take(2).ToList(); var crntPowerFactorOfB = AnalyzeDataAccordingToA05(crntPowerFactorOfBHexs[0], crntPowerFactorOfBHexs[1]); - var crntPowerFactorOfCHexs = hexDatas.Skip((int)F25DataItemEnum.CrntPowerFactorOfC).Take(2).ToList(); + var crntPowerFactorOfCHexs = hexData.Skip((int)F25DataItemEnum.CrntPowerFactorOfC).Take(2).ToList(); var crntPowerFactorOfC = AnalyzeDataAccordingToA05(crntPowerFactorOfCHexs[0], crntPowerFactorOfCHexs[1]); //A.7 V - var crntVoltageOfAHexs = hexDatas.Skip((int)F25DataItemEnum.CrntVoltageOfA).Take(2).ToList(); + var crntVoltageOfAHexs = hexData.Skip((int)F25DataItemEnum.CrntVoltageOfA).Take(2).ToList(); var crntVoltageOfA = AnalyzeDataAccordingToA07(crntVoltageOfAHexs[0], crntVoltageOfAHexs[1]); - var crntVoltageOfBHexs = hexDatas.Skip((int)F25DataItemEnum.CrntVoltageOfB).Take(2).ToList(); + var crntVoltageOfBHexs = hexData.Skip((int)F25DataItemEnum.CrntVoltageOfB).Take(2).ToList(); var crntVoltageOfB = AnalyzeDataAccordingToA07(crntVoltageOfBHexs[0], crntVoltageOfBHexs[1]); - var crntVoltageOfCHexs = hexDatas.Skip((int)F25DataItemEnum.CrntVoltageOfC).Take(2).ToList(); + var crntVoltageOfCHexs = hexData.Skip((int)F25DataItemEnum.CrntVoltageOfC).Take(2).ToList(); var crntVoltageOfC = AnalyzeDataAccordingToA07(crntVoltageOfCHexs[0], crntVoltageOfCHexs[1]); //A.25 A - var crntCurrentOfAHexs = hexDatas.Skip((int)F25DataItemEnum.CrntCurrentOfA).Take(3).ToList(); + var crntCurrentOfAHexs = hexData.Skip((int)F25DataItemEnum.CrntCurrentOfA).Take(3).ToList(); var crntCurrentOfA = AnalyzeDataAccordingToA25(crntCurrentOfAHexs[0], crntCurrentOfAHexs[1], crntCurrentOfAHexs[2]); - var crntCurrentOfBHexs = hexDatas.Skip((int)F25DataItemEnum.CrntCurrentOfB).Take(3).ToList(); + var crntCurrentOfBHexs = hexData.Skip((int)F25DataItemEnum.CrntCurrentOfB).Take(3).ToList(); var crntCurrentOfB = AnalyzeDataAccordingToA25(crntCurrentOfBHexs[0], crntCurrentOfBHexs[1], crntCurrentOfBHexs[2]); - var crntCurrentOfCHexs = hexDatas.Skip((int)F25DataItemEnum.CrntCurrentOfC).Take(3).ToList(); + var crntCurrentOfCHexs = hexData.Skip((int)F25DataItemEnum.CrntCurrentOfC).Take(3).ToList(); var crntCurrentOfC = AnalyzeDataAccordingToA25(crntCurrentOfCHexs[0], crntCurrentOfCHexs[1], crntCurrentOfCHexs[2]); - var crntZeroSequenceCurrentHexs = hexDatas.Skip((int)F25DataItemEnum.CrntZeroSequenceCurrent).Take(3).ToList(); + var crntZeroSequenceCurrentHexs = hexData.Skip((int)F25DataItemEnum.CrntZeroSequenceCurrent).Take(3).ToList(); var crntZeroSequenceCurrent = AnalyzeDataAccordingToA25(crntZeroSequenceCurrentHexs[0], crntZeroSequenceCurrentHexs[1], crntZeroSequenceCurrentHexs[2]); //A.9 kVA - var crntTotalApparentPowerHexs = hexDatas.Skip((int)F25DataItemEnum.CrntTotalApparentPower).Take(3).ToList(); + var crntTotalApparentPowerHexs = hexData.Skip((int)F25DataItemEnum.CrntTotalApparentPower).Take(3).ToList(); var crntTotalApparentPower = AnalyzeDataAccordingToA09(crntTotalApparentPowerHexs[0], crntTotalApparentPowerHexs[1], crntTotalApparentPowerHexs[2]); - var crntApparentPowerOfAHexs = hexDatas.Skip((int)F25DataItemEnum.CrntApparentPowerOfA).Take(3).ToList(); + var crntApparentPowerOfAHexs = hexData.Skip((int)F25DataItemEnum.CrntApparentPowerOfA).Take(3).ToList(); var crntApparentPowerOfA = AnalyzeDataAccordingToA09(crntApparentPowerOfAHexs[0], crntApparentPowerOfAHexs[1], crntApparentPowerOfAHexs[2]); - var crntApparentPowerOfBHexs = hexDatas.Skip((int)F25DataItemEnum.CrntApparentPowerOfB).Take(3).ToList(); + var crntApparentPowerOfBHexs = hexData.Skip((int)F25DataItemEnum.CrntApparentPowerOfB).Take(3).ToList(); var crntApparentPowerOfB = AnalyzeDataAccordingToA09(crntApparentPowerOfBHexs[0], crntApparentPowerOfBHexs[1], crntApparentPowerOfBHexs[2]); - var crntApparentPowerOfCHexs = hexDatas.Skip((int)F25DataItemEnum.CrntApparentPowerOfC).Take(3).ToList(); + var crntApparentPowerOfCHexs = hexData.Skip((int)F25DataItemEnum.CrntApparentPowerOfC).Take(3).ToList(); var crntApparentPowerOfC = AnalyzeDataAccordingToA09(crntApparentPowerOfCHexs[0], crntApparentPowerOfCHexs[1], crntApparentPowerOfCHexs[2]); return new Analyze3761Data() @@ -497,17 +496,17 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts /// //TerminalVersionInfoAnalyze public virtual Analyze3761Data AnalyzeTerminalVersionInfoReadingDataAsync(MessageReceived messageReceived, Action? sendAction = null) { - var hexDatas = GetHexDatas(messageReceived.MessageHexString); + var hexData = GetHexData(messageReceived.MessageHexString); - var makerNo = string.Join("",hexDatas.Take(4).Select(s => (char)s.HexToDec()));//厂商代码 - var deviceNo = string.Join("", hexDatas.Skip((int)TerminalVersionInfoEnum.DeviceNo).Take(8).Select(s => (char)s.HexToDec()));//设备编号 - var softwareVersionNo = string.Join("", hexDatas.Skip((int)TerminalVersionInfoEnum.SoftwareVersionNo).Take(4).Select(s => (char)s.HexToDec()));//软件版本号 - var softwareReleaseDateList = hexDatas.Skip((int)TerminalVersionInfoEnum.SoftwareReleaseDate).Take(3).ToList(); + var makerNo = string.Join("",hexData.Take(4).Select(s => (char)s.HexToDec()));//厂商代码 + var deviceNo = string.Join("", hexData.Skip((int)TerminalVersionInfoEnum.DeviceNo).Take(8).Select(s => (char)s.HexToDec()));//设备编号 + var softwareVersionNo = string.Join("", hexData.Skip((int)TerminalVersionInfoEnum.SoftwareVersionNo).Take(4).Select(s => (char)s.HexToDec()));//软件版本号 + var softwareReleaseDateList = hexData.Skip((int)TerminalVersionInfoEnum.SoftwareReleaseDate).Take(3).ToList(); var softwareReleaseDate = $"20{AnalyzeDataAccordingToA20(softwareReleaseDateList[0], softwareReleaseDateList[1], softwareReleaseDateList[2])}";//软件发布日期 - var capacityInformationCode = string.Join("", hexDatas.Skip((int)TerminalVersionInfoEnum.CapacityInformationCode).Take(11).Select(s => (char)s.HexToDec()));//容量信息码 - var protocolVersionNo = string.Join("", hexDatas.Skip((int)TerminalVersionInfoEnum.ProtocolVersionNo).Take(4).Select(s => (char)s.HexToDec()));//通信协议编号 - var hardwareVersionNo = string.Join("", hexDatas.Skip((int)TerminalVersionInfoEnum.HardwareVersionNo).Take(4).Select(s => (char)s.HexToDec()));//硬件版本号 - var hardwareReleaseDateList = hexDatas.Skip((int)TerminalVersionInfoEnum.HardwareReleaseDate).Take(3).ToList(); + var capacityInformationCode = string.Join("", hexData.Skip((int)TerminalVersionInfoEnum.CapacityInformationCode).Take(11).Select(s => (char)s.HexToDec()));//容量信息码 + var protocolVersionNo = string.Join("", hexData.Skip((int)TerminalVersionInfoEnum.ProtocolVersionNo).Take(4).Select(s => (char)s.HexToDec()));//通信协议编号 + var hardwareVersionNo = string.Join("", hexData.Skip((int)TerminalVersionInfoEnum.HardwareVersionNo).Take(4).Select(s => (char)s.HexToDec()));//硬件版本号 + var hardwareReleaseDateList = hexData.Skip((int)TerminalVersionInfoEnum.HardwareReleaseDate).Take(3).ToList(); var hardwareReleaseDate = $"20{AnalyzeDataAccordingToA20(hardwareReleaseDateList[0], hardwareReleaseDateList[1], hardwareReleaseDateList[2])}";//软件发布日期 return new Analyze3761Data() @@ -548,24 +547,24 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts /// public virtual Analyze3761Data AnalyzeATypeOfDataItems49ReadingDataAsync(MessageReceived messageReceived, Action? sendAction = null) { - var hexDatas = GetHexDatas(messageReceived.MessageHexString); + var hexData = GetHexData(messageReceived.MessageHexString); - var uabUaList = hexDatas.Take(2).ToList(); + var uabUaList = hexData.Take(2).ToList(); var uabUa = AnalyzeDataAccordingToA05(uabUaList[0], uabUaList[1]); //单位 度 - var ubList = hexDatas.Skip((int)ATypeOfDataItems49.Ub).Take(2).ToList(); + var ubList = hexData.Skip((int)ATypeOfDataItems49.Ub).Take(2).ToList(); var ub = AnalyzeDataAccordingToA05(ubList[0], ubList[1]); - var ucbUcList = hexDatas.Skip((int)ATypeOfDataItems49.UcbUc).Take(2).ToList(); + var ucbUcList = hexData.Skip((int)ATypeOfDataItems49.UcbUc).Take(2).ToList(); var ucbUc = AnalyzeDataAccordingToA05(ucbUcList[0], ucbUcList[1]); - var iaList = hexDatas.Skip((int)ATypeOfDataItems49.Ia).Take(2).ToList(); + var iaList = hexData.Skip((int)ATypeOfDataItems49.Ia).Take(2).ToList(); var ia = AnalyzeDataAccordingToA05(iaList[0], iaList[1]); - var ibList = hexDatas.Skip((int)ATypeOfDataItems49.Ib).Take(2).ToList(); + var ibList = hexData.Skip((int)ATypeOfDataItems49.Ib).Take(2).ToList(); var ib = AnalyzeDataAccordingToA05(ibList[0], ibList[1]); - var icList = hexDatas.Skip((int)ATypeOfDataItems49.Ic).Take(2).ToList(); + var icList = hexData.Skip((int)ATypeOfDataItems49.Ic).Take(2).ToList(); var ic = AnalyzeDataAccordingToA05(icList[0], icList[1]); return new Analyze3761Data() @@ -573,15 +572,15 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts AFN = 12, FN = 49, Text = "相位角", - DataUpChilds = new List() - { - new Analyze3761DataUpChild(1,"UabUa相位角",uabUa.ToString(),1), - new Analyze3761DataUpChild(2,"Ub相位角",ub.ToString(),2), - new Analyze3761DataUpChild(3,"UcbUc相位角",ucbUc.ToString(),3), - new Analyze3761DataUpChild(4,"Ia相位角",ia.ToString(),4), - new Analyze3761DataUpChild(5,"Ib相位角",ib.ToString(),5), - new Analyze3761DataUpChild(6,"Ic相位角",ic.ToString(),6), - } + DataUpChilds = + [ + new Analyze3761DataUpChild(1, "UabUa相位角", uabUa.ToString(), 1), + new Analyze3761DataUpChild(2, "Ub相位角", ub.ToString(), 2), + new Analyze3761DataUpChild(3, "UcbUc相位角", ucbUc.ToString(), 3), + new Analyze3761DataUpChild(4, "Ia相位角", ia.ToString(), 4), + new Analyze3761DataUpChild(5, "Ib相位角", ib.ToString(), 5), + new Analyze3761DataUpChild(6, "Ic相位角", ic.ToString(), 6) + ] }; } @@ -593,7 +592,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts public virtual void AnalyzeTerminalTimeReadingDataAsync(MessageReceived messageReceived, Action? sendAction = null) { - var hexDatas = GetHexDatas(messageReceived.MessageHexString); + var hexDatas = GetHexData(messageReceived.MessageHexString); var time = Appendix.Appendix_A1(hexDatas.Take(6).ToList()); } @@ -616,14 +615,14 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts var tb3761Fn = tb3761.FnList.FirstOrDefault(it => it.Fn == fn); if (tb3761Fn == null) return null; - var hexDatas = (List)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data); + var analyzeValue = (List)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data); var m = 0; var rateNumberUpSort = -1; var rateNumberUp = tb3761Fn.UpList.FirstOrDefault(it => it.Name.Contains("费率数M")); if (rateNumberUp != null) { - var rateNumber = hexDatas.Skip(rateNumberUp.DataIndex).Take(rateNumberUp.DataCount).FirstOrDefault(); + var rateNumber = analyzeValue.Skip(rateNumberUp.DataIndex).Take(rateNumberUp.DataCount).FirstOrDefault(); m = Convert.ToInt32(rateNumber); rateNumberUpSort = rateNumberUp.Sort; } @@ -640,7 +639,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts dataIndex = sum1 + sum2; } - var value = AnalyzeDataAccordingDataType(hexDatas, dataIndex, up.DataCount, up.DataType); + var value = AnalyzeDataAccordingDataType(analyzeValue, dataIndex, up.DataCount, up.DataType); if (value != null) { up.Value = value.ToString(); @@ -652,7 +651,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts { for (var j = 0; j < repeatCount; j++) { - var val = AnalyzeDataAccordingDataType(hexDatas, dataIndex, upChild.DataCount, upChild.DataType); + var val = AnalyzeDataAccordingDataType(analyzeValue, dataIndex, upChild.DataCount, upChild.DataType); if (val != null) { upChild.Name = string.Format(upChild.Name, j + 1); @@ -688,11 +687,11 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts var tb3761Fn = tb3761.FnList.FirstOrDefault(it => it.Fn == fn); if (tb3761Fn == null) return null; - var hexDatas = (List)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data); + var analyzeValue = (List)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data); foreach (var up in tb3761Fn.UpList) { - var value = AnalyzeDataAccordingDataType(hexDatas, up.DataIndex, up.DataCount, up.DataType); + var value = AnalyzeDataAccordingDataType(analyzeValue, up.DataIndex, up.DataCount, up.DataType); if (value != null) { up.Value = value.ToString(); @@ -705,7 +704,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts { for (var j = 0; j < repeatCount; j++) { - var val = AnalyzeDataAccordingDataType(hexDatas, dataIndex, upChild.DataCount, upChild.DataType); + var val = AnalyzeDataAccordingDataType(analyzeValue, dataIndex, upChild.DataCount, upChild.DataType); if (val != null) { upChild.Value = val.ToString(); @@ -741,9 +740,9 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts // } } - private object? AnalyzeDataAccordingDataType(List hexDatas, int dataIndex,int dataCount,string dataType) + private object? AnalyzeDataAccordingDataType(List analyzeValue, int dataIndex,int dataCount,string dataType) { - var valueList = hexDatas.Skip(dataIndex).Take(dataCount).ToList(); + var valueList = analyzeValue.Skip(dataIndex).Take(dataCount).ToList(); object? value = null; switch (dataType) { @@ -771,11 +770,11 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts case "A15": if (valueList.Count == 5) { - //var minutes = Convert.ToInt32(hexDatas[0]); // 获取当前分钟数 - //var hours = Convert.ToInt32(hexDatas[1]); // 获取当前小时数 - //var day = Convert.ToInt32(hexDatas[2]); // 获取当前日期的日数 - //var month = Convert.ToInt32(hexDatas[3]); // 获取当前月份 - //var year = Convert.ToInt32(hexDatas[4]); // 获取当前日期的年份 + //var minutes = Convert.ToInt32(analyzeValue[0]); // 获取当前分钟数 + //var hours = Convert.ToInt32(analyzeValue[1]); // 获取当前小时数 + //var day = Convert.ToInt32(analyzeValue[2]); // 获取当前日期的日数 + //var month = Convert.ToInt32(analyzeValue[3]); // 获取当前月份 + //var year = Convert.ToInt32(analyzeValue[4]); // 获取当前日期的年份 value = AnalyzeDataAccordingToA15(valueList[0], valueList[1], valueList[2], valueList[3], valueList[4]); } break; @@ -801,7 +800,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts /// public virtual async Task AnalyzeTransparentForwardingAnswerAsync(MessageReceived messageReceivedEvent, Action? sendAction = null) { - var hexDatas = GetHexDatas(messageReceivedEvent.MessageHexString); + var hexDatas = GetHexData(messageReceivedEvent.MessageHexString); var port = hexDatas[0].HexToDec(); @@ -828,7 +827,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts /// public virtual async Task AnalyzeTransparentForwardingAnswerResultAsync(MessageReceived messageReceived, Action? sendAction = null) { - var hexDatas = GetHexDatas(messageReceived.MessageHexString); + var hexDatas = GetHexData(messageReceived.MessageHexString); var port = hexDatas[0].HexToDec(); @@ -844,25 +843,25 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts /// /// /// - public static List GetHexDatas(string messageHexString) + public static List GetHexData(string messageHexString) { var hexStringList = messageHexString.StringToPairs(); - var hexDatas = (List)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data); - return hexDatas; + var analyzeValue = (List)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data); + return analyzeValue; } /// /// 解析时间标签 /// - /// - public void AnalysisTp(List hexDatas) + /// + public void AnalysisTp(List hexData) { - var pFC = hexDatas[0].HexToDec();//启动帧帧序号计数器 - var seconds = Convert.ToInt32(hexDatas[1]); // 获取当前秒数 - var minutes = Convert.ToInt32(hexDatas[2]); // 获取当前分钟数 - var hours = Convert.ToInt32(hexDatas[3]); // 获取当前小时数 - var day = Convert.ToInt32(hexDatas[4]); // 获取当前日期的日数 - var delayTime = hexDatas[5].HexToDec();//延迟时间 min + var pFC = hexData[0].HexToDec();//启动帧帧序号计数器 + var seconds = Convert.ToInt32(hexData[1]); // 获取当前秒数 + var minutes = Convert.ToInt32(hexData[2]); // 获取当前分钟数 + var hours = Convert.ToInt32(hexData[3]); // 获取当前小时数 + var day = Convert.ToInt32(hexData[4]); // 获取当前日期的日数 + var delayTime = hexData[5].HexToDec();//延迟时间 min } #region 报文指定的数据格式