协议解析优化

策略模式回调采用Action方式灵活处理
This commit is contained in:
zenghongyao 2025-04-29 09:16:48 +08:00
parent 31edca94fb
commit 4f1814b8df
119 changed files with 1348 additions and 659 deletions

View File

@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Kafka.Consumer
/// <summary> /// <summary>
/// 消费完或者无数据时的延迟时间 /// 消费完或者无数据时的延迟时间
/// </summary> /// </summary>
private TimeSpan DelayTime => TimeSpan.FromMilliseconds(100); private static TimeSpan DelayTime => TimeSpan.FromMilliseconds(100);
private readonly KafkaOptionConfig _kafkaOptionConfig; private readonly KafkaOptionConfig _kafkaOptionConfig;

View File

@ -8,7 +8,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_00H
/// <summary> /// <summary>
/// 5.1.3.1 F1全部确认对收到报文中的全部数据单元标识进行确认 /// 5.1.3.1 F1全部确认对收到报文中的全部数据单元标识进行确认
/// </summary> /// </summary>
public class AFN0_F1_Analysis: IAnalysisStrategy<TB3761, UnitDataAnalysis<bool>> public class AFN0_F1_Analysis: IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN0_F1_Analysis> _logger; private readonly ILogger<AFN0_F1_Analysis> _logger;
@ -17,26 +17,28 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_00H
_logger = logger; _logger = logger;
} }
public Task<UnitDataAnalysis<bool>> ExecuteAsync(TB3761 tB3761) public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
ArgumentNullException.ThrowIfNull(nameof(tB3761)); ArgumentNullException.ThrowIfNull(input);
ArgumentNullException.ThrowIfNull(input.A.Code);
UnitDataAnalysis<bool> dto = new UnitDataAnalysis<bool> UnitDataAnalysis<bool> dto = new UnitDataAnalysis<bool>
{ {
Code = tB3761.A.Code, Code = input.A.Code,
AFN = tB3761.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = tB3761.DT.Fn, Fn = input.DT.Fn,
Pn = tB3761.DA.Pn, Pn = input.DA.Pn,
Data= true Data = true
}; };
return Task.FromResult(dto); result?.Invoke(dto);
return Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"00_1解析失败:{tB3761.A.Code}-{tB3761.DT.Fn}-{tB3761.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"00_1解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null;
} }
return Task.FromResult(false);
} }
} }

View File

@ -8,7 +8,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_00H
/// <summary> /// <summary>
/// 5.1.3.2 F2全部否认 /// 5.1.3.2 F2全部否认
/// </summary> /// </summary>
public class AFN0_F2_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<bool>> public class AFN0_F2_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN0_F2_Analysis> _logger; private readonly ILogger<AFN0_F2_Analysis> _logger;
@ -16,26 +16,30 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_00H
{ {
_logger = logger; _logger = logger;
} }
public Task<UnitDataAnalysis<bool>> ExecuteAsync(TB3761 input) public Task<bool> ExecuteAsync(TB3761 tB3761, Action<dynamic>? result = null)
{ {
try try
{ {
ArgumentNullException.ThrowIfNull(input); ArgumentNullException.ThrowIfNull(tB3761);
ArgumentNullException.ThrowIfNull(tB3761.A.Code);
UnitDataAnalysis<bool> dto = new UnitDataAnalysis<bool> UnitDataAnalysis<bool> dto = new UnitDataAnalysis<bool>
{ {
Code = input.A.Code, Code = tB3761.A.Code,
AFN = input.AFN_FC.AFN, AFN = tB3761.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = tB3761.DT.Fn,
Pn = input.DA.Pn, Pn = tB3761.DA.Pn,
Data = false, Data = false,
}; };
return Task.FromResult(dto); result?.Invoke(dto);
return Task.FromResult(true);
} }
catch (Exception ex) 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; return null;
} }
} }
} }
} }

View File

@ -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
{
/// <summary>
/// 5.3.3.1 F1登录
/// </summary>
public class AFN2_F1_Analysis : IAnalysisStrategy<TB3761>
{
private readonly ILogger<AFN2_F1_Analysis> _logger;
public AFN2_F1_Analysis(ILogger<AFN2_F1_Analysis> logger)
{
_logger = logger;
}
public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
ArgumentNullException.ThrowIfNull(input);
ArgumentNullException.ThrowIfNull(input.A.Code);
UnitDataAnalysis<string> dto = new UnitDataAnalysis<string>
{
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<TResult>(TB3761 input, Action<TResult>? callback = null) where TResult : UnitDataAnalysis<TResult>
//{
// try
// {
// ArgumentNullException.ThrowIfNull(input);
// ArgumentNullException.ThrowIfNull(input.A.Code);
// UnitDataAnalysis<string> dto = new UnitDataAnalysis<string>
// {
// 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<UnitDataAnalysis<string>> ExecuteAsync(TB3761 input, Action<UnitDataAnalysis<string>>? callback = null)
//{
// try
// {
// ArgumentNullException.ThrowIfNull(input);
// ArgumentNullException.ThrowIfNull(input.A.Code);
// UnitDataAnalysis<string> dto = new UnitDataAnalysis<string>
// {
// 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<TResult>(TB3761 input, Action<TResult>? callback = null)
//{
// try
// {
// ArgumentNullException.ThrowIfNull(input);
// ArgumentNullException.ThrowIfNull(input.A.Code);
// var dto = Activator.CreateInstance<TResult>();
// dto.Code = input.A.Code;
// dto.AFN = input.AFN_FC.AFN;
// dto.Fn = input.DT.Fn;
// dto.Pn = input.DA.Pn;
// dto.Data = "登录帧";
// //UnitDataAnalysis<string> dto = new UnitDataAnalysis<string>
// //{
// // 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;
// }
//}
}
}

View File

@ -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
{
/// <summary>
/// 5.3.3.2 F2退出登录
/// </summary>
public class AFN2_F2_Analysis : IAnalysisStrategy<TB3761>
{
private readonly ILogger<AFN2_F2_Analysis> _logger;
public AFN2_F2_Analysis(ILogger<AFN2_F2_Analysis> logger)
{
_logger = logger;
}
public Task<bool> ExecuteAsync(TB3761 tB3761, Action<dynamic>? result = null)
{
try
{
ArgumentNullException.ThrowIfNull(tB3761);
ArgumentNullException.ThrowIfNull(tB3761.A.Code);
UnitDataAnalysis<string> dto = new UnitDataAnalysis<string>
{
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);
}
}
}

View File

@ -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
{
/// <summary>
/// 5.3.3.3 F3心跳
/// </summary>
public class AFN2_F3_Analysis : IAnalysisStrategy<TB3761>
{
private readonly ILogger<AFN2_F3_Analysis> _logger;
public AFN2_F3_Analysis(ILogger<AFN2_F3_Analysis> logger)
{
_logger = logger;
}
public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
ArgumentNullException.ThrowIfNull(input);
ArgumentNullException.ThrowIfNull(input.A.Code);
UnitDataAnalysis<string> dto = new UnitDataAnalysis<string>
{
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);
}
}
}

View File

@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.AnalysisData.AFN_09H
/// <summary> /// <summary>
/// 5.9.1.2 F1:终端版本信息 /// 5.9.1.2 F1:终端版本信息
/// </summary> /// </summary>
public class AFN9_F1_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<AFN9_F1_AnalysisDto>> public class AFN9_F1_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN9_F1_Analysis> _logger; private readonly ILogger<AFN9_F1_Analysis> _logger;
@ -20,7 +20,7 @@ namespace JiShe.CollectBus.Protocol.AnalysisData.AFN_09H
_logger = logger; _logger = logger;
} }
public Task<UnitDataAnalysis<AFN9_F1_AnalysisDto>> ExecuteAsync(TB3761 input) public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -31,19 +31,20 @@ namespace JiShe.CollectBus.Protocol.AnalysisData.AFN_09H
data.Address = input.A.Code?.Substring(4, 5); data.Address = input.A.Code?.Substring(4, 5);
UnitDataAnalysis<AFN9_F1_AnalysisDto> dto = new UnitDataAnalysis<AFN9_F1_AnalysisDto> UnitDataAnalysis<AFN9_F1_AnalysisDto> dto = new UnitDataAnalysis<AFN9_F1_AnalysisDto>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data= data Data = data
}; };
return Task.FromResult(dto); result?.Invoke(dto);
return Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"09_1解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}"); _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<string> hexMessageList) private AFN9_F1_AnalysisDto AnalysisDataUnit(List<string> hexMessageList)

View File

