Corrections et développement. V1.01
This commit is contained in:
@@ -49,14 +49,14 @@ int CCANAnalyzer::Init(quint8 CANDeviceChannel, TPCANBaudrate CANDeviceBaudrate,
|
||||
if(mCANDriverIF->GetDeviceHandle(mCANDeviceChannel,mCANDeviceHandle) != RET_OK)
|
||||
{
|
||||
QString Log = QString("Impossible de trouver le module CAN sur le channel %1").arg(mCANDeviceChannel);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(Log,true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(Log,true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
mIsCANInitialized = false;
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
|
||||
if(mCANDriverIF->Init(mCANDeviceHandle,CANDeviceBaudrate) != RET_OK)
|
||||
{
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Impossible d'initialiser le matériel CAN",true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Impossible d'initialiser le matériel CAN",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
mIsCANInitialized = false;
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ CCANDevice::CCANDevice(QObject *parent)
|
||||
// mDevicePollPeriod = 0;
|
||||
}
|
||||
|
||||
CCANDevice::CCANDevice(CCANDeviceConfig &SysConfig, CMQTTClientWrapper *MQTTClient)
|
||||
CCANDevice::CCANDevice(CCANDeviceConfig &SysConfig, CMQTTClientWrapper *MQTTClient, QString DeviceTopicPrefix)
|
||||
{
|
||||
mMessageList.clear();
|
||||
mMessagesListLoaded = false;
|
||||
@@ -28,6 +28,7 @@ CCANDevice::CCANDevice(CCANDeviceConfig &SysConfig, CMQTTClientWrapper *MQTTClie
|
||||
|
||||
mDeviceConfigInfo = SysConfig;
|
||||
mCANMQTTClient = MQTTClient;
|
||||
mDeviceTopicPrefix = DeviceTopicPrefix;
|
||||
|
||||
// mCANDeviceID = SysConfig.mCANDeviceID;
|
||||
// mCANDeviceBaudrate = SysConfig.mCANDeviceBaudrate;
|
||||
@@ -60,7 +61,7 @@ int CCANDevice::Init()
|
||||
if(mCANDatabase.BuildMessageList(&mMessageList,mDeviceConfigInfo.mDeviceName) == RET_OK)
|
||||
{
|
||||
mMessagesListLoaded = true;
|
||||
mProgramPtr->InitCANViewer(&mMessageList,mDeviceConfigInfo.mDeviceName);
|
||||
mProgramPtr->InitCANViewer(&mMessageList,this);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -70,18 +71,22 @@ int CCANDevice::Init()
|
||||
|
||||
if(mCANAnalyzer.Init(mDeviceConfigInfo.mCANDeviceID,mDeviceConfigInfo.mCANDeviceBaudrate,&mMessageList,mDeviceConfigInfo.mDevicePollPeriod) != RET_OK)
|
||||
{
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Le dispositif [%1] n'a pas pu s'initialiser").arg(mDeviceConfigInfo.mDeviceName),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Le dispositif [%1] n'a pas pu s'initialiser").arg(mDeviceConfigInfo.mDeviceName),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
mProgramPtr->SetCANConnectionStatusRequest(false);
|
||||
mProgramPtr->UpdateCANModuleStatusRequest(mDeviceConfigInfo.mDeviceName,"Déconnecté","NOUPDATE");
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
|
||||
#ifdef USE_TOPIC_PREFIX
|
||||
mCANDataLogger.SetMQTTTopicDevice(QString("%2CANBus/%1/").arg(mDeviceConfigInfo.mDeviceName).arg(mDeviceTopicPrefix));
|
||||
#else
|
||||
mCANDataLogger.SetMQTTTopicDevice(QString("CANBus/%1/").arg(mDeviceConfigInfo.mDeviceName));
|
||||
#endif
|
||||
mCANDataLogger.SetMQTTClient(mCANMQTTClient);
|
||||
mProgramPtr->SetCANConnectionStatusRequest(true);
|
||||
mProgramPtr->UpdateCANModuleStatusRequest(mDeviceConfigInfo.mDeviceName,"Connecté","NOUPDATE");
|
||||
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Dispositif [%1] initialisé avec succès!").arg(mDeviceConfigInfo.mDeviceName),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Dispositif [%1] initialisé avec succès!").arg(mDeviceConfigInfo.mDeviceName),1,true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,11 +22,12 @@ class CCANDevice : public QObject
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit CCANDevice(QObject *parent = 0);
|
||||
CCANDevice(CCANDeviceConfig &SysConfig, CMQTTClientWrapper* MQTTClient = 0);
|
||||
CCANDevice(CCANDeviceConfig &SysConfig, CMQTTClientWrapper* MQTTClient = 0, QString DeviceTopicPrefix="");
|
||||
~CCANDevice();
|
||||
|
||||
int Init(QString DatabaseFileName, TPCANHandle CANDeviceID, TPCANBaudrate CANDeviceBaudRate, QString DevDescription, QString DeviceName, unsigned int DevicePollPeriod);
|
||||
int Init();
|
||||
QList<CCANMessage*> *GetCANMessagesList(){return &mMessageList;}
|
||||
|
||||
public:
|
||||
CCANDeviceConfig mDeviceConfigInfo;
|
||||
@@ -37,6 +38,7 @@ public:
|
||||
CCANDatabase mCANDatabase; //The device's database loaded from dbc file
|
||||
CCANDataLogger mCANDataLogger;
|
||||
CMQTTClientWrapper *mCANMQTTClient;
|
||||
QString mDeviceTopicPrefix;
|
||||
|
||||
QList<CCANMessage*> mMessageList;
|
||||
QList<CMQTTMessage> *GetMQTTMessagesList();
|
||||
|
||||
@@ -29,14 +29,14 @@ int CCANWatchdog::Init(quint8 CANDeviceID, WORD CANDeviceBaudrate, unsigned int
|
||||
if(mCANDriverIF->GetDeviceHandle(mCANDeviceID,mCANDeviceHandle) != RET_OK)
|
||||
{
|
||||
QString Log = QString("Impossible de trouver le module CAN Watchdog sur le channel %1").arg(mCANDeviceID);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(Log,true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(Log,true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
mIsCANInitialized = false;
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
|
||||
if(mCANDriverIF->Init(mCANDeviceHandle,mCANDeviceBaudrate) != RET_OK)
|
||||
{
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Impossible d'initialiser la puck CAN du Watchdog",true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Impossible d'initialiser la puck CAN du Watchdog",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
mIsCANInitialized = false;
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ int CCANDatabase::LoadDatabaseFile(QString Filename)
|
||||
status = kvaDbOpen(&mDatabaseDriverHandle);
|
||||
if (status != kvaDbOK)
|
||||
{
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible d'initialiser la base de données (création du handle impossble"),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible d'initialiser la base de données (création du handle impossble"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
qDebug("Could not create a database handle: %d\n", status);
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
@@ -44,7 +44,7 @@ int CCANDatabase::LoadDatabaseFile(QString Filename)
|
||||
status = kvaDbReadFile(mDatabaseDriverHandle, Filename.toLocal8Bit().data());
|
||||
if (status != kvaDbOK)
|
||||
{
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger le fichier %1").arg(Filename),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger le fichier %1").arg(Filename),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
qDebug("Could not load '%s': %d\n", Filename.toLocal8Bit().data(), status);
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
@@ -52,11 +52,11 @@ int CCANDatabase::LoadDatabaseFile(QString Filename)
|
||||
status = kvaDbGetFlags(mDatabaseDriverHandle, &flags);
|
||||
if (status != kvaDbOK)
|
||||
{
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger les flags"),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger les flags"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
qDebug("kvaDbGetFlags failed: %d\n", status);
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Base de données chargée avec succès. Flags: 0x%1").arg(flags),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Base de données chargée avec succès. Flags: 0x%1").arg(flags),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
|
||||
qDebug(" Database: flags=0x%x\n", flags);
|
||||
|
||||
mDatabaseFileLoaded = true;
|
||||
@@ -85,7 +85,7 @@ int CCANDatabase::BuildMessageList(QList<CCANMessage *> *MsgListPtr, QString Own
|
||||
status = kvaDbGetFirstMsg (mDatabaseDriverHandle, &mh);
|
||||
if (status != kvaDbOK)
|
||||
{
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger le premier message"),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Erreur de base de données: impossible de charger le premier message"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
qDebug ("kvaDbGetFirstMsg failed: %d\n", status);
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
|
||||
@@ -13,7 +13,8 @@ QDataStream &operator>>(QDataStream &in, CCloudParams &dest)
|
||||
>> dest.mMQTTBrokerPort
|
||||
>> dest.mMQTTBrokerUserName
|
||||
>> dest.mMQTTTopicPrefix
|
||||
>> dest.mMQTTTransmitTimeout;
|
||||
>> dest.mMQTTTransmitTimeout
|
||||
>> dest.mMQTTClientID;
|
||||
|
||||
return in;
|
||||
}
|
||||
@@ -24,7 +25,8 @@ QDataStream &operator<<(QDataStream &out, const CCloudParams &source)
|
||||
<< source.mMQTTBrokerPort
|
||||
<< source.mMQTTBrokerUserName
|
||||
<< source.mMQTTTopicPrefix
|
||||
<< source.mMQTTTransmitTimeout;
|
||||
<< source.mMQTTTransmitTimeout
|
||||
<< source.mMQTTClientID;
|
||||
return out;
|
||||
}
|
||||
|
||||
@@ -41,6 +43,7 @@ CCloudParams& CCloudParams::operator=(const CCloudParams &source)
|
||||
this->mMQTTBrokerUserName = source.mMQTTBrokerUserName;
|
||||
this->mMQTTTopicPrefix = source.mMQTTTopicPrefix;
|
||||
this->mMQTTTransmitTimeout = source.mMQTTTransmitTimeout;
|
||||
this->mMQTTClientID = source.mMQTTClientID;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ public:
|
||||
QString mMQTTTopicPrefix;
|
||||
quint32 mMQTTBrokerPort;
|
||||
quint32 mMQTTTransmitTimeout;
|
||||
QString mMQTTClientID;
|
||||
|
||||
CCloudParams &operator=(const CCloudParams &source);
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@ CMQTTClientWrapper::~CMQTTClientWrapper()
|
||||
int CMQTTClientWrapper::SetMQTTParams(CCloudParams *Params)
|
||||
{
|
||||
mMQTTParams = *Params;
|
||||
mMQTTClientID = "Otarcik_Station_Ville_Emard";
|
||||
// mMQTTClientID = "Otarcik_Station_Ville_Emard";
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
@@ -32,7 +32,7 @@ int CMQTTClientWrapper::ConnectToBroker()
|
||||
{
|
||||
//Setup the client before connecting.
|
||||
mMQTTClient.setAutoKeepAlive(true);
|
||||
mMQTTClient.setClientId(mMQTTClientID);
|
||||
mMQTTClient.setClientId(mMQTTParams.mMQTTClientID);
|
||||
mMQTTClient.setHostname(mMQTTParams.mMQTTBrokerHostName);
|
||||
mMQTTClient.setPort(mMQTTParams.mMQTTBrokerPort);
|
||||
mMQTTClient.setPassword(mMQTTParams.mMQTTBrokerPassword);
|
||||
@@ -143,7 +143,7 @@ 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);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,true,3);
|
||||
|
||||
}
|
||||
qDebug("Sent %d MQTT messages",MessagesList->size());
|
||||
|
||||
@@ -27,7 +27,7 @@ public:
|
||||
int SetCANDevicesList(QList<CCANDevice*> *List);
|
||||
|
||||
COtarcikCan *mProgramPtr;
|
||||
QString mMQTTClientID;
|
||||
// QString mMQTTClientID;
|
||||
QTimer *mMQTTRefreshTimer;
|
||||
QTimer *mMQTTReconnectTimer;
|
||||
|
||||
|
||||
@@ -59,10 +59,14 @@ int CGeneralMessagesLogDispatcher::Init()
|
||||
mSystemLogFile->write(QString("Démarrage du logiciel Otarcik CAN le %1 à %2\n").arg(QDateTime::currentDateTime().date().toString("yyyy-MM-dd")).arg(QDateTime::currentDateTime().time().toString("hh:mm:ss")).toUtf8());
|
||||
mSystemLogFile->write(QString("********************************************************************\n").toUtf8());
|
||||
}
|
||||
|
||||
mLogFileVerbosity = 3;
|
||||
mGuiLogVerbosity = 3;
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CGeneralMessagesLogDispatcher::AddLogMessage(QString LogLine, bool AddToGUILogPanel, eGenMsgTextErrorStatus TxtErrStatus)
|
||||
int CGeneralMessagesLogDispatcher::AddLogMessage(QString LogLine, bool AddToGUILogPanel, int MsgVerbosity, eGenMsgTextErrorStatus TxtErrStatus)
|
||||
{
|
||||
//TODO: Add text to log file...
|
||||
|
||||
@@ -86,31 +90,37 @@ int CGeneralMessagesLogDispatcher::AddLogMessage(QString LogLine, bool AddToGUIL
|
||||
}
|
||||
|
||||
|
||||
mSystemLogFile->write(LogLine.toUtf8());
|
||||
|
||||
if(AddToGUILogPanel == true)
|
||||
if(MsgVerbosity <= mLogFileVerbosity)
|
||||
{
|
||||
if(TxtErrStatus == GEN_MSG_TXT_ERROR_STATUS)
|
||||
{
|
||||
LogLine.prepend("%E");
|
||||
}
|
||||
else if(TxtErrStatus == GEN_MSG_TXT_WARNING_STATUS)
|
||||
{
|
||||
LogLine.prepend("%W");
|
||||
}
|
||||
else if(TxtErrStatus == GEN_MSG_TXT_SUCCESS_STATUS)
|
||||
{
|
||||
LogLine.prepend("%S");
|
||||
}
|
||||
mSystemLogFile->write(LogLine.toUtf8());
|
||||
}
|
||||
|
||||
if(mGeneralStatusPageHandle != 0)
|
||||
if(MsgVerbosity <= mGuiLogVerbosity)
|
||||
{
|
||||
if(AddToGUILogPanel == true)
|
||||
{
|
||||
mGeneralStatusPageHandle->AddGeneralMsgBoxLineEntry(LogLine);
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug("Someone forgot to assing their pointers in CGeneralMessagesLogDispatch::AddLogMessage!! This needs to be fixed");
|
||||
return RET_GENERAL_ERROR;
|
||||
if(TxtErrStatus == GEN_MSG_TXT_ERROR_STATUS)
|
||||
{
|
||||
LogLine.prepend("%E");
|
||||
}
|
||||
else if(TxtErrStatus == GEN_MSG_TXT_WARNING_STATUS)
|
||||
{
|
||||
LogLine.prepend("%W");
|
||||
}
|
||||
else if(TxtErrStatus == GEN_MSG_TXT_SUCCESS_STATUS)
|
||||
{
|
||||
LogLine.prepend("%S");
|
||||
}
|
||||
|
||||
if(mGeneralStatusPageHandle != 0)
|
||||
{
|
||||
mGeneralStatusPageHandle->AddGeneralMsgBoxLineEntry(LogLine);
|
||||
}
|
||||
else
|
||||
{
|
||||
qDebug("Someone forgot to assing their pointers in CGeneralMessagesLogDispatch::AddLogMessage!! This needs to be fixed");
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,3 +145,10 @@ int CGeneralMessagesLogDispatcher::BindGuiPageHandle(CGeneralStatusPage *Handle)
|
||||
return RET_OK;
|
||||
|
||||
}
|
||||
|
||||
int CGeneralMessagesLogDispatcher::SetLogVerbosities(int LogFileVerbosity, int GuiLogVerbosity)
|
||||
{
|
||||
mGuiLogVerbosity = GuiLogVerbosity;
|
||||
mLogFileVerbosity = LogFileVerbosity;
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
@@ -30,14 +30,17 @@ public:
|
||||
CGeneralMessagesLogDispatcher();
|
||||
~CGeneralMessagesLogDispatcher();
|
||||
|
||||
int AddLogMessage(QString LogLine, bool AddToGUILogPanel = true, eGenMsgTextErrorStatus TxtErrStatus = GEN_MSG_TXT_NO_ERROR_STATUS);
|
||||
int AddLogMessage(QString LogLine, bool AddToGUILogPanel = true, int MsgVerbosity = 1, eGenMsgTextErrorStatus TxtErrStatus = GEN_MSG_TXT_NO_ERROR_STATUS);
|
||||
CGeneralStatusPage *mGeneralStatusPageHandle;
|
||||
int BindGuiPageHandle(CGeneralStatusPage *Handle);
|
||||
int Init();
|
||||
int SetLogVerbosities(int LogFileVerbosity, int GuiLogVerbosity);
|
||||
|
||||
private:
|
||||
QStringList mGeneralMsgGUILog;
|
||||
QFile *mSystemLogFile;
|
||||
int mLogFileVerbosity;
|
||||
int mGuiLogVerbosity;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
#include "GeneralSystemParams.h"
|
||||
|
||||
CGeneralSystemParams::CGeneralSystemParams()
|
||||
{
|
||||
mLocalLogVerbosity = 1;
|
||||
mLogFileVerbosity = 0;
|
||||
}
|
||||
|
||||
QDataStream &operator>>(QDataStream &in, CGeneralSystemParams &dest)
|
||||
{
|
||||
in >> dest.mLocalLogVerbosity
|
||||
>> dest.mLogFileVerbosity;
|
||||
|
||||
|
||||
return in;
|
||||
}
|
||||
QDataStream &operator<<(QDataStream &out, const CGeneralSystemParams &source)
|
||||
{
|
||||
out << source.mLocalLogVerbosity
|
||||
<< source.mLogFileVerbosity;
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
CGeneralSystemParams& CGeneralSystemParams::operator=(const CGeneralSystemParams &source)
|
||||
{
|
||||
if(&source == this)
|
||||
{
|
||||
return *this;
|
||||
}
|
||||
|
||||
this->mLocalLogVerbosity = source.mLocalLogVerbosity;
|
||||
this->mLogFileVerbosity = source.mLogFileVerbosity;
|
||||
|
||||
return *this;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
#ifndef GENERALSYSTEMPARAMS_H
|
||||
#define GENERALSYSTEMPARAMS_H
|
||||
|
||||
#include <QDataStream>
|
||||
|
||||
class CGeneralSystemParams
|
||||
{
|
||||
public:
|
||||
CGeneralSystemParams();
|
||||
|
||||
int mLocalLogVerbosity;
|
||||
int mLogFileVerbosity;
|
||||
|
||||
CGeneralSystemParams &operator=(const CGeneralSystemParams &source);
|
||||
};
|
||||
|
||||
QDataStream &operator<<(QDataStream &out, const CGeneralSystemParams &source);
|
||||
QDataStream &operator>>(QDataStream &in, CGeneralSystemParams &dest);
|
||||
|
||||
|
||||
#endif // GENERALSYSTEMPARAMS_H
|
||||
@@ -1,6 +1,9 @@
|
||||
#include "CANViewerPage.h"
|
||||
#include "ui_CANViewerPage.h"
|
||||
#include "defines.h"
|
||||
#include "CANDevice.h"
|
||||
#include "MQTTMessage.h"
|
||||
#include <QClipboard>
|
||||
|
||||
CCANViewerPage::CCANViewerPage(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
@@ -21,10 +24,8 @@ CCANViewerPage::CCANViewerPage(QWidget *parent) :
|
||||
ui->mCANSignalTableWidget->setColumnCount(4);
|
||||
ui->mCANSignalTableWidget->setHorizontalHeaderLabels(QStringList() << "Nom du signal" << "Val. physique" << "Val. brute" << "Unités");
|
||||
|
||||
|
||||
|
||||
|
||||
connect(ui->mCANDataTableWidget,&QTableWidget::itemSelectionChanged,this,&CCANViewerPage::MessageSelectionChanged);
|
||||
connect(ui->mCopyJSonToClipboardBtn,&QPushButton::pressed,this,&CCANViewerPage::CopyJSONToClipboardButtonPressed);
|
||||
}
|
||||
|
||||
CCANViewerPage::~CCANViewerPage()
|
||||
@@ -32,60 +33,54 @@ CCANViewerPage::~CCANViewerPage()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
int CCANViewerPage::InitCANTable(QList<CCANMessage *> *MsgList, QString DeviceName)
|
||||
int CCANViewerPage::InitCANTable(QList<CCANDevice *> *CANDevicesList)
|
||||
{
|
||||
if(MsgList == 0)
|
||||
//if(MsgList == 0)
|
||||
if(CANDevicesList == 0)
|
||||
{
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
|
||||
mMsgList.append(MsgList);
|
||||
ResetPage();
|
||||
|
||||
int row = ui->mCANDataTableWidget->rowCount();
|
||||
ui->mCANDataTableWidget->setRowCount(MsgList->size() + row);
|
||||
for(int Msg = 0; Msg < MsgList->size(); Msg++)
|
||||
mCANDevicesList = CANDevicesList;
|
||||
|
||||
for(int Dev = 0; Dev < mCANDevicesList->size(); Dev++)
|
||||
{
|
||||
QTableWidgetItem *NewItem;
|
||||
QList<CCANMessage *> *MsgList = mCANDevicesList->at(Dev)->GetCANMessagesList();
|
||||
|
||||
NewItem = new QTableWidgetItem(DeviceName);
|
||||
ui->mCANDataTableWidget->setItem(row,0,NewItem);
|
||||
int row = ui->mCANDataTableWidget->rowCount();
|
||||
ui->mCANDataTableWidget->setRowCount(MsgList->size() + row);
|
||||
for(int Msg = 0; Msg < MsgList->size(); Msg++)
|
||||
{
|
||||
QTableWidgetItem *NewItem;
|
||||
|
||||
//Set Msg name
|
||||
NewItem = new QTableWidgetItem(QString("%1").arg(MsgList->at(Msg)->mCANMsgName));
|
||||
ui->mCANDataTableWidget->setItem(row,1,NewItem);
|
||||
NewItem = new QTableWidgetItem(mCANDevicesList->at(Dev)->mDeviceConfigInfo.mDeviceName);
|
||||
ui->mCANDataTableWidget->setItem(row,0,NewItem);
|
||||
|
||||
//Set message ID value
|
||||
NewItem = new QTableWidgetItem(QString("0x%1").arg(MsgList->at(Msg)->mCANMsgID,0,16));
|
||||
ui->mCANDataTableWidget->setItem(row,2,NewItem);
|
||||
NewItem->setData(Qt::UserRole,MsgList->at(Msg)->mCANMsgID); //Set message ID as reference to easily find the row when updating...
|
||||
//Set Msg name
|
||||
NewItem = new QTableWidgetItem(QString("%1").arg(MsgList->at(Msg)->mCANMsgName));
|
||||
ui->mCANDataTableWidget->setItem(row,1,NewItem);
|
||||
|
||||
//Set message type value
|
||||
NewItem = new QTableWidgetItem(QString("0x%1").arg(MsgList->at(Msg)->mCANMsgType,0,16));
|
||||
ui->mCANDataTableWidget->setItem(row,3,NewItem);
|
||||
//Set message ID value
|
||||
NewItem = new QTableWidgetItem(QString("0x%1").arg(MsgList->at(Msg)->mCANMsgID,0,16));
|
||||
ui->mCANDataTableWidget->setItem(row,2,NewItem);
|
||||
NewItem->setData(Qt::UserRole,MsgList->at(Msg)->mCANMsgID); //Set message ID as reference to easily find the row when updating...
|
||||
|
||||
//Set message length value
|
||||
NewItem = new QTableWidgetItem(QString(" "));
|
||||
ui->mCANDataTableWidget->setItem(row,4,NewItem);
|
||||
//Set message type value
|
||||
NewItem = new QTableWidgetItem(QString("0x%1").arg(MsgList->at(Msg)->mCANMsgType,0,16));
|
||||
ui->mCANDataTableWidget->setItem(row,3,NewItem);
|
||||
|
||||
NewItem = new QTableWidgetItem(QString(" "));
|
||||
ui->mCANDataTableWidget->setItem(row,5,NewItem);
|
||||
//Set message length value
|
||||
NewItem = new QTableWidgetItem(QString(" "));
|
||||
ui->mCANDataTableWidget->setItem(row,4,NewItem);
|
||||
|
||||
row++;
|
||||
NewItem = new QTableWidgetItem(QString(" "));
|
||||
ui->mCANDataTableWidget->setItem(row,5,NewItem);
|
||||
|
||||
|
||||
|
||||
// //Set data value
|
||||
// QString Data;
|
||||
// for(unsigned 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);
|
||||
row++;
|
||||
}
|
||||
}
|
||||
// ui->mCANSignalTableWidget->setCurrentItem(ui->mCANDataTableWidget->item(0,0));
|
||||
// MessageSelectionChanged();
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
@@ -124,75 +119,94 @@ int CCANViewerPage::UpdateCANTable(QList<CCANMessage *> *MsgList)
|
||||
|
||||
void CCANViewerPage::MessageSelectionChanged()
|
||||
{
|
||||
// if(mMsgList == 0)
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
|
||||
if(mMsgList.isEmpty())
|
||||
if(mCANDevicesList->isEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ui->mCANSignalTableWidget->clearContents();
|
||||
|
||||
//Find message based on current table selection
|
||||
int row = ui->mCANDataTableWidget->currentRow();
|
||||
if(row == -1)
|
||||
return;
|
||||
for(int MsgList = 0; MsgList < mMsgList.size(); MsgList++)
|
||||
|
||||
for(int Dev = 0; Dev < mCANDevicesList->size(); Dev++)
|
||||
{
|
||||
for (int msg = 0; msg < mMsgList.at(MsgList)->size(); msg++)
|
||||
QString DeviceName = ui->mCANDataTableWidget->item(row,0)->text();
|
||||
if(mCANDevicesList->at(Dev)->mDeviceConfigInfo.mDeviceName == DeviceName) //Find the device corresponding to the selected line
|
||||
{
|
||||
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)
|
||||
QList<CCANMessage *> *MsgList = mCANDevicesList->at(Dev)->GetCANMessagesList();
|
||||
for (int msg = 0; msg < MsgList->size(); msg++)
|
||||
{
|
||||
CCANMessage *Msg = mMsgList.at(MsgList)->at(msg);
|
||||
ui->mCANSignalTableWidget->clearContents();
|
||||
ui->mCANSignalTableWidget->setRowCount(Msg->mSignalsList.size());
|
||||
unsigned int ID = ui->mCANDataTableWidget->item(row,2)->data(Qt::UserRole).toUInt();
|
||||
|
||||
for(int signal = 0; signal < Msg->mSignalsList.size(); signal++)
|
||||
if(ID == MsgList->at(msg)->mCANMsgID) //Find the message in the list corresponding to the selected line
|
||||
{
|
||||
//Signal name
|
||||
QTableWidgetItem *NewItem = new QTableWidgetItem(Msg->mSignalsList.at(signal).mSignalName);
|
||||
ui->mCANSignalTableWidget->setItem(signal,0,NewItem);
|
||||
CCANMessage *Msg = 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
|
||||
#ifdef FORCE_FLOAT_REPRESENTATION
|
||||
//JFM 2023-06-13 changé pour forcer toujours à float
|
||||
NewItem = new QTableWidgetItem(QString("%1").arg(Msg->mSignalsList.at(signal).mPhysicalValue,0,'f',1));
|
||||
#else
|
||||
if(Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_UNSIGNED_INT)
|
||||
{
|
||||
NewItem = new QTableWidgetItem(QString("%1").arg((quint64)Msg->mSignalsList.at(signal).mPhysicalValue));
|
||||
}
|
||||
else if(Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_SIGNED_INT)
|
||||
{
|
||||
|
||||
/*
|
||||
if(Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_UNSIGNED_INT)
|
||||
{
|
||||
NewItem = new QTableWidgetItem(QString("%1").arg((quint64)Msg->mSignalsList.at(signal).mPhysicalValue));
|
||||
}
|
||||
else if(Msg->mSignalsList.at(signal).mValueType == CCANSignal::CAN_SIGNAL_TYPE_SIGNED_INT)
|
||||
{
|
||||
NewItem = new QTableWidgetItem(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)
|
||||
{
|
||||
NewItem = new QTableWidgetItem(QString("%1").arg(Msg->mSignalsList.at(signal).mPhysicalValue,0,'f',1));
|
||||
}
|
||||
#endif
|
||||
ui->mCANSignalTableWidget->setItem(signal,1,NewItem);
|
||||
|
||||
NewItem = new QTableWidgetItem(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)
|
||||
{
|
||||
NewItem = new QTableWidgetItem(QString("%1").arg(Msg->mSignalsList.at(signal).mPhysicalValue,0,'f',1));
|
||||
}*/
|
||||
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);
|
||||
}
|
||||
|
||||
ui->mJSonSignalViewTxtEdit->clear();
|
||||
CMQTTMessage MQTTMsg = mCANDevicesList->at(Dev)->mCANDataLogger.GetMQTTMessage(Msg,true);
|
||||
QString MQTTMsgDisplay = QString("Topic: %1\n\nPayload:\n%2").arg(MQTTMsg.mMessageTopic).arg(MQTTMsg.mMessagePayload);
|
||||
ui->mJSonSignalViewTxtEdit->insertPlainText(MQTTMsgDisplay);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
int CCANViewerPage::ResetPage()
|
||||
{
|
||||
ui->mCANDataTableWidget->clearContents();
|
||||
ui->mCANDataTableWidget->setRowCount(0);
|
||||
ui->mCANSignalTableWidget->clearContents();
|
||||
ui->mCANSignalTableWidget->setRowCount(0);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CCANViewerPage::UpdateSignalsTable()
|
||||
@@ -245,3 +259,10 @@ int CCANViewerPage::UpdateSignalsTable()
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
void CCANViewerPage::CopyJSONToClipboardButtonPressed()
|
||||
{
|
||||
// QApplication::clipboard()->setText(ui->mJSonSignalViewTxtEdit->);
|
||||
ui->mJSonSignalViewTxtEdit->selectAll();
|
||||
ui->mJSonSignalViewTxtEdit->copy();
|
||||
}
|
||||
|
||||
@@ -5,10 +5,20 @@
|
||||
#include "CANMessage.h"
|
||||
#include <QList>
|
||||
|
||||
class CCANDevice;
|
||||
|
||||
namespace Ui {
|
||||
class CCANViewerPage;
|
||||
}
|
||||
|
||||
class CCANViewerInfoStructure
|
||||
{
|
||||
public:
|
||||
QList<CCANMessage *> *mMsgList;
|
||||
CCANDevice *mCANDevice;
|
||||
};
|
||||
|
||||
|
||||
class CCANViewerPage : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -19,17 +29,21 @@ public:
|
||||
|
||||
|
||||
int UpdateCANTable(QList<CCANMessage*> *MsgList);
|
||||
int InitCANTable(QList<CCANMessage*> *MsgList, QString DeviceName);
|
||||
int InitCANTable(QList<CCANDevice*> *CANDevicesList);
|
||||
int UpdateSignalsTable();
|
||||
int ResetPage();
|
||||
|
||||
|
||||
QList<QList<CCANMessage *>*> mMsgList;
|
||||
QList<CCANViewerInfoStructure> mCANDataStructureList;
|
||||
QList<CCANDevice*> *mCANDevicesList;
|
||||
|
||||
public slots:
|
||||
void MessageSelectionChanged();
|
||||
void CopyJSONToClipboardButtonPressed();
|
||||
|
||||
private:
|
||||
Ui::CCANViewerPage *ui;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif // CANVIEWERPAGE_H
|
||||
|
||||
@@ -18,11 +18,15 @@ CLoggingSettingsPage::CLoggingSettingsPage(QWidget *parent) :
|
||||
ui->mCloudMQTTTopicPrefixEdit->setEnabled(false);
|
||||
ui->mCloudMQTTUserNameEdit->setEnabled(false);
|
||||
ui->mCloudMQTTRefreshRateSpinBx->setEnabled(false);
|
||||
ui->mCloudMQTTClientID->setEnabled(false);
|
||||
|
||||
|
||||
|
||||
connect(ui->mCancelBtn,&QPushButton::clicked,this,&CLoggingSettingsPage::CancelBtnPressed);
|
||||
connect(ui->mChangeParamsBtn,&QPushButton::clicked,this,&CLoggingSettingsPage::ModifyParamsBtnPressed);
|
||||
connect(ui->mLogZoneVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
|
||||
connect(ui->mLogFileVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
|
||||
|
||||
}
|
||||
|
||||
CLoggingSettingsPage::~CLoggingSettingsPage()
|
||||
@@ -39,7 +43,21 @@ int CLoggingSettingsPage::SetCloudParams(const CCloudParams *CloudParams)
|
||||
|
||||
mCloudParams = *CloudParams;
|
||||
|
||||
UpdateConfigPage();
|
||||
UpdateCloudConfig();
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CLoggingSettingsPage::SetGeneralSettingsParams(const CGeneralSystemParams *GeneralParams)
|
||||
{
|
||||
if(GeneralParams == 0)
|
||||
{
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
|
||||
mGeneralSystemParams = *GeneralParams;
|
||||
|
||||
UpdateGeneralParams();
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
@@ -55,6 +73,7 @@ void CLoggingSettingsPage::ModifyParamsBtnPressed()
|
||||
ui->mCloudMQTTTopicPrefixEdit->setEnabled(true);
|
||||
ui->mCloudMQTTUserNameEdit->setEnabled(true);
|
||||
ui->mCloudMQTTRefreshRateSpinBx->setEnabled(true);
|
||||
ui->mCloudMQTTClientID->setEnabled(true);
|
||||
ui->mChangeParamsBtn->setText("Appliquer");
|
||||
}
|
||||
else
|
||||
@@ -68,14 +87,21 @@ void CLoggingSettingsPage::ModifyParamsBtnPressed()
|
||||
ui->mCloudMQTTTopicPrefixEdit->setEnabled(false);
|
||||
ui->mCloudMQTTUserNameEdit->setEnabled(false);
|
||||
ui->mCloudMQTTRefreshRateSpinBx->setEnabled(false);
|
||||
ui->mCloudMQTTClientID->setEnabled(false);
|
||||
|
||||
|
||||
mCloudParams.mMQTTBrokerHostName = ui->mCloudMQTTHostNameEdit->text();
|
||||
mCloudParams.mMQTTBrokerPassword = ui->mCloudMQTTPasswordEdit->text();
|
||||
mCloudParams.mMQTTBrokerPort = (quint32)ui->mCloudMQTTPortSpinBx->value();
|
||||
mCloudParams.mMQTTTopicPrefix = ui->mCloudMQTTTopicPrefixEdit->text();
|
||||
if(mCloudParams.mMQTTTopicPrefix.endsWith("/") == false)
|
||||
{
|
||||
mCloudParams.mMQTTTopicPrefix.append("/");
|
||||
ui->mCloudMQTTTopicPrefixEdit->setText(mCloudParams.mMQTTTopicPrefix);
|
||||
}
|
||||
mCloudParams.mMQTTBrokerUserName = ui->mCloudMQTTUserNameEdit->text();
|
||||
mCloudParams.mMQTTTransmitTimeout = (quint32)ui->mCloudMQTTRefreshRateSpinBx->value();
|
||||
mCloudParams.mMQTTClientID = ui->mCloudMQTTClientID->text();
|
||||
|
||||
mProgramHandle->SaveCloudLoggingConfigRequest(&mCloudParams);
|
||||
|
||||
@@ -92,11 +118,12 @@ void CLoggingSettingsPage::CancelBtnPressed()
|
||||
ui->mCloudMQTTTopicPrefixEdit->setEnabled(false);
|
||||
ui->mCloudMQTTUserNameEdit->setEnabled(false);
|
||||
ui->mCloudMQTTRefreshRateSpinBx->setEnabled(false);
|
||||
ui->mCloudMQTTClientID->setEnabled(false);
|
||||
|
||||
UpdateConfigPage();
|
||||
UpdateCloudConfig();
|
||||
}
|
||||
|
||||
int CLoggingSettingsPage::UpdateConfigPage()
|
||||
int CLoggingSettingsPage::UpdateCloudConfig()
|
||||
{
|
||||
ui->mCloudMQTTHostNameEdit->setText(mCloudParams.mMQTTBrokerHostName);
|
||||
ui->mCloudMQTTPasswordEdit->setText(mCloudParams.mMQTTBrokerPassword);
|
||||
@@ -104,6 +131,34 @@ int CLoggingSettingsPage::UpdateConfigPage()
|
||||
ui->mCloudMQTTTopicPrefixEdit->setText(mCloudParams.mMQTTTopicPrefix);
|
||||
ui->mCloudMQTTUserNameEdit->setText(mCloudParams.mMQTTBrokerUserName);
|
||||
ui->mCloudMQTTRefreshRateSpinBx->setValue(mCloudParams.mMQTTTransmitTimeout);
|
||||
ui->mCloudMQTTClientID->setText(mCloudParams.mMQTTClientID);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CLoggingSettingsPage::UpdateGeneralParams()
|
||||
{
|
||||
disconnect(ui->mLogZoneVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
|
||||
disconnect(ui->mLogFileVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
|
||||
|
||||
ui->mLogFileVerbositySpinBx->setValue(mGeneralSystemParams.mLogFileVerbosity);
|
||||
ui->mLogZoneVerbositySpinBx->setValue(mGeneralSystemParams.mLocalLogVerbosity);
|
||||
|
||||
connect(ui->mLogZoneVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
|
||||
connect(ui->mLogFileVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
void CLoggingSettingsPage::VerbosityParamsChanged(int value)
|
||||
{
|
||||
Q_UNUSED(value)
|
||||
|
||||
mGeneralSystemParams.mLocalLogVerbosity = ui->mLogZoneVerbositySpinBx->value();
|
||||
mGeneralSystemParams.mLogFileVerbosity = ui->mLogFileVerbositySpinBx->value();
|
||||
|
||||
mProgramHandle->SaveGeneralParametersSettingsRequest(&mGeneralSystemParams);
|
||||
|
||||
qDebug("LogZone: %i, LogFile %i",mGeneralSystemParams.mLocalLogVerbosity,mGeneralSystemParams.mLogFileVerbosity);
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <QWidget>
|
||||
#include "CloudParams.h"
|
||||
#include "GeneralSystemParams.h"
|
||||
|
||||
|
||||
class COtarcikCan;
|
||||
@@ -20,24 +21,28 @@ public:
|
||||
~CLoggingSettingsPage();
|
||||
|
||||
int SetCloudParams(const CCloudParams *CloudParams);
|
||||
int SetGeneralSettingsParams(const CGeneralSystemParams *GeneralParams);
|
||||
|
||||
|
||||
COtarcikCan *mProgramHandle;
|
||||
|
||||
private:
|
||||
int UpdateConfigPage();
|
||||
int UpdateCloudConfig();
|
||||
int UpdateGeneralParams();
|
||||
|
||||
|
||||
Ui::CLoggingSettingsPage *ui;
|
||||
|
||||
bool EditMode;
|
||||
CCloudParams mCloudParams;
|
||||
CGeneralSystemParams mGeneralSystemParams;
|
||||
|
||||
|
||||
|
||||
public slots:
|
||||
void ModifyParamsBtnPressed();
|
||||
void CancelBtnPressed();
|
||||
void VerbosityParamsChanged(int value);
|
||||
|
||||
|
||||
};
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="mCloudMQTTClientID">
|
||||
<widget class="QLabel" name="mCloudMQTTClientIDLbl">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
@@ -225,7 +225,7 @@
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="mCloudMQTTTopicPrefixEdit_2">
|
||||
<widget class="QLineEdit" name="mCloudMQTTClientID">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>90</x>
|
||||
@@ -279,8 +279,8 @@
|
||||
<widget class="QLabel" name="mGeneralLogParamsLbl">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>740</x>
|
||||
<y>40</y>
|
||||
<x>590</x>
|
||||
<y>30</y>
|
||||
<width>181</width>
|
||||
<height>31</height>
|
||||
</rect>
|
||||
@@ -294,19 +294,6 @@
|
||||
<string>Paramètres généraux</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="mSaveLocalLogFileChkBx">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>740</x>
|
||||
<y>80</y>
|
||||
<width>261</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Sauvegarder fichier log local</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="mChangeParamsBtn">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
@@ -333,6 +320,111 @@
|
||||
<string>Annuler</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>590</x>
|
||||
<y>90</y>
|
||||
<width>351</width>
|
||||
<height>121</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Logging (3 = très détaillé)</string>
|
||||
</property>
|
||||
<widget class="QSpinBox" name="mLogFileVerbositySpinBx">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>170</x>
|
||||
<y>30</y>
|
||||
<width>51</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>3</number>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QSpinBox" name="mLogZoneVerbositySpinBx">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>220</x>
|
||||
<y>70</y>
|
||||
<width>43</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>30</y>
|
||||
<width>161</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>11</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Verbosité du fichier log</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>70</y>
|
||||
<width>211</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>11</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Verbosité de la page de statut</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>230</x>
|
||||
<y>30</y>
|
||||
<width>81</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>10</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0 = désactivé</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
||||
@@ -22,6 +22,7 @@ CMainWindow::CMainWindow(QWidget *parent) :
|
||||
ui(new Ui::CMainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
QMainWindow::statusBar()->showMessage("V1.00");
|
||||
|
||||
mGeneralStatusPage = new CGeneralStatusPage(this);
|
||||
mMainWindowWidget = new QTabWidget(this);
|
||||
|
||||
@@ -54,8 +54,9 @@ int COtarcikCan::Start()
|
||||
|
||||
CGeneralMessagesLogDispatcher::instance()->BindGuiPageHandle(mMainWindow.mGeneralStatusPage);
|
||||
CGeneralMessagesLogDispatcher::instance()->Init();
|
||||
// CGeneralMessagesLogDispatcher::instance()->Init();
|
||||
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Démarrage du logiciel OtarcikCAN"));
|
||||
// CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Démarrage du logiciel OtarcikCAN"));
|
||||
|
||||
if(mSystemConfig.LoadConfig() == RET_OK)
|
||||
{
|
||||
@@ -66,50 +67,41 @@ int COtarcikCan::Start()
|
||||
PopulateCANDevicesList(CANDeviceConfigList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
mMainWindow.mCANbusSettingsPage->SetDevicesList(&mCANDevicesList);
|
||||
mMainWindow.mCANViewerPage->InitCANTable(&mCANDevicesList);
|
||||
|
||||
mCloudLoggingParams = *mSystemConfig.GetCloudParams();
|
||||
mMainWindow.mDataLoggingSettingsPage->SetCloudParams(&mCloudLoggingParams);
|
||||
|
||||
mCANBusMQTTClient.SetMQTTParams(&mCloudLoggingParams);
|
||||
mCANBusMQTTClient.ConnectToBroker();
|
||||
mCANBusMQTTClient.SetCANDevicesList(&mCANDevicesList);
|
||||
|
||||
mGeneralSystemParams = *mSystemConfig.GetGeneralSystemSettings();
|
||||
mMainWindow.mDataLoggingSettingsPage->SetGeneralSettingsParams(&mGeneralSystemParams);
|
||||
CGeneralMessagesLogDispatcher::instance()->SetLogVerbosities(mGeneralSystemParams.mLogFileVerbosity,mGeneralSystemParams.mLocalLogVerbosity);
|
||||
|
||||
mMainWindow.mCANWatchdogSettingsPage->SetCANWatchdogConfig(mSystemConfig.GetCANWatchdogConfig());
|
||||
|
||||
mGPTimer->setSingleShot(false);
|
||||
mGPTimer->start(5000);
|
||||
// mGPTimer->setSingleShot(false);
|
||||
// mGPTimer->start(5000);
|
||||
|
||||
|
||||
}
|
||||
// CCANDevice *NewCANDevice = new CCANDevice();
|
||||
// mCANDevicesList.append(NewCANDevice);
|
||||
// NewCANDevice->mProgramPtr = this;
|
||||
|
||||
// NewCANDevice->Init("IVT-S_all-variations_12082020.dbc",PCAN_USBBUS1,PCAN_BAUD_500K,"Puck CAN USB branchée sur le module Parker qui contrôle la patente", "Module Parker",1000);
|
||||
// SaveSystemConfigRequest();
|
||||
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Démarrage du logiciel OtarcikCAN"));
|
||||
|
||||
mCANBusMQTTClient.ConnectToBroker();
|
||||
mMainWindow.mCANbusSettingsPage->SetDevicesList(&mCANDevicesList);
|
||||
|
||||
// NewCANDevice = new CCANDevice();
|
||||
// mCANDevicesList.append(NewCANDevice);
|
||||
// NewCANDevice->mProgramPtr = this;
|
||||
|
||||
// NewCANDevice->Init("mazda_3_2019.dbc",PCAN_USBBUS3,PCAN_BAUD_800K,"Puck CAN USB branchée sur une autre patente", "Module Cossin",200);
|
||||
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int COtarcikCan::UpdateCANViewerDataRequest(QList<CCANMessage *> *MsgList, QString DeviceName)
|
||||
int COtarcikCan::UpdateCANViewerDataRequest(QList<CCANMessage *> *MsgList)
|
||||
{
|
||||
return mMainWindow.mCANViewerPage->UpdateCANTable(MsgList);
|
||||
}
|
||||
|
||||
int COtarcikCan::InitCANViewer(QList<CCANMessage *> *MsgList, QString DeviceName)
|
||||
{
|
||||
return mMainWindow.mCANViewerPage->InitCANTable(MsgList, DeviceName);
|
||||
}
|
||||
|
||||
|
||||
@@ -132,8 +124,11 @@ int COtarcikCan::SaveCANDevicesConfigRequest(QList<CCANDeviceConfig *> *DevicesC
|
||||
{
|
||||
//Config saving is successful. To apply changes we need to reload the devices.
|
||||
//The easiest way is to delete everything and reload.
|
||||
mMainWindow.mGeneralStatusPage->ClearCANModuleStatusTable();
|
||||
PopulateCANDevicesList(DevicesConfigList);
|
||||
mMainWindow.mCANbusSettingsPage->SetDevicesList(&mCANDevicesList);
|
||||
mMainWindow.mCANViewerPage->InitCANTable(&mCANDevicesList);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -158,12 +153,14 @@ int COtarcikCan::PopulateCANDevicesList(QList<CCANDeviceConfig *> *CANDeviceConf
|
||||
|
||||
for(int i = 0; i < CANDeviceConfigList->size(); i++)
|
||||
{
|
||||
CCANDevice *NewDevice = new CCANDevice(*CANDeviceConfigList->at(i),&mCANBusMQTTClient);
|
||||
CCANDevice *NewDevice = new CCANDevice(*CANDeviceConfigList->at(i),&mCANBusMQTTClient,mSystemConfig.mCloudLoggingParams.mMQTTTopicPrefix);
|
||||
NewDevice->mProgramPtr = this;
|
||||
NewDevice->Init();
|
||||
mCANDevicesList.append(NewDevice);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
@@ -192,6 +189,23 @@ int COtarcikCan::SaveCloudLoggingConfigRequest(CCloudParams *CloudParams)
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int COtarcikCan::SaveGeneralParametersSettingsRequest(CGeneralSystemParams *GeneralParams)
|
||||
{
|
||||
mGeneralSystemParams = *GeneralParams;
|
||||
mSystemConfig.SetGeneralSystemParams(&mGeneralSystemParams);
|
||||
if(mSystemConfig.SaveConfig() == RET_OK)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
CGeneralMessagesLogDispatcher::instance()->SetLogVerbosities(mGeneralSystemParams.mLogFileVerbosity,mGeneralSystemParams.mLocalLogVerbosity);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
void COtarcikCan::GPTimerExpired()
|
||||
{
|
||||
// mCANBusMQTTClient.SendMQTTTestMessage();
|
||||
|
||||
@@ -25,12 +25,13 @@ public:
|
||||
int Start();
|
||||
|
||||
|
||||
int InitCANViewer(QList<CCANMessage *> *MsgList, QString DeviceName);
|
||||
int InitCANViewer(QList<CCANMessage *> *MsgList, CCANDevice *Device);
|
||||
int UpdateCANViewerDataRequest(QList<CCANMessage *> *MsgList, QString DeviceName);
|
||||
|
||||
|
||||
int SaveCANDevicesConfigRequest(QList<CCANDeviceConfig*> *DevicesConfigList);
|
||||
int SaveCloudLoggingConfigRequest(CCloudParams *CloudParams);
|
||||
int SaveGeneralParametersSettingsRequest(CGeneralSystemParams *GeneralParams);
|
||||
|
||||
int SetCANConnectionStatusRequest(bool Connected);
|
||||
int SetMQTTConnectionSatusRequest(bool Connected);
|
||||
@@ -41,6 +42,7 @@ public:
|
||||
private:
|
||||
QList<CCANDevice*> mCANDevicesList;
|
||||
CCloudParams mCloudLoggingParams;
|
||||
CGeneralSystemParams mGeneralSystemParams;
|
||||
|
||||
int PopulateCANDevicesList(QList<CCANDeviceConfig*> *DevicesConfigsList);
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ int CPCANInterface::Init(TPCANHandle CANDeviceHandle, TPCANBaudrate CANBaudRate)
|
||||
char strMsg[256];
|
||||
CAN_GetErrorText(Result, 0, strMsg);
|
||||
qDebug("%s",strMsg);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible d'initialiser un module USB PCAN. Erreur:%1").arg(strMsg),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible d'initialiser un module USB PCAN. Erreur:%1").arg(strMsg),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CANInterfaceOpened = false;
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
@@ -81,7 +81,7 @@ int CPCANInterface::DeInit()
|
||||
{
|
||||
char strMsg[256];
|
||||
CAN_GetErrorText(Result, 0, strMsg);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible de déinitialiser un module USB PCAN.. Error:%1").arg(strMsg),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Impossible de déinitialiser un module USB PCAN.. Error:%1").arg(strMsg),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
#include "SystemConfig.h"
|
||||
#include "GeneralMessagesLogDispatcher.h"
|
||||
|
||||
CSystemConfig::CSystemConfig() :
|
||||
mSaveLocalLogFile(false)
|
||||
CSystemConfig::CSystemConfig()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -31,13 +30,13 @@ int CSystemConfig::LoadConfig()
|
||||
if(ConfigFile->open(QIODevice::ReadOnly | QIODevice::Unbuffered) == false)
|
||||
{
|
||||
qDebug("CSystemConfig: Failed to open config file in config loading");
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Impossible d'ouvrir le fichier /Config/Station.cfg"),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Impossible d'ouvrir le fichier /Config/Station.cfg"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Pointeur vers QFile invalide !!!"),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Pointeur vers QFile invalide !!!"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
qDebug("CSystemConfig: Invalid QFile pointer in config loading...");
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
@@ -71,17 +70,18 @@ int CSystemConfig::LoadConfig()
|
||||
*InputStream >> mCloudLoggingParams;
|
||||
|
||||
//Load general program settings
|
||||
*InputStream >> mSaveLocalLogFile;
|
||||
*InputStream >> mGeneralSystemParams;
|
||||
|
||||
//Load CAN Watchdog parameters
|
||||
*InputStream >> mCANWatchdogParams;
|
||||
|
||||
|
||||
|
||||
ConfigFile->close();
|
||||
delete ConfigFile;
|
||||
delete InputStream;
|
||||
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Configuration système chargée avec succès!"),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Configuration système chargée avec succès!"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
@@ -94,13 +94,13 @@ int CSystemConfig::SaveConfig()
|
||||
{
|
||||
if(ConfigFile->open(QIODevice::WriteOnly | QIODevice::Unbuffered) == false)
|
||||
{
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Impossible d'ouvrir le fichier /Config/Station.cfg"),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Impossible d'ouvrir le fichier /Config/Station.cfg"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Pointeur vers QFile invalide !!!"),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Échec de sauvegarde de la config système. Pointeur vers QFile invalide !!!"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ int CSystemConfig::SaveConfig()
|
||||
*OutputStream << mCloudLoggingParams;
|
||||
|
||||
//Save the general system parameters
|
||||
*OutputStream << mSaveLocalLogFile;
|
||||
*OutputStream << mGeneralSystemParams;
|
||||
|
||||
//Save the CAN Watchdog params
|
||||
*OutputStream << mCANWatchdogParams;
|
||||
@@ -136,7 +136,7 @@ int CSystemConfig::SaveConfig()
|
||||
delete ConfigFile;
|
||||
delete OutputStream;
|
||||
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Configuration système sauvegardée avec succès."),true,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Configuration système sauvegardée avec succès."),true,3,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_SUCCESS_STATUS);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
@@ -177,6 +177,12 @@ CCANWatchdogConfig *CSystemConfig::GetCANWatchdogConfig()
|
||||
return &mCANWatchdogParams;
|
||||
}
|
||||
|
||||
CGeneralSystemParams *CSystemConfig::GetGeneralSystemSettings()
|
||||
{
|
||||
return &mGeneralSystemParams;
|
||||
}
|
||||
|
||||
|
||||
int CSystemConfig::SetCANWatchdogConfig(CCANWatchdogConfig *Config)
|
||||
{
|
||||
if(Config == 0)
|
||||
@@ -193,3 +199,12 @@ int CSystemConfig::SetCloudParams(CCloudParams *CloudParams)
|
||||
mCloudLoggingParams = *CloudParams;
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
int CSystemConfig::SetGeneralSystemParams(CGeneralSystemParams *GeneralParams)
|
||||
{
|
||||
if(GeneralParams == 0)
|
||||
return RET_GENERAL_ERROR;
|
||||
|
||||
mGeneralSystemParams = *GeneralParams;
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "CANDeviceConfig.h"
|
||||
#include "CloudParams.h"
|
||||
#include "CANWatchdogConfig.h"
|
||||
#include "GeneralSystemParams.h"
|
||||
|
||||
#define OTARCIK_CURRENT_CONFIG_FILE_VERSION 0x01
|
||||
#define OTARCIK_CONFIG_FILE_MAGIC_NBR 0xDEADBEEF
|
||||
@@ -28,6 +29,8 @@ public:
|
||||
|
||||
CCloudParams *GetCloudParams();
|
||||
int SetCloudParams(CCloudParams *CloudParams);
|
||||
CGeneralSystemParams *GetGeneralSystemSettings();
|
||||
int SetGeneralSystemParams(CGeneralSystemParams *GeneralParams);
|
||||
|
||||
|
||||
|
||||
@@ -39,13 +42,15 @@ public:
|
||||
CCloudParams mCloudLoggingParams;
|
||||
|
||||
//Misc general system settings
|
||||
bool mSaveLocalLogFile;
|
||||
CGeneralSystemParams mGeneralSystemParams;
|
||||
|
||||
//CAN Module watchdog settings
|
||||
CCANWatchdogConfig mCANWatchdogParams;
|
||||
CCANWatchdogConfig *GetCANWatchdogConfig();
|
||||
int SetCANWatchdogConfig(CCANWatchdogConfig *Config);
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
|
||||
#define GENERAL_MESSAGES_MAX_LOG_LINES 5000 //The number of lines of general status log we keep in the general status window (avoids fucking up because you know.... RAM)
|
||||
#define MQTT_CLIENT_RECONNECT_TIMEOUT 5000 //Time in ms between reconnect attemps to MQTT broker when connection is lost
|
||||
|
||||
//#define USE_TOPIC_PREFIX
|
||||
|
||||
enum eOtarcikGeneralReturns
|
||||
{
|
||||
RET_OK = 0,
|
||||
|
||||
Reference in New Issue
Block a user