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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user