@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_09H
/// <summary> /// <summary>
/// 5.9.2.4.9 F9远程通信模块版本信息(只读解析SIM卡号) /// 5.9.2.4.9 F9远程通信模块版本信息(只读解析SIM卡号)
/// </summary> /// </summary>
public class AFN9_F9_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<string>> public class AFN9_F9_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN9_F9_Analysis> _logger; private readonly ILogger<AFN9_F9_Analysis> _logger;
@ -19,7 +19,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_09H
_logger = logger; _logger = logger;
} }
public Task<UnitDataAnalysis<string>> ExecuteAsync(TB3761 input) public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -27,19 +27,20 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_09H
ArgumentNullException.ThrowIfNull(input.UnitData.HexMessageList); ArgumentNullException.ThrowIfNull(input.UnitData.HexMessageList);
UnitDataAnalysis<string> dto = new UnitDataAnalysis<string> UnitDataAnalysis<string> dto = new UnitDataAnalysis<string>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = Encoding.ASCII.GetString(string.Join("", input.UnitData.HexMessageList.Skip(30).Take(20).ToList()).HexToByte()).Replace("\0", "") //SIM卡 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) catch (Exception ex)
{ {
_logger.LogError(ex, $"00_1解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"00_1解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
return null;
} }
return Task.FromResult(false);
} }
} }
} }

View File

@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
/// <summary> /// <summary>
/// 5.10.1.3.1 F10终端电能表/交流采样装置配置参数 /// 5.10.1.3.1 F10终端电能表/交流采样装置配置参数
/// </summary> /// </summary>
internal class AFN10_F10_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<AFN10_F10_AnalysisDto>> internal class AFN10_F10_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN10_F10_Analysis> _logger; private readonly ILogger<AFN10_F10_Analysis> _logger;
@ -18,8 +18,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
{ {
_logger = logger; _logger = logger;
} }
public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
public Task<UnitDataAnalysis<AFN10_F10_AnalysisDto>> ExecuteAsync(TB3761 input)
{ {
try try
{ {
@ -28,27 +27,26 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
Tuple<int, List<AFN10F10Entity>> tuple = AFN10F10EntityAnalysis(input.UnitData.HexMessageList); Tuple<int, List<AFN10F10Entity>> tuple = AFN10F10EntityAnalysis(input.UnitData.HexMessageList);
UnitDataAnalysis<AFN10_F10_AnalysisDto> dto = new UnitDataAnalysis<AFN10_F10_AnalysisDto> UnitDataAnalysis<AFN10_F10_AnalysisDto> dto = new UnitDataAnalysis<AFN10_F10_AnalysisDto>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data=new AFN10_F10_AnalysisDto() Data = new AFN10_F10_AnalysisDto()
{ {
AFN10F10Entitys = tuple.Item2, AFN10F10Entitys = tuple.Item2,
ConfigNum = tuple.Item1 ConfigNum = tuple.Item1
} }
}; };
return Task.FromResult(dto); result?.Invoke(dto);
return Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0A_10解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}"); _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<int, List<AFN10F10Entity>> AFN10F10EntityAnalysis(List<string> hexMessageList) public Tuple<int, List<AFN10F10Entity>> AFN10F10EntityAnalysis(List<string> hexMessageList)
{ {
List<Dictionary<string, string>> meterList = new List<Dictionary<string, string>>(); List<Dictionary<string, string>> meterList = new List<Dictionary<string, string>>();
@ -154,5 +152,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
} }
return "其他协议"; return "其他协议";
} }
} }
} }

View File

@ -2,6 +2,7 @@
using JiShe.CollectBus.Protocol.Contracts.Protocol.Dto; using JiShe.CollectBus.Protocol.Contracts.Protocol.Dto;
using JiShe.CollectBus.Protocol.Dto; using JiShe.CollectBus.Protocol.Dto;
using JiShe.CollectBus.Protocol.Interfaces; using JiShe.CollectBus.Protocol.Interfaces;
using JiShe.CollectBus.Protocol.T37612012.Appendix;
using JiShe.CollectBus.Protocol3761; using JiShe.CollectBus.Protocol3761;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@ -10,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
/// <summary> /// <summary>
/// 5.5.1.3.53 F66定时上报 2 类数据任务设置 /// 5.5.1.3.53 F66定时上报 2 类数据任务设置
/// </summary> /// </summary>
public class AFN10_F66_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<AFN10_F66_AnalysisDto>> public class AFN10_F66_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN10_F66_Analysis> _logger; private readonly ILogger<AFN10_F66_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -21,7 +22,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
_analysisStrategyContext= analysisStrategyContext; _analysisStrategyContext= analysisStrategyContext;
} }
public async Task<UnitDataAnalysis<AFN10_F66_AnalysisDto>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -31,19 +32,20 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
data.Pn = input.DA.Pn; data.Pn = input.DA.Pn;
UnitDataAnalysis<AFN10_F66_AnalysisDto> dto = new UnitDataAnalysis<AFN10_F66_AnalysisDto> UnitDataAnalysis<AFN10_F66_AnalysisDto> dto = new UnitDataAnalysis<AFN10_F66_AnalysisDto>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data= data Data = data
}; };
return await Task.FromResult(dto); result?.Invoke(dto);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0A_66解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}"); _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<AFN10_F66_AnalysisDto> GenerateFinalResult(List<string> hexMessageList) public async Task<AFN10_F66_AnalysisDto> GenerateFinalResult(List<string> hexMessageList)
@ -58,11 +60,14 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
//TODO:发送基准时间 //TODO:发送基准时间
var arrBaseTime = hexMessageList.GetRange(5, 6); var arrBaseTime = hexMessageList.GetRange(5, 6);
var baseTimeArrStr = await _analysisStrategyContext.ExecuteAsync<List<string>, string>("Appendix_A1", arrBaseTime); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A1), arrBaseTime, (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]}"); 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.BaseTime = Convert.ToDateTime(baseTimeArr[0]);
entity.CurveRatio = hexMessageList[11].HexToDec(); entity.CurveRatio = hexMessageList[11].HexToDec();
var count = hexMessageList[12].HexToDec(); var count = hexMessageList[12].HexToDec();
var dataArr = hexMessageList.GetRange(13, 4 * count); var dataArr = hexMessageList.GetRange(13, 4 * count);

View File

@ -8,7 +8,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
/// <summary> /// <summary>
/// 5.5.1.3.55 F68定时上报 2 类数据任务启动/停止设置 /// 5.5.1.3.55 F68定时上报 2 类数据任务启动/停止设置
/// </summary> /// </summary>
public class AFN10_F68_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<bool>> public class AFN10_F68_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN10_F68_Analysis> _logger; private readonly ILogger<AFN10_F68_Analysis> _logger;
@ -16,7 +16,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
{ {
_logger = logger; _logger = logger;
} }
public Task<UnitDataAnalysis<bool>> ExecuteAsync(TB3761 input)
public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -24,20 +25,20 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0AH
ArgumentNullException.ThrowIfNull(input.UnitData.HexMessageList); ArgumentNullException.ThrowIfNull(input.UnitData.HexMessageList);
UnitDataAnalysis<bool> dto = new UnitDataAnalysis<bool> UnitDataAnalysis<bool> dto = new UnitDataAnalysis<bool>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = input.UnitData.HexMessageList[4].Equals("55") Data = input.UnitData.HexMessageList[4].Equals("55")
}; };
result?.Invoke(dto);
return Task.FromResult(dto); return Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0A_68解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0A_68解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
return null;
} }
return Task.FromResult(false);
} }
} }
} }

View File

@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
/// <summary> /// <summary>
/// 5.12.2.4.85 F129当前正向有功电能示值总、费率1M /// 5.12.2.4.85 F129当前正向有功电能示值总、费率1M
/// </summary> /// </summary>
public class AFN12_F129_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AFN12_F129_AnalysisDto>>> public class AFN12_F129_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN12_F129_Analysis> _logger; private readonly ILogger<AFN12_F129_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -24,7 +24,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
_dbProvider= dbProvider; _dbProvider= dbProvider;
} }
public async Task<UnitDataAnalysis<List<AFN12_F129_AnalysisDto>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -43,14 +43,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList); List<string> datas = await AnalysisDataUnitAsync(input.UnitData.HexMessageList);
List<AFN12_F129_AnalysisDto> list = GenerateFinalResult(2, datas, "正向有功电能示值", input.AFN_FC.AFN, input.DT.Fn); List<AFN12_F129_AnalysisDto> list = GenerateFinalResult(2, datas, "正向有功电能示值", input.AFN_FC.AFN, input.DT.Fn);
unitDataAnalysis.Data= list; unitDataAnalysis.Data= list;
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0C_129解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0C_129解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null;
} }
return await Task.FromResult(false);
} }
#region #region
@ -72,8 +73,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A14), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A14), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
}); //从第10个开始每加5个字节为下一个值的开始
} }
} }
return values; return values;

View File

