From 27104ada3af6b879635a7521e722fcb7c97c81d2 Mon Sep 17 00:00:00 2001
From: ChenYi <296215406@outlook.com>
Date: Fri, 25 Apr 2025 17:18:59 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E6=B1=A0=E5=BA=94=E7=94=A804?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../SendData/Telemetry1882018PacketBuilder.cs | 63 ++++++-------------
.../T1882018ProtocolPlugin.cs | 22 +++----
.../T6452007ProtocolPlugin.cs | 25 +++-----
.../BasicScheduledMeterReadingService.cs | 2 +-
...nergySystemScheduledMeterReadingService.cs | 6 +-
.../Consts/T1882018PacketItemCodeConst.cs | 48 ++++++--------
...onst.cs => T6452007PacketItemCodeConst.cs} | 4 +-
7 files changed, 62 insertions(+), 108 deletions(-)
rename shared/JiShe.CollectBus.Common/Consts/{T645PacketItemCodeConst.cs => T6452007PacketItemCodeConst.cs} (94%)
diff --git a/protocols/JiShe.CollectBus.Protocol.T1882018/SendData/Telemetry1882018PacketBuilder.cs b/protocols/JiShe.CollectBus.Protocol.T1882018/SendData/Telemetry1882018PacketBuilder.cs
index f9dab9a..eaa9ca8 100644
--- a/protocols/JiShe.CollectBus.Protocol.T1882018/SendData/Telemetry1882018PacketBuilder.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T1882018/SendData/Telemetry1882018PacketBuilder.cs
@@ -8,7 +8,7 @@ using System.Reflection;
namespace JiShe.CollectBus.Protocol.SendData
{
///
- /// 构建645-2007下发报文
+ /// 构建188-2018下发报文
///
public static class Telemetry1882018PacketBuilder
{
@@ -30,7 +30,7 @@ namespace JiShe.CollectBus.Protocol.SendData
var methods = typeof(Telemetry1882018PacketBuilder).GetMethods(BindingFlags.Static | BindingFlags.Public);
foreach (var method in methods)
{
- if (method.Name.StartsWith("C") && method.Name.EndsWith("_Send"))
+ if (method.Name.StartsWith("CTR") && method.Name.EndsWith("_Send"))
{
string code = method.Name;
var delegateInstance = (T1882018Delegate)Delegate.CreateDelegate(typeof(T1882018Delegate), method);
@@ -39,68 +39,41 @@ namespace JiShe.CollectBus.Protocol.SendData
}
}
- #region 1CH 跳合闸、报警、保电
+ #region 读数据
///
- /// 1CH 跳合闸
+ /// 读取计量数据
///
///
///
- public static Telemetry1882018PacketResponse C1C_01_Send(Telemetry1882018PacketRequest request)
+ public static Telemetry1882018PacketResponse CTR_01_Send(Telemetry1882018PacketRequest request)
{
var itemCodeArr = request.ItemCode.Split('_');
- var c_data = itemCodeArr[0];
- var n_data = itemCodeArr[1];
- string password = request.Password;
- string pwdLevel = "02";
+ var c_data = itemCodeArr[0];//01
+ var d_data = itemCodeArr[1];//91 或者 90
+ var dataUnit = new List() { "1F", d_data, "00" };
+ var dataList = Build188SendData.Build188SendCommand(request.MeterAddress, c_data, dataUnit);
- if (!string.IsNullOrWhiteSpace(password) && password.Contains("|"))
- {
- var sp = password.Split('|');
- password = sp[0];
- pwdLevel = sp[1];
- }
-
- var strDate = DateTime.Now.AddYears(3).ToString("000012ddMMyy").StrAddSpan();//命令有效截止时间
-
- var strP = password.StrAddSpan().StrReverseOrder();
- var strSJY = " " + pwdLevel + " " + strP + " 01 00 00 00 " + n_data + " 00 " + strDate;
- var dataUnit = strSJY.Replace(" ", "").StringToPairs();
-
- var dataList = Build645SendData.Build645SendCommand(request.MeterAddress, c_data, dataUnit);
return new Telemetry1882018PacketResponse() { Data = dataList };
}
+ #endregion
-
+ #region 写数据
///
- /// 1CH 保电
+ /// 阀控
///
///
///
- public static Telemetry1882018PacketResponse C1C_03_Send(Telemetry1882018PacketRequest request)
+ public static Telemetry1882018PacketResponse CTR_04_Send(Telemetry1882018PacketRequest request)
{
var itemCodeArr = request.ItemCode.Split('_');
- var c_data = itemCodeArr[0];
- var n_data = itemCodeArr[1];
- string password = request.Password;
+ var c_data = itemCodeArr[0];//01
+ var d_data = itemCodeArr[1];//55 或者 99
+ var dataUnit = new List() { "A0", "17", "00", d_data };
+ var dataList = Build188SendData.Build188SendCommand(request.MeterAddress, c_data, dataUnit);
- if (!string.IsNullOrWhiteSpace(password) && password.Contains("|"))
- {
- var sp = password.Split('|');
- password = sp[0];
- }
-
- var strDate = (n_data + DateTime.Now.AddDays(1).ToString("00000012ddMMyy")).StrAddSpan();
-
- var strP = password.StrAddSpan().StrReverseOrder();
-
- var strSJY = " 02 " + strP + " 01 00 00 00 " + strDate;
-
- var dataUnit = strSJY.Replace(" ", "").StringToPairs();
-
- var dataList = Build645SendData.Build645SendCommand(request.MeterAddress, c_data, dataUnit);
return new Telemetry1882018PacketResponse() { Data = dataList };
}
- #endregion
+ #endregion
}
}
diff --git a/protocols/JiShe.CollectBus.Protocol.T1882018/T1882018ProtocolPlugin.cs b/protocols/JiShe.CollectBus.Protocol.T1882018/T1882018ProtocolPlugin.cs
index ad6e15c..de7b44a 100644
--- a/protocols/JiShe.CollectBus.Protocol.T1882018/T1882018ProtocolPlugin.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T1882018/T1882018ProtocolPlugin.cs
@@ -19,15 +19,13 @@ using Volo.Abp.Domain.Repositories;
namespace JiShe.CollectBus.Protocol
{
+ ///
+ /// T1882018协议插件
+ ///
public class T1882018ProtocolPlugin : T37612012ProtocolPlugin
{
private readonly ILogger _logger;
- private readonly IProducerService _producerService;
-
- private readonly IRepository _deviceRepository;
- private readonly ITcpService _tcpService;
-
public readonly Dictionary T188ControlHandlers;
///
@@ -37,10 +35,6 @@ namespace JiShe.CollectBus.Protocol
public T1882018ProtocolPlugin(IServiceProvider serviceProvider, ILogger logger, ITcpService tcpService) : base(serviceProvider, logger, tcpService)
{
_logger = logger;
- //_logger = serviceProvider.GetRequiredService>();
- _producerService = serviceProvider.GetRequiredService();
- _deviceRepository = serviceProvider.GetRequiredService>();
- _tcpService = tcpService;
T188ControlHandlers = Telemetry1882018PacketBuilder.T1882018ControlHandlers;
}
@@ -92,22 +86,24 @@ namespace JiShe.CollectBus.Protocol
{
if (request == null)
{
- throw new Exception($"{nameof(T1882018ProtocolPlugin)} 报文构建失败,参数为空");
+ _logger.LogError($"{nameof(T1882018ProtocolPlugin)} 报文构建失败,参数为空");
+ return new ProtocolBuildResponse();
}
var itemCodeArr = request.ItemCode.Split('_');
var aFNStr = itemCodeArr[0];
var aFN = (AFN)aFNStr.HexToDec();
var fn = int.Parse(itemCodeArr[1]);
+
Telemetry3761PacketResponse builderResponse = null;
List dataUnit = new List();
- //数据转发场景 10H_F1_1CH
+ //数据转发场景 10H_F1
if (aFNStr == "10" && request.SubProtocolRequest != null && string.IsNullOrWhiteSpace(request.SubProtocolRequest.ItemCode) == false)
{
- var t645PacketHandlerName = $"C{request.SubProtocolRequest.ItemCode}_Send";
+ var t188PacketHandlerName = $"{T1882018PacketItemCodeConst.BasicT1882018}_{request.SubProtocolRequest.ItemCode}_Send";
Telemetry1882018PacketResponse t645PacketResponse = null;
- if (T188ControlHandlers != null && T188ControlHandlers.TryGetValue(t645PacketHandlerName
+ if (T188ControlHandlers != null && T188ControlHandlers.TryGetValue(t188PacketHandlerName
, out var t645PacketHandler))
{
t645PacketResponse = t645PacketHandler(new Telemetry1882018PacketRequest()
diff --git a/protocols/JiShe.CollectBus.Protocol.T6452007/T6452007ProtocolPlugin.cs b/protocols/JiShe.CollectBus.Protocol.T6452007/T6452007ProtocolPlugin.cs
index 8d04a87..fad7ed0 100644
--- a/protocols/JiShe.CollectBus.Protocol.T6452007/T6452007ProtocolPlugin.cs
+++ b/protocols/JiShe.CollectBus.Protocol.T6452007/T6452007ProtocolPlugin.cs
@@ -15,30 +15,22 @@ using Volo.Abp.Domain.Repositories;
namespace JiShe.CollectBus.Protocol
{
- public class T6452007ProtocolPlugin : ProtocolPlugin
+ ///
+ /// T6452007协议插件
+ ///
+ public class T6452007ProtocolPlugin : T37612012ProtocolPlugin
{
private readonly ILogger _logger;
-
- private readonly IProducerService _producerService;
-
- private readonly IRepository _deviceRepository;
- private readonly ITcpService _tcpService;
-
- public readonly Dictionary T3761AFNHandlers;
+
public readonly Dictionary T645ControlHandlers;
///
/// Initializes a new instance of the class.
///
/// The service provider.
- public T6452007ProtocolPlugin(IServiceProvider serviceProvider, ILogger logger, ITcpService tcpService) : base(serviceProvider, logger)
+ public T6452007ProtocolPlugin(IServiceProvider serviceProvider, ILogger logger, ITcpService tcpService) : base(serviceProvider, logger, tcpService)
{
_logger = logger;
- //_logger = serviceProvider.GetRequiredService>();
- _producerService = serviceProvider.GetRequiredService();
- _deviceRepository = serviceProvider.GetRequiredService>();
- _tcpService = tcpService;
- T3761AFNHandlers = Telemetry3761PacketBuilder.T3761AFNHandlers;
T645ControlHandlers = Telemetry6452007PacketBuilder.T645ControlHandlers;
}
@@ -90,7 +82,8 @@ namespace JiShe.CollectBus.Protocol
{
if (request == null)
{
- throw new Exception($"{nameof(T6452007ProtocolPlugin)} 报文构建失败,参数为空");
+ _logger.LogError($"{nameof(ProtocolBuildResponse)} 报文构建失败,参数为空");
+ return new ProtocolBuildResponse();
}
var itemCodeArr = request.ItemCode.Split('_');
var aFNStr = itemCodeArr[0];
@@ -123,7 +116,7 @@ namespace JiShe.CollectBus.Protocol
}
string afnMethonCode = $"AFN{aFNStr}_Fn_Send";
- if (T3761AFNHandlers != null && T3761AFNHandlers.TryGetValue(afnMethonCode
+ if (base.T3761AFNHandlers != null && base.T3761AFNHandlers.TryGetValue(afnMethonCode
, out var handler))
{
builderResponse = handler(new Telemetry3761PacketRequest()
diff --git a/services/JiShe.CollectBus.Application/ScheduledMeterReading/BasicScheduledMeterReadingService.cs b/services/JiShe.CollectBus.Application/ScheduledMeterReading/BasicScheduledMeterReadingService.cs
index 0cb8a2c..2b0df9e 100644
--- a/services/JiShe.CollectBus.Application/ScheduledMeterReading/BasicScheduledMeterReadingService.cs
+++ b/services/JiShe.CollectBus.Application/ScheduledMeterReading/BasicScheduledMeterReadingService.cs
@@ -756,7 +756,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
{
MeterAddress = ammeterInfo.AmmerterAddress,
Password = ammeterInfo.Password,
- ItemCode = T645PacketItemCodeConst.C08,
+ ItemCode = T6452007PacketItemCodeConst.C08,
}
});
diff --git a/services/JiShe.CollectBus.Application/ScheduledMeterReading/EnergySystemScheduledMeterReadingService.cs b/services/JiShe.CollectBus.Application/ScheduledMeterReading/EnergySystemScheduledMeterReadingService.cs
index 9a55f27..da0854d 100644
--- a/services/JiShe.CollectBus.Application/ScheduledMeterReading/EnergySystemScheduledMeterReadingService.cs
+++ b/services/JiShe.CollectBus.Application/ScheduledMeterReading/EnergySystemScheduledMeterReadingService.cs
@@ -233,17 +233,17 @@ namespace JiShe.CollectBus.ScheduledMeterReading
{
ammeterInfo.TripState = 0;
tripStateResult = true;
- subItemCode = T645PacketItemCodeConst.C1C01C;
+ subItemCode = T6452007PacketItemCodeConst.C1C01C;
if (ammeterInfo.TypeName != 1)
{
- subItemCode = T645PacketItemCodeConst.C1C01B;
+ subItemCode = T6452007PacketItemCodeConst.C1C01B;
}
}
else if (settingInfo.TripType.Equals("off"))
{
ammeterInfo.TripState = 1;
tripStateResult = false;
- subItemCode = T645PacketItemCodeConst.C1C01A;
+ subItemCode = T6452007PacketItemCodeConst.C1C01A;
}
else
{
diff --git a/shared/JiShe.CollectBus.Common/Consts/T1882018PacketItemCodeConst.cs b/shared/JiShe.CollectBus.Common/Consts/T1882018PacketItemCodeConst.cs
index fccd0cf..a51f77f 100644
--- a/shared/JiShe.CollectBus.Common/Consts/T1882018PacketItemCodeConst.cs
+++ b/shared/JiShe.CollectBus.Common/Consts/T1882018PacketItemCodeConst.cs
@@ -12,50 +12,42 @@ namespace JiShe.CollectBus.Common.Consts
public class T1882018PacketItemCodeConst
{
#region 下行报文编码
- #region 跳合闸、报警、保电
- ///
- /// 跳闸
- ///
- public const string C1C01A = "1C_1A";
///
- /// 单相合闸
+ /// 基路径
///
- public const string C1C01B = "1C_1B";
+ public const string BasicT1882018 = "CTR";
+
+ #region 读数据
+
///
- /// 三相合闸
+ /// 读取计量数据1
///
- public const string C1C01C = "1C_1C";
+ public const string CTR0190 = $"01_90";
///
- /// 触发报警
+ /// 读取计量数据2
///
- public const string C1C02A = "1C_2A";
+ public const string CTR0191 = $"01_91";
- ///
- /// 报警解除
- ///
- public const string C1C02B = "1C_2B";
-
- ///
- /// 保电开始
- ///
- public const string C1C03A = "1C_3A";
-
- ///
- /// 保电结束
- ///
- public const string C1C03B = "1C_3B";
#endregion
- #region 广播校时
+ #region 写数据
+
+ ///
+ /// 关阀
+ ///
+ public const string CTR30455 = $"_04_55";
///
- /// 广播校时
+ /// 开阀
///
- public const string C08 = "08";
+ public const string CTR30499 = $"_04_99";
+
+
#endregion
+
#endregion
}
}
diff --git a/shared/JiShe.CollectBus.Common/Consts/T645PacketItemCodeConst.cs b/shared/JiShe.CollectBus.Common/Consts/T6452007PacketItemCodeConst.cs
similarity index 94%
rename from shared/JiShe.CollectBus.Common/Consts/T645PacketItemCodeConst.cs
rename to shared/JiShe.CollectBus.Common/Consts/T6452007PacketItemCodeConst.cs
index 3b94e07..8a0834a 100644
--- a/shared/JiShe.CollectBus.Common/Consts/T645PacketItemCodeConst.cs
+++ b/shared/JiShe.CollectBus.Common/Consts/T6452007PacketItemCodeConst.cs
@@ -7,9 +7,9 @@ using System.Threading.Tasks;
namespace JiShe.CollectBus.Common.Consts
{
///
- /// T645报文项编码
+ /// T6452007报文项编码
///
- public class T645PacketItemCodeConst
+ public class T6452007PacketItemCodeConst
{
#region 下行报文编码
#region 跳合闸、报警、保电