fix time calculation from raw data

This commit is contained in:
2026-07-02 21:49:01 +02:00
parent 3c5a28f69d
commit d11f7107fe
4 changed files with 20 additions and 8 deletions
@@ -36,7 +36,11 @@ public sealed class DiagnosticLedState5Data : DiagnosticLedData
public ushort FieldCalibration { get; }
/// <summary>ASIC timestamp (bbbbbbbb), 8192 ticks per second.</summary>
public uint AsicTimestamp { get; }
public double AsicTimestamp
{
get { return AsicTimestampTicks / 8192; }
}
public uint AsicTimestampTicks { get; }
/// <summary>Field drive time in microseconds (ff).</summary>
public byte FieldDriveTimeUs { get; }
@@ -74,7 +78,7 @@ public sealed class DiagnosticLedState5Data : DiagnosticLedData
// ---- State #5 specific ----
FieldCalibration = DiagnosticHex.ParseUInt16(fields[5]);
AsicTimestamp = DiagnosticHex.ParseUInt32(fields[6]);
AsicTimestampTicks = DiagnosticHex.ParseUInt32(fields[6]);
FieldDriveTimeUs = DiagnosticHex.ParseByte(fields[7]);
MeanFlowRate = unchecked((int)DiagnosticHex.ParseUInt32(fields[8]));
@@ -39,7 +39,11 @@ namespace TBF.Rig.TestMethods.iPerlCommunication.communication.C4.diagnosticLed.
public sealed class DiagnosticLedState6Data : DiagnosticLedData
{
public ushort FieldCalibration { get; }
public uint AsicTimestamp { get; }
public double AsicTimestamp
{
get { return AsicTimestampTicks / 8192; }
}
public uint AsicTimestampTicks { get; }
public byte FieldDriveTimeUs { get; }
public int MeanFlowRate { get; }
@@ -74,7 +78,7 @@ public sealed class DiagnosticLedState6Data : DiagnosticLedData
// ---- State #6 specific ----
FieldCalibration = DiagnosticHex.ParseUInt16(fields[5]);
AsicTimestamp = DiagnosticHex.ParseUInt32(fields[6]);
AsicTimestampTicks = DiagnosticHex.ParseUInt32(fields[6]);
FieldDriveTimeUs = DiagnosticHex.ParseByte(fields[7]);
MeanFlowRate = unchecked((int)DiagnosticHex.ParseUInt32(fields[8]));
@@ -46,7 +46,11 @@ public sealed class DiagnosticLedState7Data : DiagnosticLedData
// ----- State #6 fields -----
public ushort FieldCalibration { get; }
public uint AsicTimestamp { get; }
public double AsicTimestamp
{
get { return AsicTimestampTicks / 8192; }
}
public uint AsicTimestampTicks { get; }
public byte FieldDriveTimeUs { get; }
public int MeanFlowRate { get; }
@@ -103,7 +107,7 @@ public sealed class DiagnosticLedState7Data : DiagnosticLedData
// ---- State #6 fields ----
FieldCalibration = DiagnosticHex.ParseUInt16(fields[5]);
AsicTimestamp = DiagnosticHex.ParseUInt32(fields[6]);
AsicTimestampTicks = DiagnosticHex.ParseUInt32(fields[6]);
FieldDriveTimeUs = DiagnosticHex.ParseByte(fields[7]);
MeanFlowRate = unchecked((int)DiagnosticHex.ParseUInt32(fields[8]));