@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
/// <summary> /// <summary>
/// 5.12.2.4.86 F130当前正向无功组合无功 1电能示值总、费率 1M /// 5.12.2.4.86 F130当前正向无功组合无功 1电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN12_F130_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AFN12_F130_AnalysisDto>>> public class AFN12_F130_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN12_F130_Analysis> _logger; private readonly ILogger<AFN12_F130_Analysis> _logger;
@ -22,7 +22,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<UnitDataAnalysis<List<AFN12_F130_AnalysisDto>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -32,20 +32,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
List<AFN12_F130_AnalysisDto> list = GenerateFinalResult(2, datas, "正向无功电能示值", input.AFN_FC.AFN, input.DT.Fn); List<AFN12_F130_AnalysisDto> list = GenerateFinalResult(2, datas, "正向无功电能示值", input.AFN_FC.AFN, input.DT.Fn);
UnitDataAnalysis<List<AFN12_F130_AnalysisDto>> unitDataAnalysis = new UnitDataAnalysis<List<AFN12_F130_AnalysisDto>> UnitDataAnalysis<List<AFN12_F130_AnalysisDto>> unitDataAnalysis = new UnitDataAnalysis<List<AFN12_F130_AnalysisDto>>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = list Data = list
}; };
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0C_130解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _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<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList)
@ -62,8 +63,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
}); //从第10个开始每加5个字节为下一个值的开始
} }
} }
return values; return values;

View File

@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
/// <summary> /// <summary>
/// 5.12.2.4.87 F131当前反向有功电能示值总、费率 1M /// 5.12.2.4.87 F131当前反向有功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN12_F131_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AFN12_F131_AnalysisDto>>> public class AFN12_F131_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN12_F131_Analysis> _logger; private readonly ILogger<AFN12_F131_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -21,7 +21,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<UnitDataAnalysis<List<AFN12_F131_AnalysisDto>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -31,20 +31,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
List<AFN12_F131_AnalysisDto> list = GenerateFinalResult(2, datas, "反向有功总电能示值", input.AFN_FC.AFN, input.DT.Fn); List<AFN12_F131_AnalysisDto> list = GenerateFinalResult(2, datas, "反向有功总电能示值", input.AFN_FC.AFN, input.DT.Fn);
UnitDataAnalysis<List<AFN12_F131_AnalysisDto>> unitDataAnalysis = new UnitDataAnalysis<List<AFN12_F131_AnalysisDto>> UnitDataAnalysis<List<AFN12_F131_AnalysisDto>> unitDataAnalysis = new UnitDataAnalysis<List<AFN12_F131_AnalysisDto>>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = list Data = list
}; };
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0C_131解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A14), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A14), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
}); //从第10个开始每加5个字节为下一个值的开始
} }
} }
return values; return values;

View File

@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
/// <summary> /// <summary>
/// 5.12.2.4.88 F132当前反向无功组合无功 2电能示值总、费率 1M /// 5.12.2.4.88 F132当前反向无功组合无功 2电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN12_F132_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AFN12_F132_AnalysisDto>>> public class AFN12_F132_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN12_F132_Analysis> _logger; private readonly ILogger<AFN12_F132_Analysis> _logger;
@ -23,7 +23,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
} }
public async Task<UnitDataAnalysis<List<AFN12_F132_AnalysisDto>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -39,14 +39,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = list Data = list
}; };
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0C_132解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _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<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList)
@ -63,8 +64,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加4个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
}); //从第10个开始每加5个字节为下一个值的开始
} }
} }
return values; return values;

View File

@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
/// <summary> /// <summary>
/// 5.12.2.4.101 F145当月正向有功最大需量及发生时间总、费率 1M /// 5.12.2.4.101 F145当月正向有功最大需量及发生时间总、费率 1M
/// </summary> /// </summary>
public class AFN12_F145_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<AFN12_F145_AnalysisDto>> public class AFN12_F145_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN12_F145_Analysis> _logger; private readonly ILogger<AFN12_F145_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -23,7 +23,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
} }
public async Task<UnitDataAnalysis<AFN12_F145_AnalysisDto>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try 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}"; data.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
UnitDataAnalysis<AFN12_F145_AnalysisDto> unitDataAnalysis = new UnitDataAnalysis<AFN12_F145_AnalysisDto> UnitDataAnalysis<AFN12_F145_AnalysisDto> unitDataAnalysis = new UnitDataAnalysis<AFN12_F145_AnalysisDto>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = data Data = data
}; };
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0C_145解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A23), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A23), arr, (value) =>
values.Add(value.ToString());//正向有功总最大需量 {
values.Add(value.ToString());
}); //正向有功总最大需量
} }
arr = hexMessageList.GetRange(10 + i * 7 + 3, 4); arr = hexMessageList.GetRange(10 + i * 7 + 3, 4);
@ -75,8 +78,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, string>(nameof(Appendix_A17), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A17), arr, (value) =>
values.Add(value.ToString());//正向有功总最大需量发生时间 {
values.Add(value.ToString());
});//正向有功总最大需量发生时间
} }
} }
return values; return values;

View File

@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
/// <summary> /// <summary>
/// 5.12.2.4.105 F149上月上一结算日正向有功最大需量及发生时间总、费率 1M /// 5.12.2.4.105 F149上月上一结算日正向有功最大需量及发生时间总、费率 1M
/// </summary> /// </summary>
public class AFN12_F149_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<AnalysisBaseDto<decimal>>> public class AFN12_F149_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN12_F149_Analysis> _logger; private readonly ILogger<AFN12_F149_Analysis> _logger;
@ -29,7 +29,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
} }
public async Task<UnitDataAnalysis<AnalysisBaseDto<decimal>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -63,13 +63,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
DensityUnit = DensityUnit.Month DensityUnit = DensityUnit.Month
}; };
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0C_149解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _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<List<string>> AnalysisDataUnit(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnit(List<string> hexMessageList)
@ -86,8 +88,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A23), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A23), arr, (value) =>
values.Add(value.ToString());//正向有功总最大需量 {
values.Add(value.ToString());
});//正向有功总最大需量
} }
arr = hexMessageList.GetRange(13 + i * 7, 4); arr = hexMessageList.GetRange(13 + i * 7, 4);
@ -97,8 +101,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, string>(nameof(Appendix_A17), arr);//正向有功总最大需量发生时间 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A17), arr, (value) =>
values.Add(value);//正向有功总最大需量 {
values.Add(value.ToString());
});//正向有功总最大需量
} }
} }
return values; return values;

View File

@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
/// <summary> /// <summary>
/// 水表抄读取 /// 水表抄读取
/// </summary> /// </summary>
public class AFN12_F188_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<AFN12_F149_AnalysisDto>> public class AFN12_F188_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN12_F188_Analysis> _logger; private readonly ILogger<AFN12_F188_Analysis> _logger;
@ -22,7 +22,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<UnitDataAnalysis<AFN12_F149_AnalysisDto>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try 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}"; data.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
UnitDataAnalysis<AFN12_F149_AnalysisDto> dto = new UnitDataAnalysis<AFN12_F149_AnalysisDto> UnitDataAnalysis<AFN12_F149_AnalysisDto> dto = new UnitDataAnalysis<AFN12_F149_AnalysisDto>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = data Data = data
}; };
return await Task.FromResult(dto); result?.Invoke(dto);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0C_188解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage?.HexMessageString},{ex.Message}"); _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<string> hexMessageList) public AFN12_F149_AnalysisDto GenerateFinalResult(List<string> hexMessageList)
{ {

View File

@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
/// <summary> /// <summary>
/// 5.12.2.4.22 F25当前三相及总有/无功功率、功率因数,三相电压、电流、零序电流、视在功率 /// 5.12.2.4.22 F25当前三相及总有/无功功率、功率因数,三相电压、电流、零序电流、视在功率
/// </summary> /// </summary>
public class AFN12_F25_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AFN12_F25_AnalysisDto>>> public class AFN12_F25_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN12_F25_Analysis> _logger; private readonly ILogger<AFN12_F25_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -24,7 +24,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
public List<string> DataType { get; set; } = new List<string>() { "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 List<string> DataType { get; set; } = new List<string>() { "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<UnitDataAnalysis<List<AFN12_F25_AnalysisDto>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -55,20 +55,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
} }
UnitDataAnalysis<List<AFN12_F25_AnalysisDto>> unitDataAnalysis = new UnitDataAnalysis<List<AFN12_F25_AnalysisDto>> UnitDataAnalysis<List<AFN12_F25_AnalysisDto>> unitDataAnalysis = new UnitDataAnalysis<List<AFN12_F25_AnalysisDto>>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = list Data = list
}; };
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0C_25解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}"); _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<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList)
@ -102,8 +103,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(appendixName, arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
/// <summary> /// <summary>
/// 5.12.2.4.1 F2终端日历时钟 /// 5.12.2.4.1 F2终端日历时钟
/// </summary> /// </summary>
public class AFN12_F2_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<AFN12_F2_AnalysisDto>> public class AFN12_F2_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN12_F2_Analysis> _logger; private readonly ILogger<AFN12_F2_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -22,7 +22,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<UnitDataAnalysis<AFN12_F2_AnalysisDto>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try 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}"; data.DataType = $"{input.AFN_FC.AFN.HexToDecStr().PadLeft(2, '0')}_{input.DT.Fn}";
UnitDataAnalysis<AFN12_F2_AnalysisDto> dto = new UnitDataAnalysis<AFN12_F2_AnalysisDto> UnitDataAnalysis<AFN12_F2_AnalysisDto> dto = new UnitDataAnalysis<AFN12_F2_AnalysisDto>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = data Data = data
}; };
return await Task.FromResult(dto); result?.Invoke(dto);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0C_2解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}"); _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<AFN12_F2_AnalysisDto> GenerateFinalResultAsync(List<string> hexMessageList) public async Task<AFN12_F2_AnalysisDto> GenerateFinalResultAsync(List<string> hexMessageList)
@ -59,8 +61,12 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
dto.ErrorCodeMsg = errorCodeInfo.Item2; dto.ErrorCodeMsg = errorCodeInfo.Item2;
} }
else else
dto.DataValue = await _analysisStrategyContext.ExecuteAsync<List<string>, string>(nameof(Appendix_A1), arr); {
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A1), arr, (value) =>
{
dto.DataValue = value;
});
}
dto.FiledName = "TerminalTime"; dto.FiledName = "TerminalTime";
dto.FiledDesc = "召读终端时间"; dto.FiledDesc = "召读终端时间";
return await Task.FromResult(dto); return await Task.FromResult(dto);

