Watchdog avec date/time et reporting fonctionnel.
This commit is contained in:
@@ -4,21 +4,29 @@
|
||||
#include <QDate>
|
||||
#include <QTime>
|
||||
#include <QFloat16>
|
||||
#include "MQTTClientWrapper.h"
|
||||
#include "InternetMonitor.h"
|
||||
#include "LANDevicesPresenceMonitor.h"
|
||||
#include "DeviceDetectionConfig.h"
|
||||
|
||||
CCANWatchdog::CCANWatchdog()
|
||||
{
|
||||
mCANDriverIF = new CPCANInterface;
|
||||
//mCANDriverIF = new CPCANInterface;
|
||||
mIsCANInitialized = false;
|
||||
|
||||
mWatchdogTimer = new QTimer;
|
||||
mWatchdogTimer->setSingleShot(false);
|
||||
mCANDriverIF = 0;
|
||||
mWDTInitialized = false;
|
||||
// mMQTTPresenceMonitor = 0;
|
||||
// mLANDevicesMonitor = 0;
|
||||
// mInternetMonitor = 0;
|
||||
mDevicesMonitorConfig = 0;
|
||||
|
||||
connect(mWatchdogTimer,&QTimer::timeout,this,&CCANWatchdog::WatchdogTimeoutTimerExpired);
|
||||
}
|
||||
|
||||
int CCANWatchdog::Init(CPCANInterface *CANDriverIF, TPCANHandle CANDeviceHandle, unsigned int WDTPeriod, unsigned int CANMsgID)
|
||||
int CCANWatchdog::Init(CPCANInterface *CANDriverIF, TPCANHandle CANDeviceHandle, unsigned int WDTPeriod, CDeviceDetectionConfig *DevicesMonitorConfig)
|
||||
{
|
||||
if(WDTPeriod < 200)
|
||||
{
|
||||
@@ -27,6 +35,7 @@ int CCANWatchdog::Init(CPCANInterface *CANDriverIF, TPCANHandle CANDeviceHandle,
|
||||
return RET_GENERAL_ERROR;
|
||||
}
|
||||
|
||||
mDevicesMonitorConfig = DevicesMonitorConfig;
|
||||
mCANDeviceHandle = CANDeviceHandle;
|
||||
mWDTPeriod = WDTPeriod;
|
||||
mCANDriverIF = CANDriverIF;
|
||||
@@ -35,7 +44,7 @@ int CCANWatchdog::Init(CPCANInterface *CANDriverIF, TPCANHandle CANDeviceHandle,
|
||||
mWatchdogTimer->setInterval(mWDTPeriod);
|
||||
mWatchdogTimer->setSingleShot(false);
|
||||
|
||||
mWDTCANMsg.mCANMsgID = CANMsgID;
|
||||
mWDTCANMsg.mCANMsgID = DevicesMonitorConfig->mReportingCANMsgID;
|
||||
mWDTCANMsg.mCANMsgLength = 8;
|
||||
mWDTCANMsg.mCANMsgData.clear();
|
||||
mWDTCANMsg.mCANMsgData.append(8,(char)0x00);
|
||||
@@ -65,7 +74,30 @@ void CCANWatchdog::WatchdogTimeoutTimerExpired()
|
||||
// BigData |= 0x100000000;
|
||||
|
||||
BigData = GetCANDateTimeBuffer();
|
||||
if(mDevicesMonitorConfig != 0)
|
||||
{
|
||||
if(mDevicesMonitorConfig->mInternetMonitor != 0)
|
||||
{
|
||||
BigData |= mDevicesMonitorConfig->mInternetMonitor->GetCANInternetStatusMask();
|
||||
}
|
||||
}
|
||||
if(mDevicesMonitorConfig != 0)
|
||||
{
|
||||
if(mDevicesMonitorConfig->mMQTTPresenceMonitor != 0)
|
||||
{
|
||||
BigData |= mDevicesMonitorConfig->mMQTTPresenceMonitor->GetMQTTServerPresenceCANMask();
|
||||
}
|
||||
}
|
||||
if(mDevicesMonitorConfig != 0)
|
||||
{
|
||||
if(mDevicesMonitorConfig->mLANDevicesMonitor != 0)
|
||||
{
|
||||
|
||||
BigData |= mDevicesMonitorConfig->mLANDevicesMonitor->GetDevicesPresenceCANMask();
|
||||
}
|
||||
}
|
||||
|
||||
mWDTCANMsg.mCANMsgID = mDevicesMonitorConfig->mReportingCANMsgID;
|
||||
mWDTCANMsg.SetRawData(BigData,CCANSignal::CAN_SIGNAL_ENCODING_INTEL);
|
||||
mCANDriverIF->SendCANMessage(mCANDeviceHandle,mWDTCANMsg);
|
||||
|
||||
@@ -93,6 +125,11 @@ quint64 CCANWatchdog::GetCANDateTimeBuffer()
|
||||
return OutputBuffer;
|
||||
}
|
||||
|
||||
int CCANWatchdog::SetDevicesDetectionConfig(CDeviceDetectionConfig *DeviceMonitoringConfig)
|
||||
{
|
||||
mDevicesMonitorConfig = DeviceMonitoringConfig;
|
||||
}
|
||||
|
||||
int CCANWatchdog::StartWDT()
|
||||
{
|
||||
if(mWDTInitialized == false)
|
||||
|
||||
Reference in New Issue
Block a user