优化代码
This commit is contained in:
parent
032c075f2f
commit
29560ad4ef
@ -77,7 +77,6 @@ namespace JiShe.CollectBus.Subscribers
|
|||||||
if (device!=null)
|
if (device!=null)
|
||||||
{
|
{
|
||||||
await _tcpService.SendAsync(device.ClientId, issuedEventMessage.Message);
|
await _tcpService.SendAsync(device.ClientId, issuedEventMessage.Message);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,35 +98,30 @@ namespace JiShe.CollectBus.Subscribers
|
|||||||
[CapSubscribe(ProtocolConst.SubscriberReceivedHeartbeatEventName)]
|
[CapSubscribe(ProtocolConst.SubscriberReceivedHeartbeatEventName)]
|
||||||
public async Task ReceivedHeartbeatEvent(MessageReceivedHeartbeat receivedHeartbeatMessage)
|
public async Task ReceivedHeartbeatEvent(MessageReceivedHeartbeat receivedHeartbeatMessage)
|
||||||
{
|
{
|
||||||
_logger.LogInformation("心跳消费队列开始处理");
|
|
||||||
var protocolPlugin = _serviceProvider.GetKeyedService<IProtocolPlugin>("StandardProtocolPlugin");
|
var protocolPlugin = _serviceProvider.GetKeyedService<IProtocolPlugin>("StandardProtocolPlugin");
|
||||||
if (protocolPlugin == null)
|
if (protocolPlugin == null)
|
||||||
{
|
{
|
||||||
_logger.LogError("【心跳消费队列开始处理】协议不存在!");
|
_logger.LogError("协议不存在!");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
await protocolPlugin.HeartbeatAsync(receivedHeartbeatMessage);
|
await protocolPlugin.HeartbeatAsync(receivedHeartbeatMessage);
|
||||||
await _messageReceivedHeartbeatEventRepository.InsertAsync(receivedHeartbeatMessage);
|
await _messageReceivedHeartbeatEventRepository.InsertAsync(receivedHeartbeatMessage);
|
||||||
|
|
||||||
_logger.LogInformation($"心跳消费队列完成处理:{receivedHeartbeatMessage.MessageId}");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[CapSubscribe(ProtocolConst.SubscriberReceivedLoginEventName)]
|
[CapSubscribe(ProtocolConst.SubscriberReceivedLoginEventName)]
|
||||||
public async Task ReceivedLoginEvent(MessageReceivedLogin receivedLoginMessage)
|
public async Task ReceivedLoginEvent(MessageReceivedLogin receivedLoginMessage)
|
||||||
{
|
{
|
||||||
_logger.LogInformation("登录消费队列开始处理");
|
|
||||||
var protocolPlugin = _serviceProvider.GetKeyedService<IProtocolPlugin>("StandardProtocolPlugin");
|
var protocolPlugin = _serviceProvider.GetKeyedService<IProtocolPlugin>("StandardProtocolPlugin");
|
||||||
if (protocolPlugin == null)
|
if (protocolPlugin == null)
|
||||||
{
|
{
|
||||||
_logger.LogError("【登录消费队列开始处理】协议不存在!");
|
_logger.LogError("协议不存在!");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
await protocolPlugin.LoginAsync(receivedLoginMessage);
|
await protocolPlugin.LoginAsync(receivedLoginMessage);
|
||||||
await _messageReceivedLoginEventRepository.InsertAsync(receivedLoginMessage);
|
await _messageReceivedLoginEventRepository.InsertAsync(receivedLoginMessage);
|
||||||
_logger.LogInformation("登录消费队列完成处理");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
using System.Globalization;
|
using DotNetCore.CAP;
|
||||||
using DotNetCore.CAP;
|
|
||||||
using JiShe.CollectBus.Common.Enums;
|
using JiShe.CollectBus.Common.Enums;
|
||||||
using JiShe.CollectBus.Common.Extensions;
|
using JiShe.CollectBus.Common.Extensions;
|
||||||
using JiShe.CollectBus.Common.Models;
|
using JiShe.CollectBus.Common.Models;
|
||||||
@ -153,55 +152,55 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public virtual List<AmmeterParameter> AnalyzeAmmeterParameterReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
public virtual List<AmmeterParameter> AnalyzeAmmeterParameterReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
||||||
{
|
{
|
||||||
var hexDatas = GetHexDatas(messageReceived.MessageHexString);
|
var hexData = GetHexData(messageReceived.MessageHexString);
|
||||||
|
|
||||||
var meterList = new List<AmmeterParameter>();
|
var meterList = new List<AmmeterParameter>();
|
||||||
var count = (hexDatas[1] + hexDatas[0]).HexToDec();
|
var count = (hexData[1] + hexData[0]).HexToDec();
|
||||||
//if (2 + count * 27 != hexDatas.Count - pWLen - tPLen - 2)
|
//if (2 + count * 27 != hexDatas.Count - pWLen - tPLen - 2)
|
||||||
// return;
|
// return;
|
||||||
var index = 2;//数量
|
var index = 2;//数量
|
||||||
for (int i = 1; i <= count; i++)
|
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;
|
index += 2;
|
||||||
|
|
||||||
var pn = $"{hexDatas[index + 1]}{hexDatas[index]}".HexToDec();
|
var pn = $"{hexData[index + 1]}{hexData[index]}".HexToDec();
|
||||||
index += 2;
|
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 baudRate = baudRateAndPortBin.Substring(0, 3).BinToDec();
|
||||||
var port = baudRateAndPortBin.Substring(3, 5).BinToDec();
|
var port = baudRateAndPortBin.Substring(3, 5).BinToDec();
|
||||||
index += 1;
|
index += 1;
|
||||||
|
|
||||||
var protocolType = (CommunicationProtocolType)hexDatas[index].HexToDec();
|
var protocolType = (CommunicationProtocolType)hexData[index].HexToDec();
|
||||||
index += 1;
|
index += 1;
|
||||||
|
|
||||||
var addressHexList = hexDatas.Skip(index).Take(6).ToList();
|
var addressHexList = hexData.Skip(index).Take(6).ToList();
|
||||||
addressHexList.Reverse();
|
addressHexList.Reverse();
|
||||||
var address = string.Join("", addressHexList);
|
var address = string.Join("", addressHexList);
|
||||||
index += 6;
|
index += 6;
|
||||||
|
|
||||||
var pwdHexList = hexDatas.Skip(index).Take(6).ToList();
|
var pwdHexList = hexData.Skip(index).Take(6).ToList();
|
||||||
pwdHexList.Reverse();
|
pwdHexList.Reverse();
|
||||||
var password = string.Join("", pwdHexList.Take(3).ToList());
|
var password = string.Join("", pwdHexList.Take(3).ToList());
|
||||||
index += 6;
|
index += 6;
|
||||||
|
|
||||||
var rateNumberBin = hexDatas[index].HexToBin().PadLeft(8, '0');
|
var rateNumberBin = hexData[index].HexToBin().PadLeft(8, '0');
|
||||||
var rateNumber = rateNumberBin.Substring(4).BinToDec();
|
var rateNumber = rateNumberBin.Substring(4).BinToDec();
|
||||||
index += 1;
|
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 intBitNumber = intBitAndDecBitNumberBin.Substring(4, 2).BinToDec() + 4;
|
||||||
var decBitNumber = intBitAndDecBitNumberBin.Substring(6, 2).BinToDec() + 1;
|
var decBitNumber = intBitAndDecBitNumberBin.Substring(6, 2).BinToDec() + 1;
|
||||||
index += 1;
|
index += 1;
|
||||||
|
|
||||||
// hexDatas.GetRange()
|
// hexDatas.GetRange()
|
||||||
var collectorAddressHexList = hexDatas.Skip(index).Take(6).ToList();
|
var collectorAddressHexList = hexData.Skip(index).Take(6).ToList();
|
||||||
collectorAddressHexList.Reverse();
|
collectorAddressHexList.Reverse();
|
||||||
var collectorAddress = string.Join("", collectorAddressHexList);
|
var collectorAddress = string.Join("", collectorAddressHexList);
|
||||||
index += 6;
|
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 userClass = userClassNumberBin.Substring(0, 4).BinToDec();
|
||||||
var userSubClass = userClassNumberBin.Substring(4, 4).BinToDec();
|
var userSubClass = userClassNumberBin.Substring(4, 4).BinToDec();
|
||||||
index += 1;
|
index += 1;
|
||||||
@ -234,24 +233,24 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public virtual CurrentPositiveActiveEnergyAnalyze AnalyzeActivePowerIndicationReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
public virtual CurrentPositiveActiveEnergyAnalyze AnalyzeActivePowerIndicationReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
||||||
{
|
{
|
||||||
var hexDatas = GetHexDatas(messageReceived.MessageHexString);
|
var hexData = GetHexData(messageReceived.MessageHexString);
|
||||||
|
|
||||||
var minute = Convert.ToInt32(hexDatas[0]); // 获取当前分钟数
|
var minute = Convert.ToInt32(hexData[0]); // 获取当前分钟数
|
||||||
var hour = Convert.ToInt32(hexDatas[1]); // 获取当前小时数
|
var hour = Convert.ToInt32(hexData[1]); // 获取当前小时数
|
||||||
var day = Convert.ToInt32(hexDatas[2]); // 获取当前日期的日数
|
var day = Convert.ToInt32(hexData[2]); // 获取当前日期的日数
|
||||||
var month = Convert.ToInt32(hexDatas[3]); // 获取当前月份
|
var month = Convert.ToInt32(hexData[3]); // 获取当前月份
|
||||||
var year = Convert.ToInt32(hexDatas[4]); // 获取当前日期的年份
|
var year = Convert.ToInt32(hexData[4]); // 获取当前日期的年份
|
||||||
var dateTime = new DateTime(year, month, day, hour, minute, 0);
|
var dateTime = new DateTime(year, month, day, hour, minute, 0);
|
||||||
// 转换为本地时间
|
// 转换为本地时间
|
||||||
var localDateTime = dateTime.ToLocalTime();
|
var localDateTime = dateTime.ToLocalTime();
|
||||||
|
|
||||||
var rateNumber = Convert.ToInt32(hexDatas[5]);
|
var rateNumber = Convert.ToInt32(hexData[5]);
|
||||||
var kwhTotal = hexDatas.Skip(5).Take(5).ToList();
|
var kwhTotal = hexData.Skip(5).Take(5).ToList();
|
||||||
var kwhList = new List<PositiveActiveEnergyItem>();
|
var kwhList = new List<PositiveActiveEnergyItem>();
|
||||||
var index = 11;
|
var index = 11;
|
||||||
for (int i = 0; i < rateNumber; i++)
|
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();
|
kwhHexList.Reverse();
|
||||||
var integerStr = $"{kwhHexList.Take(0)}{kwhHexList.Take(1)}{kwhHexList.Take(2)}";
|
var integerStr = $"{kwhHexList.Take(0)}{kwhHexList.Take(1)}{kwhHexList.Take(2)}";
|
||||||
var decimalValStr = $"{kwhHexList[3]}{kwhHexList[4]}";
|
var decimalValStr = $"{kwhHexList[3]}{kwhHexList[4]}";
|
||||||
@ -280,19 +279,19 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public virtual void AnalyzeDailyFrozenReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
public virtual void AnalyzeDailyFrozenReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
||||||
{
|
{
|
||||||
var hexDatas = GetHexDatas(messageReceived.MessageHexString);
|
var hexData = GetHexData(messageReceived.MessageHexString);
|
||||||
//附录A.20 日月年
|
//附录A.20 日月年
|
||||||
var td_dHex = hexDatas.Take(3).ToList();
|
var td_dHex = hexData.Take(3).ToList();
|
||||||
//附录A.15 分时日月年
|
//附录A.15 分时日月年
|
||||||
var readingTimeHex = hexDatas.Skip(3).Take(5).ToList();
|
var readingTimeHex = hexData.Skip(3).Take(5).ToList();
|
||||||
var rateNumberHex = hexDatas.Skip(8).Take(1).FirstOrDefault().HexToDec();
|
var rateNumberHex = hexData.Skip(8).Take(1).FirstOrDefault().HexToDec();
|
||||||
|
|
||||||
var datas = new List<decimal>();
|
var datas = new List<decimal>();
|
||||||
//附录A.14 kWh 5字节
|
//附录A.14 kWh 5字节
|
||||||
for (int i = 0; i < rateNumberHex; i++)
|
for (int i = 0; i < rateNumberHex; i++)
|
||||||
{
|
{
|
||||||
var skipCount = 9 + i * 5;
|
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]);
|
var data = AnalyzeDataAccordingToA14(dataHexs[0], dataHexs[1], dataHexs[2], dataHexs[3], dataHexs[4]);
|
||||||
datas.Add(data);
|
datas.Add(data);
|
||||||
}
|
}
|
||||||
@ -344,83 +343,83 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
/// <returns></returns>//F25ReadingAnalyze
|
/// <returns></returns>//F25ReadingAnalyze
|
||||||
public virtual Analyze3761Data AnalyzeF25ReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
public virtual Analyze3761Data AnalyzeF25ReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
||||||
{
|
{
|
||||||
var hexDatas = GetHexDatas(messageReceived.MessageHexString);
|
var hexData = GetHexData(messageReceived.MessageHexString);
|
||||||
//A.15 分时日月年
|
//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]);
|
var readingTime = AnalyzeDataAccordingToA15(readingTimeHex[0], readingTimeHex[1], readingTimeHex[2], readingTimeHex[3], readingTimeHex[4]);
|
||||||
|
|
||||||
//A.9 kW
|
//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 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 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 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 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 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 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 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]);
|
var crntReactivePowerOfC = AnalyzeDataAccordingToA09(crntReactivePowerOfCHexs[0], crntReactivePowerOfCHexs[1], crntReactivePowerOfCHexs[2]);
|
||||||
|
|
||||||
//A.5 %
|
//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 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 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 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]);
|
var crntPowerFactorOfC = AnalyzeDataAccordingToA05(crntPowerFactorOfCHexs[0], crntPowerFactorOfCHexs[1]);
|
||||||
|
|
||||||
//A.7 V
|
//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 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 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]);
|
var crntVoltageOfC = AnalyzeDataAccordingToA07(crntVoltageOfCHexs[0], crntVoltageOfCHexs[1]);
|
||||||
|
|
||||||
//A.25 A
|
//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 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 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 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]);
|
var crntZeroSequenceCurrent = AnalyzeDataAccordingToA25(crntZeroSequenceCurrentHexs[0], crntZeroSequenceCurrentHexs[1], crntZeroSequenceCurrentHexs[2]);
|
||||||
|
|
||||||
//A.9 kVA
|
//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 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 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 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]);
|
var crntApparentPowerOfC = AnalyzeDataAccordingToA09(crntApparentPowerOfCHexs[0], crntApparentPowerOfCHexs[1], crntApparentPowerOfCHexs[2]);
|
||||||
|
|
||||||
return new Analyze3761Data()
|
return new Analyze3761Data()
|
||||||
@ -497,17 +496,17 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
/// <returns></returns>//TerminalVersionInfoAnalyze
|
/// <returns></returns>//TerminalVersionInfoAnalyze
|
||||||
public virtual Analyze3761Data AnalyzeTerminalVersionInfoReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
public virtual Analyze3761Data AnalyzeTerminalVersionInfoReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? 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 makerNo = string.Join("",hexData.Take(4).Select(s => (char)s.HexToDec()));//厂商代码
|
||||||
var deviceNo = string.Join("", hexDatas.Skip((int)TerminalVersionInfoEnum.DeviceNo).Take(8).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("", hexDatas.Skip((int)TerminalVersionInfoEnum.SoftwareVersionNo).Take(4).Select(s => (char)s.HexToDec()));//软件版本号
|
var softwareVersionNo = string.Join("", hexData.Skip((int)TerminalVersionInfoEnum.SoftwareVersionNo).Take(4).Select(s => (char)s.HexToDec()));//软件版本号
|
||||||
var softwareReleaseDateList = hexDatas.Skip((int)TerminalVersionInfoEnum.SoftwareReleaseDate).Take(3).ToList();
|
var softwareReleaseDateList = hexData.Skip((int)TerminalVersionInfoEnum.SoftwareReleaseDate).Take(3).ToList();
|
||||||
var softwareReleaseDate = $"20{AnalyzeDataAccordingToA20(softwareReleaseDateList[0], softwareReleaseDateList[1], softwareReleaseDateList[2])}";//软件发布日期
|
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 capacityInformationCode = string.Join("", hexData.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 protocolVersionNo = string.Join("", hexData.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 hardwareVersionNo = string.Join("", hexData.Skip((int)TerminalVersionInfoEnum.HardwareVersionNo).Take(4).Select(s => (char)s.HexToDec()));//硬件版本号
|
||||||
var hardwareReleaseDateList = hexDatas.Skip((int)TerminalVersionInfoEnum.HardwareReleaseDate).Take(3).ToList();
|
var hardwareReleaseDateList = hexData.Skip((int)TerminalVersionInfoEnum.HardwareReleaseDate).Take(3).ToList();
|
||||||
var hardwareReleaseDate = $"20{AnalyzeDataAccordingToA20(hardwareReleaseDateList[0], hardwareReleaseDateList[1], hardwareReleaseDateList[2])}";//软件发布日期
|
var hardwareReleaseDate = $"20{AnalyzeDataAccordingToA20(hardwareReleaseDateList[0], hardwareReleaseDateList[1], hardwareReleaseDateList[2])}";//软件发布日期
|
||||||
|
|
||||||
return new Analyze3761Data()
|
return new Analyze3761Data()
|
||||||
@ -548,24 +547,24 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public virtual Analyze3761Data AnalyzeATypeOfDataItems49ReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
public virtual Analyze3761Data AnalyzeATypeOfDataItems49ReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? 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 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 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 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 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 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]);
|
var ic = AnalyzeDataAccordingToA05(icList[0], icList[1]);
|
||||||
|
|
||||||
return new Analyze3761Data()
|
return new Analyze3761Data()
|
||||||
@ -573,15 +572,15 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
AFN = 12,
|
AFN = 12,
|
||||||
FN = 49,
|
FN = 49,
|
||||||
Text = "相位角",
|
Text = "相位角",
|
||||||
DataUpChilds = new List<Analyze3761DataUpChild>()
|
DataUpChilds =
|
||||||
{
|
[
|
||||||
new Analyze3761DataUpChild(1,"UabUa相位角",uabUa.ToString(),1),
|
new Analyze3761DataUpChild(1, "UabUa相位角", uabUa.ToString(), 1),
|
||||||
new Analyze3761DataUpChild(2,"Ub相位角",ub.ToString(),2),
|
new Analyze3761DataUpChild(2, "Ub相位角", ub.ToString(), 2),
|
||||||
new Analyze3761DataUpChild(3,"UcbUc相位角",ucbUc.ToString(),3),
|
new Analyze3761DataUpChild(3, "UcbUc相位角", ucbUc.ToString(), 3),
|
||||||
new Analyze3761DataUpChild(4,"Ia相位角",ia.ToString(),4),
|
new Analyze3761DataUpChild(4, "Ia相位角", ia.ToString(), 4),
|
||||||
new Analyze3761DataUpChild(5,"Ib相位角",ib.ToString(),5),
|
new Analyze3761DataUpChild(5, "Ib相位角", ib.ToString(), 5),
|
||||||
new Analyze3761DataUpChild(6,"Ic相位角",ic.ToString(),6),
|
new Analyze3761DataUpChild(6, "Ic相位角", ic.ToString(), 6)
|
||||||
}
|
]
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -593,7 +592,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
|
|
||||||
public virtual void AnalyzeTerminalTimeReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
public virtual void AnalyzeTerminalTimeReadingDataAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
||||||
{
|
{
|
||||||
var hexDatas = GetHexDatas(messageReceived.MessageHexString);
|
var hexDatas = GetHexData(messageReceived.MessageHexString);
|
||||||
var time = Appendix.Appendix_A1(hexDatas.Take(6).ToList());
|
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);
|
var tb3761Fn = tb3761.FnList.FirstOrDefault(it => it.Fn == fn);
|
||||||
if (tb3761Fn == null) return null;
|
if (tb3761Fn == null) return null;
|
||||||
|
|
||||||
var hexDatas = (List<string>)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data);
|
var analyzeValue = (List<string>)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data);
|
||||||
|
|
||||||
var m = 0;
|
var m = 0;
|
||||||
var rateNumberUpSort = -1;
|
var rateNumberUpSort = -1;
|
||||||
var rateNumberUp = tb3761Fn.UpList.FirstOrDefault(it => it.Name.Contains("费率数M"));
|
var rateNumberUp = tb3761Fn.UpList.FirstOrDefault(it => it.Name.Contains("费率数M"));
|
||||||
if (rateNumberUp != null)
|
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);
|
m = Convert.ToInt32(rateNumber);
|
||||||
rateNumberUpSort = rateNumberUp.Sort;
|
rateNumberUpSort = rateNumberUp.Sort;
|
||||||
}
|
}
|
||||||
@ -640,7 +639,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
dataIndex = sum1 + sum2;
|
dataIndex = sum1 + sum2;
|
||||||
}
|
}
|
||||||
|
|
||||||
var value = AnalyzeDataAccordingDataType(hexDatas, dataIndex, up.DataCount, up.DataType);
|
var value = AnalyzeDataAccordingDataType(analyzeValue, dataIndex, up.DataCount, up.DataType);
|
||||||
if (value != null)
|
if (value != null)
|
||||||
{
|
{
|
||||||
up.Value = value.ToString();
|
up.Value = value.ToString();
|
||||||
@ -652,7 +651,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
{
|
{
|
||||||
for (var j = 0; j < repeatCount; j++)
|
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)
|
if (val != null)
|
||||||
{
|
{
|
||||||
upChild.Name = string.Format(upChild.Name, j + 1);
|
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);
|
var tb3761Fn = tb3761.FnList.FirstOrDefault(it => it.Fn == fn);
|
||||||
if (tb3761Fn == null) return null;
|
if (tb3761Fn == null) return null;
|
||||||
|
|
||||||
var hexDatas = (List<string>)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data);
|
var analyzeValue = (List<string>)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data);
|
||||||
|
|
||||||
foreach (var up in tb3761Fn.UpList)
|
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)
|
if (value != null)
|
||||||
{
|
{
|
||||||
up.Value = value.ToString();
|
up.Value = value.ToString();
|
||||||
@ -705,7 +704,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
{
|
{
|
||||||
for (var j = 0; j < repeatCount; j++)
|
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)
|
if (val != null)
|
||||||
{
|
{
|
||||||
upChild.Value = val.ToString();
|
upChild.Value = val.ToString();
|
||||||
@ -741,9 +740,9 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
private object? AnalyzeDataAccordingDataType(List<string> hexDatas, int dataIndex,int dataCount,string dataType)
|
private object? AnalyzeDataAccordingDataType(List<string> 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;
|
object? value = null;
|
||||||
switch (dataType)
|
switch (dataType)
|
||||||
{
|
{
|
||||||
@ -771,11 +770,11 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
case "A15":
|
case "A15":
|
||||||
if (valueList.Count == 5)
|
if (valueList.Count == 5)
|
||||||
{
|
{
|
||||||
//var minutes = Convert.ToInt32(hexDatas[0]); // 获取当前分钟数
|
//var minutes = Convert.ToInt32(analyzeValue[0]); // 获取当前分钟数
|
||||||
//var hours = Convert.ToInt32(hexDatas[1]); // 获取当前小时数
|
//var hours = Convert.ToInt32(analyzeValue[1]); // 获取当前小时数
|
||||||
//var day = Convert.ToInt32(hexDatas[2]); // 获取当前日期的日数
|
//var day = Convert.ToInt32(analyzeValue[2]); // 获取当前日期的日数
|
||||||
//var month = Convert.ToInt32(hexDatas[3]); // 获取当前月份
|
//var month = Convert.ToInt32(analyzeValue[3]); // 获取当前月份
|
||||||
//var year = Convert.ToInt32(hexDatas[4]); // 获取当前日期的年份
|
//var year = Convert.ToInt32(analyzeValue[4]); // 获取当前日期的年份
|
||||||
value = AnalyzeDataAccordingToA15(valueList[0], valueList[1], valueList[2], valueList[3], valueList[4]);
|
value = AnalyzeDataAccordingToA15(valueList[0], valueList[1], valueList[2], valueList[3], valueList[4]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -801,7 +800,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public virtual async Task AnalyzeTransparentForwardingAnswerAsync(MessageReceived messageReceivedEvent, Action<byte[]>? sendAction = null)
|
public virtual async Task AnalyzeTransparentForwardingAnswerAsync(MessageReceived messageReceivedEvent, Action<byte[]>? sendAction = null)
|
||||||
{
|
{
|
||||||
var hexDatas = GetHexDatas(messageReceivedEvent.MessageHexString);
|
var hexDatas = GetHexData(messageReceivedEvent.MessageHexString);
|
||||||
|
|
||||||
var port = hexDatas[0].HexToDec();
|
var port = hexDatas[0].HexToDec();
|
||||||
|
|
||||||
@ -828,7 +827,7 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public virtual async Task AnalyzeTransparentForwardingAnswerResultAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
public virtual async Task AnalyzeTransparentForwardingAnswerResultAsync(MessageReceived messageReceived, Action<byte[]>? sendAction = null)
|
||||||
{
|
{
|
||||||
var hexDatas = GetHexDatas(messageReceived.MessageHexString);
|
var hexDatas = GetHexData(messageReceived.MessageHexString);
|
||||||
|
|
||||||
var port = hexDatas[0].HexToDec();
|
var port = hexDatas[0].HexToDec();
|
||||||
|
|
||||||
@ -844,25 +843,25 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="messageHexString"></param>
|
/// <param name="messageHexString"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static List<string> GetHexDatas(string messageHexString)
|
public static List<string> GetHexData(string messageHexString)
|
||||||
{
|
{
|
||||||
var hexStringList = messageHexString.StringToPairs();
|
var hexStringList = messageHexString.StringToPairs();
|
||||||
var hexDatas = (List<string>)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data);
|
var analyzeValue = (List<string>)hexStringList.GetAnalyzeValue(CommandChunkEnum.Data);
|
||||||
return hexDatas;
|
return analyzeValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 解析时间标签
|
/// 解析时间标签
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="hexDatas"></param>
|
/// <param name="hexData"></param>
|
||||||
public void AnalysisTp(List<string> hexDatas)
|
public void AnalysisTp(List<string> hexData)
|
||||||
{
|
{
|
||||||
var pFC = hexDatas[0].HexToDec();//启动帧帧序号计数器
|
var pFC = hexData[0].HexToDec();//启动帧帧序号计数器
|
||||||
var seconds = Convert.ToInt32(hexDatas[1]); // 获取当前秒数
|
var seconds = Convert.ToInt32(hexData[1]); // 获取当前秒数
|
||||||
var minutes = Convert.ToInt32(hexDatas[2]); // 获取当前分钟数
|
var minutes = Convert.ToInt32(hexData[2]); // 获取当前分钟数
|
||||||
var hours = Convert.ToInt32(hexDatas[3]); // 获取当前小时数
|
var hours = Convert.ToInt32(hexData[3]); // 获取当前小时数
|
||||||
var day = Convert.ToInt32(hexDatas[4]); // 获取当前日期的日数
|
var day = Convert.ToInt32(hexData[4]); // 获取当前日期的日数
|
||||||
var delayTime = hexDatas[5].HexToDec();//延迟时间 min
|
var delayTime = hexData[5].HexToDec();//延迟时间 min
|
||||||
}
|
}
|
||||||
|
|
||||||
#region 报文指定的数据格式
|
#region 报文指定的数据格式
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user