View File

@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
/// <summary> /// <summary>
/// 5.12.2.4.30 F33当前正向有/无功电能示值、一/四象限无功电能示值(总、费率 1M1≤M≤12 /// 5.12.2.4.30 F33当前正向有/无功电能示值、一/四象限无功电能示值(总、费率 1M1≤M≤12
/// </summary> /// </summary>
public class AFN12_F33_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<AFN12_F33_AnalysisDto>> public class AFN12_F33_Analysis : IAnalysisStrategy<TB3761>
{ {
private List<string> DataUnitHexList { get; set; }=new List<string>(); private List<string> DataUnitHexList { get; set; }=new List<string>();
private readonly ILogger<AFN12_F33_Analysis> _logger; private readonly ILogger<AFN12_F33_Analysis> _logger;
@ -23,7 +23,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
} }
public async Task<UnitDataAnalysis<AFN12_F33_AnalysisDto>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -35,20 +35,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
GetDataUnitHexString(input.UnitData.HexMessageList, rationgCount); GetDataUnitHexString(input.UnitData.HexMessageList, rationgCount);
UnitDataAnalysis<AFN12_F33_AnalysisDto> unitDataAnalysis = new UnitDataAnalysis<AFN12_F33_AnalysisDto> UnitDataAnalysis<AFN12_F33_AnalysisDto> unitDataAnalysis = new UnitDataAnalysis<AFN12_F33_AnalysisDto>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = await AnalysisDataUnit(input.UnitData.HexMessageList, rationgCount) Data = await AnalysisDataUnit(input.UnitData.HexMessageList, rationgCount)
}; };
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0C_33解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}"); _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) #region / private void GetDataUnitHexString(int rationgCount)
@ -83,8 +84,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
private async Task<ParentNodes> GetDataAsync(int ratingCount, int startIndex, int len, string appendxName) private async Task<ParentNodes> GetDataAsync(int ratingCount, int startIndex, int len, string appendxName)
{ {
ParentNodes parent = new ParentNodes(); ParentNodes parent = new ParentNodes();
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(appendxName, DataUnitHexList.GetRange(startIndex, len)); var arr = DataUnitHexList.GetRange(startIndex, len);
parent.Total_Value = value; await _analysisStrategyContext.ExecuteAsync<List<string>>(appendxName, arr, (value) =>
{
parent.Total_Value = value;
});
parent.childNodes = await GetChildDataAsync(ratingCount, startIndex, len, appendxName); parent.childNodes = await GetChildDataAsync(ratingCount, startIndex, len, appendxName);
return parent; return parent;
} }
@ -102,11 +106,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
List<ChildNodes> children = new List<ChildNodes>(); List<ChildNodes> children = new List<ChildNodes>();
for (int i = 0; i < RatingCount; i++) for (int i = 0; i < RatingCount; i++)
{ {
ChildNodes model = new ChildNodes() var arr = DataUnitHexList.GetRange((i * len) + (startIndex + len), len);
await _analysisStrategyContext.ExecuteAsync<List<string>>(appendxName, arr, (value) =>
{ {
Value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(appendxName, DataUnitHexList.GetRange((i * len) + (startIndex + len), len)) //29,4 33,4 37,4 41,4 ChildNodes model = new ChildNodes()
}; {
children.Add(model); Value = value //29,4 33,4 37,4 41,4
};
children.Add(model);
});
} }
return children; return children;
} }

View File

