#include "CANViewerPage.h" #include "ui_CANViewerPage.h" #include "defines.h" CCANViewerPage::CCANViewerPage(QWidget *parent) : QWidget(parent), ui(new Ui::CCANViewerPage) { ui->setupUi(this); ui->mCANDataTableWidget->setColumnCount(6); ui->mCANDataTableWidget->setHorizontalHeaderLabels(QStringList() << "Time" << "Channel" << "Msg ID" << "Msg Type" << "Msg Length" << "Data"); } CCANViewerPage::~CCANViewerPage() { delete ui; } int CCANViewerPage::UpdateCANTable(QList MsgList) { for(int Col = 0; Col < ui->mCANDataTableWidget->columnCount(); Col++) { for(int Row = 0; Row < ui->mCANDataTableWidget->rowCount(); Row++) { delete ui->mCANDataTableWidget->item(Row,Col); } } ui->mCANDataTableWidget->clearContents(); ui->mCANDataTableWidget->setRowCount(0); ui->mCANDataTableWidget->setRowCount(MsgList.size()); for(int Msg = 0; Msg < MsgList.size(); Msg++) { QTableWidgetItem *NewItem; NewItem = new QTableWidgetItem("Time"); ui->mCANDataTableWidget->setItem(Msg,0,NewItem); //Set chanel value NewItem = new QTableWidgetItem(QString("%1").arg(MsgList.at(Msg)->mCANChannel)); ui->mCANDataTableWidget->setItem(Msg,1,NewItem); //Set message ID value NewItem = new QTableWidgetItem(QString("0x%1").arg(MsgList.at(Msg)->mCANMsgID,0,16)); ui->mCANDataTableWidget->setItem(Msg,2,NewItem); //Set message type value NewItem = new QTableWidgetItem(QString("0x%1").arg(MsgList.at(Msg)->mCANMsgType,0,16)); ui->mCANDataTableWidget->setItem(Msg,3,NewItem); //Set message length value NewItem = new QTableWidgetItem(QString("%1").arg(MsgList.at(Msg)->mCANMsgLength)); ui->mCANDataTableWidget->setItem(Msg,4,NewItem); //Set data value QString Data; for(int i = 0; i < MsgList.at(Msg)->mCANMsgLength; i++) { unsigned char DataByte = MsgList.at(Msg)->mCANMsgData.at(i); Data.append(QString("%1 ").arg(DataByte,2,16,QLatin1Char('0'))); } NewItem = new QTableWidgetItem(Data); ui->mCANDataTableWidget->setItem(Msg,5,NewItem); } return RET_OK; }