diff --git a/bisectwindow.cpp b/bisectwindow.cpp index bbf9324..50c0400 100644 --- a/bisectwindow.cpp +++ b/bisectwindow.cpp @@ -54,8 +54,8 @@ void BisectWindow::refreshIDList() std::sort(foundID.begin(), foundID.end()); foreach (int id, foundID) { - ui->cbIDLower->addItem(Utility::formatNumber(id)); - ui->cbIDUpper->addItem(Utility::formatNumber(id)); + ui->cbIDLower->addItem(Utility::formatCANID(id)); + ui->cbIDUpper->addItem(Utility::formatCANID(id)); } } diff --git a/canframemodel.cpp b/canframemodel.cpp index 87b5201..b5be4e5 100644 --- a/canframemodel.cpp +++ b/canframemodel.cpp @@ -272,7 +272,7 @@ QVariant CANFrameModel::data(const QModelIndex &index, int role) const case Column::TimeStamp: return Utility::formatTimestamp(thisFrame.timestamp); case Column::FrameId: - return Utility::formatNumber(thisFrame.ID); + return Utility::formatCANID(thisFrame.ID, thisFrame.extended); case Column::Extended: return QString::number(thisFrame.extended); case Column::Direction: diff --git a/dbc/dbcmaineditor.cpp b/dbc/dbcmaineditor.cpp index f610f7a..1b041b6 100644 --- a/dbc/dbcmaineditor.cpp +++ b/dbc/dbcmaineditor.cpp @@ -276,7 +276,7 @@ void DBCMainEditor::onCellChangedMessage(int row,int col) item = ui->MessagesTable->item(row, 0); 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++) { @@ -486,7 +486,7 @@ void DBCMainEditor::refreshMessagesTable(const DBC_NODE *node) if (msg->sender == node) { //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 *msgLen = new QTableWidgetItem(QString::number(msg->len)); QTableWidgetItem *msgSignals = new QTableWidgetItem(QString::number(msg->sigHandler->getCount())); diff --git a/frameplaybackwindow.cpp b/frameplaybackwindow.cpp index d8460cb..a44d661 100644 --- a/frameplaybackwindow.cpp +++ b/frameplaybackwindow.cpp @@ -248,7 +248,7 @@ void FramePlaybackWindow::refreshIDList() QHash::Iterator 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 if (filterIter.value()) listItem->setCheckState(Qt::Checked); else listItem->setCheckState(Qt::Unchecked); diff --git a/mainwindow.cpp b/mainwindow.cpp index 2f4e1ea..c12b46d 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -353,7 +353,7 @@ void MainWindow::updateFilterList() for (filterIter = filters->begin(); filterIter != filters->end(); ++filterIter) { QListWidgetItem *thisItem = new QListWidgetItem(); - thisItem->setText(Utility::formatNumber(filterIter.key())); + thisItem->setText(Utility::formatCANID(filterIter.key())); thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable); if (filterIter.value()) thisItem->setCheckState(Qt::Checked); else thisItem->setCheckState(Qt::Unchecked); @@ -632,7 +632,7 @@ Data Bytes: 88 10 00 13 BB 00 06 00 CANFrame thisFrame = frames->at(c); QString builderString; 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 "); else builderString += tr(" Std "); builderString += tr("Bus: ") + QString::number(thisFrame.bus); diff --git a/re/discretestatewindow.cpp b/re/discretestatewindow.cpp index d9d1edb..82a03c9 100644 --- a/re/discretestatewindow.cpp +++ b/re/discretestatewindow.cpp @@ -121,7 +121,7 @@ void DiscreteStateWindow::updatedFrames(int numFrames) if (!idFilters.contains(thisFrame.ID)) { 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->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++) { - id = modelFrames->at(i).ID; + CANFrame thisFrame = modelFrames->at(i); + id = thisFrame.ID; if (!idFilters.contains(id)) { 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->setCheckState(Qt::Checked); //default all filters to be set active } diff --git a/re/flowviewwindow.cpp b/re/flowviewwindow.cpp index d359119..e3514b1 100644 --- a/re/flowviewwindow.cpp +++ b/re/flowviewwindow.cpp @@ -397,7 +397,7 @@ void FlowViewWindow::updatedFrames(int numFrames) if (!foundID.contains(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) @@ -506,11 +506,12 @@ void FlowViewWindow::refreshIDList() int id; 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)) { 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 diff --git a/re/frameinfowindow.cpp b/re/frameinfowindow.cpp index b803997..53fdae7 100644 --- a/re/frameinfowindow.cpp +++ b/re/frameinfowindow.cpp @@ -124,11 +124,12 @@ void FrameInfoWindow::updatedFrames(int numFrames) bool thisID = false; 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)) { foundID.append(id); - ui->listFrameID->addItem(Utility::formatNumber(id)); + ui->listFrameID->addItem(Utility::formatCANID(id, thisFrame.extended)); } if (currID == modelFrames->at(x).ID) @@ -394,11 +395,12 @@ void FrameInfoWindow::refreshIDList() int id; 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)) { foundID.append(id); - ui->listFrameID->addItem(Utility::formatNumber(id)); + ui->listFrameID->addItem(Utility::formatCANID(id, thisFrame.extended)); } } //default is to sort in ascending order diff --git a/re/fuzzingwindow.cpp b/re/fuzzingwindow.cpp index d2b62a3..6d96e68 100644 --- a/re/fuzzingwindow.cpp +++ b/re/fuzzingwindow.cpp @@ -74,7 +74,7 @@ void FuzzingWindow::updatedFrames(int numFrames) foundIDs.append(id); selectedIDs.append(id); 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->setCheckState(Qt::Checked); ui->listID->addItem(thisItem); @@ -346,14 +346,15 @@ void FuzzingWindow::refreshIDList() int id; 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)) { foundIDs.append(id); selectedIDs.append(id); QListWidgetItem *thisItem = new QListWidgetItem(); - thisItem->setText(Utility::formatNumber(id)); + thisItem->setText(Utility::formatCANID(id, thisFrame.extended)); thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable); thisItem->setCheckState(Qt::Checked); ui->listID->addItem(thisItem); diff --git a/re/isotp_interpreterwindow.cpp b/re/isotp_interpreterwindow.cpp index 866b5d1..0393ce6 100644 --- a/re/isotp_interpreterwindow.cpp +++ b/re/isotp_interpreterwindow.cpp @@ -231,7 +231,7 @@ void ISOTP_InterpreterWindow::newISOMessage(ISOTP_MESSAGE msg) { 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->setCheckState(Qt::Checked); } diff --git a/re/newgraphdialog.cpp b/re/newgraphdialog.cpp index 9af7095..6807152 100644 --- a/re/newgraphdialog.cpp +++ b/re/newgraphdialog.cpp @@ -85,7 +85,7 @@ void NewGraphDialog::setParams(GraphParams ¶ms) startBit = params.startBit; dataLen = params.numBits; 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); QPalette p = ui->colorSwatch->palette(); p.setColor(QPalette::Button, params.color); @@ -211,7 +211,7 @@ void NewGraphDialog::copySignalToParamsUI() startBit = sig->startBit; ui->txtBias->setText(QString::number(sig->bias)); 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->txtName->setText(sig->name); ui->txtScale->setText(QString::number(sig->factor)); diff --git a/re/rangestatewindow.cpp b/re/rangestatewindow.cpp index 76d03e3..16d1b4b 100644 --- a/re/rangestatewindow.cpp +++ b/re/rangestatewindow.cpp @@ -138,7 +138,7 @@ void RangeStateWindow::updatedFrames(int numFrames) if (!idFilters.contains(thisFrame.ID)) { 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->setCheckState(Qt::Checked); //default all filters to be set active } @@ -159,7 +159,9 @@ void RangeStateWindow::refreshFilterList() if (!idFilters.contains(id)) { 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->setCheckState(Qt::Checked); //default all filters to be set active } diff --git a/utility.h b/utility.h index 552e6eb..09ec074 100644 --- a/utility.h +++ b/utility.h @@ -96,6 +96,27 @@ public: 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) { QString output;