优化报文存储记录

This commit is contained in:
ChenYi 2025-04-23 17:49:13 +08:00
parent 41d71a5fba
commit 310ae97a6b
6 changed files with 31 additions and 15 deletions

View File

@ -369,5 +369,16 @@ namespace JiShe.CollectBus.Protocol.Contracts.Abstracts
/// <returns></returns> /// <returns></returns>
public int CalculateFn(string dt1, string dt2) => dt2.HexToDec() * 8 + (8 - dt1.HexTo4BinZero().IndexOf("1")); public int CalculateFn(string dt1, string dt2) => dt2.HexToDec() * 8 + (8 - dt1.HexTo4BinZero().IndexOf("1"));
/// <summary>
/// 组装透明转发报文
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="entity"></param>
/// <returns></returns>
public virtual List<string> GenerateAFN10HContent<T>(T entity)
{
throw new Exception();
}
} }
} }

View File

@ -18,6 +18,12 @@ namespace JiShe.CollectBus.Protocol.Contracts.Interfaces
TB3761? Analysis3761(string messageReceived); TB3761? Analysis3761(string messageReceived);
/// <summary>
/// 组装透明转发报文
/// </summary>
/// <returns></returns>
List<string> GenerateAFN10HContent<T>(T entity);
//Task LoginAsync(MessageReceivedLogin messageReceived); //Task LoginAsync(MessageReceivedLogin messageReceived);
//Task HeartbeatAsync(MessageReceivedHeartbeat messageReceived); //Task HeartbeatAsync(MessageReceivedHeartbeat messageReceived);

View File

@ -645,7 +645,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
} }
string taskMark = CommonHelper.GetTaskMark((int)aFN, fn, ammeterInfo.MeteringCode, builderResponse.MSA); string taskMark = CommonHelper.GetTaskMark((int)aFN, fn, ammeterInfo.MeteringCode, builderResponse.MSA, builderResponse.Seq.PRSEQ);
var meterReadingRecords = new MeterReadingTelemetryPacketInfo() var meterReadingRecords = new MeterReadingTelemetryPacketInfo()
{ {
SystemName = SystemType, SystemName = SystemType,
@ -659,7 +659,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
MeterAddress = ammeterInfo.AmmerterAddress, MeterAddress = ammeterInfo.AmmerterAddress,
AFN = (int)aFN, AFN = (int)aFN,
Fn = fn, Fn = fn,
//Seq = builderResponse.Seq, Seq = builderResponse.Seq.PRSEQ,
MSA = builderResponse.MSA, MSA = builderResponse.MSA,
ItemCode = tempItem, ItemCode = tempItem,
TaskMark = taskMark, TaskMark = taskMark,
@ -963,7 +963,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
} }
string taskMark = CommonHelper.GetTaskMark((int)aFN, fn, watermeter.MeteringCode, builderResponse.MSA); string taskMark = CommonHelper.GetTaskMark((int)aFN, fn, watermeter.MeteringCode, builderResponse.MSA, builderResponse.Seq.PRSEQ);
var meterReadingRecords = new MeterReadingTelemetryPacketInfo() var meterReadingRecords = new MeterReadingTelemetryPacketInfo()
{ {
SystemName = SystemType, SystemName = SystemType,
@ -977,7 +977,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
MeterAddress = watermeter.MeterAddress, MeterAddress = watermeter.MeterAddress,
AFN = (int)aFN, AFN = (int)aFN,
Fn = fn, Fn = fn,
//Seq = builderResponse.Seq, Seq = builderResponse.Seq.PRSEQ,
MSA = builderResponse.MSA, MSA = builderResponse.MSA,
ItemCode = tempItem, ItemCode = tempItem,
TaskMark = taskMark, TaskMark = taskMark,
@ -1102,8 +1102,6 @@ namespace JiShe.CollectBus.ScheduledMeterReading
bool hasNext; bool hasNext;
var stopwatch = Stopwatch.StartNew(); var stopwatch = Stopwatch.StartNew();
var ddd = _runtimeContext.UseTableSessionPool;
do do
{ {
options.PageIndex = pageNumber++; options.PageIndex = pageNumber++;

View File

@ -280,7 +280,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
continue; continue;
} }
string taskMark = CommonHelper.GetTaskMark((int)aFN, fn, ammeterInfo.MeteringCode, builderResponse.MSA); string taskMark = CommonHelper.GetTaskMark((int)aFN, fn, ammeterInfo.MeteringCode, builderResponse.MSA,builderResponse.Seq.PRSEQ);
var meterReadingRecords = new MeterReadingTelemetryPacketInfo() var meterReadingRecords = new MeterReadingTelemetryPacketInfo()
{ {
SystemName = SystemType, SystemName = SystemType,
@ -294,7 +294,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
MeterAddress = ammeterInfo.AmmerterAddress, MeterAddress = ammeterInfo.AmmerterAddress,
AFN = (int)aFN, AFN = (int)aFN,
Fn = fn, Fn = fn,
//Seq = builderResponse.Seq, Seq = builderResponse.Seq.PRSEQ,
MSA = builderResponse.MSA, MSA = builderResponse.MSA,
ItemCode = temCode, ItemCode = temCode,
TaskMark = taskMark, TaskMark = taskMark,

View File

@ -104,10 +104,10 @@ namespace JiShe.CollectBus.IotSystems.MeterReadingRecords
[FIELDColumn] [FIELDColumn]
public string ItemCode { get; set; } public string ItemCode { get; set; }
///// <summary> /// <summary>
///// 帧序列域SEQ /// 帧序列域 SEQ
///// </summary> /// </summary>
//public required Seq Seq { get; set; } public int Seq { get; set; }
/// <summary> /// <summary>
/// 地址域A3的主站地址MSA /// 地址域A3的主站地址MSA

View File

@ -768,10 +768,11 @@ namespace JiShe.CollectBus.Common.Helpers
/// <param name="fn"></param> /// <param name="fn"></param>
/// <param name="pn"></param> /// <param name="pn"></param>
/// <param name="msa"></param> /// <param name="msa"></param>
/// <param name="seq"></param>
/// <returns></returns> /// <returns></returns>
public static string GetTaskMark(int afn, int fn, int pn, int msa) public static string GetTaskMark(int afn, int fn, int pn, int msa,int seq)
{ {
var makstr = $"{afn.ToString().PadLeft(2, '0')}{fn.ToString().PadLeft(2, '0')}{pn.ToString().PadLeft(2, '0')}"; var makstr = $"{afn.ToString().PadLeft(2, '0')}{fn.ToString().PadLeft(2, '0')}{pn.ToString().PadLeft(2, '0')}{msa.ToString().PadLeft(2, '0')}{seq.ToString().PadLeft(2, '0')}";
return makstr;// Convert.ToInt32(makstr) << 32 | msa; return makstr;// Convert.ToInt32(makstr) << 32 | msa;
} }