Compare commits

...

2 Commits

Author SHA1 Message Date
0937490f05 代码合并 2025-04-29 09:19:46 +08:00
4f1814b8df 协议解析优化
策略模式回调采用Action方式灵活处理
2025-04-29 09:16:48 +08:00
119 changed files with 1347 additions and 658 deletions

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
/// <summary>
/// 5.12.2.4.87 F131当前反向有功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -21,7 +21,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
_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
{
@ -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);
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,
Fn = input.DT.Fn,
Pn = input.DA.Pn,
Data = list
};
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_logger.LogError(ex, $"0C_131解析失败:{input.A.Code}-{input.DT.Fn}-{input.BaseHexMessage.HexMessageString},{ex.Message}");
return null;
}
return await Task.FromResult(false);
}
@ -62,8 +63,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
values.Add(errorCode.Item1);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A14), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A14), arr, (value) =>
{
values.Add(value.ToString());
}); //从第10个开始每加5个字节为下一个值的开始
}
}
return values;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.80 F102测量点正向无功总电能示值曲线
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.81 F103测量点反向有功总电能示值曲线
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.82 F104测量点反向无功总电能示值曲线
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.83 F105测量点功率因数曲线
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A5), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.84 F106测量点 A相功率因数曲线
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A5), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.84 F107测量点 B相功率因数曲线
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A5), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.84 F108测量点 C相功率因数曲线
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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)
@ -89,8 +90,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A5), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.11 F11抄表日冻结电能表正向有/无功最大需量及发生时间(总、费率 1M1≤M≤12
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(nameof(Appendix_A5), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A5), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.104 F145测量点一象限无功总电能示值曲线
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.105 F146测量点四象限无功总电能示值曲线
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.106 F147测量点二象限无功总电能示值曲线
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.107 F148测量点三象限无功总电能示值曲线
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.116 F161日冻结正向有功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A14), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A14), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.117 F162日冻结正向无功组合无功 1电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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)
@ -92,8 +93,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.118 F163日冻结反向有功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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)
@ -93,8 +94,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A14), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A14), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.119 F164日冻结反向无功组合无功 1电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.120 F165日冻结一象限无功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.121 F166日冻结二象限无功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.122 F167日冻结三象限无功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.123 F168日冻结四象限无功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.132 F177月冻结正向有功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -25,7 +25,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -66,12 +66,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A14), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A14), arr, (value) =>
{
values.Add(value.ToString());
});
}
}

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// F178月冻结正向无功组合无功 1电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.134 F179月冻结反向有功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A14), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A14), arr, (value) =>
{
values.Add(value.ToString());
});
}
}

View File

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

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.136 F181月冻结一象限无功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.137 F182月冻结二象限无功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

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

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.139 F184月冻结四象限无功电能示值总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -67,12 +67,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A11), arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A11), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.144 F189抄表日冻结正向有功最大需量及发生时间总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
{
values.Add(value.ToString());
});
}
}

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.145 F190抄表日冻结正向无功最大需量及发生时间总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<AnalysisBaseDto<decimal>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -62,12 +62,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.148 F193月冻结正向有功最大需量及发生时间总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<AnalysisBaseDto<decimal>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -62,12 +62,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month
};
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, data); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, data, (value) =>
{
values.Add(value.ToString());
});
}
return values;
}

View File

@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.150 F195月冻结反向有功最大需量及发生时间总、费率 1M
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<AnalysisBaseDto<decimal>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -62,12 +62,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Month
};
await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, data); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, data, (value) =>
{
values.Add(value.ToString());
});
}
return values;
}

View File

@ -16,7 +16,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.15 F19月冻结电能表正向有/无功最大需量及发生时间(总、费率 1M1≤M≤12
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -28,7 +28,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -17,7 +17,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.3 F3日冻结正向有/无功最大需量及发生时间(总、费率 1M1≤M≤12
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -29,7 +29,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -72,12 +72,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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)
@ -112,8 +113,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -16,7 +16,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.4 F4日冻结反向有/无功最大需量及发生时间(总、费率 1M1≤M≤12
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -28,7 +28,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -71,12 +71,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Day
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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)
@ -111,8 +112,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, T>(appendixName, arr); //从第10个开始每加5个字节为下一个值的开始
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(appendixName, arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.60 F81测量点有功功率曲线
/// </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;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.61 F82测量点 A相有功功率曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.61 F83测量点 B相有功功率曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.61 F84测量点 C相有功功率曲线
/// </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;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.64 F85测量点无功功率曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.65 F86测量点 A相无功功率曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.66 F87测量点 B相无功功率曲线
/// </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;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.67 F88测量点 C相无功功率曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A9), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A9), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.68 F89测量点 A相电压曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A7), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A7), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.68 F89测量点 B相电压曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A7), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A7), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.68 F89测量点 C相电压曲线
/// </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;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -68,12 +68,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A7), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A7), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.71 F92测量点 A相电流曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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)
@ -91,8 +92,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A25), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A25), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.72 F93测量点 B相电流曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A25), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A25), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.73 F94测量点 C相电流曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A25), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A25), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.74 F95测量点零序电流曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A25), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A25), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.75 F97测量点正向有功总电能量曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A13), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A13), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.76 F98测量点正向无功总电能量曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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)
@ -91,8 +92,10 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
values.Add(errorCode.Item1);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A13), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A13), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
/// <summary>
/// 5.13.2.4.77 F99测量点反向有功总电能量曲线
/// </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;
@ -27,7 +27,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<List<AnalysisBaseDto<decimal>>>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -69,12 +69,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
DensityUnit = DensityUnit.Minute
};
await _dataStorage.SaveMultipleDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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);
else
{
var value = await _analysisStrategyContext.ExecuteAsync<List<string>, decimal>(nameof(Appendix_A13), arr);
values.Add(value.ToString());
await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_A13), arr, (value) =>
{
values.Add(value.ToString());
});
}
}
return values;

