Développement cloud.
This commit is contained in:
@@ -1,6 +1,74 @@
|
||||
#include "CANDataLogger.h"
|
||||
#include "defines.h"
|
||||
|
||||
CCANDataLogger::CCANDataLogger()
|
||||
CCANDataLogger::CCANDataLogger():
|
||||
mTopicDeviceString("")
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
int CCANDataLogger::LogNewData(const QList<CCANMessage *> *MsgList)
|
||||
{
|
||||
//MQTT
|
||||
//For each message in the list, we create a CCANMessage
|
||||
|
||||
//First, clear the current list
|
||||
mMQTTMsgList.clear();
|
||||
qDebug("\n\n\n");
|
||||
|
||||
for(int i = 0; i < MsgList->size(); i++)
|
||||
{
|
||||
if(MsgList->at(i)->mPendingData == true)
|
||||
{
|
||||
CCANMessage *Msg = MsgList->at(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);
|
||||
|
||||
if(signal < Msg->mSignalsList.size()-1)
|
||||
{
|
||||
MsgPayload.append(",");
|
||||
}
|
||||
}
|
||||
MsgPayload.append("}");
|
||||
|
||||
qDebug("%s",qPrintable(MsgPayload));
|
||||
|
||||
CMQTTMessage NewMessage(MsgTopic, MsgPayload);
|
||||
mMQTTMsgList.append(NewMessage);
|
||||
|
||||
} //if(MsgList->at(i)->mPendingData == true)
|
||||
}
|
||||
|
||||
return RET_OK;
|
||||
|
||||
}
|
||||
|
||||
int CCANDataLogger::SetMQTTTopicDevice(QString DeviceString)
|
||||
{
|
||||
mTopicDeviceString = DeviceString;
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user