Make CAN id's either be 3 hex digits or 8 hex digits when displayed - depending on whether a frame uses standard or extended id mode.

This commit is contained in:
Collin Kidder
2017-11-26 16:30:48 -05:00
parent 1635e0ae44
commit 3b9c793e99
13 changed files with 55 additions and 27 deletions
+2 -2
View File
@@ -54,8 +54,8 @@ void BisectWindow::refreshIDList()
std::sort(foundID.begin(), foundID.end()); std::sort(foundID.begin(), foundID.end());
foreach (int id, foundID) { foreach (int id, foundID) {
ui->cbIDLower->addItem(Utility::formatNumber(id)); ui->cbIDLower->addItem(Utility::formatCANID(id));
ui->cbIDUpper->addItem(Utility::formatNumber(id)); ui->cbIDUpper->addItem(Utility::formatCANID(id));
} }
} }
+1 -1
View File
@@ -272,7 +272,7 @@ QVariant CANFrameModel::data(const QModelIndex &index, int role) const
case Column::TimeStamp: case Column::TimeStamp:
return Utility::formatTimestamp(thisFrame.timestamp); return Utility::formatTimestamp(thisFrame.timestamp);
case Column::FrameId: case Column::FrameId:
return Utility::formatNumber(thisFrame.ID); return Utility::formatCANID(thisFrame.ID, thisFrame.extended);
case Column::Extended: case Column::Extended:
return QString::number(thisFrame.extended); return QString::number(thisFrame.extended);
case Column::Direction: case Column::Direction:
+2 -2
View File
@@ -276,7 +276,7 @@ void DBCMainEditor::onCellChangedMessage(int row,int col)
item = ui->MessagesTable->item(row, 0); item = ui->MessagesTable->item(row, 0);
item->setFlags(item->flags() & ~Qt::ItemIsEditable); item->setFlags(item->flags() & ~Qt::ItemIsEditable);
item->setText(Utility::formatNumber(msgID)); item->setText(Utility::formatCANID(msgID));
for(int i=1 ; i < ui->MessagesTable->columnCount(); i++) for(int i=1 ; i < ui->MessagesTable->columnCount(); i++)
{ {
@@ -486,7 +486,7 @@ void DBCMainEditor::refreshMessagesTable(const DBC_NODE *node)
if (msg->sender == node) if (msg->sender == node)
{ {
//many of these are simplistic first versions just to test functionality. //many of these are simplistic first versions just to test functionality.
QTableWidgetItem *msgID = new QTableWidgetItem(Utility::formatNumber(msg->ID)); QTableWidgetItem *msgID = new QTableWidgetItem(Utility::formatCANID(msg->ID));
QTableWidgetItem *msgName = new QTableWidgetItem(msg->name); QTableWidgetItem *msgName = new QTableWidgetItem(msg->name);
QTableWidgetItem *msgLen = new QTableWidgetItem(QString::number(msg->len)); QTableWidgetItem *msgLen = new QTableWidgetItem(QString::number(msg->len));
QTableWidgetItem *msgSignals = new QTableWidgetItem(QString::number(msg->sigHandler->getCount())); QTableWidgetItem *msgSignals = new QTableWidgetItem(QString::number(msg->sigHandler->getCount()));
+1 -1
View File
@@ -248,7 +248,7 @@ void FramePlaybackWindow::refreshIDList()
QHash<int, bool>::Iterator filterIter; QHash<int, bool>::Iterator filterIter;
for (filterIter = currentSeqItem->idFilters.begin(); filterIter != currentSeqItem->idFilters.end(); ++filterIter) for (filterIter = currentSeqItem->idFilters.begin(); filterIter != currentSeqItem->idFilters.end(); ++filterIter)
{ {
QListWidgetItem* listItem = new QListWidgetItem(Utility::formatNumber(filterIter.key()), ui->listID); QListWidgetItem* listItem = new QListWidgetItem(Utility::formatCANID(filterIter.key()), ui->listID);
listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag
if (filterIter.value()) listItem->setCheckState(Qt::Checked); if (filterIter.value()) listItem->setCheckState(Qt::Checked);
else listItem->setCheckState(Qt::Unchecked); else listItem->setCheckState(Qt::Unchecked);
+2 -2
View File
@@ -353,7 +353,7 @@ void MainWindow::updateFilterList()
for (filterIter = filters->begin(); filterIter != filters->end(); ++filterIter) for (filterIter = filters->begin(); filterIter != filters->end(); ++filterIter)
{ {
QListWidgetItem *thisItem = new QListWidgetItem(); QListWidgetItem *thisItem = new QListWidgetItem();
thisItem->setText(Utility::formatNumber(filterIter.key())); thisItem->setText(Utility::formatCANID(filterIter.key()));
thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable); thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable);
if (filterIter.value()) thisItem->setCheckState(Qt::Checked); if (filterIter.value()) thisItem->setCheckState(Qt::Checked);
else thisItem->setCheckState(Qt::Unchecked); else thisItem->setCheckState(Qt::Unchecked);
@@ -632,7 +632,7 @@ Data Bytes: 88 10 00 13 BB 00 06 00
CANFrame thisFrame = frames->at(c); CANFrame thisFrame = frames->at(c);
QString builderString; QString builderString;
builderString += tr("Time: ") + QString::number((thisFrame.timestamp / 1000000.0), 'f', 6); builderString += tr("Time: ") + QString::number((thisFrame.timestamp / 1000000.0), 'f', 6);
builderString += tr(" ID: ") + Utility::formatNumber(thisFrame.ID); builderString += tr(" ID: ") + Utility::formatCANID(thisFrame.ID, thisFrame.extended);
if (thisFrame.extended) builderString += tr(" Ext "); if (thisFrame.extended) builderString += tr(" Ext ");
else builderString += tr(" Std "); else builderString += tr(" Std ");
builderString += tr("Bus: ") + QString::number(thisFrame.bus); builderString += tr("Bus: ") + QString::number(thisFrame.bus);
+4 -3
View File
@@ -121,7 +121,7 @@ void DiscreteStateWindow::updatedFrames(int numFrames)
if (!idFilters.contains(thisFrame.ID)) if (!idFilters.contains(thisFrame.ID))
{ {
idFilters.insert(thisFrame.ID, true); idFilters.insert(thisFrame.ID, true);
QListWidgetItem* listItem = new QListWidgetItem(Utility::formatNumber(thisFrame.ID), ui->listID); QListWidgetItem* listItem = new QListWidgetItem(Utility::formatCANID(thisFrame.ID, thisFrame.extended), ui->listID);
listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag
listItem->setCheckState(Qt::Checked); //default all filters to be set active listItem->setCheckState(Qt::Checked); //default all filters to be set active
} }
@@ -141,11 +141,12 @@ void DiscreteStateWindow::refreshFilterList()
for (int i = 0; i < modelFrames->length(); i++) for (int i = 0; i < modelFrames->length(); i++)
{ {
id = modelFrames->at(i).ID; CANFrame thisFrame = modelFrames->at(i);
id = thisFrame.ID;
if (!idFilters.contains(id)) if (!idFilters.contains(id))
{ {
idFilters.insert(id, true); idFilters.insert(id, true);
QListWidgetItem* listItem = new QListWidgetItem(Utility::formatNumber(id), ui->listID); QListWidgetItem* listItem = new QListWidgetItem(Utility::formatCANID(id, thisFrame.extended), ui->listID);
listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag
listItem->setCheckState(Qt::Checked); //default all filters to be set active listItem->setCheckState(Qt::Checked); //default all filters to be set active
} }
+4 -3
View File
@@ -397,7 +397,7 @@ void FlowViewWindow::updatedFrames(int numFrames)
if (!foundID.contains(thisFrame.ID)) if (!foundID.contains(thisFrame.ID))
{ {
foundID.append(thisFrame.ID); foundID.append(thisFrame.ID);
/*QListWidgetItem* item =*/ new QListWidgetItem(Utility::formatNumber(thisFrame.ID), ui->listFrameID); /*QListWidgetItem* item =*/ new QListWidgetItem(Utility::formatCANID(thisFrame.ID, thisFrame.extended), ui->listFrameID);
} }
if (thisFrame.ID == refID) if (thisFrame.ID == refID)
@@ -506,11 +506,12 @@ void FlowViewWindow::refreshIDList()
int id; int id;
for (int i = 0; i < modelFrames->count(); i++) for (int i = 0; i < modelFrames->count(); i++)
{ {
id = modelFrames->at(i).ID; CANFrame thisFrame = modelFrames->at(i);
id = thisFrame.ID;
if (!foundID.contains(id)) if (!foundID.contains(id))
{ {
foundID.append(id); foundID.append(id);
/*QListWidgetItem* item = */ new QListWidgetItem(Utility::formatNumber(id), ui->listFrameID); /*QListWidgetItem* item = */ new QListWidgetItem(Utility::formatCANID(id, thisFrame.extended), ui->listFrameID);
} }
} }
//default is to sort in ascending order //default is to sort in ascending order
+6 -4
View File
@@ -124,11 +124,12 @@ void FrameInfoWindow::updatedFrames(int numFrames)
bool thisID = false; bool thisID = false;
for (int x = modelFrames->count() - numFrames; x < modelFrames->count(); x++) for (int x = modelFrames->count() - numFrames; x < modelFrames->count(); x++)
{ {
unsigned int id = modelFrames->at(x).ID; CANFrame thisFrame = modelFrames->at(x);
unsigned int id = thisFrame.ID;
if (!foundID.contains(id)) if (!foundID.contains(id))
{ {
foundID.append(id); foundID.append(id);
ui->listFrameID->addItem(Utility::formatNumber(id)); ui->listFrameID->addItem(Utility::formatCANID(id, thisFrame.extended));
} }
if (currID == modelFrames->at(x).ID) if (currID == modelFrames->at(x).ID)
@@ -394,11 +395,12 @@ void FrameInfoWindow::refreshIDList()
int id; int id;
for (int i = 0; i < modelFrames->count(); i++) for (int i = 0; i < modelFrames->count(); i++)
{ {
id = (int)modelFrames->at(i).ID; CANFrame thisFrame = modelFrames->at(i);
id = (int)thisFrame.ID;
if (!foundID.contains(id)) if (!foundID.contains(id))
{ {
foundID.append(id); foundID.append(id);
ui->listFrameID->addItem(Utility::formatNumber(id)); ui->listFrameID->addItem(Utility::formatCANID(id, thisFrame.extended));
} }
} }
//default is to sort in ascending order //default is to sort in ascending order
+4 -3
View File
@@ -74,7 +74,7 @@ void FuzzingWindow::updatedFrames(int numFrames)
foundIDs.append(id); foundIDs.append(id);
selectedIDs.append(id); selectedIDs.append(id);
QListWidgetItem *thisItem = new QListWidgetItem(); QListWidgetItem *thisItem = new QListWidgetItem();
thisItem->setText(Utility::formatNumber(id)); thisItem->setText(Utility::formatCANID(id, modelFrames->at(i).extended));
thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable); thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable);
thisItem->setCheckState(Qt::Checked); thisItem->setCheckState(Qt::Checked);
ui->listID->addItem(thisItem); ui->listID->addItem(thisItem);
@@ -347,13 +347,14 @@ void FuzzingWindow::refreshIDList()
int id; int id;
for (int i = 0; i < modelFrames->count(); i++) for (int i = 0; i < modelFrames->count(); i++)
{ {
id = modelFrames->at(i).ID; CANFrame thisFrame = modelFrames->at(i);
id = thisFrame.ID;
if (!foundIDs.contains(id)) if (!foundIDs.contains(id))
{ {
foundIDs.append(id); foundIDs.append(id);
selectedIDs.append(id); selectedIDs.append(id);
QListWidgetItem *thisItem = new QListWidgetItem(); QListWidgetItem *thisItem = new QListWidgetItem();
thisItem->setText(Utility::formatNumber(id)); thisItem->setText(Utility::formatCANID(id, thisFrame.extended));
thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable); thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable);
thisItem->setCheckState(Qt::Checked); thisItem->setCheckState(Qt::Checked);
ui->listID->addItem(thisItem); ui->listID->addItem(thisItem);
+1 -1
View File
@@ -231,7 +231,7 @@ void ISOTP_InterpreterWindow::newISOMessage(ISOTP_MESSAGE msg)
{ {
idFilters.insert(msg.ID, true); idFilters.insert(msg.ID, true);
QListWidgetItem* listItem = new QListWidgetItem(Utility::formatNumber(msg.ID), ui->listFilter); QListWidgetItem* listItem = new QListWidgetItem(Utility::formatCANID(msg.ID, msg.extended), ui->listFilter);
listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag
listItem->setCheckState(Qt::Checked); listItem->setCheckState(Qt::Checked);
} }
+2 -2
View File
@@ -85,7 +85,7 @@ void NewGraphDialog::setParams(GraphParams &params)
startBit = params.startBit; startBit = params.startBit;
dataLen = params.numBits; dataLen = params.numBits;
ui->txtDataLen->setText(QString::number(dataLen)); ui->txtDataLen->setText(QString::number(dataLen));
ui->txtID->setText(Utility::formatNumber(params.ID)); ui->txtID->setText(Utility::formatCANID(params.ID));
ui->txtName->setText(params.graphName); ui->txtName->setText(params.graphName);
QPalette p = ui->colorSwatch->palette(); QPalette p = ui->colorSwatch->palette();
p.setColor(QPalette::Button, params.color); p.setColor(QPalette::Button, params.color);
@@ -211,7 +211,7 @@ void NewGraphDialog::copySignalToParamsUI()
startBit = sig->startBit; startBit = sig->startBit;
ui->txtBias->setText(QString::number(sig->bias)); ui->txtBias->setText(QString::number(sig->bias));
ui->txtDataLen->setText(QString::number(sig->signalSize)); ui->txtDataLen->setText(QString::number(sig->signalSize));
ui->txtID->setText(Utility::formatNumber(msg->ID)); ui->txtID->setText(Utility::formatCANID(msg->ID));
ui->txtMask->setText("0xFFFFFFFF"); ui->txtMask->setText("0xFFFFFFFF");
ui->txtName->setText(sig->name); ui->txtName->setText(sig->name);
ui->txtScale->setText(QString::number(sig->factor)); ui->txtScale->setText(QString::number(sig->factor));
+4 -2
View File
@@ -138,7 +138,7 @@ void RangeStateWindow::updatedFrames(int numFrames)
if (!idFilters.contains(thisFrame.ID)) if (!idFilters.contains(thisFrame.ID))
{ {
idFilters.insert(thisFrame.ID, true); idFilters.insert(thisFrame.ID, true);
QListWidgetItem* listItem = new QListWidgetItem(Utility::formatNumber(thisFrame.ID), ui->listFilter); QListWidgetItem* listItem = new QListWidgetItem(Utility::formatCANID(thisFrame.ID, thisFrame.extended), ui->listFilter);
listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag
listItem->setCheckState(Qt::Checked); //default all filters to be set active listItem->setCheckState(Qt::Checked); //default all filters to be set active
} }
@@ -159,7 +159,9 @@ void RangeStateWindow::refreshFilterList()
if (!idFilters.contains(id)) if (!idFilters.contains(id))
{ {
idFilters.insert(id, true); idFilters.insert(id, true);
QListWidgetItem* listItem = new QListWidgetItem(Utility::formatNumber(id), ui->listFilter); QListWidgetItem* listItem;
if (id < 0x800) listItem = new QListWidgetItem(Utility::formatCANID(id, false), ui->listFilter);
else listItem = new QListWidgetItem(Utility::formatCANID(id, true), ui->listFilter);
listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag listItem->setFlags(listItem->flags() | Qt::ItemIsUserCheckable); // set checkable flag
listItem->setCheckState(Qt::Checked); //default all filters to be set active listItem->setCheckState(Qt::Checked); //default all filters to be set active
} }
+21
View File
@@ -96,6 +96,27 @@ public:
else return formatHexNum(value); else return formatHexNum(value);
} }
static QString formatCANID(uint64_t id, bool extended)
{
if (decimalMode) return QString::number(id, 10);
if (extended)
{
return "0x" + QString::number(id, 16).toUpper().rightJustified(8,'0');
}
else
{
id = id & 0x7FF;
return "0x" + QString::number(id, 16).toUpper().rightJustified(3,'0');
}
}
static QString formatCANID(uint64_t id)
{
if (id < 0x800) return formatCANID(id, false);
return formatCANID(id, true);
}
static QString formatByteAsBinary(uint8_t value) static QString formatByteAsBinary(uint8_t value)
{ {
QString output; QString output;