View File

@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0EH
/// Item1=停电事件
/// Item2=上电事件
/// </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;
@ -20,7 +20,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0EH
_logger = logger;
}
public Task<UnitDataAnalysis<Tuple<string, string>>> ExecuteAsync(TB3761 tB3761)
public Task<bool> ExecuteAsync(TB3761 tB3761, Action<dynamic>? result = null)
{
try
{
@ -41,13 +41,14 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0EH
Data = AnalysisDataUnit(tB3761.UnitData.HexMessageList)
};
// meterData.DataType = "0E_1";
return Task.FromResult(dto);
result?.Invoke(dto);
return Task.FromResult(true);
}
catch (Exception ex)
{
_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)

View File

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

View File

@ -17,7 +17,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
/// <summary>
/// 5.16 数据转发AFN=10H
/// </summary>
public class AFN16_F1_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<string>>
public class AFN16_F1_Analysis : IAnalysisStrategy<TB3761>
{
private readonly ILogger<AFN16_F1_Analysis> _logger;
@ -26,7 +26,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
_logger = logger;
}
public Task<UnitDataAnalysis<string>> ExecuteAsync(TB3761 input)
public Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -40,13 +40,15 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_10H
Pn = input.DA.Pn,
Data = AnalysisDataUnit(input.UnitData.HexMessageList)
};
return Task.FromResult(dto);
result?.Invoke(dto);
return Task.FromResult(true);
}
catch (Exception ex)
{
_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>
public class AFN16_F98_Analysis : IAnalysisStrategy<TB3761, UnitDataAnalysis<bool>>
public class AFN16_F98_Analysis : IAnalysisStrategy<TB3761>
{
private readonly ILogger<AFN16_F98_Analysis> _logger;
@ -25,7 +25,7 @@ namespace GatherService.WattMeter.AnalysisData.AFN_10H
_dataStorage = dataStorage;
}
public async Task<UnitDataAnalysis<bool>> ExecuteAsync(TB3761 input)
public async Task<bool> ExecuteAsync(TB3761 input, Action<dynamic>? result = null)
{
try
{
@ -58,13 +58,15 @@ namespace GatherService.WattMeter.AnalysisData.AFN_10H
DensityUnit = DensityUnit.Second
};
//await _dataStorage.SaveDataToIotDbAsync<decimal>(unitDataAnalysis);
return await Task.FromResult(unitDataAnalysis);
result?.Invoke(unitDataAnalysis);
return await Task.FromResult(true);
}
catch (Exception ex)
{
_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)

View File

@ -4,9 +4,9 @@ using Microsoft.Extensions.Logging;
namespace JiShe.CollectBus.Protocol.T37612012.Appendix
{
/// <summary>
/// 第一套第 2 日时段表数据
/// Appendix_02800002
/// </summary>
public class Appendix_02800002 : IAnalysisStrategy<List<string>, List<string>>
public class Appendix_02800002 : IAnalysisStrategy<List<string>>
{
private readonly ILogger<Appendix_02800002> _logger;
@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger;
}
public Task<List<string>> ExecuteAsync(List<string> data)
public Task<bool> ExecuteAsync(List<string> data, Action<dynamic>? result = null)
{
try
{
@ -23,12 +23,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
return null;
var value = string.Join(".", data);
var values= new List<string>() { "电网频率", "10_97", "1", value };
return Task.FromResult(values);
result?.Invoke(values);
return Task.FromResult(true);
}
catch (Exception ex)
{
_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>
/// 年时区数 p≤14
/// </summary>
public class Appendix_04000201 : IAnalysisStrategy<List<string>, List<string>>
public class Appendix_04000201 : IAnalysisStrategy<List<string>>
{
private int valueByteCount = 1;
private readonly ILogger<Appendix_04000201> _logger;
@ -17,7 +17,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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>();
values.Insert(0, "10_94");
@ -27,7 +27,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
{
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>
/// 日时段表数 q≤8
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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);
values[0] = "日时段表数";
return await Task.FromResult(values);
return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04000201), data, (values) =>
{
values[0] = "日时段表数";
result?.Invoke(values);
});
}
}
}

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary>
/// 日时段数(每日切换数) m≤14
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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);
values[0] = "日时段数(每日切换数)";
return await Task.FromResult(values);
return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04000201), data, (values) =>
{
values[0] = "日时段数(每日切换数)";
result?.Invoke(values);
});
}
}
}

