解析
This commit is contained in:
parent
d9c54677a9
commit
c39b0b7889
@ -381,15 +381,16 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
||||
/// <summary>
|
||||
/// 数据格式05
|
||||
/// </summary>
|
||||
/// <param name="hex1"></param>
|
||||
/// <param name="hex2"></param>
|
||||
private decimal AnalysisA05(string hex1,string hex2)
|
||||
/// <param name="singleDigitNumberAndDeciles">个位和十分位</param>
|
||||
/// <param name="hundredDigitNumbersAndTenDigitNumber">百位和十位</param>
|
||||
/// <returns></returns>
|
||||
private decimal AnalysisA05(string singleDigitNumberAndDeciles, string hundredDigitNumbersAndTenDigitNumber)
|
||||
{
|
||||
var bin1 = hex1.HexToBin().PadLeft(8, '0');
|
||||
var bin1 = hundredDigitNumbersAndTenDigitNumber.HexToBin().PadLeft(8, '0');
|
||||
var hundredDigitNumbers = bin1.Substring(1, 3).BinToDec();//百位
|
||||
var tenDigitNumber = bin1.Substring(4).BinToDec();//十位
|
||||
|
||||
var bin2 = hex2.HexToBin().PadLeft(8,'0');
|
||||
var bin2 = singleDigitNumberAndDeciles.HexToBin().PadLeft(8,'0');
|
||||
var singleDigitNumber = bin1.Substring(0, 4).BinToDec();//个位
|
||||
var deciles = bin1.Substring(4).BinToDec();//十分位
|
||||
|
||||
@ -400,35 +401,37 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
||||
/// <summary>
|
||||
/// 数据格式07
|
||||
/// </summary>
|
||||
/// <param name="hex1"></param>
|
||||
/// <param name="hex2"></param>
|
||||
private decimal AnalysisA07(string hex1, string hex2)
|
||||
/// <param name="singleDigitNumberAndDeciles">个位、十分位</param>
|
||||
/// <param name="hundredDigitNumbersAndTenDigitNumber">百位、十位</param>
|
||||
/// <returns></returns>
|
||||
private decimal AnalysisA07(string singleDigitNumberAndDeciles,string hundredDigitNumbersAndTenDigitNumber)
|
||||
{
|
||||
var bin1 = hex1.HexToBin().PadLeft(8, '0');
|
||||
var tenDigitNumber = bin1.Substring(1, 3).BinToDec();//十位
|
||||
var singleDigitNumber = bin1.Substring(4).BinToDec();//个位
|
||||
var bin1 = hundredDigitNumbersAndTenDigitNumber.HexToBin().PadLeft(8, '0');
|
||||
var hundredDigitNumbers = bin1.Substring(1, 3).BinToDec();//百位
|
||||
var tenDigitNumber = bin1.Substring(4).BinToDec();//十位
|
||||
|
||||
var bin2 = hex2.HexToBin().PadLeft(8, '0');
|
||||
var deciles = bin1.Substring(0, 4).BinToDec();//十分位
|
||||
var percentile = bin1.Substring(4).BinToDec();//百分位
|
||||
var bin2 = singleDigitNumberAndDeciles.HexToBin().PadLeft(8, '0');
|
||||
var singleDigitNumber = bin2.Substring(0, 4).BinToDec();//个位
|
||||
var deciles = bin2.Substring(4).BinToDec();//十分位
|
||||
|
||||
var value = decimal.Parse($"{tenDigitNumber}{singleDigitNumber}.{deciles}{percentile}");
|
||||
var value = decimal.Parse($"{hundredDigitNumbers}{tenDigitNumber}{singleDigitNumber}.{deciles}");
|
||||
return value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 数据格式09
|
||||
/// </summary>
|
||||
/// <param name="hex1"></param>
|
||||
/// <param name="hex2"></param>
|
||||
/// <param name="hex3"></param>
|
||||
private decimal AnalysisA09(string hex1, string hex2, string tenAndSingleDigit)
|
||||
/// <param name="thousandthPercentileAndTenThousandPositions">千分位和万分位</param>
|
||||
/// <param name="decilesAndPercentile">十分位和百分位</param>
|
||||
/// <param name="tenAndSingleDigit">十位和个位</param>
|
||||
/// <returns></returns>
|
||||
private decimal AnalysisA09(string thousandthPercentileAndTenThousandPositions, string decilesAndPercentile, string tenAndSingleDigit)
|
||||
{
|
||||
var bin3 = tenAndSingleDigit.HexToBin().PadLeft(8, '0');
|
||||
var tenDigitNumber = bin3.Substring(1, 3).BinToDec();//十位
|
||||
var singleDigitNumber = bin3.Substring(4).BinToDec();//个位
|
||||
|
||||
var value = decimal.Parse($"{tenDigitNumber}{singleDigitNumber}.{hex2}{hex1}");
|
||||
var value = decimal.Parse($"{tenDigitNumber}{singleDigitNumber}.{decilesAndPercentile}{thousandthPercentileAndTenThousandPositions}");
|
||||
return value;
|
||||
|
||||
//var bin3 = hex3.HexToBin().PadLeft(8, '0');
|
||||
@ -445,41 +448,19 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
||||
/// <summary>
|
||||
/// 数据格式12 TODO:待优化
|
||||
/// </summary>
|
||||
/// <param name="hex1"></param>
|
||||
/// <param name="hex2"></param>
|
||||
/// <param name="hex3"></param>
|
||||
/// <param name="hex4"></param>
|
||||
/// <param name="hex5"></param>
|
||||
/// <param name="hex6"></param>
|
||||
/// <param name="tenDigitNumberAndSingleDigitNumber">十位 个位</param>
|
||||
/// <param name="hundredsOfPositionAndThousandOfPosition">千位 百位</param>
|
||||
/// <param name="hundredThousandOfPositionAndTenThousandOfPosition">十万位 万位</param>
|
||||
/// <param name="millionsOfPositionAndMillionOfPosition">千万位 百万位</param>
|
||||
/// <param name="billionOfPositionAndHundredMillionOfPosition">十亿位 亿位</param>
|
||||
/// <param name="hundredBillionsOfPositionAndBillionsOfPosition">千亿位 百亿位</param>
|
||||
/// <returns></returns>
|
||||
private string AnalysisA12(string hex1, string hex2, string hex3, string hex4, string hex5, string hex6)
|
||||
private string AnalysisA12(string tenDigitNumberAndSingleDigitNumber, string hundredsOfPositionAndThousandOfPosition, string hundredThousandOfPositionAndTenThousandOfPosition,
|
||||
string millionsOfPositionAndMillionOfPosition, string billionOfPositionAndHundredMillionOfPosition, string hundredBillionsOfPositionAndBillionsOfPosition)
|
||||
{
|
||||
var bin1 = hex1.HexToBin().PadLeft(8, '0'); ;
|
||||
var hundredBillionsOfPosition = bin1.Substring(0, 4).BinToDec();//千亿位
|
||||
var billionsOfPosition = bin1.Substring(4).BinToDec();//百亿位
|
||||
|
||||
var bin2 = hex2.HexToBin().PadLeft(8, '0'); ;
|
||||
var billionOfPosition = bin2.Substring(0, 4).BinToDec();//十亿位
|
||||
var hundredMillionOfPosition = bin2.Substring(4).BinToDec();//亿位
|
||||
|
||||
var bin3 = hex3.HexToBin().PadLeft(8, '0'); ;
|
||||
var millionsOfPosition = bin3.Substring(0, 4).BinToDec();//千万位
|
||||
var millionOfPosition = bin3.Substring(4).BinToDec();//百万位
|
||||
|
||||
var bin4 = hex4.HexToBin().PadLeft(8, '0'); ;
|
||||
var hundredThousandOfPosition = bin4.Substring(0, 4).BinToDec();//十万位
|
||||
var tenThousandOfPosition = bin4.Substring(4).BinToDec();//万位
|
||||
|
||||
var bin5 = hex5.HexToBin().PadLeft(8, '0'); ;
|
||||
var thousandOfPosition = bin5.Substring(0, 4).BinToDec();//千位
|
||||
var hundredsOfPosition = bin5.Substring(4).BinToDec();//百位
|
||||
|
||||
var bin6 = hex6.HexToBin().PadLeft(8, '0');
|
||||
var tenDigitNumber = bin6.Substring(0, 4).BinToDec();//十位
|
||||
var singleDigitNumber = bin6.Substring(4).BinToDec();//个位
|
||||
|
||||
var value = $"{hundredBillionsOfPosition}{billionsOfPosition}{billionOfPosition}{hundredMillionOfPosition}{millionsOfPosition}" +
|
||||
$"{hundredThousandOfPosition}{tenThousandOfPosition}{thousandOfPosition}{hundredsOfPosition}{tenDigitNumber}{singleDigitNumber}";
|
||||
var value = $"{hundredBillionsOfPositionAndBillionsOfPosition}{billionOfPositionAndHundredMillionOfPosition}{millionsOfPositionAndMillionOfPosition}" +
|
||||
$"{hundredThousandOfPositionAndTenThousandOfPosition}{hundredsOfPositionAndThousandOfPosition}{tenDigitNumberAndSingleDigitNumber}";
|
||||
|
||||
return value;
|
||||
}
|
||||
@ -487,36 +468,18 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
||||
/// <summary>
|
||||
/// 数据格式14
|
||||
/// </summary>
|
||||
/// <param name="hex1"></param>
|
||||
/// <param name="hex2"></param>
|
||||
/// <param name="hex3"></param>
|
||||
/// <param name="hex4"></param>
|
||||
/// <param name="hex5"></param>
|
||||
/// <param name="tenThousandPositionsAndThousandthPercentile">千分,万分</param>
|
||||
/// <param name="decilesAndPercentile">十分、百分</param>
|
||||
/// <param name="tenDigitNumberAndSingleDigitNumber">十位、个位</param>
|
||||
/// <param name="thousandOfPositionAndHundredsOfPosition">千位、百位</param>
|
||||
/// <param name="hundredThousandOfPositionAndTenThousandOfPosition">十万位、万位</param>
|
||||
/// <returns></returns>
|
||||
private decimal AnalysisA14(string hex1, string hex2, string hex3, string hex4, string hex5)
|
||||
private decimal AnalysisA14(string tenThousandPositionsAndThousandthPercentile, string decilesAndPercentile,
|
||||
string tenDigitNumberAndSingleDigitNumber, string thousandOfPositionAndHundredsOfPosition, string hundredThousandOfPositionAndTenThousandOfPosition)
|
||||
{
|
||||
var bin1 = hex1.HexToBin().PadLeft(8, '0');
|
||||
var hundredThousandOfPosition = bin1.Substring(0, 4).BinToDec();//十万位
|
||||
var tenThousandOfPosition = bin1.Substring(4).BinToDec();//万位
|
||||
|
||||
var bin2 = hex2.HexToBin().PadLeft(8, '0');
|
||||
var thousandOfPosition = bin2.Substring(0, 4).BinToDec();//千位
|
||||
var hundredsOfPosition = bin2.Substring(4).BinToDec();//百位
|
||||
|
||||
var bin3 = hex3.HexToBin().PadLeft(8, '0');
|
||||
var tenDigitNumber = bin3.Substring(0, 4).BinToDec();//十位
|
||||
var singleDigitNumber = bin3.Substring(4).BinToDec();//个位
|
||||
|
||||
var bin4 = hex4.HexToBin().PadLeft(8, '0');
|
||||
var deciles = bin4.Substring(0, 4).BinToDec();//十分位
|
||||
var percentile = bin4.Substring(4).BinToDec();//百分位
|
||||
|
||||
var bin5 = hex5.HexToBin().PadLeft(8, '0');
|
||||
var thousandthPercentile = bin5.Substring(0, 4).BinToDec();//千分位
|
||||
var tenThousandPositions = bin5.Substring(4).BinToDec();//万分位
|
||||
|
||||
var value = decimal.Parse($"{hundredThousandOfPosition}{tenThousandOfPosition}{thousandOfPosition}{hundredsOfPosition}" +
|
||||
$"{tenDigitNumber}{singleDigitNumber}.{deciles}{percentile}{thousandthPercentile}{tenThousandPositions}");
|
||||
var value = decimal.Parse($"{hundredThousandOfPositionAndTenThousandOfPosition}{thousandOfPositionAndHundredsOfPosition}" +
|
||||
$"{tenDigitNumberAndSingleDigitNumber}.{decilesAndPercentile}{tenThousandPositionsAndThousandthPercentile}");
|
||||
|
||||
return value;
|
||||
}
|
||||
@ -524,16 +487,16 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
||||
/// <summary>
|
||||
/// 数据格式A.15
|
||||
/// </summary>
|
||||
/// <param name="hex1"></param>
|
||||
/// <param name="hex2"></param>
|
||||
/// <param name="hex3"></param>
|
||||
/// <param name="hex4"></param>
|
||||
/// <param name="hex5"></param>
|
||||
/// <param name="minuteHex"></param>
|
||||
/// <param name="hourHex"></param>
|
||||
/// <param name="dayHex"></param>
|
||||
/// <param name="monthHex"></param>
|
||||
/// <param name="yearHex"></param>
|
||||
/// <returns></returns>
|
||||
private DateTime AnalysisA15(string hex1, string hex2, string hex3, string hex4, string hex5)
|
||||
private DateTime AnalysisA15(string minuteHex, string hourHex, string dayHex, string monthHex, string yearHex)
|
||||
{
|
||||
var centuryString = (DateTime.Now.Year / 100).ToString();
|
||||
var time = DateTime.Parse($"{centuryString}{hex5}-{hex4}-{hex3} {hex2}:{hex1}:00");
|
||||
var time = DateTime.Parse($"{centuryString}{yearHex}-{monthHex}-{dayHex} {hourHex}:{minuteHex}:00");
|
||||
return time;
|
||||
//正常转换方式
|
||||
//var bin1 = hex1.HexToBin().PadLeft(8, '0');
|
||||
@ -558,43 +521,56 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
|
||||
//var singleDigitNumberOfYear = bin5.Substring(4).BinToDec();//个位
|
||||
}
|
||||
|
||||
private void AnalysisA20(string hex1, string hex2, string hex3)
|
||||
|
||||
/// <summary>
|
||||
/// 数据格式20
|
||||
/// </summary>
|
||||
/// <param name="dayHex"></param>
|
||||
/// <param name="monthHex"></param>
|
||||
/// <param name="yearHex"></param>
|
||||
/// <returns></returns>
|
||||
private DateTime AnalysisA20(string dayHex, string monthHex, string yearHex)
|
||||
{
|
||||
var bin1 = hex1.HexToBin().PadLeft(8, '0');
|
||||
var tenDigitNumberOfYear = bin1.Substring(0, 4).BinToDec();//十位
|
||||
var singleDigitNumberOfYear = bin1.Substring(4).BinToDec();//个位
|
||||
var centuryString = (DateTime.Now.Year / 100).ToString();
|
||||
var time = DateTime.Parse($"{centuryString}{yearHex}-{monthHex}-{dayHex}");
|
||||
return time;
|
||||
|
||||
var bin2 = hex2.HexToBin().PadLeft(8, '0');
|
||||
var tenDigitNumberOfMonth = bin2.Substring(0, 4).BinToDec();//十位
|
||||
var singleDigitNumberOfMonth = bin2.Substring(4).BinToDec();//个位
|
||||
//var bin1 = hex1.HexToBin().PadLeft(8, '0');
|
||||
//var tenDigitNumberOfYear = bin1.Substring(0, 4).BinToDec();//十位
|
||||
//var singleDigitNumberOfYear = bin1.Substring(4).BinToDec();//个位
|
||||
|
||||
var bin3 = hex3.HexToBin().PadLeft(8, '0');
|
||||
var tenDigitNumberOfDay = bin3.Substring(0, 4).BinToDec();//十位
|
||||
var singleDigitNumberOfDay = bin3.Substring(4).BinToDec();//个位
|
||||
//var bin2 = hex2.HexToBin().PadLeft(8, '0');
|
||||
//var tenDigitNumberOfMonth = bin2.Substring(0, 4).BinToDec();//十位
|
||||
//var singleDigitNumberOfMonth = bin2.Substring(4).BinToDec();//个位
|
||||
|
||||
//var bin3 = hex3.HexToBin().PadLeft(8, '0');
|
||||
//var tenDigitNumberOfDay = bin3.Substring(0, 4).BinToDec();//十位
|
||||
//var singleDigitNumberOfDay = bin3.Substring(4).BinToDec();//个位
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 数据格式25
|
||||
/// </summary>
|
||||
/// <param name="hex1"></param>
|
||||
/// <param name="hex2"></param>
|
||||
/// <param name="hex3"></param>
|
||||
private decimal AnalysisA25(string hex1, string hex2, string hex3)
|
||||
/// <param name="percentileAndThousandthPercentile">百分、千分位</param>
|
||||
/// <param name="singleDigitNumberAndDeciles">个位、十分位</param>
|
||||
/// <param name="hundredDigitNumbersAndTenDigitNumber">百位、十位</param>
|
||||
/// <returns></returns>
|
||||
|
||||
private decimal AnalysisA25(string percentileAndThousandthPercentile,string singleDigitNumberAndDeciles, string hundredDigitNumbersAndTenDigitNumber)
|
||||
{
|
||||
var bin1 = hex1.HexToBin().PadLeft(8, '0');
|
||||
var bin1 = hundredDigitNumbersAndTenDigitNumber.HexToBin().PadLeft(8, '0');
|
||||
var hundredDigitNumbers = bin1.Substring(1, 3).BinToDec();//百位
|
||||
var tenDigitNumber = bin1.Substring(4).BinToDec();//十位
|
||||
|
||||
var bin2 = hex2.HexToBin().PadLeft(8, '0');
|
||||
var singleDigitNumber = bin1.Substring(0, 4).BinToDec();//个位
|
||||
var bin2 = singleDigitNumberAndDeciles.HexToBin().PadLeft(8, '0');
|
||||
var singleDigitNumber = bin2.Substring(0, 4).BinToDec();//个位
|
||||
var deciles = bin1.Substring(4).BinToDec();//十分位
|
||||
|
||||
var bin3 = hex3.HexToBin().PadLeft(8, '0');
|
||||
var percentile = bin3.Substring(0,4).BinToDec();//百分位
|
||||
var thousandthPercentile = bin3.Substring(4).BinToDec();//千分位
|
||||
|
||||
var value = decimal.Parse($"{hundredDigitNumbers}{tenDigitNumber}{singleDigitNumber}.{deciles}{percentile}{thousandthPercentile}");
|
||||
var value = decimal.Parse($"{hundredDigitNumbers}{tenDigitNumber}{singleDigitNumber}.{deciles}{percentileAndThousandthPercentile}");
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user