@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
/// <summary> /// <summary>
/// 5.12.2.4.46 F49当前电压、电流相位角 /// 5.12.2.4.46 F49当前电压、电流相位角
/// </summary> /// </summary>
public class AFN12_F49_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AFN12_F49_AnalysisDto>>> public class AFN12_F49_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN12_F49_Analysis> _logger; private readonly ILogger<AFN12_F49_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -24,7 +24,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
public List<string> DataType { get; set; } = new List<string>() { "Uab_Ua", "Ub", "Ucb_Uc", "Ia", "Ib", "Ic" }; public List<string> DataType { get; set; } = new List<string>() { "Uab_Ua", "Ub", "Ucb_Uc", "Ia", "Ib", "Ic" };
public async Task<UnitDataAnalysis<List<AFN12_F49_AnalysisDto>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -54,20 +54,21 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
} }
UnitDataAnalysis<List<AFN12_F49_AnalysisDto>> unitDataAnalysis = new UnitDataAnalysis<List<AFN12_F49_AnalysisDto>> UnitDataAnalysis<List<AFN12_F49_AnalysisDto>> unitDataAnalysis = new UnitDataAnalysis<List<AFN12_F49_AnalysisDto>>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data= list Data= list
}; };
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0C_49解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _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<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList)
{ {
@ -80,8 +81,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value= await _analysisStrategyContext.ExecuteAsync<List<string>,decimal>(nameof(Appendix_A5), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.78 F100测量点反向无功总电能量曲线 /// 5.13.2.4.78 F100测量点反向无功总电能量曲线
/// </summary> /// </summary>
public class AFN13_F100_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F100_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F100_Analysis> _logger; private readonly ILogger<AFN13_F100_Analysis> _logger;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -70,12 +70,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_100解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A13), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A13), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.79 F101测量点正向有功总电能示值曲线 /// 5.13.2.4.79 F101测量点正向有功总电能示值曲线
/// </summary> /// </summary>
public class AFN13_F101_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F101_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F101_Analysis> _logger; private readonly ILogger<AFN13_F101_Analysis> _logger;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_101解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.80 F102测量点正向无功总电能示值曲线 /// 5.13.2.4.80 F102测量点正向无功总电能示值曲线
/// </summary> /// </summary>
public class AFN13_F102_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F102_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F102_Analysis> _logger; private readonly ILogger<AFN13_F102_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_102解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_102解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -90,8 +91,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.81 F103测量点反向有功总电能示值曲线 /// 5.13.2.4.81 F103测量点反向有功总电能示值曲线
/// </summary> /// </summary>
public class AFN13_F103_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F103_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F103_Analysis> _logger; private readonly ILogger<AFN13_F103_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_103解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_103解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -90,8 +91,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.82 F104测量点反向无功总电能示值曲线 /// 5.13.2.4.82 F104测量点反向无功总电能示值曲线
/// </summary> /// </summary>
public class AFN13_F104_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F104_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F104_Analysis> _logger; private readonly ILogger<AFN13_F104_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_104解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_104解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -90,8 +91,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.83 F105测量点功率因数曲线 /// 5.13.2.4.83 F105测量点功率因数曲线
/// </summary> /// </summary>
public class AFN13_F105_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F105_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F105_Analysis> _logger; private readonly ILogger<AFN13_F105_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_105解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_105解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -91,8 +92,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A5), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.84 F106测量点 A相功率因数曲线 /// 5.13.2.4.84 F106测量点 A相功率因数曲线
/// </summary> /// </summary>
public class AFN13_F106_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F106_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F106_Analysis> _logger; private readonly ILogger<AFN13_F106_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_106解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_106解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -92,8 +93,11 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A5), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.84 F107测量点 B相功率因数曲线 /// 5.13.2.4.84 F107测量点 B相功率因数曲线
/// </summary> /// </summary>
public class AFN13_F107_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F107_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F107_Analysis> _logger; private readonly ILogger<AFN13_F107_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_107解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_107解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -90,8 +91,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A5), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.84 F108测量点 C相功率因数曲线 /// 5.13.2.4.84 F108测量点 C相功率因数曲线
/// </summary> /// </summary>
public class AFN13_F108_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F108_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F108_Analysis> _logger; private readonly ILogger<AFN13_F108_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_107解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_107解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList)
@ -89,8 +90,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A5), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.11 F11抄表日冻结电能表正向有/无功最大需量及发生时间(总、费率 1M1≤M≤12 /// 5.13.2.4.11 F11抄表日冻结电能表正向有/无功最大需量及发生时间(总、费率 1M1≤M≤12
/// </summary> /// </summary>
public class AFN13_F11_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F11_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F11_Analysis> _logger; private readonly ILogger<AFN13_F11_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_11解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_11解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -106,8 +107,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(nameof(Appendix_A5), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.104 F145测量点一象限无功总电能示值曲线 /// 5.13.2.4.104 F145测量点一象限无功总电能示值曲线
/// </summary> /// </summary>
public class AFN13_F145_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F145_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F145_Analysis> _logger; private readonly ILogger<AFN13_F145_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_145解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_145解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -90,8 +91,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.105 F146测量点四象限无功总电能示值曲线 /// 5.13.2.4.105 F146测量点四象限无功总电能示值曲线
/// </summary> /// </summary>
public class AFN13_F146_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F146_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F146_Analysis> _logger; private readonly ILogger<AFN13_F146_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_146解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_146解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -90,8 +91,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.106 F147测量点二象限无功总电能示值曲线 /// 5.13.2.4.106 F147测量点二象限无功总电能示值曲线
/// </summary> /// </summary>
public class AFN13_F147_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F147_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F147_Analysis> _logger; private readonly ILogger<AFN13_F147_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_147解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_147解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -90,8 +91,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.107 F148测量点三象限无功总电能示值曲线 /// 5.13.2.4.107 F148测量点三象限无功总电能示值曲线
/// </summary> /// </summary>
public class AFN13_F148_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F148_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F148_Analysis> _logger; private readonly ILogger<AFN13_F148_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_148解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_148解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -90,8 +91,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.116 F161日冻结正向有功电能示值总、费率 1M /// 5.13.2.4.116 F161日冻结正向有功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F161_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F161_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F161_Analysis> _logger; private readonly ILogger<AFN13_F161_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_161解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_161解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -95,8 +96,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A14), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A14), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.117 F162日冻结正向无功组合无功 1电能示值总、费率 1M /// 5.13.2.4.117 F162日冻结正向无功组合无功 1电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F162_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F162_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F162_Analysis> _logger; private readonly ILogger<AFN13_F162_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_162解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_162解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList)
@ -92,8 +93,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.118 F163日冻结反向有功电能示值总、费率 1M /// 5.13.2.4.118 F163日冻结反向有功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F163_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F163_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F163_Analysis> _logger; private readonly ILogger<AFN13_F163_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_163解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_163解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList)
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A14), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A14), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.119 F164日冻结反向无功组合无功 1电能示值总、费率 1M /// 5.13.2.4.119 F164日冻结反向无功组合无功 1电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F164_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F164_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F164_Analysis> _logger; private readonly ILogger<AFN13_F164_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_164解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_164解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.120 F165日冻结一象限无功电能示值总、费率 1M /// 5.13.2.4.120 F165日冻结一象限无功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F165_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F165_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F165_Analysis> _logger; private readonly ILogger<AFN13_F165_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_165解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_165解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.121 F166日冻结二象限无功电能示值总、费率 1M /// 5.13.2.4.121 F166日冻结二象限无功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F166_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F166_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F166_Analysis> _logger; private readonly ILogger<AFN13_F166_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_166解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_166解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.122 F167日冻结三象限无功电能示值总、费率 1M /// 5.13.2.4.122 F167日冻结三象限无功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F167_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F167_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F167_Analysis> _logger; private readonly ILogger<AFN13_F167_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_167解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_167解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.123 F168日冻结四象限无功电能示值总、费率 1M /// 5.13.2.4.123 F168日冻结四象限无功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F168_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F168_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F168_Analysis> _logger; private readonly ILogger<AFN13_F168_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_168解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_168解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.132 F177月冻结正向有功电能示值总、费率 1M /// 5.13.2.4.132 F177月冻结正向有功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F177_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F177_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F177_Analysis> _logger; private readonly ILogger<AFN13_F177_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -66,12 +66,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month DensityUnit = DensityUnit.Month
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_177解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_177解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A14), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A14), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// F178月冻结正向无功组合无功 1电能示值总、费率 1M /// F178月冻结正向无功组合无功 1电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F178_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F178_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F178_Analysis> _logger; private readonly ILogger<AFN13_F178_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month DensityUnit = DensityUnit.Month
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_178解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_178解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.134 F179月冻结反向有功电能示值总、费率 1M /// 5.13.2.4.134 F179月冻结反向有功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F179_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F179_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F179_Analysis> _logger; private readonly ILogger<AFN13_F179_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month DensityUnit = DensityUnit.Month
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_179解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_179解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A14), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A14), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.135 F180月冻结反向无功组合无功 1电能示值总、费率 1M /// 5.13.2.4.135 F180月冻结反向无功组合无功 1电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F180_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F180_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F180_Analysis> _logger; private readonly ILogger<AFN13_F180_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -66,12 +66,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month DensityUnit = DensityUnit.Month
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_180解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_180解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.136 F181月冻结一象限无功电能示值总、费率 1M /// 5.13.2.4.136 F181月冻结一象限无功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F181_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F181_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F181_Analysis> _logger; private readonly ILogger<AFN13_F181_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month DensityUnit = DensityUnit.Month
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_181解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_181解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.137 F182月冻结二象限无功电能示值总、费率 1M /// 5.13.2.4.137 F182月冻结二象限无功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F182_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F182_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F182_Analysis> _logger; private readonly ILogger<AFN13_F182_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month DensityUnit = DensityUnit.Month
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_182解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_182解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.138 F183月冻结三象限无功电能示值总、费率 1M /// 5.13.2.4.138 F183月冻结三象限无功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F183_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F183_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F183_Analysis> _logger; private readonly ILogger<AFN13_F183_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -66,12 +66,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month DensityUnit = DensityUnit.Month
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_183解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_183解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.139 F184月冻结四象限无功电能示值总、费率 1M /// 5.13.2.4.139 F184月冻结四象限无功电能示值总、费率 1M
/// </summary> /// </summary>
public class AFN13_F184_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F184_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F184_Analysis> _logger; private readonly ILogger<AFN13_F184_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month DensityUnit = DensityUnit.Month
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_184解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_184解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.144 F189抄表日冻结正向有功最大需量及发生时间总、费率 1M /// 5.13.2.4.144 F189抄表日冻结正向有功最大需量及发生时间总、费率 1M
/// </summary> /// </summary>
public class AFN13_F189_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F189_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F189_Analysis> _logger; private readonly ILogger<AFN13_F189_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_189解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_189解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -102,8 +103,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.145 F190抄表日冻结正向无功最大需量及发生时间总、费率 1M /// 5.13.2.4.145 F190抄表日冻结正向无功最大需量及发生时间总、费率 1M
/// </summary> /// </summary>
public class AFN13_F190_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<AnalysisBaseDto<decimal>>> public class AFN13_F190_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F190_Analysis> _logger; private readonly ILogger<AFN13_F190_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<AnalysisBaseDto<decimal>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -62,12 +62,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_190解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_190解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -101,8 +102,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.148 F193月冻结正向有功最大需量及发生时间总、费率 1M /// 5.13.2.4.148 F193月冻结正向有功最大需量及发生时间总、费率 1M
/// </summary> /// </summary>
public class AFN13_F193_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<AnalysisBaseDto<decimal>>> public class AFN13_F193_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F193_Analysis> _logger; private readonly ILogger<AFN13_F193_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<AnalysisBaseDto<decimal>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -62,12 +62,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month DensityUnit = DensityUnit.Month
}; };
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_193解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_193解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -95,8 +96,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, data); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, data, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
return values; return values;
} }

View File

@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.150 F195月冻结反向有功最大需量及发生时间总、费率 1M /// 5.13.2.4.150 F195月冻结反向有功最大需量及发生时间总、费率 1M
/// </summary> /// </summary>
public class AFN13_F195_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<AnalysisBaseDto<decimal>>> public class AFN13_F195_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F195_Analysis> _logger; private readonly ILogger<AFN13_F195_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<AnalysisBaseDto<decimal>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -62,12 +62,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month DensityUnit = DensityUnit.Month
}; };
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_195解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_195解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -95,8 +96,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, data); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, data, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
return values; return values;
} }

View File