View File

@ -1,12 +1,13 @@
using JiShe.CollectBus.Protocol.Interfaces;
using Microsoft.Extensions.Logging;
using TouchSocket.Core;
namespace JiShe.CollectBus.Protocol.T37612012.Appendix
{
/// <summary>
/// 费率数 k≤63
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +18,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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);
values[0] = "费率数";
return await Task.FromResult(values);
return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04000201), data, (values) =>
{
values[0] = "费率数";
result?.Invoke(values);
});
}
}
}

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary>
/// 第一套时区表数据
/// </summary>
public class Appendix_04010000 : IAnalysisStrategy<List<string>, List<string>>
public class Appendix_04010000 : IAnalysisStrategy<List<string>>
{
/// <summary>
/// 每个值字节数
@ -19,7 +19,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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>();
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[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>
/// 第一套第 1 日时段表数据:
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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);
values[0] = "第一套第1日第{0}时段起始时间及费率号";
return await Task.FromResult(values);
return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
{
values[0] = "第一套第1日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
}
}
}

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary>
/// 第一套第 2 日时段表数据
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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);
values[0] = "第一套第2日第{0}时段起始时间及费率号";
return await Task.FromResult(values);
return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
{
values[0] = "第一套第2日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
}
}
}

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary>
/// 第一套第 3 日时段表数据
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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);
values[0] = "第一套第3日第{0}时段起始时间及费率号";
return await Task.FromResult(values);
return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
{
values[0] = "第一套第3日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
}
}
}

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary>
/// 第一套第 4 日时段表数据
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -16,11 +16,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger;
_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);
values[0] = "第一套第4日第{0}时段起始时间及费率号";
return await Task.FromResult(values);
return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
{
values[0] = "第一套第4日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
}
}
}

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary>
/// 第一套第 5 日时段表数据
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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);
values[0] = "第一套第5日第{0}时段起始时间及费率号";
return await Task.FromResult(values);
return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
{
values[0] = "第一套第5日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
}
}
}

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary>
/// 第一套第 6 日时段表数据
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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);
values[0] = "第一套第6日第{0}时段起始时间及费率号";
return await Task.FromResult(values);
return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
{
values[0] = "第一套第6日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
}
}
}

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary>
/// 第一套第 7 日时段表数据
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -16,11 +16,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_logger = logger;
_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);
values[0] = "第一套第7日第{0}时段起始时间及费率号";
return await Task.FromResult(values);
return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
{
values[0] = "第一套第7日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
}
}
}

View File

@ -6,7 +6,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
/// <summary>
/// 第一套第 8 日时段表数据
/// </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 AnalysisStrategyContext _analysisStrategyContext;
@ -17,11 +17,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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);
values[0] = "第一套第8日第{0}时段起始时间及费率号";
return await Task.FromResult(values);
return await _analysisStrategyContext.ExecuteAsync<List<string>>(nameof(Appendix_04010000), data, (values) =>
{
values[0] = "第一套第8日第{0}时段起始时间及费率号";
result?.Invoke(values);
});
}
}
}

View File

@ -4,7 +4,7 @@ using Microsoft.Extensions.Logging;
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;
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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 minutes = data[1];
@ -24,7 +24,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
var week = binString.Substring(0, 3).HexTo4BinZero();
var year = $"{DateTime.Now.ToString("yyyy").Substring(0, 2)}{data[5]}";
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>
/// 附录A.11数据格式
/// </summary>
class Appendix_A11 : IAnalysisStrategy<List<string>, decimal>
class Appendix_A11 : IAnalysisStrategy<List<string>>
{
private readonly ILogger<Appendix_A11> _logger;
@ -16,7 +16,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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;
List<decimal[]> decimalDCBList = new List<decimal[]>();
@ -29,7 +29,8 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
int CalcType = i > 0 ? 2 : 1;
value += GetByteDCD(data[i].HexTo4BinZero(), CalcType, decimalDCBList[i]);
}
return await Task.FromResult(value);
result?.Invoke(value);
return await Task.FromResult(true);
}
/// <summary>

View File

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

View File

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

View File

@ -3,7 +3,7 @@ using Microsoft.Extensions.Logging;
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;
@ -12,12 +12,13 @@ namespace JiShe.CollectBus.Protocol.T37612012.Appendix
_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.Insert(0, DateTime.Now.ToString("yyyy").Substring(0, 2));
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