Fuck-up de config...

This commit is contained in:
2023-07-31 12:07:34 -04:00
parent 41b19a7b58
commit 2cdb87405c
22 changed files with 547 additions and 594 deletions
+33 -26
View File
@@ -7,8 +7,8 @@
CCANAnalyzer::CCANAnalyzer(QObject *parent) : QObject(parent)
{
mCANDriverIF = new CPCANInterface;
mIsCANInitialized = false;
// mCANDriverIF = new CPCANInterface;
// mIsCANInitialized = false;
mDevicePtr = 0;
mDeviceMessagesList = 0;
mCANPollPeriod = 0;
@@ -17,16 +17,18 @@ CCANAnalyzer::CCANAnalyzer(QObject *parent) : QObject(parent)
mCANReadTimer->setInterval(1000);
mCANReadTimer->setSingleShot(true);
connect(mCANReadTimer,SIGNAL(timeout()),this,SLOT(CANTimerExpired()));
mCANDriverIF = 0;
}
CCANAnalyzer::~CCANAnalyzer()
{
mCANDriverIF->DeInit();
delete mCANDriverIF;
// mCANDriverIF->DeInit();
// delete mCANDriverIF;
delete mCANReadTimer;
}
int CCANAnalyzer::Init(quint8 CANDeviceChannel, TPCANBaudrate CANDeviceBaudrate, QList<CCANMessage *> *MsgList, unsigned int PollPeriod)
int CCANAnalyzer::Init(CPCANInterface *CANDriverIF, quint8 CANDeviceChannel, QList<CCANMessage *> *MsgList, unsigned int PollPeriod)
{
if(MsgList == 0)
{
@@ -38,33 +40,35 @@ int CCANAnalyzer::Init(quint8 CANDeviceChannel, TPCANBaudrate CANDeviceBaudrate,
qDebug("CANAnalyzer:: Trying to init with poll period lower tan 200ms");
}
mCANDeviceChannel = CANDeviceChannel;
mCANPollPeriod = PollPeriod;
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Démarrage d'un module CAN...");
mCANDriverIF = CANDriverIF;
// CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Démarrage d'un module CAN...");
mDeviceMessagesList = MsgList;
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,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
mIsCANInitialized = false;
return RET_GENERAL_ERROR;
}
// 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,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,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
mIsCANInitialized = false;
return RET_GENERAL_ERROR;
}
else
{
mCANReadTimer->start(mCANPollPeriod);
mIsCANInitialized = true;
}
// if(mCANDriverIF->Init(mCANDeviceHandle,CANDeviceBaudrate) != RET_OK)
// {
// CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Impossible d'initialiser le matériel CAN",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
// mIsCANInitialized = false;
// return RET_GENERAL_ERROR;
// }
// else
// {
// mCANReadTimer->start(mCANPollPeriod);
// mIsCANInitialized = true;
// }
mCANReadTimer->start(mCANPollPeriod);
// mIsCANInitialized = true;
return RET_OK;
}
@@ -89,6 +93,9 @@ int CCANAnalyzer::ReadCAN()
void CCANAnalyzer::CANTimerExpired()
{
if(mCANDriverIF == 0)
return;
QList<CCANMessage *> NewMessagesList = mCANDriverIF->ReadCANFullBuffer(mCANDeviceHandle);
int BufferSize = NewMessagesList.size();
+1 -1
View File
@@ -23,7 +23,7 @@ public:
QTimer *mCANReadTimer;
unsigned int mCANPollPeriod;
int Init(quint8 CANDeviceChannel, TPCANBaudrate CANDeviceBaudrate, QList<CCANMessage *> *MsgList, unsigned int PollPeriod);
int Init(CPCANInterface *CANDriverIF,quint8 CANDeviceChannel, QList<CCANMessage *> *MsgList, unsigned int PollPeriod);
int ReadCAN();
QList<CCANMessage *> *mDeviceMessagesList;
+28 -1
View File
@@ -23,11 +23,15 @@ CCANDevice::CCANDevice(CCANDeviceConfig &SysConfig, CMQTTClientWrapper *MQTTClie
mDeviceConfigInfo = SysConfig;
mCANMQTTClient = MQTTClient;
mDeviceTopicPrefix = DeviceTopicPrefix;
mCANDriverIF = 0;
}
CCANDevice::~CCANDevice()
{
mCANDriverIF->DeInit();
delete mCANDriverIF;
while (!mMessageList.isEmpty())
{
delete mMessageList.takeFirst();
@@ -42,8 +46,29 @@ int CCANDevice::Init()
return RET_GENERAL_ERROR;
}
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Initialisation du dispositif [%1]").arg(mDeviceConfigInfo.mDeviceName));
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Démarrage d'un module CAN...");
mCANDriverIF = new CPCANInterface;
if(mCANDriverIF->GetDeviceHandle(mDeviceConfigInfo.mCANDeviceID,mDeviceConfigInfo.mCANDeviceBaudrate) != RET_OK)
{
QString Log = QString("Impossible de trouver le module CAN sur le channel %1").arg(mDeviceConfigInfo.mCANDeviceID);
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(Log,true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
mIsCANInitialized = false;
return RET_GENERAL_ERROR;
}
if(mCANDriverIF->Init(mDeviceConfigInfo.mCANDeviceID,mDeviceConfigInfo.mCANDeviceBaudrate) != RET_OK)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage("Impossible d'initialiser le matériel CAN",true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_ERROR_STATUS);
mIsCANInitialized = false;
return RET_GENERAL_ERROR;
}
mIsCANInitialized = true;
if(mCANDatabase.Init(mDeviceConfigInfo.mCANDeviceDatabaseFilename) == RET_OK)
{
if(mCANDatabase.BuildMessageList(&mMessageList,mDeviceConfigInfo.mDeviceName) == RET_OK)
@@ -56,7 +81,9 @@ int CCANDevice::Init()
}
}
if(mCANAnalyzer.Init(mDeviceConfigInfo.mCANDeviceID,mDeviceConfigInfo.mCANDeviceBaudrate,&mMessageList,mDeviceConfigInfo.mDevicePollPeriod) != RET_OK)
// if(mCANAnalyzer.Init(mDeviceConfigInfo.mCANDeviceID,mDeviceConfigInfo.mCANDeviceBaudrate,&mMessageList,mDeviceConfigInfo.mDevicePollPeriod) != RET_OK)
if(mCANAnalyzer.Init(mCANDriverIF,mDeviceConfigInfo.mCANDeviceID,&mMessageList,mDeviceConfigInfo.mDevicePollPeriod) != RET_OK)
{
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);
+3
View File
@@ -49,6 +49,9 @@ public:
private:
bool mConfigSet;
CPCANInterface *mCANDriverIF;
bool mIsCANInitialized;
signals:
@@ -31,8 +31,7 @@ QDataStream &operator>>(QDataStream &in, CCANDeviceConfig &dest)
>> dest.mDevicePollPeriod
>> dest.mDeviceWatchdogActivated
>> dest.mWatchdogCANMsgID
>> dest.mWatchdogPeriod
;
>> dest.mWatchdogPeriod;
return in;
}
@@ -46,8 +45,7 @@ QDataStream &operator<<(QDataStream &out, const CCANDeviceConfig &source)
<< source.mDevicePollPeriod
<< source.mDeviceWatchdogActivated
<< source.mWatchdogCANMsgID
<< source.mWatchdogPeriod
;
<< source.mWatchdogPeriod;
return out;
}
@@ -2,7 +2,8 @@
CCANWatchdogConfig::CCANWatchdogConfig()
{
mCANDeviceBaudrate = 0;
mCANDeviceID = 0;
}
CCANWatchdogConfig& CCANWatchdogConfig::operator=(const CCANWatchdogConfig &source)
@@ -3,7 +3,13 @@
CCloudParams::CCloudParams()
{
mMQTTBrokerHostName.clear();
mMQTTBrokerPassword.clear();
mMQTTBrokerPort = 0;
mMQTTBrokerUserName.clear();
mMQTTTopicPrefix.clear();
mMQTTTransmitTimeout = 0;
mMQTTClientID.clear();
}
QDataStream &operator>>(QDataStream &in, CCloudParams &dest)
@@ -361,7 +361,7 @@
<number>1</number>
</property>
<property name="maximum">
<number>999999</number>
<number>2048</number>
</property>
<property name="value">
<number>1</number>
+19
View File
@@ -126,3 +126,22 @@ QList<CCANMessage *> CPCANInterface::ReadCANFullBuffer(unsigned short Channel)
return MessagesList;
}
int CPCANInterface::SendCANMessage(unsigned short Channel,CCANMessage Msg)
{
TPCANMsg CANMsg;
TPCANStatus stsResult;
CANMsg.ID = Msg.mCANMsgID;
CANMsg.LEN = Msg.mCANMsgLength;
CANMsg.MSGTYPE = PCAN_MESSAGE_STANDARD;
for(int byte = 0; byte < 8; byte++)
{
CANMsg.DATA[byte] = Msg.mCANMsgData[byte];
}
stsResult = CAN_Write(Channel,&CANMsg);
return stsResult;
}
+1
View File
@@ -22,6 +22,7 @@ public:
bool CANInterfaceOpened;
QList<CCANMessage*> ReadCANFullBuffer(unsigned short Channel);
int SendCANMessage(unsigned short Channel,CCANMessage Msg);
private:
TPCANBaudrate mInterfaceBaudrate;
+8
View File
@@ -50,6 +50,9 @@ int CSystemConfig::LoadConfig()
*InputStream >> MagicNbr;
if(MagicNbr != OTARCIK_CONFIG_FILE_MAGIC_NBR)
{
CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Fichier /Config/Station.cfg corrompu. Création d'une config vide"),true,1,CGeneralMessagesLogDispatcher::GEN_MSG_TXT_WARNING_STATUS);
ConfigFile->close();
CreateEmptyConfig();
return RET_GENERAL_ERROR;
}
@@ -141,6 +144,11 @@ int CSystemConfig::SaveConfig()
return RET_OK;
}
int CSystemConfig::CreateEmptyConfig()
{
}
QList<CCANDeviceConfig*> * CSystemConfig::GetCANDevicesConfigList()
{
+1
View File
@@ -22,6 +22,7 @@ public:
int LoadConfig(/*QList<CCANDevice*> *DevicesList*/);
int SaveConfig(/*QList<CCANDeviceConfig*> *DevicesConfigList*/);
int CreateEmptyConfig();
int SetCANDevicesConfigList(QList<CCANDeviceConfig*> *DevicesConfigList);