/******************************************************************************* * * * 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) { mMainWindow.mProgramSettingsPage->mProgramPtr = this; } COtarcikCan::~COtarcikCan() { while (!mCANDevicesList.isEmpty()) { delete mCANDevicesList.takeFirst(); } mCANDevicesList.clear(); } 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); // SaveSystemConfigRequest(); // mMainWindow.mProgramSettingsPage->SetDevicesList(&mCANDevicesList); // 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); } //The device configuration has been modified directly in the master list //Just save it and refresh display. int COtarcikCan::SaveSystemConfigRequest() { if(mSystemConfig.SaveConfig(&mCANDevicesList) == RET_OK) { // mMainWindow.mProgramSettingsPage->UpdatePage(); //Config saving is successful. To apply changes we need to reload the devices. //The easiest way is to delete everything and reload. while(mCANDevicesList.size() != 0) { delete mCANDevicesList.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); } } }