diff --git a/modules/JiShe.CollectBus.Kafka/Consumer/ConsumerService.cs b/modules/JiShe.CollectBus.Kafka/Consumer/ConsumerService.cs
index fc853e9..98e3166 100644
--- a/modules/JiShe.CollectBus.Kafka/Consumer/ConsumerService.cs
+++ b/modules/JiShe.CollectBus.Kafka/Consumer/ConsumerService.cs
@@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Kafka.Consumer
///
/// 消费完或者无数据时的延迟时间
///
- private TimeSpan DelayTime => TimeSpan.FromMilliseconds(100);
+ private static TimeSpan DelayTime => TimeSpan.FromMilliseconds(100);
private readonly KafkaOptionConfig _kafkaOptionConfig;
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_00H/AFN0_F1_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_00H/AFN0_F1_Analysis.cs
index 63ab925..da469d7 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_00H/AFN0_F1_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_00H/AFN0_F1_Analysis.cs
@@ -8,7 +8,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_00H
///
/// 5.1.3.1 F1:全部确认:对收到报文中的全部数据单元标识进行确认
///
- public class AFN0_F1_Analysis: IAnalysisStrategy>
+ public class AFN0_F1_Analysis: IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -17,26 +17,28 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_00H
_logger = logger;
}
- public Task> ExecuteAsync(TB3761 tB3761)
+ public Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
- ArgumentNullException.ThrowIfNull(nameof(tB3761));
+ ArgumentNullException.ThrowIfNull(input);
+ ArgumentNullException.ThrowIfNull(input.A.Code);
UnitDataAnalysis dto = new UnitDataAnalysis
{
- Code = tB3761.A.Code,
- AFN = tB3761.AFN_FC.AFN,
- Fn = tB3761.DT.Fn,
- Pn = tB3761.DA.Pn,
- Data= true
+ Code = input.A.Code,
+ AFN = input.AFN_FC.AFN,
+ Fn = input.DT.Fn,
+ Pn = input.DA.Pn,
+ Data = true
};
- return Task.FromResult(dto);
+ result?.Invoke(dto);
+ return Task.FromResult(true);
}
catch (Exception ex)
{
- _logger.LogError(ex, $"00_1解析失败:{tB3761.A.Code}-{tB3761.DT.Fn}-{tB3761.BaseHexMessage.HexMessageString},{ex.Message}");
- return null;
+ _logger.LogError(ex, $"00_1解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
}
+ return Task.FromResult(false);
}
}
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_00H/AFN0_F2_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_00H/AFN0_F2_Analysis.cs
index 5ae0b45..d067b0c 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_00H/AFN0_F2_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_00H/AFN0_F2_Analysis.cs
@@ -8,7 +8,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_00H
///
/// 5.1.3.2 F2:全部否认
///
- public class AFN0_F2_Analysis : IAnalysisStrategy>
+ public class AFN0_F2_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -16,26 +16,30 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_00H
{
_logger = logger;
}
- public Task> ExecuteAsync(TB3761 input)
+ public Task ExecuteAsync(TB3761 tB3761, Action? result = null)
{
try
{
- ArgumentNullException.ThrowIfNull(input);
+ ArgumentNullException.ThrowIfNull(tB3761);
+ ArgumentNullException.ThrowIfNull(tB3761.A.Code);
UnitDataAnalysis dto = new UnitDataAnalysis
{
- Code = input.A.Code,
- AFN = input.AFN_FC.AFN,
- Fn = input.DT.Fn,
- Pn = input.DA.Pn,
+ Code = tB3761.A.Code,
+ AFN = tB3761.AFN_FC.AFN,
+ Fn = tB3761.DT.Fn,
+ Pn = tB3761.DA.Pn,
Data = false,
};
- return Task.FromResult(dto);
+ result?.Invoke(dto);
+ return Task.FromResult(true);
}
catch (Exception ex)
{
- _logger.LogError(ex, $"00_2解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
+ _logger.LogError(ex, $"00_2解析失败:{tB3761.A.Code}-{tB3761.DT.Fn}-{tB3761.BaseHexMessage.HexMessageString},{ex.Message}");
return null;
}
}
+
+
}
}
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_02H/AFN2_F1_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_02H/AFN2_F1_Analysis.cs
new file mode 100644
index 0000000..16143fc
--- /dev/null
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_02H/AFN2_F1_Analysis.cs
@@ -0,0 +1,132 @@
+using JiShe.CollectBus.Protocol.Dto;
+using JiShe.CollectBus.Protocol.Interfaces;
+using JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_00H;
+using JiShe.CollectBus.Protocol3761;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
+{
+ ///
+ /// 5.3.3.1 F1:登录
+ ///
+ public class AFN2_F1_Analysis : IAnalysisStrategy
+ {
+ private readonly ILogger _logger;
+
+ public AFN2_F1_Analysis(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ public Task ExecuteAsync(TB3761 input, Action? result = null)
+ {
+ try
+ {
+ ArgumentNullException.ThrowIfNull(input);
+ ArgumentNullException.ThrowIfNull(input.A.Code);
+ UnitDataAnalysis dto = new UnitDataAnalysis
+ {
+ Code = input.A.Code,
+ AFN = input.AFN_FC.AFN,
+ Fn = input.DT.Fn,
+ Pn = input.DA.Pn,
+ Data = $"登录帧"
+ };
+ result?.Invoke(dto);
+ return Task.FromResult(true);
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, $"02_1解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
+ }
+ return Task.FromResult(false);
+ }
+
+
+ //public Task ExecuteAsync(TB3761 input, Action? callback = null) where TResult : UnitDataAnalysis
+ //{
+ // try
+ // {
+ // ArgumentNullException.ThrowIfNull(input);
+ // ArgumentNullException.ThrowIfNull(input.A.Code);
+ // UnitDataAnalysis dto = new UnitDataAnalysis
+ // {
+ // Code = input.A.Code,
+ // AFN = input.AFN_FC.AFN,
+ // Fn = input.DT.Fn,
+ // Pn = input.DA.Pn,
+ // Data = $"登录帧"
+ // };
+ // callback?.Invoke(dto);
+ // return Task.FromResult(dto);
+ // }
+ // catch (Exception ex)
+ // {
+ // _logger.LogError(ex, $"02_1解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
+ // return null;
+ // }
+ //}
+
+ //public Task> ExecuteAsync(TB3761 input, Action>? callback = null)
+ //{
+ // try
+ // {
+ // ArgumentNullException.ThrowIfNull(input);
+ // ArgumentNullException.ThrowIfNull(input.A.Code);
+ // UnitDataAnalysis dto = new UnitDataAnalysis
+ // {
+ // Code = input.A.Code,
+ // AFN = input.AFN_FC.AFN,
+ // Fn = input.DT.Fn,
+ // Pn = input.DA.Pn,
+ // Data = $"登录帧"
+ // };
+ // callback?.Invoke(dto);
+ // return Task.FromResult(dto);
+ // }
+ // catch (Exception ex)
+ // {
+ // _logger.LogError(ex, $"02_1解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
+ // return null;
+ // }
+ //}
+
+ //public Task ExecuteAsync(TB3761 input, Action? callback = null)
+ //{
+ // try
+ // {
+ // ArgumentNullException.ThrowIfNull(input);
+ // ArgumentNullException.ThrowIfNull(input.A.Code);
+ // var dto = Activator.CreateInstance();
+ // dto.Code = input.A.Code;
+ // dto.AFN = input.AFN_FC.AFN;
+ // dto.Fn = input.DT.Fn;
+ // dto.Pn = input.DA.Pn;
+ // dto.Data = "登录帧";
+ // //UnitDataAnalysis dto = new UnitDataAnalysis
+ // //{
+ // // Code = input.A.Code,
+ // // AFN = input.AFN_FC.AFN,
+ // // Fn = input.DT.Fn,
+ // // Pn = input.DA.Pn,
+ // // Data = $"登录帧"
+ // //};
+ // callback?.Invoke(dto);
+ // return Task.FromResult(dto);
+ // }
+ // catch (Exception ex)
+ // {
+ // _logger.LogError(ex, $"02_1解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
+ // return null;
+ // }
+ //}
+
+
+
+ }
+}
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_02H/AFN2_F2_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_02H/AFN2_F2_Analysis.cs
new file mode 100644
index 0000000..b8622c2
--- /dev/null
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_02H/AFN2_F2_Analysis.cs
@@ -0,0 +1,49 @@
+using JiShe.CollectBus.Protocol.Dto;
+using JiShe.CollectBus.Protocol.Interfaces;
+using JiShe.CollectBus.Protocol3761;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
+{
+ ///
+ /// 5.3.3.2 F2:退出登录
+ ///
+ public class AFN2_F2_Analysis : IAnalysisStrategy
+ {
+ private readonly ILogger _logger;
+
+ public AFN2_F2_Analysis(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ public Task ExecuteAsync(TB3761 tB3761, Action? result = null)
+ {
+ try
+ {
+ ArgumentNullException.ThrowIfNull(tB3761);
+ ArgumentNullException.ThrowIfNull(tB3761.A.Code);
+ UnitDataAnalysis dto = new UnitDataAnalysis
+ {
+ Code = tB3761.A.Code,
+ AFN = tB3761.AFN_FC.AFN,
+ Fn = tB3761.DT.Fn,
+ Pn = tB3761.DA.Pn,
+ Data = $"退出登录帧"
+ };
+ result?.Invoke(dto);
+ return Task.FromResult(true);
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, $"02_2解析失败:{tB3761.A.Code}-{tB3761.DT.Fn}-{tB3761.BaseHexMessage.HexMessageString},{ex.Message}");
+ }
+ return Task.FromResult(false);
+ }
+ }
+}
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_02H/AFN2_F3_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_02H/AFN2_F3_Analysis.cs
new file mode 100644
index 0000000..0303fd0
--- /dev/null
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_02H/AFN2_F3_Analysis.cs
@@ -0,0 +1,49 @@
+using JiShe.CollectBus.Protocol.Dto;
+using JiShe.CollectBus.Protocol.Interfaces;
+using JiShe.CollectBus.Protocol3761;
+using Microsoft.Extensions.Logging;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_02H
+{
+ ///
+ /// 5.3.3.3 F3:心跳
+ ///
+ public class AFN2_F3_Analysis : IAnalysisStrategy
+ {
+ private readonly ILogger _logger;
+
+ public AFN2_F3_Analysis(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ public Task ExecuteAsync(TB3761 input, Action? result = null)
+ {
+ try
+ {
+ ArgumentNullException.ThrowIfNull(input);
+ ArgumentNullException.ThrowIfNull(input.A.Code);
+ UnitDataAnalysis dto = new UnitDataAnalysis
+ {
+ Code = input.A.Code,
+ AFN = input.AFN_FC.AFN,
+ Fn = input.DT.Fn,
+ Pn = input.DA.Pn,
+ Data = $"心跳帧"
+ };
+ result?.Invoke(dto);
+ return Task.FromResult(true);
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, $"02_1解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
+ }
+ return Task.FromResult(false);
+ }
+ }
+}
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_09H/AFN9_F1_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_09H/AFN9_F1_Analysis.cs
index fd93dab..6ae65c5 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_09H/AFN9_F1_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_09H/AFN9_F1_Analysis.cs
@@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.AnalysisData.AFN_09H
///
/// 5.9.1.2 F1:终端版本信息
///
- public class AFN9_F1_Analysis : IAnalysisStrategy>
+ public class AFN9_F1_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -20,7 +20,7 @@ namespace JiShe.CollectBus.Protocol.AnalysisData.AFN_09H
_logger = logger;
}
- public Task> ExecuteAsync(TB3761 input)
+ public Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -31,19 +31,20 @@ namespace JiShe.CollectBus.Protocol.AnalysisData.AFN_09H
data.Address = input.A.Code?.Substring(4, 5);
UnitDataAnalysis dto = new UnitDataAnalysis
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
- Data= data
+ Data = data
};
- return Task.FromResult(dto);
+ result?.Invoke(dto);
+ return Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"09_1解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
- return null;
}
+ return Task.FromResult(false);
}
private AFN9_F1_AnalysisDto AnalysisDataUnit(List hexMessageList)
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_09H/AFN9_F9_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_09H/AFN9_F9_Analysis.cs
index 5d7f9f7..12e6e5c 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_09H/AFN9_F9_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_09H/AFN9_F9_Analysis.cs
@@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_09H
///
/// 5.9.2.4.9 F9:远程通信模块版本信息(只读解析SIM卡号)
///
- public class AFN9_F9_Analysis : IAnalysisStrategy>
+ public class AFN9_F9_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -19,7 +19,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_09H
_logger = logger;
}
- public Task> ExecuteAsync(TB3761 input)
+ public Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -27,19 +27,20 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_09H
ArgumentNullException.ThrowIfNull(input.UnitData.HexMessageList);
UnitDataAnalysis dto = new UnitDataAnalysis
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = Encoding.ASCII.GetString(string.Join("", input.UnitData.HexMessageList.Skip(30).Take(20).ToList()).HexToByte()).Replace("\0", "") //SIM卡
};
- return Task.FromResult(dto);
+ result?.Invoke(dto);
+ return Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"00_1解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
- return null;
}
+ return Task.FromResult(false);
}
}
}
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F10_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F10_Analysis.cs
index b6d190f..2b46c79 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F10_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F10_Analysis.cs
@@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
///
/// 5.10.1.3.1 F10:终端电能表/交流采样装置配置参数
///
- internal class AFN10_F10_Analysis : IAnalysisStrategy>
+ internal class AFN10_F10_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -18,8 +18,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
{
_logger = logger;
}
-
- public Task> ExecuteAsync(TB3761 input)
+ public Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -28,27 +27,26 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
Tuple> tuple = AFN10F10EntityAnalysis(input.UnitData.HexMessageList);
UnitDataAnalysis dto = new UnitDataAnalysis
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
- Data=new AFN10_F10_AnalysisDto()
+ Data = new AFN10_F10_AnalysisDto()
{
AFN10F10Entitys = tuple.Item2,
ConfigNum = tuple.Item1
}
};
- return Task.FromResult(dto);
+ result?.Invoke(dto);
+ return Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0A_10解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
- return null;
}
+ return Task.FromResult(false);
}
-
-
public Tuple> AFN10F10EntityAnalysis(List hexMessageList)
{
List> meterList = new List>();
@@ -154,5 +152,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
}
return "其他协议";
}
+
+
}
}
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F66_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F66_Analysis.cs
index c197509..b56a5a0 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F66_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F66_Analysis.cs
@@ -2,6 +2,7 @@
using JiShe.CollectBus.Protocol.Contracts.Protocol.Dto;
using JiShe.CollectBus.Protocol.Dto;
using JiShe.CollectBus.Protocol.Interfaces;
+using JiShe.CollectBus.Protocol.T37612012.Appendix;
using JiShe.CollectBus.Protocol3761;
using Microsoft.Extensions.Logging;
@@ -10,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
///
/// 5.5.1.3.53 F66:定时上报 2 类数据任务设置
///
- public class AFN10_F66_Analysis : IAnalysisStrategy>
+ public class AFN10_F66_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext;
@@ -21,7 +22,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
_analysisStrategyContext= analysisStrategyContext;
}
- public async Task> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -31,19 +32,20 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
data.Pn = input.DA.Pn;
UnitDataAnalysis dto = new UnitDataAnalysis
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
- Data= data
+ Data = data
};
- return await Task.FromResult(dto);
+ result?.Invoke(dto);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0A_66解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
- return null;
}
+ return await Task.FromResult(false);
}
public async Task GenerateFinalResult(List hexMessageList)
@@ -58,11 +60,14 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
//TODO:发送基准时间
var arrBaseTime = hexMessageList.GetRange(5, 6);
- var baseTimeArrStr = await _analysisStrategyContext.ExecuteAsync, string>("Appendix_A1", arrBaseTime);
- var baseTimeArr= baseTimeArrStr.Split('_');
- //entity.BaseTime = DateTime.Parse($"{DateTime.Now.Year.ToString().Substring(0, 2)}{arrBaseTime[0]}-{arrBaseTime[1]}-{arrBaseTime[2]} {arrBaseTime[3]}:{arrBaseTime[4]}:{arrBaseTime[5]}");
-
- entity.BaseTime = Convert.ToDateTime(baseTimeArr[0]);
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A1), arrBaseTime, (value) =>
+ {
+ var baseTimeArrStr = (string)value;
+ var baseTimeArr = baseTimeArrStr.Split('_');
+ //entity.BaseTime = DateTime.Parse($"{DateTime.Now.Year.ToString().Substring(0, 2)}{arrBaseTime[0]}-{arrBaseTime[1]}-{arrBaseTime[2]} {arrBaseTime[3]}:{arrBaseTime[4]}:{arrBaseTime[5]}");
+ entity.BaseTime = Convert.ToDateTime(baseTimeArr[0]);
+ });
+
entity.CurveRatio = hexMessageList[11].HexToDec();
var count = hexMessageList[12].HexToDec();
var dataArr = hexMessageList.GetRange(13, 4 * count);
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F68_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F68_Analysis.cs
index f9358e2..4977486 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F68_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0AH/AFN10_F68_Analysis.cs
@@ -8,7 +8,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
///
/// 5.5.1.3.55 F68:定时上报 2 类数据任务启动/停止设置
///
- public class AFN10_F68_Analysis : IAnalysisStrategy>
+ public class AFN10_F68_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -16,7 +16,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
{
_logger = logger;
}
- public Task> ExecuteAsync(TB3761 input)
+
+ public Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -24,20 +25,20 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
ArgumentNullException.ThrowIfNull(input.UnitData.HexMessageList);
UnitDataAnalysis dto = new UnitDataAnalysis
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = input.UnitData.HexMessageList[4].Equals("55")
};
-
- return Task.FromResult(dto);
+ result?.Invoke(dto);
+ return Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0A_68解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
- return null;
}
+ return Task.FromResult(false);
}
}
}
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F129_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F129_Analysis.cs
index 248317d..1b06191 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F129_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F129_Analysis.cs
@@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
///
/// 5.12.2.4.85 F129:当前正向有功电能示值(总、费率1~M)
///
- public class AFN12_F129_Analysis : IAnalysisStrategy>>
+ public class AFN12_F129_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext;
@@ -24,7 +24,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
_dbProvider= dbProvider;
}
- public async Task>> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -43,14 +43,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
List datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
List list = GenerateFinalResult(2, datas, "正向有功电能示值", input.AFN_FC.AFN, input.DT.Fn);
unitDataAnalysis.Data= list;
-
- return await Task.FromResult(unitDataAnalysis);
+ result?.Invoke(unitDataAnalysis);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_129解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
- return null;
+
}
+ return await Task.FromResult(false);
}
#region 单元数据值解析
@@ -72,8 +73,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
values.Add(errorCode.Item1);
else
{
- var value = await _analysisStrategyContext.ExecuteAsync, decimal>(nameof(Appendix_A14), arr); //从第10个开始,每加5个字节为下一个值的开始
- values.Add(value.ToString());
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A14), arr, (value) =>
+ {
+ values.Add(value.ToString());
+ }); //从第10个开始,每加5个字节为下一个值的开始
}
}
return values;
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F130_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F130_Analysis.cs
index 009e9d2..e0355b1 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F130_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F130_Analysis.cs
@@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
///
/// 5.12.2.4.86 F130:当前正向无功(组合无功 1)电能示值(总、费率 1~M)
///
- public class AFN12_F130_Analysis : IAnalysisStrategy>>
+ public class AFN12_F130_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -22,7 +22,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
_analysisStrategyContext = analysisStrategyContext;
}
- public async Task>> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -32,20 +32,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
List list = GenerateFinalResult(2, datas, "正向无功电能示值", input.AFN_FC.AFN, input.DT.Fn);
UnitDataAnalysis> unitDataAnalysis = new UnitDataAnalysis>
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = list
};
-
- return await Task.FromResult(unitDataAnalysis);
+ result?.Invoke(unitDataAnalysis);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_130解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
- return null;
+
}
+ return await Task.FromResult(false);
}
private async Task> AnalysisDataUnitAsync(List hexMessageList)
@@ -62,8 +63,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
values.Add(errorCode.Item1);
else
{
- var value = await _analysisStrategyContext.ExecuteAsync, decimal>(nameof(Appendix_A11), arr); //从第10个开始,每加5个字节为下一个值的开始
- values.Add(value.ToString());
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A11), arr, (value) =>
+ {
+ values.Add(value.ToString());
+ }); //从第10个开始,每加5个字节为下一个值的开始
}
}
return values;
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F131_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F131_Analysis.cs
index 36492fb..949bc96 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F131_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F131_Analysis.cs
@@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
///
/// 5.12.2.4.87 F131:当前反向有功电能示值(总、费率 1~M)
///
- public class AFN12_F131_Analysis : IAnalysisStrategy>>
+ public class AFN12_F131_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext;
@@ -21,7 +21,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
_analysisStrategyContext = analysisStrategyContext;
}
- public async Task>> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -31,20 +31,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
List list = GenerateFinalResult(2, datas, "反向有功总电能示值", input.AFN_FC.AFN, input.DT.Fn);
UnitDataAnalysis> unitDataAnalysis = new UnitDataAnalysis>
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = list
};
-
- return await Task.FromResult(unitDataAnalysis);
+ result?.Invoke(unitDataAnalysis);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_131解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
- return null;
+
}
+ return await Task.FromResult(false);
}
@@ -62,8 +63,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
values.Add(errorCode.Item1);
else
{
- var value = await _analysisStrategyContext.ExecuteAsync, decimal>(nameof(Appendix_A14), arr); //从第10个开始,每加5个字节为下一个值的开始
- values.Add(value.ToString());
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A14), arr, (value) =>
+ {
+ values.Add(value.ToString());
+ }); //从第10个开始,每加5个字节为下一个值的开始
}
}
return values;
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F132_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F132_Analysis.cs
index 59a41fb..39bd082 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F132_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F132_Analysis.cs
@@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
///
/// 5.12.2.4.88 F132:当前反向无功(组合无功 2)电能示值(总、费率 1~M)
///
- public class AFN12_F132_Analysis : IAnalysisStrategy>>
+ public class AFN12_F132_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -23,7 +23,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
}
- public async Task>> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -39,14 +39,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
Pn = input.DA.Pn,
Data = list
};
-
- return await Task.FromResult(unitDataAnalysis);
+ result?.Invoke(unitDataAnalysis);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_132解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
- return null;
+
}
+ return await Task.FromResult(false);
}
private async Task> AnalysisDataUnitAsync(List hexMessageList)
@@ -63,8 +64,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
values.Add(errorCode.Item1);
else
{
- var value = await _analysisStrategyContext.ExecuteAsync, decimal>(nameof(Appendix_A11), arr); //从第10个开始,每加4个字节为下一个值的开始
- values.Add(value.ToString());
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A11), arr, (value) =>
+ {
+ values.Add(value.ToString());
+ }); //从第10个开始,每加5个字节为下一个值的开始
}
}
return values;
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F145_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F145_Analysis.cs
index ec72e1a..f4a15aa 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F145_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F145_Analysis.cs
@@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
///
/// 5.12.2.4.101 F145:当月正向有功最大需量及发生时间(总、费率 1~M)
///
- public class AFN12_F145_Analysis : IAnalysisStrategy>
+ public class AFN12_F145_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext;
@@ -23,7 +23,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
}
- public async Task> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -34,20 +34,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
data.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
UnitDataAnalysis unitDataAnalysis = new UnitDataAnalysis
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = data
};
-
- return await Task.FromResult(unitDataAnalysis);
+ result?.Invoke(unitDataAnalysis);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_145解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
- return null;
+
}
+ return await Task.FromResult(false);
}
@@ -65,8 +66,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
values.Add(errorCode.Item1);
else
{
- var value = await _analysisStrategyContext.ExecuteAsync, decimal>(nameof(Appendix_A23), arr);
- values.Add(value.ToString());//正向有功总最大需量
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A23), arr, (value) =>
+ {
+ values.Add(value.ToString());
+ }); //正向有功总最大需量
}
arr = hexMessageList.GetRange(10 + i * 7 + 3, 4);
@@ -75,8 +78,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
values.Add(errorCode.Item1);
else
{
- var value = await _analysisStrategyContext.ExecuteAsync, string>(nameof(Appendix_A17), arr);
- values.Add(value.ToString());//正向有功总最大需量发生时间
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A17), arr, (value) =>
+ {
+ values.Add(value.ToString());
+ });//正向有功总最大需量发生时间
}
}
return values;
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F149_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F149_Analysis.cs
index faf6c34..edab4e1 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F149_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F149_Analysis.cs
@@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
///
/// 5.12.2.4.105 F149:上月(上一结算日)正向有功最大需量及发生时间(总、费率 1~M)
///
- public class AFN12_F149_Analysis : IAnalysisStrategy>>
+ public class AFN12_F149_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -29,7 +29,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
}
- public async Task>> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -63,13 +63,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
DensityUnit = DensityUnit.Month
};
await _dataStorage.SaveDataToIotDbAsync(unitDataAnalysis);
- return await Task.FromResult(unitDataAnalysis);
+ result?.Invoke(unitDataAnalysis);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_149解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
- return null;
+
}
+ return await Task.FromResult(false);
}
private async Task> AnalysisDataUnit(List hexMessageList)
@@ -86,8 +88,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
values.Add(errorCode.Item1);
else
{
- var value = await _analysisStrategyContext.ExecuteAsync, decimal>(nameof(Appendix_A23), arr);
- values.Add(value.ToString());//正向有功总最大需量
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A23), arr, (value) =>
+ {
+ values.Add(value.ToString());
+ });//正向有功总最大需量
}
arr = hexMessageList.GetRange(13 + i * 7, 4);
@@ -97,8 +101,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
values.Add(errorCode.Item1);
else
{
- var value = await _analysisStrategyContext.ExecuteAsync, string>(nameof(Appendix_A17), arr);//正向有功总最大需量发生时间
- values.Add(value);//正向有功总最大需量
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A17), arr, (value) =>
+ {
+ values.Add(value.ToString());
+ });//正向有功总最大需量
}
}
return values;
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F188_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F188_Analysis.cs
index e3eaee7..7a11029 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F188_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F188_Analysis.cs
@@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
///
/// 水表抄读取
///
- public class AFN12_F188_Analysis : IAnalysisStrategy>
+ public class AFN12_F188_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -22,7 +22,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
_analysisStrategyContext = analysisStrategyContext;
}
- public async Task> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
@@ -35,19 +35,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
data.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
UnitDataAnalysis dto = new UnitDataAnalysis
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = data
};
- return await Task.FromResult(dto);
+ result?.Invoke(dto);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_188解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage?.HexMessageString},{ex.Message}");
- return null;
+
}
+ return await Task.FromResult(false);
}
public AFN12_F149_AnalysisDto GenerateFinalResult(List hexMessageList)
{
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F25_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F25_Analysis.cs
index 5b3cb9e..a6d8746 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F25_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F25_Analysis.cs
@@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
///
/// 5.12.2.4.22 F25:当前三相及总有/无功功率、功率因数,三相电压、电流、零序电流、视在功率
///
- public class AFN12_F25_Analysis : IAnalysisStrategy>>
+ public class AFN12_F25_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext;
@@ -24,7 +24,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
public List DataType { get; set; } = new List() { "YGGL", "YGGL_A", "YGGL_B", "YGGL_C", "WGGL", "WGGL_A", "WGGL_B", "WGGL_C", "GLYS", "GLYS_A", "GLYS_B", "GLYS_C", "DY_A", "DY_B", "DY_C", "DL_A", "DL_B", "DL_C", "LXDL", "SZGL", "SZGL_A", "SZGL_B", "SZGL_C" };
- public async Task>> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -55,20 +55,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
}
UnitDataAnalysis> unitDataAnalysis = new UnitDataAnalysis>
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = list
};
-
- return await Task.FromResult(unitDataAnalysis);
+ result?.Invoke(unitDataAnalysis);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_25解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
- return null;
+
}
+ return await Task.FromResult(false);
}
private async Task> AnalysisDataUnitAsync(List hexMessageList)
@@ -102,8 +103,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
values.Add(errorCode.Item1);
else
{
- var value = await _analysisStrategyContext.ExecuteAsync, decimal>(appendixName, arr);
- values.Add(value.ToString());
+ await _analysisStrategyContext.ExecuteAsync>(appendixName, arr, (value) =>
+ {
+ values.Add(value.ToString());
+ });
}
}
return values;
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F2_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F2_Analysis.cs
index 44c94a7..30d29df 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F2_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F2_Analysis.cs
@@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
///
/// 5.12.2.4.1 F2:终端日历时钟
///
- public class AFN12_F2_Analysis : IAnalysisStrategy>
+ public class AFN12_F2_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext;
@@ -22,7 +22,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
_analysisStrategyContext = analysisStrategyContext;
}
- public async Task> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
@@ -33,19 +33,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
data.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
UnitDataAnalysis dto = new UnitDataAnalysis
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = data
};
- return await Task.FromResult(dto);
+ result?.Invoke(dto);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_2解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
- return null;
+
}
+ return await Task.FromResult(false);
}
public async Task GenerateFinalResultAsync(List hexMessageList)
@@ -59,8 +61,12 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
dto.ErrorCodeMsg = errorCodeInfo.Item2;
}
else
- dto.DataValue = await _analysisStrategyContext.ExecuteAsync, string>(nameof(Appendix_A1), arr);
-
+ {
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A1), arr, (value) =>
+ {
+ dto.DataValue = value;
+ });
+ }
dto.FiledName = "TerminalTime";
dto.FiledDesc = "召读终端时间";
return await Task.FromResult(dto);
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F33_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F33_Analysis.cs
index 50bcfd8..5d07321 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F33_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F33_Analysis.cs
@@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
///
/// 5.12.2.4.30 F33:当前正向有/无功电能示值、一/四象限无功电能示值(总、费率 1~M,1≤M≤12)
///
- public class AFN12_F33_Analysis : IAnalysisStrategy>
+ public class AFN12_F33_Analysis : IAnalysisStrategy
{
private List DataUnitHexList { get; set; }=new List();
private readonly ILogger _logger;
@@ -23,7 +23,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
}
- public async Task> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -35,20 +35,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
GetDataUnitHexString(input.UnitData.HexMessageList, rationgCount);
UnitDataAnalysis unitDataAnalysis = new UnitDataAnalysis
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = await AnalysisDataUnit(input.UnitData.HexMessageList, rationgCount)
};
-
- return await Task.FromResult(unitDataAnalysis);
+ result?.Invoke(unitDataAnalysis);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_33解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
- return null;
+
}
+ return await Task.FromResult(false);
}
#region 获取当前正向有/无功电能示值数据单元格式 private void GetDataUnitHexString(int rationgCount)
@@ -83,8 +84,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
private async Task GetDataAsync(int ratingCount, int startIndex, int len, string appendxName)
{
ParentNodes parent = new ParentNodes();
- var value = await _analysisStrategyContext.ExecuteAsync, decimal>(appendxName, DataUnitHexList.GetRange(startIndex, len));
- parent.Total_Value = value;
+ var arr = DataUnitHexList.GetRange(startIndex, len);
+ await _analysisStrategyContext.ExecuteAsync>(appendxName, arr, (value) =>
+ {
+ parent.Total_Value = value;
+ });
parent.childNodes = await GetChildDataAsync(ratingCount, startIndex, len, appendxName);
return parent;
}
@@ -102,11 +106,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
List children = new List();
for (int i = 0; i < RatingCount; i++)
{
- ChildNodes model = new ChildNodes()
+ var arr = DataUnitHexList.GetRange((i * len) + (startIndex + len), len);
+ await _analysisStrategyContext.ExecuteAsync>(appendxName, arr, (value) =>
{
- Value = await _analysisStrategyContext.ExecuteAsync, decimal>(appendxName, DataUnitHexList.GetRange((i * len) + (startIndex + len), len)) //29,4 33,4 37,4 41,4
- };
- children.Add(model);
+ ChildNodes model = new ChildNodes()
+ {
+ Value = value //29,4 33,4 37,4 41,4
+ };
+ children.Add(model);
+ });
}
return children;
}
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F49_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F49_Analysis.cs
index 3e6f45a..259da95 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F49_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0CH/AFN12_F49_Analysis.cs
@@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
///
/// 5.12.2.4.46 F49:当前电压、电流相位角
///
- public class AFN12_F49_Analysis : IAnalysisStrategy>>
+ public class AFN12_F49_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext;
@@ -24,7 +24,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
public List DataType { get; set; } = new List() { "Uab_Ua", "Ub", "Ucb_Uc", "Ia", "Ib", "Ic" };
- public async Task>> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -54,20 +54,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
}
UnitDataAnalysis> unitDataAnalysis = new UnitDataAnalysis>
{
- Code = input.A.Code,
+ Code = input.A.Code!,
AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data= list
};
-
- return await Task.FromResult(unitDataAnalysis);
+ result?.Invoke(unitDataAnalysis);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_49解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
- return null;
+
}
+ return await Task.FromResult(false);
}
private async Task> AnalysisDataUnitAsync(List hexMessageList)
{
@@ -80,8 +81,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
values.Add(errorCode.Item1);
else
{
- var value= await _analysisStrategyContext.ExecuteAsync,decimal>(nameof(Appendix_A5), arr);
- values.Add(value.ToString());
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A5), arr, (value) =>
+ {
+ values.Add(value.ToString());
+ });
}
}
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F100_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F100_Analysis.cs
index 80af3c8..1629600 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F100_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F100_Analysis.cs
@@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
///
/// 5.13.2.4.78 F100:测量点反向无功总电能量曲线
///
- public class AFN13_F100_Analysis : IAnalysisStrategy>>>
+ public class AFN13_F100_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
- public async Task>>> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -70,12 +70,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync(unitDataAnalysis);
- return await Task.FromResult(unitDataAnalysis);
+ result?.Invoke(unitDataAnalysis);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0D_100解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
- return null;
+ return await Task.FromResult(false);
}
}
@@ -92,8 +93,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1);
else
{
- var value = await _analysisStrategyContext.ExecuteAsync, decimal>(nameof(Appendix_A13), arr);
- values.Add(value.ToString());
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A13), arr, (value) =>
+ {
+ values.Add(value.ToString());
+ });
}
}
return values;
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F101_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F101_Analysis.cs
index 4a81d20..e55ed8b 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F101_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F101_Analysis.cs
@@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
///
/// 5.13.2.4.79 F101:测量点正向有功总电能示值曲线
///
- public class AFN13_F101_Analysis : IAnalysisStrategy>>>
+ public class AFN13_F101_Analysis : IAnalysisStrategy
{
private readonly ILogger _logger;
@@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_analysisStrategyContext = analysisStrategyContext;
_dataStorage = dataStorage;
}
- public async Task>>> ExecuteAsync(TB3761 input)
+ public async Task ExecuteAsync(TB3761 input, Action? result = null)
{
try
{
@@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync(unitDataAnalysis);
- return await Task.FromResult(unitDataAnalysis);
+ result?.Invoke(unitDataAnalysis);
+ return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0D_101解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
- return null;
+ return await Task.FromResult(false);
}
}
@@ -89,8 +90,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1);
else
{
- var value = await _analysisStrategyContext.ExecuteAsync, decimal>(nameof(Appendix_A11), arr);
- values.Add(value.ToString());
+ await _analysisStrategyContext.ExecuteAsync>(nameof(Appendix_A11), arr, (value) =>
+ {
+ values.Add(value.ToString());
+ });
}
}
return values;
diff --git a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F102_Analysis.cs b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F102_Analysis.cs
index 7f9d101..f30893b 100644
--- a/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F102_Analysis.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T37612012/AnalysisData/AFN_0DH/AFN13_F102_Analysis.cs
@@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
///