优化报文存储记录

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>
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);
/// <summary>
/// 组装透明转发报文
/// </summary>
/// <returns></returns>
List<string> GenerateAFN10HContent<T>(T entity);
//Task LoginAsync(MessageReceivedLogin 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()
{
SystemName = SystemType,
@ -659,7 +659,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
MeterAddress = ammeterInfo.AmmerterAddress,
AFN = (int)aFN,
Fn = fn,
//Seq = builderResponse.Seq,
Seq = builderResponse.Seq.PRSEQ,
MSA = builderResponse.MSA,
ItemCode = tempItem,
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()
{
SystemName = SystemType,
@ -977,7 +977,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
MeterAddress = watermeter.MeterAddress,
AFN = (int)aFN,
Fn = fn,
//Seq = builderResponse.Seq,
Seq = builderResponse.Seq.PRSEQ,
MSA = builderResponse.MSA,
ItemCode = tempItem,
TaskMark = taskMark,
@ -1102,8 +1102,6 @@ namespace JiShe.CollectBus.ScheduledMeterReading
bool hasNext;
var stopwatch = Stopwatch.StartNew();
var ddd = _runtimeContext.UseTableSessionPool;
do
{
options.PageIndex = pageNumber++;

View File

@ -280,7 +280,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
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()
{
SystemName = SystemType,
@ -294,7 +294,7 @@ namespace JiShe.CollectBus.ScheduledMeterReading
MeterAddress = ammeterInfo.AmmerterAddress,
AFN = (int)aFN,
Fn = fn,
//Seq = builderResponse.Seq,
Seq = builderResponse.Seq.PRSEQ,
MSA = builderResponse.MSA,
ItemCode = temCode,
TaskMark = taskMark,

View File

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

View File

@ -768,10 +768,11 @@ namespace JiShe.CollectBus.Common.Helpers
/// <param name="fn"></param>
/// <param name="pn"></param>
/// <param name="msa"></param>
/// <param name="seq"></param>
/// <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;
}