Compare commits
2 Commits
c5c428f551
...
0937490f05
| Author | SHA1 | Date | |
|---|---|---|---|
| 0937490f05 | |||
| 4f1814b8df |
@ -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;
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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)
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 "其他协议";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
/// <summary>
|
||||
/// 5.12.2.4.85 F129:当前正向有功电能示值(总、费率1~M)
|
||||
/// </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;
|
||||
|
||||
@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
/// <summary>
|
||||
/// 5.12.2.4.86 F130:当前正向无功(组合无功 1)电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
/// <summary>
|
||||
/// 5.12.2.4.87 F131:当前反向有功电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
/// <summary>
|
||||
/// 5.12.2.4.88 F132:当前反向无功(组合无功 2)电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -11,7 +11,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0CH
|
||||
/// <summary>
|
||||
/// 5.12.2.4.101 F145:当月正向有功最大需量及发生时间(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
/// <summary>
|
||||
/// 5.12.2.4.105 F149:上月(上一结算日)正向有功最大需量及发生时间(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -10,7 +10,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AFN_0CH
|
||||
/// <summary>
|
||||
/// 5.12.2.4.30 F33:当前正向有/无功电能示值、一/四象限无功电能示值(总、费率 1~M,1≤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;
|
||||
}
|
||||
|
||||
@ -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());
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.11 F11:抄表日冻结电能表正向有/无功最大需量及发生时间(总、费率 1~M,1≤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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.116 F161:日冻结正向有功电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.117 F162:日冻结正向无功(组合无功 1)电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.118 F163:日冻结反向有功电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.119 F164:日冻结反向无功(组合无功 1)电能示值(总、费率 1~M)
|
||||
/// </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());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.120 F165:日冻结一象限无功电能示值(总、费率 1~M)
|
||||
/// </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());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.121 F166:日冻结二象限无功电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.122 F167:日冻结三象限无功电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.123 F168:日冻结四象限无功电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.132 F177:月冻结正向有功电能示值(总、费率 1~M)
|
||||
/// </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());
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// F178:月冻结正向无功(组合无功 1)电能示值(总、费率 1~M)
|
||||
/// </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());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.134 F179:月冻结反向有功电能示值(总、费率 1~M)
|
||||
/// </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());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.135 F180:月冻结反向无功(组合无功 1)电能示值(总、费率 1~M)
|
||||
/// </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());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.136 F181:月冻结一象限无功电能示值(总、费率 1~M)
|
||||
/// </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());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.137 F182:月冻结二象限无功电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -13,7 +13,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.138 F183:月冻结三象限无功电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.139 F184:月冻结四象限无功电能示值(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.144 F189:抄表日冻结正向有功最大需量及发生时间(总、费率 1~M)
|
||||
/// </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());
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.145 F190:抄表日冻结正向无功最大需量及发生时间(总、费率 1~M)
|
||||
/// </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;
|
||||
|
||||
@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.148 F193:月冻结正向有功最大需量及发生时间(总、费率 1~M)
|
||||
/// </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;
|
||||
}
|
||||
|
||||
@ -15,7 +15,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.150 F195:月冻结反向有功最大需量及发生时间(总、费率 1~M)
|
||||
/// </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;
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.15 F19:月冻结电能表正向有/无功最大需量及发生时间(总、费率 1~M,1≤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;
|
||||
|
||||
@ -17,7 +17,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.3 F3:日冻结正向有/无功最大需量及发生时间(总、费率 1~M,1≤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;
|
||||
|
||||
@ -16,7 +16,7 @@ namespace JiShe.CollectBus.Protocol.T37612012.AnalysisData.AFN_0DH
|
||||
/// <summary>
|
||||
/// 5.13.2.4.4 F4:日冻结反向有/无功最大需量及发生时间(总、费率 1~M,1≤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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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数据格式计算规则方法
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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
Loading…
x
Reference in New Issue
Block a user