Ajout Watchdog hardware au programme + autres gossages
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user