Développement CAN Watchdog
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
|
||||
#include "CANWatchdog.h"
|
||||
#include "GeneralMessagesLogDispatcher.h"
|
||||
#include <QDate>
|
||||
#include <QTime>
|
||||
#include <QFloat16>
|
||||
|
||||
CCANWatchdog::CCANWatchdog()
|
||||
{
|
||||
@@ -45,14 +48,49 @@ int CCANWatchdog::Init(CPCANInterface *CANDriverIF, TPCANHandle CANDeviceHandle,
|
||||
|
||||
void CCANWatchdog::WatchdogTimeoutTimerExpired()
|
||||
{
|
||||
char data = mWDTCANMsg.mCANMsgData[7];
|
||||
data ^= (char)0x01;
|
||||
mWDTCANMsg.mCANMsgData[7] = data;
|
||||
quint64 BigData = 0;
|
||||
|
||||
// int seconds = (QTime::currentTime().minute() * 60) + QTime::currentTime().second();
|
||||
// float Hours32bits = (float)((float)seconds / 3600);
|
||||
// Hours32bits += QTime::currentTime().hour();
|
||||
|
||||
// quint16 Hours = static_cast<quint16>(Hours32bits*1000);
|
||||
// quint16 buffer;
|
||||
// memcpy(&buffer,&Hours,2);
|
||||
// BigData |= buffer;
|
||||
// BigData <<= 16;
|
||||
// quint16 DaysSinceALongTimeAgo;
|
||||
// DaysSinceALongTimeAgo = -QDate::currentDate().daysTo(QDate(1899,12,30));
|
||||
// BigData |= DaysSinceALongTimeAgo;
|
||||
// BigData |= 0x100000000;
|
||||
|
||||
BigData = GetCANDateTimeBuffer();
|
||||
|
||||
mWDTCANMsg.SetRawData(BigData,CCANSignal::CAN_SIGNAL_ENCODING_INTEL);
|
||||
mCANDriverIF->SendCANMessage(mCANDeviceHandle,mWDTCANMsg);
|
||||
qDebug("Sending 0x%X to CAN",data);
|
||||
|
||||
// qDebug("Sending 0x%X to CAN",data);
|
||||
//QString LogMsg = QString("Écriture du watchdog. CAN ID %1 Payload: 0x%2 0x%3 0x%4 0x%5 0x%6 0x%7 0x%8 0x%9").arg(mWDTCANMsg.mCANMsgID,0,16).arg(mWDTCANMsg.mCANMsgData.at(7),0,16).arg(mWDTCANMsg.mCANMsgData.at(6),0,16).arg(mWDTCANMsg.mCANMsgData.at(5),0,16).arg(mWDTCANMsg.mCANMsgData.at(4),0,16).arg(mWDTCANMsg.mCANMsgData.at(3),0,16).arg(mWDTCANMsg.mCANMsgData.at(2),0,16).arg(mWDTCANMsg.mCANMsgData.at(1),0,16).arg(mWDTCANMsg.mCANMsgData[0],0,16);
|
||||
QString LogMsg = QString("Écriture du watchdog. CAN ID 0x%1").arg(mWDTCANMsg.mCANMsgID,0,16);
|
||||
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,"CCANWatchdog",true,3);
|
||||
// QString LogMsg = QString("Écriture du watchdog. CAN ID 0x%1").arg(mWDTCANMsg.mCANMsgID,0,16);
|
||||
// CGeneralMessagesLogDispatcher::instance()->AddLogMessage(LogMsg,"CCANWatchdog",true,3);
|
||||
}
|
||||
|
||||
quint64 CCANWatchdog::GetCANDateTimeBuffer()
|
||||
{
|
||||
quint64 OutputBuffer = 0;
|
||||
|
||||
int seconds = (QTime::currentTime().minute() * 60) + QTime::currentTime().second();
|
||||
float Hours32bits = (float)((float)seconds / 3600);
|
||||
Hours32bits += QTime::currentTime().hour();
|
||||
quint16 Hours = static_cast<quint16>(Hours32bits*1000);
|
||||
OutputBuffer |= Hours;
|
||||
OutputBuffer <<= 16;
|
||||
|
||||
quint16 DaysSinceALongTimeAgo;
|
||||
DaysSinceALongTimeAgo = -QDate::currentDate().daysTo(QDate(1899,12,30));
|
||||
OutputBuffer |= DaysSinceALongTimeAgo;
|
||||
|
||||
return OutputBuffer;
|
||||
}
|
||||
|
||||
int CCANWatchdog::StartWDT()
|
||||
|
||||
Reference in New Issue
Block a user