Intégration sur site
This commit is contained in:
@@ -65,6 +65,7 @@ int CCANDataLogger::SetMQTTTopicDevice(QString DeviceString)
|
||||
int CCANDataLogger::SetMQTTClient(CMQTTClientWrapper *MQTTClient)
|
||||
{
|
||||
mMQTTCLient = MQTTClient;
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
QList<CMQTTMessage> *CCANDataLogger::GetMQTTMessagesList()
|
||||
@@ -81,43 +82,44 @@ QList<CMQTTMessage> *CCANDataLogger::GetMQTTMessagesList()
|
||||
{
|
||||
// if(mCANMsgList.size() != 0)
|
||||
{
|
||||
const CCANMessage Msg = mCANMsgList.at(i);
|
||||
QString MsgPayload = "{";
|
||||
QString MsgTopic = mTopicDeviceString;
|
||||
MsgTopic.append(Msg.mCANMsgName);
|
||||
// MsgTopic.append("/");
|
||||
CCANMessage Msg = mCANMsgList[i];
|
||||
// QString MsgPayload = "{";
|
||||
// QString MsgTopic = mTopicDeviceString;
|
||||
// MsgTopic.append(Msg.mCANMsgName);
|
||||
// // MsgTopic.append("/");
|
||||
|
||||
//For each signal with new data, insert an entry in the JSon payload string
|
||||
for(int signal = 0; signal < Msg.mSignalsList.size(); signal++)
|
||||
{
|
||||
QString SignalData;
|
||||
CCANSignal Signal = Msg.mSignalsList.at(signal);
|
||||
if(Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_UNSIGNED_INT)
|
||||
{
|
||||
SignalData = QString("\"%1\":%2").arg(Signal.mSignalName).arg((quint64)Signal.mPhysicalValue);
|
||||
}
|
||||
else if(Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_SIGNED_INT)
|
||||
{
|
||||
SignalData = QString("\"%1\":%2").arg(Signal.mSignalName).arg((qint64)Signal.mPhysicalValue);
|
||||
}
|
||||
else if(Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_32_BIT_FLOAT ||
|
||||
Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_64_BIT_DOUBLE)
|
||||
{
|
||||
SignalData = QString("\"%1\":%2").arg(Signal.mSignalName).arg(Signal.mPhysicalValue,0,'f',1);
|
||||
}
|
||||
MsgPayload.append(SignalData);
|
||||
// //For each signal with new data, insert an entry in the JSon payload string
|
||||
// for(int signal = 0; signal < Msg.mSignalsList.size(); signal++)
|
||||
// {
|
||||
// QString SignalData;
|
||||
// CCANSignal Signal = Msg.mSignalsList.at(signal);
|
||||
// if(Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_UNSIGNED_INT)
|
||||
// {
|
||||
// SignalData = QString("\"%1\":%2").arg(Signal.mSignalName).arg((quint64)Signal.mPhysicalValue);
|
||||
// }
|
||||
// else if(Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_SIGNED_INT)
|
||||
// {
|
||||
// SignalData = QString("\"%1\":%2").arg(Signal.mSignalName).arg((qint64)Signal.mPhysicalValue);
|
||||
// }
|
||||
// else if(Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_32_BIT_FLOAT ||
|
||||
// Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_64_BIT_DOUBLE)
|
||||
// {
|
||||
// SignalData = QString("\"%1\":%2").arg(Signal.mSignalName).arg(Signal.mPhysicalValue,0,'f',1);
|
||||
// }
|
||||
// MsgPayload.append(SignalData);
|
||||
|
||||
if(signal < Msg.mSignalsList.size()-1)
|
||||
{
|
||||
MsgPayload.append(",");
|
||||
}
|
||||
}
|
||||
MsgPayload.append("}");
|
||||
// if(signal < Msg.mSignalsList.size()-1)
|
||||
// {
|
||||
// MsgPayload.append(",");
|
||||
// }
|
||||
// }
|
||||
// MsgPayload.append("}");
|
||||
|
||||
// qDebug("%s",qPrintable(MsgPayload));
|
||||
|
||||
CMQTTMessage NewMessage(MsgTopic, MsgPayload);
|
||||
mMQTTMsgList.append(NewMessage);
|
||||
// CMQTTMessage NewMessage(MsgTopic, MsgPayload);
|
||||
|
||||
mMQTTMsgList.append(GetMQTTMessage(&Msg));
|
||||
|
||||
} //if(MsgList->at(i)->mPendingData == true)
|
||||
}
|
||||
@@ -130,3 +132,48 @@ QList<CMQTTMessage> *CCANDataLogger::GetMQTTMessagesList()
|
||||
// }
|
||||
return &mMQTTMsgList;
|
||||
}
|
||||
|
||||
CMQTTMessage CCANDataLogger::GetMQTTMessage(CCANMessage *Msg, bool Format )
|
||||
{
|
||||
QString MsgPayload = "{";
|
||||
QString MsgTopic = mTopicDeviceString;
|
||||
MsgTopic.append(Msg->mCANMsgName);
|
||||
// MsgTopic.append("/");
|
||||
|
||||
//For each signal with new data, insert an entry in the JSon payload string
|
||||
for(int signal = 0; signal < Msg->mSignalsList.size(); signal++)
|
||||
{
|
||||
QString SignalData;
|
||||
CCANSignal Signal = Msg->mSignalsList.at(signal);
|
||||
if(Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_UNSIGNED_INT)
|
||||
{
|
||||
SignalData = QString("\"%1\":%2").arg(Signal.mSignalName).arg((quint64)Signal.mPhysicalValue);
|
||||
}
|
||||
else if(Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_SIGNED_INT)
|
||||
{
|
||||
SignalData = QString("\"%1\":%2").arg(Signal.mSignalName).arg((qint64)Signal.mPhysicalValue);
|
||||
}
|
||||
else if(Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_32_BIT_FLOAT ||
|
||||
Signal.mValueType == CCANSignal::CAN_SIGNAL_TYPE_64_BIT_DOUBLE)
|
||||
{
|
||||
SignalData = QString("\"%1\":%2").arg(Signal.mSignalName).arg(Signal.mPhysicalValue,0,'f',1);
|
||||
}
|
||||
MsgPayload.append(SignalData);
|
||||
|
||||
if(signal < Msg->mSignalsList.size()-1)
|
||||
{
|
||||
MsgPayload.append(",");
|
||||
if(Format == true)
|
||||
{
|
||||
MsgPayload.append("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
MsgPayload.append("}");
|
||||
|
||||
// qDebug("%s",qPrintable(MsgPayload));
|
||||
|
||||
CMQTTMessage NewMessage(MsgTopic, MsgPayload);
|
||||
|
||||
return NewMessage;
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ public:
|
||||
QList<CMQTTMessage> mMQTTMsgList;
|
||||
CMQTTClientWrapper *mMQTTCLient;
|
||||
QList<CCANMessage> mCANMsgList;
|
||||
CMQTTMessage GetMQTTMessage(CCANMessage* Message, bool Format = false);
|
||||
|
||||
int SetMQTTTopicDevice(QString DeviceString);
|
||||
int SetMQTTClient(CMQTTClientWrapper *MQTTClient);
|
||||
|
||||
@@ -57,10 +57,10 @@ int CCANDevice::Init()
|
||||
|
||||
if(mCANDatabase.Init(mDeviceConfigInfo.mCANDeviceDatabaseFilename) == RET_OK)
|
||||
{
|
||||
if(mCANDatabase.BuildMessageList(&mMessageList) == RET_OK)
|
||||
if(mCANDatabase.BuildMessageList(&mMessageList,mDeviceConfigInfo.mDeviceName) == RET_OK)
|
||||
{
|
||||
mMessagesListLoaded = true;
|
||||
mProgramPtr->InitCANViewer(&mMessageList);
|
||||
mProgramPtr->InitCANViewer(&mMessageList,mDeviceConfigInfo.mDeviceName);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -102,7 +102,7 @@ int CCANDevice::Init(QString DatabaseFileName, TPCANHandle CANDeviceID, TPCANBau
|
||||
int CCANDevice::NewMessageParsed(int BufferSize)
|
||||
{
|
||||
mCANDataLogger.LogNewData(&mMessageList);
|
||||
mProgramPtr->UpdateCANViewerDataRequest(&mMessageList);
|
||||
mProgramPtr->UpdateCANViewerDataRequest(&mMessageList,mDeviceConfigInfo.mDeviceName);
|
||||
mProgramPtr->UpdateCANModuleStatusRequest(mDeviceConfigInfo.mDeviceName,"NOUPDATE",QString("%1").arg(BufferSize));
|
||||
|
||||
for(int i = 0; i < mMessageList.size(); i++)
|
||||
|
||||
@@ -140,6 +140,12 @@ CCANMessage& CCANMessage::operator=(const CCANMessage &source)
|
||||
this->mCANMsgMillisecs = source.mCANMsgMillisecs;
|
||||
this->mCANMsgMillisecsOverflow = source.mCANMsgMillisecsOverflow;
|
||||
this->mCANMsgMicrosecs = source.mCANMsgMicrosecs;
|
||||
this->mCANMsgName = source.mCANMsgName;
|
||||
this->mCANMsgComment = source.mCANMsgComment;
|
||||
this->mCANMsgFlags = source.mCANMsgFlags;
|
||||
this->mCANRawDataMotorola = source.mCANRawDataMotorola;
|
||||
this->mCANRawDataIntel = source.mCANRawDataIntel;
|
||||
this->mOwnerDeviceName = source.mOwnerDeviceName;
|
||||
this->mSignalsList.clear();
|
||||
for(int i = 0; i < source.mSignalsList.size(); i++)
|
||||
{
|
||||
|
||||
@@ -29,6 +29,7 @@ public:
|
||||
unsigned int mCANMsgLength; // Data Length Code of the message (0..8) from database
|
||||
|
||||
QList<CCANSignal> mSignalsList;
|
||||
QString mOwnerDeviceName;
|
||||
|
||||
//Timestamp
|
||||
quint64 mCANMsgMillisecs; // Base-value: milliseconds: 0.. 2^32-1
|
||||
|
||||
@@ -133,5 +133,9 @@ CCANSignal& CCANSignal::operator=(const CCANSignal &source)
|
||||
this->mMaxValue = source.mMaxValue;
|
||||
this->mSignalUnit = source.mSignalUnit;
|
||||
|
||||
this->mRawValue = source.mRawValue;
|
||||
this->mPhysicalValue = source.mPhysicalValue;
|
||||
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ int CCANDatabase::LoadDatabaseFile(QString Filename)
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CCANDatabase::BuildMessageList(QList<CCANMessage *> *MsgListPtr)
|
||||
int CCANDatabase::BuildMessageList(QList<CCANMessage *> *MsgListPtr, QString OwnerDeviceName)
|
||||
{
|
||||
if(mDatabaseFileLoaded == false)
|
||||
{
|
||||
@@ -310,6 +310,7 @@ int CCANDatabase::BuildMessageList(QList<CCANMessage *> *MsgListPtr)
|
||||
status = kvaDbGetNextSignal (mh, &sh);
|
||||
}
|
||||
|
||||
NewMsg->mOwnerDeviceName = OwnerDeviceName;
|
||||
MsgListPtr->append(NewMsg);
|
||||
status = kvaDbGetNextMsg (mDatabaseDriverHandle, &mh);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ public:
|
||||
|
||||
int Init(QString DatabaseFileName);
|
||||
int LoadDatabaseFile(QString Filename);
|
||||
int BuildMessageList(QList<CCANMessage*> *MsgListPtr);
|
||||
int BuildMessageList(QList<CCANMessage*> *MsgListPtr, QString OwnerDeviceName);
|
||||
|
||||
private:
|
||||
QString mDatabaseFileName;
|
||||
|
||||
@@ -136,6 +136,8 @@ void CMQTTClientWrapper::MQTTSendTimerExpired()
|
||||
{
|
||||
qint32 res = mMQTTClient.publish(MessagesList->at(i).mMessageTopic,MessagesList->at(i).mMessagePayload.toLocal8Bit(),0,true);
|
||||
qDebug("%s : %s",qPrintable(MessagesList->at(i).mMessageTopic), qPrintable(MessagesList->at(i).mMessagePayload));
|
||||
QString LogMsg = QString("Envoi d'un message MQTT. Topic: %1. Payload: %2").arg(MessagesList->at(i).mMessageTopic).arg(MessagesList->at(i).mMessagePayload);
|
||||
// CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,false);
|
||||
|
||||
}
|
||||
qDebug("Sent %d MQTT messages",MessagesList->size());
|
||||
|
||||
@@ -7,12 +7,12 @@ CCANViewerPage::CCANViewerPage(QWidget *parent) :
|
||||
ui(new Ui::CCANViewerPage)
|
||||
{
|
||||
|
||||
mMsgList = 0;
|
||||
//mMsgList = 0;
|
||||
|
||||
|
||||
ui->setupUi(this);
|
||||
ui->mCANDataTableWidget->setColumnCount(6);
|
||||
ui->mCANDataTableWidget->setHorizontalHeaderLabels(QStringList() << "Time" << "Channel" << "Msg ID" << "Msg Type" << "Msg Length" << "Data");
|
||||
ui->mCANDataTableWidget->setHorizontalHeaderLabels(QStringList() << "Device" << "Channel" << "Msg ID" << "Msg Type" << "Msg Length" << "Data");
|
||||
|
||||
ui->mCANDataTableWidget->clearContents();
|
||||
ui->mCANDataTableWidget->setRowCount(0);
|
||||
@@ -32,22 +32,22 @@ CCANViewerPage::~CCANViewerPage()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
int CCANViewerPage::InitCANTable(QList<CCANMessage *> *MsgList)
|
||||
int CCANViewerPage::InitCANTable(QList<CCANMessage *> *MsgList, QString DeviceName)
|
||||
{
|
||||
if(MsgList == 0)
|
||||
{
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
|
||||
mMsgList = MsgList;
|
||||
mMsgList.append(MsgList);
|
||||
|
||||
int row = ui->mCANDataTableWidget->rowCount();
|
||||
ui->mCANDataTableWidget->setRowCount(MsgList->size());
|
||||
ui->mCANDataTableWidget->setRowCount(MsgList->size() + row);
|
||||
for(int Msg = 0; Msg < MsgList->size(); Msg++)
|
||||
{
|
||||
QTableWidgetItem *NewItem;
|
||||
|
||||
NewItem = new QTableWidgetItem("Time");
|
||||
NewItem = new QTableWidgetItem(DeviceName);
|
||||
ui->mCANDataTableWidget->setItem(row,0,NewItem);
|
||||
|
||||
//Set Msg name
|
||||
@@ -98,8 +98,9 @@ int CCANViewerPage::UpdateCANTable(QList<CCANMessage *> *MsgList)
|
||||
int row = 0;
|
||||
for(row = 0; row < ui->mCANDataTableWidget->rowCount(); row++)
|
||||
{
|
||||
// if(ui->mCANDataTableWidget->item(row,2)->text() == QString("0x%1").arg(MsgList->at(msg)->mCANMsgID,0,16))
|
||||
if(ui->mCANDataTableWidget->item(row,2)->data(Qt::UserRole).toUInt() == MsgList->at(msg)->mCANMsgID)
|
||||
//Match device and message ID
|
||||
if(ui->mCANDataTableWidget->item(row,0)->text() == MsgList->at(msg)->mOwnerDeviceName &&
|
||||
ui->mCANDataTableWidget->item(row,2)->data(Qt::UserRole).toUInt() == MsgList->at(msg)->mCANMsgID)
|
||||
{
|
||||
//Set message length value
|
||||
ui->mCANDataTableWidget->item(row,4)->setText(QString("%1").arg(MsgList->at(msg)->mCANMsgLength));
|
||||
@@ -123,7 +124,12 @@ int CCANViewerPage::UpdateCANTable(QList<CCANMessage *> *MsgList)
|
||||
|
||||
void CCANViewerPage::MessageSelectionChanged()
|
||||
{
|
||||
if(mMsgList == 0)
|
||||
// if(mMsgList == 0)
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
|
||||
if(mMsgList.isEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -133,27 +139,31 @@ void CCANViewerPage::MessageSelectionChanged()
|
||||
int row = ui->mCANDataTableWidget->currentRow();
|
||||
if(row == -1)
|
||||
return;
|
||||
for (int msg = 0; msg < mMsgList->size(); msg++)
|
||||
for(int MsgList = 0; MsgList < mMsgList.size(); MsgList++)
|
||||
{
|
||||
unsigned int ID = ui->mCANDataTableWidget->item(row,2)->data(Qt::UserRole).toUInt();
|
||||
if(ID == mMsgList->at(msg)->mCANMsgID)
|
||||
for (int msg = 0; msg < mMsgList.at(MsgList)->size(); msg++)
|
||||
{
|
||||
CCANMessage *Msg = mMsgList->at(msg);
|
||||
ui->mCANSignalTableWidget->clearContents();
|
||||
ui->mCANSignalTableWidget->setRowCount(Msg->mSignalsList.size());
|
||||
|
||||
for(int signal = 0; signal < Msg->mSignalsList.size(); signal++)
|
||||
unsigned int ID = ui->mCANDataTableWidget->item(row,2)->data(Qt::UserRole).toUInt();
|
||||
QString Device = ui->mCANDataTableWidget->item(row,0)->text();
|
||||
if(Device == mMsgList.at(MsgList)->at(msg)->mOwnerDeviceName &&
|
||||
ID == mMsgList.at(MsgList)->at(msg)->mCANMsgID)
|
||||
{
|
||||
//Signal name
|
||||
QTableWidgetItem *NewItem = new QTableWidgetItem(Msg->mSignalsList.at(signal).mSignalName);
|
||||
ui->mCANSignalTableWidget->setItem(signal,0,NewItem);
|
||||
CCANMessage *Msg = mMsgList.at(MsgList)->at(msg);
|
||||
ui->mCANSignalTableWidget->clearContents();
|
||||
ui->mCANSignalTableWidget->setRowCount(Msg->mSignalsList.size());
|
||||
|
||||
//Phys value
|
||||
for(int signal = 0; signal < Msg->mSignalsList.size(); signal++)
|
||||
{
|
||||
//Signal name
|
||||
QTableWidgetItem *NewItem = new QTableWidgetItem(Msg->mSignalsList.at(signal).mSignalName);
|
||||
ui->mCANSignalTableWidget->setItem(signal,0,NewItem);
|
||||
|
||||
//JFM 2023-06-13 changé pour forcer toujours à float
|
||||
NewItem = new QTableWidgetItem(QString("%1").arg(Msg->mSignalsList.at(signal).mPhysicalValue,0,'f',1));
|
||||
//Phys value
|
||||
|
||||
/*
|
||||
//JFM 2023-06-13 changé pour forcer toujours à float
|
||||
NewItem = new QTableWidgetItem(QString("%1").arg(Msg->mSignalsList.at(signal).mPhysicalValue,0,'f',1));
|
||||
|
||||
/*
|
||||
if(Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_UNSIGNED_INT)
|
||||
{
|
||||
NewItem = new QTableWidgetItem(QString("%1").arg((quint64)Msg->mSignalsList.at(signal).mPhysicalValue));
|
||||
@@ -168,16 +178,17 @@ void CCANViewerPage::MessageSelectionChanged()
|
||||
{
|
||||
NewItem = new QTableWidgetItem(QString("%1").arg(Msg->mSignalsList.at(signal).mPhysicalValue,0,'f',1));
|
||||
}*/
|
||||
ui->mCANSignalTableWidget->setItem(signal,1,NewItem);
|
||||
ui->mCANSignalTableWidget->setItem(signal,1,NewItem);
|
||||
|
||||
//Raw value
|
||||
NewItem = new QTableWidgetItem(QString("0x%1").arg(Msg->mSignalsList.at(signal).mRawValue,0,16));
|
||||
ui->mCANSignalTableWidget->setItem(signal,2,NewItem);
|
||||
//Raw value
|
||||
NewItem = new QTableWidgetItem(QString("0x%1").arg(Msg->mSignalsList.at(signal).mRawValue,0,16));
|
||||
ui->mCANSignalTableWidget->setItem(signal,2,NewItem);
|
||||
|
||||
//Units
|
||||
NewItem = new QTableWidgetItem(Msg->mSignalsList.at(signal).mSignalUnit);
|
||||
ui->mCANSignalTableWidget->setItem(signal,3,NewItem);
|
||||
//Units
|
||||
NewItem = new QTableWidgetItem(Msg->mSignalsList.at(signal).mSignalUnit);
|
||||
ui->mCANSignalTableWidget->setItem(signal,3,NewItem);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -186,51 +197,51 @@ void CCANViewerPage::MessageSelectionChanged()
|
||||
|
||||
int CCANViewerPage::UpdateSignalsTable()
|
||||
{
|
||||
int row = ui->mCANDataTableWidget->currentRow();
|
||||
for (int msg = 0; msg < mMsgList->size(); msg++)
|
||||
{
|
||||
unsigned int ID = ui->mCANDataTableWidget->item(row,2)->data(Qt::UserRole).toUInt();
|
||||
if(ID == mMsgList->at(msg)->mCANMsgID)
|
||||
{
|
||||
CCANMessage *Msg = mMsgList->at(msg);
|
||||
ui->mCANSignalTableWidget->clearContents();
|
||||
ui->mCANSignalTableWidget->setRowCount(Msg->mSignalsList.size());
|
||||
// int row = ui->mCANDataTableWidget->currentRow();
|
||||
// for (int msg = 0; msg < mMsgList->size(); msg++)
|
||||
// {
|
||||
// unsigned int ID = ui->mCANDataTableWidget->item(row,2)->data(Qt::UserRole).toUInt();
|
||||
// if(ID == mMsgList->at(msg)->mCANMsgID)
|
||||
// {
|
||||
// CCANMessage *Msg = mMsgList->at(msg);
|
||||
// ui->mCANSignalTableWidget->clearContents();
|
||||
// ui->mCANSignalTableWidget->setRowCount(Msg->mSignalsList.size());
|
||||
|
||||
for(int signal = 0; signal < Msg->mSignalsList.size(); signal++)
|
||||
{
|
||||
//Signal name
|
||||
ui->mCANSignalTableWidget->item(row,0)->setText(Msg->mSignalsList.at(signal).mSignalName);
|
||||
// for(int signal = 0; signal < Msg->mSignalsList.size(); signal++)
|
||||
// {
|
||||
// //Signal name
|
||||
// ui->mCANSignalTableWidget->item(row,0)->setText(Msg->mSignalsList.at(signal).mSignalName);
|
||||
|
||||
//Phys value
|
||||
//JFM 2023-06-13 changé pour forcer toujours à float
|
||||
//Mais cette fonciton n'est jamais appelée et NE FONCTIONNE PAS.
|
||||
//TODO: Corriger les index des colonnes des items à afficher
|
||||
ui->mCANSignalTableWidget->item(row,0)->setText(QString("%1").arg(Msg->mSignalsList.at(signal).mPhysicalValue,0,'f',1));
|
||||
// //Phys value
|
||||
// //JFM 2023-06-13 changé pour forcer toujours à float
|
||||
// //Mais cette fonciton n'est jamais appelée et NE FONCTIONNE PAS.
|
||||
// //TODO: Corriger les index des colonnes des items à afficher
|
||||
// ui->mCANSignalTableWidget->item(row,0)->setText(QString("%1").arg(Msg->mSignalsList.at(signal).mPhysicalValue,0,'f',1));
|
||||
|
||||
/*
|
||||
if(Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_UNSIGNED_INT)
|
||||
{
|
||||
ui->mCANSignalTableWidget->item(row,0)->setText(QString("%1").arg((quint64)Msg->mSignalsList.at(signal).mPhysicalValue));
|
||||
}
|
||||
else if(Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_SIGNED_INT)
|
||||
{
|
||||
ui->mCANSignalTableWidget->item(row,0)->setText(QString("%1").arg((qint64)Msg->mSignalsList.at(signal).mPhysicalValue));
|
||||
}
|
||||
else if(Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_32_BIT_FLOAT ||
|
||||
Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_64_BIT_DOUBLE)
|
||||
{
|
||||
ui->mCANSignalTableWidget->item(row,0)->setText(QString("%1").arg(Msg->mSignalsList.at(signal).mPhysicalValue,0,'f',1));
|
||||
}*/
|
||||
// /*
|
||||
// if(Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_UNSIGNED_INT)
|
||||
// {
|
||||
// ui->mCANSignalTableWidget->item(row,0)->setText(QString("%1").arg((quint64)Msg->mSignalsList.at(signal).mPhysicalValue));
|
||||
// }
|
||||
// else if(Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_SIGNED_INT)
|
||||
// {
|
||||
// ui->mCANSignalTableWidget->item(row,0)->setText(QString("%1").arg((qint64)Msg->mSignalsList.at(signal).mPhysicalValue));
|
||||
// }
|
||||
// else if(Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_32_BIT_FLOAT ||
|
||||
// Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_64_BIT_DOUBLE)
|
||||
// {
|
||||
// ui->mCANSignalTableWidget->item(row,0)->setText(QString("%1").arg(Msg->mSignalsList.at(signal).mPhysicalValue,0,'f',1));
|
||||
// }*/
|
||||
|
||||
//Raw value
|
||||
ui->mCANSignalTableWidget->item(row,0)->setText(QString("0x%1").arg(Msg->mSignalsList.at(signal).mRawValue,0,16));
|
||||
// //Raw value
|
||||
// ui->mCANSignalTableWidget->item(row,0)->setText(QString("0x%1").arg(Msg->mSignalsList.at(signal).mRawValue,0,16));
|
||||
|
||||
//Units
|
||||
ui->mCANSignalTableWidget->item(row,0)->setText(Msg->mSignalsList.at(signal).mSignalUnit);
|
||||
// //Units
|
||||
// ui->mCANSignalTableWidget->item(row,0)->setText(Msg->mSignalsList.at(signal).mSignalUnit);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
@@ -19,11 +19,11 @@ public:
|
||||
|
||||
|
||||
int UpdateCANTable(QList<CCANMessage*> *MsgList);
|
||||
int InitCANTable(QList<CCANMessage*> *MsgList);
|
||||
int InitCANTable(QList<CCANMessage*> *MsgList, QString DeviceName);
|
||||
int UpdateSignalsTable();
|
||||
|
||||
|
||||
QList<CCANMessage*> *mMsgList;
|
||||
QList<QList<CCANMessage *>*> mMsgList;
|
||||
|
||||
public slots:
|
||||
void MessageSelectionChanged();
|
||||
|
||||
@@ -41,7 +41,17 @@
|
||||
<rect>
|
||||
<x>720</x>
|
||||
<y>60</y>
|
||||
<width>831</width>
|
||||
<width>451</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPlainTextEdit" name="mJSonSignalViewTxtEdit">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>1190</x>
|
||||
<y>60</y>
|
||||
<width>501</width>
|
||||
<height>411</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
||||
@@ -172,6 +172,7 @@ int CCANbusSettingsPage::UpdatePage()
|
||||
ui->mDBMessageLengthLbl->setText("Message Length: ");
|
||||
ui->mDBMessageNameLbl->setText("Message Name: ");
|
||||
ui->mDBMessageNbSignalsLbl->setText("Number of signals: ");
|
||||
ui->mDBMessageCommentLbl->setText("Comment: ");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -217,6 +218,7 @@ int CCANbusSettingsPage::UpdateMessageInformation()
|
||||
ui->mDBMessageLengthLbl->setText(QString("Message Length: %1").arg(Message->mCANMsgLength));
|
||||
ui->mDBMessageNameLbl->setText(QString("Message Name: %1").arg(Message->mCANMsgName));
|
||||
ui->mDBMessageNbSignalsLbl->setText(QString("Number of signals: %1").arg(Message->mSignalsList.size()));
|
||||
ui->mDBMessageCommentLbl->setText(QString("Comment: %1").arg(Message->mCANMsgComment));
|
||||
|
||||
ui->mDBSignalDetailsTable->clearContents();
|
||||
ui->mDBSignalDetailsTable->setRowCount(0);
|
||||
|
||||
@@ -71,8 +71,8 @@
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>66</y>
|
||||
<width>91</width>
|
||||
<height>10</height>
|
||||
<width>121</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
@@ -81,7 +81,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>CAN Device ID:</string>
|
||||
<string>CAN Driver dev ID:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="mCANBaudrateLbl">
|
||||
@@ -243,7 +243,7 @@
|
||||
<widget class="QSpinBox" name="mCANDeviceIDSpinBx">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>110</x>
|
||||
<x>130</x>
|
||||
<y>60</y>
|
||||
<width>71</width>
|
||||
<height>22</height>
|
||||
@@ -379,6 +379,24 @@
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="mDBMessageCommentLbl">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>270</x>
|
||||
<y>110</y>
|
||||
<width>171</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Number of signals: </string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="mAddDeviceBtn">
|
||||
<property name="geometry">
|
||||
|
||||
@@ -102,14 +102,14 @@ int COtarcikCan::Start()
|
||||
return 0;
|
||||
}
|
||||
|
||||
int COtarcikCan::UpdateCANViewerDataRequest(QList<CCANMessage *> *MsgList)
|
||||
int COtarcikCan::UpdateCANViewerDataRequest(QList<CCANMessage *> *MsgList, QString DeviceName)
|
||||
{
|
||||
return mMainWindow.mCANViewerPage->UpdateCANTable(MsgList);
|
||||
}
|
||||
|
||||
int COtarcikCan::InitCANViewer(QList<CCANMessage *> *MsgList)
|
||||
int COtarcikCan::InitCANViewer(QList<CCANMessage *> *MsgList, QString DeviceName)
|
||||
{
|
||||
return mMainWindow.mCANViewerPage->InitCANTable(MsgList);
|
||||
return mMainWindow.mCANViewerPage->InitCANTable(MsgList, DeviceName);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@ public:
|
||||
int Start();
|
||||
|
||||
|
||||
int InitCANViewer(QList<CCANMessage *> *MsgList);
|
||||
int UpdateCANViewerDataRequest(QList<CCANMessage *> *MsgList);
|
||||
int InitCANViewer(QList<CCANMessage *> *MsgList, QString DeviceName);
|
||||
int UpdateCANViewerDataRequest(QList<CCANMessage *> *MsgList, QString DeviceName);
|
||||
|
||||
|
||||
int SaveCANDevicesConfigRequest(QList<CCANDeviceConfig*> *DevicesConfigList);
|
||||
|
||||
Reference in New Issue
Block a user