@ -16,7 +16,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.15 F19月冻结电能表正向有/无功最大需量及发生时间(总、费率 1M1≤M≤12 /// 5.13.2.4.15 F19月冻结电能表正向有/无功最大需量及发生时间(总、费率 1M1≤M≤12
/// </summary> /// </summary>
public class AFN13_F19_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F19_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F19_Analysis> _logger; private readonly ILogger<AFN13_F19_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -28,7 +28,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_19解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_19解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -107,8 +108,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -17,7 +17,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.3 F3日冻结正向有/无功最大需量及发生时间(总、费率 1M1≤M≤12 /// 5.13.2.4.3 F3日冻结正向有/无功最大需量及发生时间(总、费率 1M1≤M≤12
/// </summary> /// </summary>
public class AFN13_F3_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F3_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F3_Analysis> _logger; private readonly ILogger<AFN13_F3_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -29,7 +29,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -72,12 +72,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_3解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_3解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList)
@ -112,8 +113,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -16,7 +16,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.4 F4日冻结反向有/无功最大需量及发生时间(总、费率 1M1≤M≤12 /// 5.13.2.4.4 F4日冻结反向有/无功最大需量及发生时间(总、费率 1M1≤M≤12
/// </summary> /// </summary>
public class AFN13_F4_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F4_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F4_Analysis> _logger; private readonly ILogger<AFN13_F4_Analysis> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -28,7 +28,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -71,12 +71,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day DensityUnit = DensityUnit.Day
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_4解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_4解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList)
@ -111,8 +112,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, arr); //从第10个开始每加5个字节为下一个值的开始 await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.60 F81测量点有功功率曲线 /// 5.13.2.4.60 F81测量点有功功率曲线
/// </summary> /// </summary>
public class AFN13_F81_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F81_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F81_Analysis> _logger; private readonly ILogger<AFN13_F81_Analysis> _logger;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_81解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_81解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -91,8 +92,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.61 F82测量点 A相有功功率曲线 /// 5.13.2.4.61 F82测量点 A相有功功率曲线
/// </summary> /// </summary>
public class AFN13_F82_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F82_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F82_Analysis> _logger; private readonly ILogger<AFN13_F82_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_82解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_82解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.61 F83测量点 B相有功功率曲线 /// 5.13.2.4.61 F83测量点 B相有功功率曲线
/// </summary> /// </summary>
public class AFN13_F83_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F83_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F83_Analysis> _logger; private readonly ILogger<AFN13_F83_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_83解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_83解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.61 F84测量点 C相有功功率曲线 /// 5.13.2.4.61 F84测量点 C相有功功率曲线
/// </summary> /// </summary>
public class AFN13_F84_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F84_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F84_Analysis> _logger; private readonly ILogger<AFN13_F84_Analysis> _logger;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_84解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_84解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -91,8 +92,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.64 F85测量点无功功率曲线 /// 5.13.2.4.64 F85测量点无功功率曲线
/// </summary> /// </summary>
public class AFN13_F85_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F85_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F85_Analysis> _logger; private readonly ILogger<AFN13_F85_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_85解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_85解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.65 F86测量点 A相无功功率曲线 /// 5.13.2.4.65 F86测量点 A相无功功率曲线
/// </summary> /// </summary>
public class AFN13_F86_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F86_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F86_Analysis> _logger; private readonly ILogger<AFN13_F86_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_86解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_86解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.66 F87测量点 B相无功功率曲线 /// 5.13.2.4.66 F87测量点 B相无功功率曲线
/// </summary> /// </summary>
public class AFN13_F87_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F87_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F87_Analysis> _logger; private readonly ILogger<AFN13_F87_Analysis> _logger;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_87解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_87解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -91,8 +92,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.67 F88测量点 C相无功功率曲线 /// 5.13.2.4.67 F88测量点 C相无功功率曲线
/// </summary> /// </summary>
public class AFN13_F88_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F88_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F88_Analysis> _logger; private readonly ILogger<AFN13_F88_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_88解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_88解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.68 F89测量点 A相电压曲线 /// 5.13.2.4.68 F89测量点 A相电压曲线
/// </summary> /// </summary>
public class AFN13_F89_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F89_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F89_Analysis> _logger; private readonly ILogger<AFN13_F89_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_89解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_89解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A7), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A7), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.68 F89测量点 B相电压曲线 /// 5.13.2.4.68 F89测量点 B相电压曲线
/// </summary> /// </summary>
public class AFN13_F90_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F90_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F90_Analysis> _logger; private readonly ILogger<AFN13_F90_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_90解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_90解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A7), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A7), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.68 F89测量点 C相电压曲线 /// 5.13.2.4.68 F89测量点 C相电压曲线
/// </summary> /// </summary>
public class AFN13_F91_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F91_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F91_Analysis> _logger; private readonly ILogger<AFN13_F91_Analysis> _logger;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_91解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_91解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
@ -91,8 +92,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A7), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A7), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.71 F92测量点 A相电流曲线 /// 5.13.2.4.71 F92测量点 A相电流曲线
/// </summary> /// </summary>
public class AFN13_F92_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F92_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F92_Analysis> _logger; private readonly ILogger<AFN13_F92_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_92解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_92解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList)
@ -91,8 +92,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A25), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A25), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.72 F93测量点 B相电流曲线 /// 5.13.2.4.72 F93测量点 B相电流曲线
/// </summary> /// </summary>
public class AFN13_F93_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F93_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F93_Analysis> _logger; private readonly ILogger<AFN13_F93_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_93解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_93解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A25), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A25), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.73 F94测量点 C相电流曲线 /// 5.13.2.4.73 F94测量点 C相电流曲线
/// </summary> /// </summary>
public class AFN13_F94_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F94_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F94_Analysis> _logger; private readonly ILogger<AFN13_F94_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_94解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_94解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A25), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A25), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.74 F95测量点零序电流曲线 /// 5.13.2.4.74 F95测量点零序电流曲线
/// </summary> /// </summary>
public class AFN13_F95_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F95_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F95_Analysis> _logger; private readonly ILogger<AFN13_F95_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_95解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_95解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A25), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A25), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.75 F97测量点正向有功总电能量曲线 /// 5.13.2.4.75 F97测量点正向有功总电能量曲线
/// </summary> /// </summary>
public class AFN13_F97_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F97_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F97_Analysis> _logger; private readonly ILogger<AFN13_F97_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_97解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_97解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A13), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A13), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.76 F98测量点正向无功总电能量曲线 /// 5.13.2.4.76 F98测量点正向无功总电能量曲线
/// </summary> /// </summary>
public class AFN13_F98_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F98_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F98_Analysis> _logger; private readonly ILogger<AFN13_F98_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_98解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_98解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null; return await Task.FromResult(false);
} }
} }
private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList) private async Task<List<string>> AnalysisDataUnitAsync(List<string> hexMessageList)
@ -91,8 +92,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A13), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A13), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary> /// <summary>
/// 5.13.2.4.77 F99测量点反向有功总电能量曲线 /// 5.13.2.4.77 F99测量点反向有功总电能量曲线
/// </summary> /// </summary>
public class AFN13_F99_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> public class AFN13_F99_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN13_F99_Analysis> _logger; private readonly ILogger<AFN13_F99_Analysis> _logger;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute DensityUnit = DensityUnit.Minute
}; };
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis); await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0D_99解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0D_99解析失败:{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); values.Add(errorCode.Item1);
else else
{ {
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A13), arr); await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A13), arr, (value) =>
values.Add(value.ToString()); {
values.Add(value.ToString());
});
} }
} }
return values; return values;

View File

@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0EH
/// Item1=停电事件 /// Item1=停电事件
/// Item2=上电事件 /// Item2=上电事件
/// </summary> /// </summary>
public class AFN14_F1_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<Tuple<string, string>>> public class AFN14_F1_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN14_F1_Analysis> _logger; private readonly ILogger<AFN14_F1_Analysis> _logger;
@ -20,7 +20,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0EH
_logger = logger; _logger = logger;
} }
public Task<UnitDataAnalysis<Tuple<string, string>>> ExecuteAsync(TB3761 tB3761) public Task<bool> ExecuteAsync(TB3761 tB3761, Action<dynamic>? result = null)
{ {
try try
{ {
@ -41,13 +41,14 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0EH
Data = AnalysisDataUnit(tB3761.UnitData.HexMessageList) Data = AnalysisDataUnit(tB3761.UnitData.HexMessageList)
}; };
// meterData.DataType = "0E_1"; // meterData.DataType = "0E_1";
return Task.FromResult(dto); result?.Invoke(dto);
return Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"0E_1解析失败:{tB3761.A.Code}-{tB3761.DT.Fn}-{tB3761.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"0E_1解析失败:{tB3761.A.Code}-{tB3761.DT.Fn}-{tB3761.BaseHexMessage.HexMessageString},{ex.Message}");
return null;
} }
return Task.FromResult(false);
} }
private Tuple<string, string> AnalysisDataUnit(List<string> hexMessageList) private Tuple<string, string> AnalysisDataUnit(List<string> hexMessageList)

View File

