Intégration sur site

This commit is contained in:
2023-06-16 07:20:10 -04:00
parent c93fcf989b
commit 2d6edd0769
25 changed files with 1253 additions and 124 deletions
+79 -32
View File
@@ -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);
+3 -3
View File
@@ -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++)
{
+1
View File
@@ -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
+4
View File
@@ -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;
}