Ajout Watchdog hardware au programme + autres gossages

This commit is contained in:
2023-10-28 13:04:55 -04:00
parent 868d07b879
commit efc3b85456
48 changed files with 1876 additions and 126 deletions
+34 -6
View File
@@ -18,15 +18,22 @@
#include "PCANBasic.h"
#include "QtEndian"
COtarcikCan::COtarcikCan(QObject *parent) : QObject(parent)
{
mGPTimer = new QTimer;
connect(mGPTimer,SIGNAL(timeout()),this,SLOT(GPTimerExpired()));
mCANBusMQTTClient.mProgramPtr = this;
mWatchdogTimer = new QTimer;
connect(mWatchdogTimer,&QTimer::timeout,this,&COtarcikCan::WatchdogUpdateTimerExpired);
mWatchdogTimer->setSingleShot(false);
mWatchdogTimer->setInterval(1000);
}
COtarcikCan::~COtarcikCan()
{
qDebug("Destruction");
while (!mCANDevicesList.isEmpty())
{
@@ -38,15 +45,14 @@ COtarcikCan::~COtarcikCan()
delete mGPTimer;
delete mWatchdogTimer;
}
int COtarcikCan::Start()
{
mMainWindow.mCANbusSettingsPage->mProgramPtr = this;
mMainWindow.mDataLoggingSettingsPage->mProgramHandle = this;
mMainWindow.mGeneralStatusPage->mProgramPtr = this;
// mMainWindow.mCANWatchdogSettingsPage->mProgramHandle = this;
mMainWindow.show();
@@ -58,6 +64,8 @@ int COtarcikCan::Start()
// CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Démarrage du logiciel OtarcikCAN"));
mCPUInterface.Init();
if(mSystemConfig.LoadConfig() == RET_OK)
{
QList<CCANDeviceConfig*> *CANDeviceConfigList;
@@ -66,9 +74,6 @@ int COtarcikCan::Start()
{
PopulateCANDevicesList(CANDeviceConfigList);
}
mMainWindow.mCANbusSettingsPage->SetDevicesList(&mCANDevicesList);
mMainWindow.mCANViewerPage->InitCANTable(&mCANDevicesList);
@@ -86,8 +91,15 @@ int COtarcikCan::Start()
// mGPTimer->setSingleShot(false);
// mGPTimer->start(5000);
mCPUInterface.StartCPUWatchdog(25);
mWatchdogTimer->start();
}
else
{
mCPUInterface.StartCPUWatchdog();
mWatchdogTimer->start();
}
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Démarrage du logiciel OtarcikCAN"));
@@ -96,6 +108,8 @@ int COtarcikCan::Start()
mCANBusMQTTClient.StartMQTTClient();
mMainWindow.mCANbusSettingsPage->SetDevicesList(&mCANDevicesList);
return 0;
}
@@ -234,3 +248,17 @@ int COtarcikCan::SaveCANWatchdogSettingsRequest(CCANWatchdogConfig *CANWatchdogC
return mSystemConfig.SaveConfig();
}
void COtarcikCan::WatchdogUpdateTimerExpired() //Time to kick the CPU watchdog
{
mCPUInterface.KickCPUWatchdog();
}
void COtarcikCan::QuitApplicationRequest()
{
qDebug("Quit app request");
mWatchdogTimer->stop();
mCPUInterface.StopCPUWatchdog();
mCPUInterface.DeInit();
QCoreApplication::quit();
}