@ -9,7 +9,7 @@ namespace GatherService.WattMeter.AnalysisData.AFN_10H
/// <summary> /// <summary>
/// 5.16.1.2.1 F1透明转发 读取SIM卡信息 /// 5.16.1.2.1 F1透明转发 读取SIM卡信息
/// </summary> /// </summary>
public class AFN16_F101_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<string>> public class AFN16_F101_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN16_F101_Analysis> _logger; private readonly ILogger<AFN16_F101_Analysis> _logger;
@ -18,7 +18,7 @@ namespace GatherService.WattMeter.AnalysisData.AFN_10H
_logger = logger; _logger = logger;
} }
public Task<UnitDataAnalysis<string>> ExecuteAsync(TB3761 input) public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -26,19 +26,21 @@ namespace GatherService.WattMeter.AnalysisData.AFN_10H
ArgumentNullException.ThrowIfNull(input.UnitData.HexMessageList); ArgumentNullException.ThrowIfNull(input.UnitData.HexMessageList);
UnitDataAnalysis<string> dto = new UnitDataAnalysis<string> UnitDataAnalysis<string> dto = new UnitDataAnalysis<string>
{ {
Code = input.A.Code, Code = input.A.Code!,
AFN = input.AFN_FC.AFN, AFN = input.AFN_FC.AFN,
Fn = input.DT.Fn, Fn = input.DT.Fn,
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = AnalysisDataUnit(input.UnitData.HexMessageList) //SIM卡 Data = AnalysisDataUnit(input.UnitData.HexMessageList) //SIM卡
}; };
return Task.FromResult(dto); result?.Invoke(dto);
return Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"10_101解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"10_101解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
return null;
} }
return Task.FromResult(false);
} }
private string AnalysisDataUnit(List<string> hexMessageList) private string AnalysisDataUnit(List<string> hexMessageList)
{ {

View File

@ -17,7 +17,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
/// <summary> /// <summary>
/// 5.16 数据转发AFN=10H /// 5.16 数据转发AFN=10H
/// </summary> /// </summary>
public class AFN16_F1_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<string>> public class AFN16_F1_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN16_F1_Analysis> _logger; private readonly ILogger<AFN16_F1_Analysis> _logger;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
_logger = logger; _logger = logger;
} }
public Task<UnitDataAnalysis<string>> ExecuteAsync(TB3761 input) public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -40,13 +40,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
Pn = input.DA.Pn, Pn = input.DA.Pn,
Data = AnalysisDataUnit(input.UnitData.HexMessageList) Data = AnalysisDataUnit(input.UnitData.HexMessageList)
}; };
return Task.FromResult(dto); result?.Invoke(dto);
return Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"10_101解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"10_101解析失败:{input.A?.Code}-{input.DT?.Fn ?? 0}-{input?.BaseHexMessage?.HexMessageString},{ex.Message}");
return null;
} }
return Task.FromResult(false);
} }

View File

@ -12,7 +12,7 @@ namespace GatherService.WattMeter.AnalysisData.AFN_10H
/// <summary> /// <summary>
/// 透明转发---跳合闸 /// 透明转发---跳合闸
/// </summary> /// </summary>
public class AFN16_F98_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<bool>> public class AFN16_F98_Analysis : IAnalysisStrategy<TB3761>
{ {
private readonly ILogger<AFN16_F98_Analysis> _logger; private readonly ILogger<AFN16_F98_Analysis> _logger;
@ -25,7 +25,7 @@ namespace GatherService.WattMeter.AnalysisData.AFN_10H
_dataStorage = dataStorage; _dataStorage = dataStorage;
} }
public async Task<UnitDataAnalysis<bool>> ExecuteAsync(TB3761 input) public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{ {
try try
{ {
@ -58,13 +58,15 @@ namespace GatherService.WattMeter.AnalysisData.AFN_10H
DensityUnit = DensityUnit.Second DensityUnit = DensityUnit.Second
}; };
//await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis); //await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis); result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"10_98跳合闸解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}"); _logger.LogError(ex, $"10_98跳合闸解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null;
} }
return await Task.FromResult(false);
} }
private List<string> AnalysisDataUnit(List<string> hexMessageList) private List<string> AnalysisDataUnit(List<string> hexMessageList)

View File

@ -4,9 +4,9 @@ using Microsoft.Extensions.Logging;
namespace JiShe.CollectBus.Protocol.T37612012.Appendix namespace JiShe.CollectBus.Protocol.T37612012.Appendix
{ {
/// <summary> /// <summary>
/// 第一套第 2 日时段表数据 /// Appendix_02800002
/// </summary> /// </summary>
public class Appendix_02800002 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_02800002 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_02800002> _logger; private readonly ILogger<Appendix_02800002> _logger;
@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger; _logger = logger;
} }
public Task<List<string>> ExecuteAsync(List<string> data) public Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
try try
{ {
@ -23,12 +23,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
return null; return null;
var value = string.Join(".", data); var value = string.Join(".", data);
var values= new List<string>() { "电网频率", "10_97", "1", value }; var values= new List<string>() { "电网频率", "10_97", "1", value };
return Task.FromResult(values); result?.Invoke(values);
return Task.FromResult(true);
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, $"Appendix_02800002解析失败:{ex.Message}"); _logger.LogError(ex, $"Appendix_02800002解析失败:{ex.Message}");
return null; return Task.FromResult(false);
} }
} }
} }

View File

@ -7,7 +7,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 年时区数 p≤14 /// 年时区数 p≤14
/// </summary> /// </summary>
public class Appendix_04000201 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04000201 : IAnalysisStrategy<List<string>>
{ {
private int valueByteCount = 1; private int valueByteCount = 1;
private readonly ILogger<Appendix_04000201> _logger; private readonly ILogger<Appendix_04000201> _logger;
@ -17,7 +17,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger; _logger = logger;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
List<string> values = new List<string>(); List<string> values = new List<string>();
values.Insert(0, "10_94"); values.Insert(0, "10_94");
@ -27,7 +27,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
{ {
values.Add(item.HexToDec().ToString()); values.Add(item.HexToDec().ToString());
} }
return await Task.FromResult(values); result?.Invoke(values);
return await Task.FromResult(true);
} }
} }
} }

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 日时段表数 q≤8 /// 日时段表数 q≤8
/// </summary> /// </summary>
public class Appendix_04000202 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04000202 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_04000202> _logger; private readonly ILogger<Appendix_04000202> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var values = await _analysisStrategyContext.ExecuteAsync<List<string>, List<string>>("Appendix_04000201", data); return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04000201), data, (values) =>
values[0] = "日时段表数"; {
return await Task.FromResult(values); values[0] = "日时段表数";
result?.Invoke(values);
});
} }
} }
} }

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 日时段数(每日切换数) m≤14 /// 日时段数(每日切换数) m≤14
/// </summary> /// </summary>
public class Appendix_04000203 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04000203 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_04000203> _logger; private readonly ILogger<Appendix_04000203> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var values = await _analysisStrategyContext.ExecuteAsync<List<string>, List<string>>("Appendix_04000201", data); return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04000201), data, (values) =>
values[0] = "日时段数(每日切换数)"; {
return await Task.FromResult(values); values[0] = "日时段数(每日切换数)";
result?.Invoke(values);
});
} }
} }
} }

View File

