2025-05-03 20:26:14 -04:00

85 lines
2.5 KiB
C++

#ifndef OTARCIKCAN_H
#define OTARCIKCAN_H
#include <QObject>
#include "MainWindow.h"
#include "PCANInterface.h"
#include "GeneralMessagesLogDispatcher.h"
#include "CANDevice.h"
#include <QList>
#include "SystemConfig.h"
#include "MQTTClientWrapper.h"
#ifdef ENABLE_CHIPSET_DRIVER
#include "ComputerBoardInterface.h"
#endif
#include "SysLogger.h"
#include "InternetMonitor.h"
#include "LANDevicesPresenceMonitor.h"
class COtarcikCan : public QObject
{
Q_OBJECT
public:
explicit COtarcikCan(QObject *parent = 0);
~COtarcikCan();
CMainWindow mMainWindow;
CSystemConfig mSystemConfig;
/// CMQTTClientWrapper mCANBusMQTTClient;
QList<CMQTTClientWrapper*> mCANBusMQTTClientList;
QTimer *mGPTimer;
QTimer *mMQTTDataTransmitTimer;
#ifdef ENABLE_CHIPSET_DRIVER
CComputerBoardInterface mCPUInterface;
#endif
QTimer *mWatchdogTimer;
CSysLogger mSysLogger;
CInternetMonitor mInternetMonitor;
CLANDevicesPresenceMonitor mLANDevicesPresenceMonitor;
int Start();
int UpdateCANViewerDataRequest(QList<CCANMessage *> *MsgList);
int SaveCANDevicesConfigRequest(QList<CCANDeviceConfig*> *DevicesConfigList);
int SaveCloudLoggingConfigRequest(QList<CCloudParams*> *CloudParams);
int SaveGeneralParametersSettingsRequest(CGeneralSystemParams *GeneralParams);
int SaveCPUWatchdogSettingsRequest(CCPUWatchdogConfig *CPUWatchdogParams);
int SaveDeviceDetectionSettingsRequest(CDeviceDetectionConfig *DeviceDetectconfig);
int SetCANConnectionStatusRequest(bool Connected);
int SetMQTTConnectionSatusRequest(bool Connected);
int UpdateCANModuleStatusRequest(QString ModuleName, QString ModuleStatus, QString Buffer);
int UpdateMQTTBufferingStatusRequest(QString BufferingMode, QString FIFOSize,QString RemainingTime);
int SaveCANWatchdogSettingsRequest(CCANWatchdogConfig *CANWatchdogConfig);
int UpdateLANDevicesPresenceStatusRequest(QList<bool> LanDevicesStatus);
#ifdef ENABLE_DEVELOPMENT_DEBUG_TOOLS
int ForceMQTTDisconnect(bool Disconnect);
#endif
void QuitApplicationRequest();
private:
QList<CCANDevice*> mCANDevicesList;
QList<CCloudParams*> *mCloudLoggingParamsList;
CGeneralSystemParams mGeneralSystemParams;
CCPUWatchdogConfig mCPUWatchdogParams;
CDeviceDetectionConfig mDeviceDetectionConfigParams;
int PopulateCANDevicesList(QList<CCANDeviceConfig*> *DevicesConfigsList);
signals:
public slots:
void GPTimerExpired();
void WatchdogUpdateTimerExpired();
void MQTTDataTransmitTimerExpired();
};
#endif // OTARCIKCAN_H