Better / more accurate interpretation of J1939 IDs in frame info window

This commit is contained in:
Collin Kidder
2026-03-04 21:12:51 -05:00
parent 1d2b8000fe
commit ad65cf78a8
2 changed files with 22 additions and 1 deletions
+2
View File
@@ -12,6 +12,8 @@ public:
int src;
int dest;
int pgn;
int edp;
int dp;
int pf;
int ps;
int priority;
+19
View File
@@ -431,6 +431,8 @@ void FrameInfoWindow::updateDetailsWindow(QString newID)
J1939ID jid;
jid.src = targettedID & 0xFF;
jid.priority = targettedID >> 26;
jid.edp = (targettedID >> 25) & 1;
jid.dp = (targettedID >> 24) & 1;
jid.pgn = (targettedID >> 8) & 0x3FFFF; //18 bits
jid.pf = (targettedID >> 16) & 0xFF;
jid.ps = (targettedID >> 8) & 0xFF;
@@ -450,14 +452,31 @@ void FrameInfoWindow::updateDetailsWindow(QString newID)
else
{
jid.dest = jid.ps;
jid.pgn &= 0xFFFF00; //targetted messages use PGN with 00 in low nibbles
tempItem = new QTreeWidgetItem();
if (jid.dest < 0xFF)
tempItem->setText(0, tr(" Destination ID: ") + Utility::formatNumber(static_cast<uint64_t>(jid.dest)));
else
tempItem->setText(0, tr(" Destination ID: Global (ALL)"));
baseNode->addChild(tempItem);
}
tempItem = new QTreeWidgetItem();
tempItem->setText(0, tr(" Priority: ") + QString::number(jid.priority) + " (0-7)") ;
baseNode->addChild(tempItem);
tempItem = new QTreeWidgetItem();
tempItem->setText(0, tr(" SRC: ") + Utility::formatNumber(static_cast<uint64_t>(jid.src)));
baseNode->addChild(tempItem);
tempItem = new QTreeWidgetItem();
tempItem->setText(0, tr(" EDP: ") + QString::number(jid.edp));
baseNode->addChild(tempItem);
tempItem = new QTreeWidgetItem();
tempItem->setText(0, tr(" DP: ") + QString::number(jid.dp));
baseNode->addChild(tempItem);
tempItem = new QTreeWidgetItem();
tempItem->setText(0, tr(" PGN: ") + Utility::formatNumber(static_cast<uint64_t>(jid.pgn)) + "(" + QString::number(jid.pgn) + ")");
baseNode->addChild(tempItem);