@ -1,12 +1,13 @@
using JiShe.CollectBus.Protocol.Interfaces; using JiShe.CollectBus.Protocol.Interfaces;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using TouchSocket.Core;
namespace JiShe.CollectBus.Protocol.T37612012.Appendix namespace JiShe.CollectBus.Protocol.T37612012.Appendix
{ {
/// <summary> /// <summary>
/// 费率数 k≤63 /// 费率数 k≤63
/// </summary> /// </summary>
public class Appendix_04000204 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04000204 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_04000204> _logger; private readonly ILogger<Appendix_04000204> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +18,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var values = await _analysisStrategyContext.ExecuteAsync<List<string>, List<string>>("Appendix_04000201", data); return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04000201), data, (values) =>
values[0] = "费率数"; {
return await Task.FromResult(values); values[0] = "费率数";
result?.Invoke(values);
});
} }
} }
} }

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 第一套时区表数据 /// 第一套时区表数据
/// </summary> /// </summary>
public class Appendix_04010000 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04010000 : IAnalysisStrategy<List<string>>
{ {
/// <summary> /// <summary>
/// 每个值字节数 /// 每个值字节数
@ -19,7 +19,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger; _logger = logger;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
List<string> values = new List<string>(); List<string> values = new List<string>();
int valueCount = data.Count / valueByteCount; int valueCount = data.Count / valueByteCount;
@ -32,7 +32,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
values.Add($"{value[0]}:{value[1]}");//MM:DD 或hhmm values.Add($"{value[0]}:{value[1]}");//MM:DD 或hhmm
values.Add(value[2]);//NN 费率号 values.Add(value[2]);//NN 费率号
} }
return await Task.FromResult(values); result?.Invoke(values);
return await Task.FromResult(true);
} }
} }
} }

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 第一套第 1 日时段表数据: /// 第一套第 1 日时段表数据:
/// </summary> /// </summary>
public class Appendix_04010001 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04010001 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_04010001> _logger; private readonly ILogger<Appendix_04010001> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var values = await _analysisStrategyContext.ExecuteAsync<List<string>, List<string>>("Appendix_04010000", data); return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
values[0] = "第一套第1日第{0}时段起始时间及费率号"; {
return await Task.FromResult(values); values[0] = "第一套第1日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
} }
} }
} }

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 第一套第 2 日时段表数据 /// 第一套第 2 日时段表数据
/// </summary> /// </summary>
public class Appendix_04010002 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04010002 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_04010002> _logger; private readonly ILogger<Appendix_04010002> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var values = await _analysisStrategyContext.ExecuteAsync<List<string>, List<string>>("Appendix_04010000", data); return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
values[0] = "第一套第2日第{0}时段起始时间及费率号"; {
return await Task.FromResult(values); values[0] = "第一套第2日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
} }
} }
} }

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 第一套第 3 日时段表数据 /// 第一套第 3 日时段表数据
/// </summary> /// </summary>
public class Appendix_04010003 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04010003 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_04010003> _logger; private readonly ILogger<Appendix_04010003> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var values = await _analysisStrategyContext.ExecuteAsync<List<string>, List<string>>("Appendix_04010000", data); return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
values[0] = "第一套第3日第{0}时段起始时间及费率号"; {
return await Task.FromResult(values); values[0] = "第一套第3日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
} }
} }
} }

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 第一套第 4 日时段表数据 /// 第一套第 4 日时段表数据
/// </summary> /// </summary>
public class Appendix_04010004 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04010004 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_04010004> _logger; private readonly ILogger<Appendix_04010004> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -16,11 +16,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger; _logger = logger;
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var values = await _analysisStrategyContext.ExecuteAsync<List<string>, List<string>> ("Appendix_04010000", data); return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
values[0] = "第一套第4日第{0}时段起始时间及费率号"; {
return await Task.FromResult(values); values[0] = "第一套第4日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
} }
} }
} }

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 第一套第 5 日时段表数据 /// 第一套第 5 日时段表数据
/// </summary> /// </summary>
public class Appendix_04010005 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04010005 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_04010005> _logger; private readonly ILogger<Appendix_04010005> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var values = await _analysisStrategyContext.ExecuteAsync<List<string>, List<string>>("Appendix_04010000", data); return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
values[0] = "第一套第5日第{0}时段起始时间及费率号"; {
return await Task.FromResult(values); values[0] = "第一套第5日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
} }
} }
} }

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 第一套第 6 日时段表数据 /// 第一套第 6 日时段表数据
/// </summary> /// </summary>
public class Appendix_04010006 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04010006 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_04010006> _logger; private readonly ILogger<Appendix_04010006> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var values = await _analysisStrategyContext.ExecuteAsync<List<string>, List<string>>("Appendix_04010000", data); return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
values[0] = "第一套第6日第{0}时段起始时间及费率号"; {
return await Task.FromResult(values); values[0] = "第一套第6日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
} }
} }
} }

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 第一套第 7 日时段表数据 /// 第一套第 7 日时段表数据
/// </summary> /// </summary>
public class Appendix_04010007 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04010007 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_04010007> _logger; private readonly ILogger<Appendix_04010007> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -16,11 +16,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger; _logger = logger;
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var values = await _analysisStrategyContext.ExecuteAsync<List<string>, List<string>>("Appendix_04010000", data); return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
values[0] = "第一套第7日第{0}时段起始时间及费率号"; {
return await Task.FromResult(values); values[0] = "第一套第7日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
} }
} }
} }

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 第一套第 8 日时段表数据 /// 第一套第 8 日时段表数据
/// </summary> /// </summary>
public class Appendix_04010008 : IAnalysisStrategy<List<string>, List<string>> public class Appendix_04010008 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_04010008> _logger; private readonly ILogger<Appendix_04010008> _logger;
private readonly AnalysisStrategyContext _analysisStrategyContext; private readonly AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_analysisStrategyContext = analysisStrategyContext; _analysisStrategyContext = analysisStrategyContext;
} }
public async Task<List<string>> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var values = await _analysisStrategyContext.ExecuteAsync<List<string>, List<string>>("Appendix_04010000", data); return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
values[0] = "第一套第8日第{0}时段起始时间及费率号"; {
return await Task.FromResult(values); values[0] = "第一套第8日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
} }
} }
} }

View File

@ -4,7 +4,7 @@ using Microsoft.Extensions.Logging;
namespace JiShe.CollectBus.Protocol.T37612012.Appendix namespace JiShe.CollectBus.Protocol.T37612012.Appendix
{ {
public class Appendix_A1 : IAnalysisStrategy<List<string>, string> public class Appendix_A1 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_A1> _logger; private readonly ILogger<Appendix_A1> _logger;
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger; _logger = logger;
} }
public async Task<string> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
var seconds = data[0]; var seconds = data[0];
var minutes = data[1]; var minutes = data[1];
@ -24,7 +24,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
var week = binString.Substring(0, 3).HexTo4BinZero(); var week = binString.Substring(0, 3).HexTo4BinZero();
var year = $"{DateTime.Now.ToString("yyyy").Substring(0, 2)}{data[5]}"; var year = $"{DateTime.Now.ToString("yyyy").Substring(0, 2)}{data[5]}";
string date= $"{year}-{months.ToString().PadLeft(2, '0')}-{day} {hours}:{minutes}:{seconds}_{week}"; string date= $"{year}-{months.ToString().PadLeft(2, '0')}-{day} {hours}:{minutes}:{seconds}_{week}";
return await Task.FromResult(date); result?.Invoke(date);
return await Task.FromResult(true);
} }

View File

@ -7,7 +7,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 附录A.11数据格式 /// 附录A.11数据格式
/// </summary> /// </summary>
class Appendix_A11 : IAnalysisStrategy<List<string>, decimal> class Appendix_A11 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_A11> _logger; private readonly ILogger<Appendix_A11> _logger;
@ -16,7 +16,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger; _logger = logger;
} }
public async Task<decimal> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
decimal value = 0.00M; decimal value = 0.00M;
List<decimal[]> decimalDCBList = new List<decimal[]>(); List<decimal[]> decimalDCBList = new List<decimal[]>();
@ -29,7 +29,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
int CalcType = i > 0 ? 2 : 1; int CalcType = i > 0 ? 2 : 1;
value += GetByteDCD(data[i].HexTo4BinZero(), CalcType, decimalDCBList[i]); value += GetByteDCD(data[i].HexTo4BinZero(), CalcType, decimalDCBList[i]);
} }
return await Task.FromResult(value); result?.Invoke(value);
return await Task.FromResult(true);
} }
/// <summary> /// <summary>

View File

@ -7,7 +7,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 附录A.13数据格式 /// 附录A.13数据格式
/// </summary> /// </summary>
class Appendix_A13 : IAnalysisStrategy<List<string>, decimal> class Appendix_A13 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_A13> _logger; private readonly ILogger<Appendix_A13> _logger;
@ -16,7 +16,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger; _logger = logger;
} }
public async Task<decimal> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
decimal value = 0.00M; decimal value = 0.00M;
List<decimal[]> decimalDCBList = new List<decimal[]>(); List<decimal[]> decimalDCBList = new List<decimal[]>();
@ -29,7 +29,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
int CalcType = i > 1 ? 2 : 1; int CalcType = i > 1 ? 2 : 1;
value += GetByteDCD(data[i].HexTo4BinZero(), CalcType, decimalDCBList[i]); value += GetByteDCD(data[i].HexTo4BinZero(), CalcType, decimalDCBList[i]);
} }
return await Task.FromResult(value); result?.Invoke(value);
return await Task.FromResult(true);
} }
/// <summary> /// <summary>
/// 附录A.13数据格式计算规则方法 /// 附录A.13数据格式计算规则方法

View File

@ -7,7 +7,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary> /// <summary>
/// 附录A.14数据格式 /// 附录A.14数据格式
/// </summary> /// </summary>
class Appendix_A14 : IAnalysisStrategy<List<string>, decimal> class Appendix_A14 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_A14> _logger; private readonly ILogger<Appendix_A14> _logger;
@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
{ {
_logger = logger; _logger = logger;
} }
public async Task<decimal> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
decimal value = 0.0000M; decimal value = 0.0000M;
List<decimal[]> decimalDCBList = new List<decimal[]>(); List<decimal[]> decimalDCBList = new List<decimal[]>();
@ -29,7 +29,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
int CalcType = i > 1 ? 2 : 1; int CalcType = i > 1 ? 2 : 1;
value += GetByteDCD(data[i].HexTo4BinZero(), CalcType, decimalDCBList[i]); value += GetByteDCD(data[i].HexTo4BinZero(), CalcType, decimalDCBList[i]);
} }
return await Task.FromResult(value); result?.Invoke(value);
return await Task.FromResult(true);
} }
/// <summary> /// <summary>

View File

@ -3,7 +3,7 @@ using Microsoft.Extensions.Logging;
namespace JiShe.CollectBus.Protocol.T37612012.Appendix namespace JiShe.CollectBus.Protocol.T37612012.Appendix
{ {
public class Appendix_A15 : IAnalysisStrategy<List<string>, string> public class Appendix_A15 : IAnalysisStrategy<List<string>>
{ {
private readonly ILogger<Appendix_A15> _logger; private readonly ILogger<Appendix_A15> _logger;
@ -12,12 +12,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger; _logger = logger;
} }
public async Task<string> ExecuteAsync(List<string> data) public async Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{ {
data.Reverse(); data.Reverse();
data.Insert(0, DateTime.Now.ToString("yyyy").Substring(0, 2)); data.Insert(0, DateTime.Now.ToString("yyyy").Substring(0, 2));
string date= string.Join("", data); string date= string.Join("", data);
return await Task.FromResult(date); result?.Invoke(date);
return await Task.FromResult(true);
} }
} }
} }

Some files were not shown because too many files have changed in this diff Show More