YULTek/Otarcik_CAN/Sources/Gui/CANViewerPage.cpp

69 lines
2.2 KiB
C++

#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<CCANMessage *> 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;
}