/******************************************************************************* * * * Gros Gin électronique * * 2023 * * * * Project: Otarcik CAN * * * * * * * *******************************************************************************/ /* Description: This is our main program */ #include "OtarcikCan.h" #include "PCANBasic.h" COtarcikCan::COtarcikCan(QObject *parent) : QObject(parent) { } COtarcikCan::~COtarcikCan() { while (!mCANDevicesList.isEmpty()) { delete mCANDevicesList.takeFirst(); } mCANDevicesList.clear(); mMainWindow.mProgramSettingsPage->mProgramPtr = this; } int COtarcikCan::Start() { mMainWindow.show(); CGeneralMessagesLogDispatcher::instance()->BindGuiPageHandle(mMainWindow.mGeneralStatusPage); CGeneralMessagesLogDispatcher::instance()->Init(); CGeneralMessagesLogDispatcher::instance()->AddLogMessage(QString("Démarrage du logiciel OtarcikCAN")); if(mSystemConfig.LoadConfig(&mCANDevicesList) == RET_OK) { for(int i = 0; i < mCANDevicesList.size(); i++) { mCANDevicesList[i]->mProgramPtr = this; mCANDevicesList.at(i)->Init(); } mMainWindow.mProgramSettingsPage->SetDevicesList(&mCANDevicesList); // CCANDevice *NewCANDevice = new CCANDevice(); // mCANDevicesList.append(NewCANDevice); // NewCANDevice->mProgramPtr = this; // NewCANDevice->Init("IVT-S_all-variations_12082020.dbc",PCAN_USBBUS1,PCAN_BAUD_500K,"Puck CAN USB branchée sur le module Parker qui contrôle la patente", "Module Parker",1000); // NewCANDevice = new CCANDevice(); // mCANDevicesList.append(NewCANDevice); // NewCANDevice->mProgramPtr = this; // NewCANDevice->Init("mazda_3_2019.dbc",PCAN_USBBUS3,PCAN_BAUD_800K,"Puck CAN USB branchée sur une autre patente", "Module Cossin",200); } return 0; } int COtarcikCan::UpdateCANViewerDataRequest(QList *MsgList) { return mMainWindow.mCANViewerPage->UpdateCANTable(MsgList); } int COtarcikCan::InitCANViewer(QList *MsgList) { return mMainWindow.mCANViewerPage->InitCANTable(MsgList); } int COtarcikCan::SaveSystemConfigRequest(QList *DevicesList) { if(DevicesList == 0) { qDebug("COtarcikCan::Trying to save a config with an invalid devices list"); return RET_GENERAL_ERROR; } if(mSystemConfig.SaveConfig(DevicesList) == RET_OK) { while(mCANDevicesList.size() != 0) { delete mCANDevicesList.takeFirst(); } while(DevicesList->size() != 0) { delete DevicesList->takeFirst(); } if(mSystemConfig.LoadConfig(&mCANDevicesList) == RET_OK) { for(int i = 0; i < mCANDevicesList.size(); i++) { mCANDevicesList[i]->mProgramPtr = this; mCANDevicesList.at(i)->Init(); } mMainWindow.mProgramSettingsPage->SetDevicesList(&mCANDevicesList); } } }