CAN Config fonctionnel.

This commit is contained in:
2023-01-27 13:33:03 -05:00
parent d183780f1b
commit 251825f7d5
26 changed files with 2641 additions and 188 deletions
@@ -1,6 +1,7 @@
#include "GeneralStatusPage.h"
#include "ui_GeneralStatusPage.h"
#include "QStringList"
#include <QScrollBar>
CGeneralStatusPage::CGeneralStatusPage(QWidget *parent) :
QWidget(parent),
@@ -8,6 +9,7 @@ CGeneralStatusPage::CGeneralStatusPage(QWidget *parent) :
{
ui->setupUi(this);
connect(ui->mClearGenMsgTxtBtn,&QPushButton::clicked,this,&CGeneralStatusPage::ClearGenMsgAreaBtnPressed);
}
CGeneralStatusPage::~CGeneralStatusPage()
@@ -43,6 +45,10 @@ int CGeneralStatusPage::AddGeneralMsgBoxLineEntry(QString LineTxt)
AddColoredLineToGenMsgBox(LineTxt);
}
ui->mGenMsgTextEdit->verticalScrollBar()->setValue(ui->mGenMsgTextEdit->verticalScrollBar()->maximum());
return RET_OK;
}
@@ -82,3 +88,9 @@ int CGeneralStatusPage::AddColoredLineToGenMsgBox(QString Line)
return RET_OK;
}
void CGeneralStatusPage::ClearGenMsgAreaBtnPressed()
{
mGenMsgListBoxTextLines.clear();
ui->mGenMsgTextEdit->clear();
}
@@ -38,6 +38,9 @@ private:
int AddColoredLineToGenMsgBox(QString Line);
public slots:
void ClearGenMsgAreaBtnPressed();
};
#endif // GENERALSTATUSPAGE_H
+17 -4
View File
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>1456</width>
<height>492</height>
<height>527</height>
</rect>
</property>
<property name="windowTitle">
@@ -16,9 +16,9 @@
<widget class="QTextEdit" name="mGenMsgTextEdit">
<property name="geometry">
<rect>
<x>460</x>
<y>30</y>
<width>651</width>
<x>30</x>
<y>20</y>
<width>1141</width>
<height>451</height>
</rect>
</property>
@@ -34,6 +34,19 @@
<bool>true</bool>
</property>
</widget>
<widget class="QPushButton" name="mClearGenMsgTxtBtn">
<property name="geometry">
<rect>
<x>30</x>
<y>480</y>
<width>80</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Nettoyer</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
+114 -17
View File
@@ -2,9 +2,10 @@
#include "ui_ProgramSettingsPage.h"
#include "CANDevice.h"
#include "OtarcikCan.h"
#include <QFileDialog>
#include <QFileInfo>
#include "SystemConfig.h"
#include "OtarcikCan.h"
CProgramSettingsPage::CProgramSettingsPage(QWidget *parent) :
@@ -15,6 +16,7 @@ CProgramSettingsPage::CProgramSettingsPage(QWidget *parent) :
mProgramPtr = 0;
mDevicesList = 0;
mCurModifiedDevConfig = 0;
mDeviceChangeModeEnabled = false;
ui->mDBSignalDetailsTable->setColumnCount(10);
@@ -72,6 +74,8 @@ CProgramSettingsPage::CProgramSettingsPage(QWidget *parent) :
connect(ui->mModifyDevParamsBtn,&QPushButton::clicked,this,&CProgramSettingsPage::ModifyDeviceBtnPressed);
connect(ui->mCancelModifyParamsBtn,&QPushButton::clicked,this,&CProgramSettingsPage::CancelModifyDevBtnPressed);
connect(ui->mDatabaseFileSelectBtn,&QPushButton::clicked,this,&CProgramSettingsPage::SelectDBFileBtnPressed);
connect(ui->mAddDeviceBtn,&QPushButton::clicked,this,&CProgramSettingsPage::AddDeviceBtnPressed);
connect(ui->mDeleteDeviceBtn,&QPushButton::clicked,this,&CProgramSettingsPage::DeleteDeviceBtnPressed);
// connect(ui->mDBSignalDetailsTable,&QTableWidget::itemSelectionChanged,this,&CProgramSettingsPage::SignalSelectionChanged);
@@ -79,6 +83,11 @@ CProgramSettingsPage::CProgramSettingsPage(QWidget *parent) :
CProgramSettingsPage::~CProgramSettingsPage()
{
while(!mDeviceConfigList.isEmpty())
{
delete mDeviceConfigList.takeFirst();
}
delete ui;
}
@@ -99,7 +108,7 @@ int CProgramSettingsPage::SetDevicesList(QList<CCANDevice *> *DevicesList)
ui->mDevicesList->clear();
for(int i = 0; i < mDevicesList->size(); i++)
{
QString name = mDevicesList->at(i)->mDeviceName;
QString name = mDevicesList->at(i)->mDeviceConfigInfo.mDeviceName;
if(name.isEmpty())
{
name = QString("Device %1").arg(i+1);
@@ -133,20 +142,21 @@ int CProgramSettingsPage::UpdatePage()
if(Device != 0)
{
CCANDeviceConfig *DevConfigInfo = &Device->mDeviceConfigInfo;
//Update device name in the list (it might have just changed)
ui->mDevicesList->item(ui->mDevicesList->currentRow())->setText(Device->mDeviceName);
ui->mDevicesList->item(ui->mDevicesList->currentRow())->setText(DevConfigInfo->mDeviceName);
//update device information
ui->mDeviceNameEditBx->setPlainText(Device->mDeviceName);
ui->mCANBaudrateComboBx->setCurrentIndex(ui->mCANBaudrateComboBx->findData(Device->mCANDeviceBaudrate));
ui->mCANIDComboBx->setCurrentIndex(ui->mCANIDComboBx->findData(Device->mCANDeviceID));
ui->mDeviceDescriptionTxtEdit->setPlainText(Device->mDeviceDescription);
ui->mDeviceNameEditBx->setPlainText(DevConfigInfo->mDeviceName);
ui->mCANBaudrateComboBx->setCurrentIndex(ui->mCANBaudrateComboBx->findData(DevConfigInfo->mCANDeviceBaudrate));
ui->mCANIDComboBx->setCurrentIndex(ui->mCANIDComboBx->findData(DevConfigInfo->mCANDeviceID));
ui->mDeviceDescriptionTxtEdit->setPlainText(DevConfigInfo->mDeviceDescription);
QFileInfo FileInfo(Device->mCANDeviceDatabaseFilename);
QFileInfo FileInfo(DevConfigInfo->mCANDeviceDatabaseFilename);
ui->mDatabaseFileNameLbl->setText(FileInfo.fileName());
ui->mDatabaseFileNameLbl->setToolTip(Device->mCANDeviceDatabaseFilename);
ui->mDatabaseFileNameLbl->setToolTip(DevConfigInfo->mCANDeviceDatabaseFilename);
// ui->mDatabaseFileNameLbl->setText(QString("%1").arg(Device->mCANDeviceDatabaseFilename));
ui->mDevicePollPeriodSpinBx->setValue(Device->mDevicePollPeriod);
ui->mDevicePollPeriodSpinBx->setValue(DevConfigInfo->mDevicePollPeriod);
//update device database information
ui->mDBMessagesListWidget->clear();
ui->mDBSignalDetailsTable->clearContents();
@@ -173,7 +183,7 @@ int CProgramSettingsPage::UpdatePage()
return RET_OK;
}
int CProgramSettingsPage::UpdateMessageInformation()
@@ -302,6 +312,8 @@ int CProgramSettingsPage::UpdateMessageInformation()
}
ui->mDBSignalDetailsTable->resizeColumnsToContents();
}
return RET_OK;
}
void CProgramSettingsPage::DeviceSelectionChanged()
@@ -318,17 +330,34 @@ void CProgramSettingsPage::MessageSelectionChanged()
{
UpdateMessageInformation();
}
void CProgramSettingsPage::ModifyDeviceBtnPressed()
{
if(mDeviceChangeModeEnabled == false)
{
//Populate the devices config list with present devices
PopulateDevicesConfigList();
//Find the selected device index
int index = ui->mDevicesList->currentRow();
if(index >=0 && index < mDeviceConfigList.size())
{
mCurModifiedDevConfig = mDeviceConfigList.at(index);
}
}
ModifyDeviceConfig();
}
int CProgramSettingsPage::ModifyDeviceConfig()
{
if(mDeviceChangeModeEnabled)
{
//Save Data
int index = ui->mDevicesList->currentRow();
if(index >= 0 && index < mDevicesList->size())
if(mCurModifiedDevConfig != 0)
{
CCANDevice *ModifiedDevice = mDevicesList->at(index);
CCANDeviceConfig *ModifiedDevice = mCurModifiedDevConfig; //mDeviceConfigList.at(index);
ModifiedDevice->mCANDeviceBaudrate = ui->mCANBaudrateComboBx->currentData().toInt();
ModifiedDevice->mCANDeviceID = ui->mCANIDComboBx->currentData().toInt();
@@ -337,7 +366,7 @@ void CProgramSettingsPage::ModifyDeviceBtnPressed()
ModifiedDevice->mDeviceName = ui->mDeviceNameEditBx->toPlainText();
ModifiedDevice->mDevicePollPeriod = ui->mDevicePollPeriodSpinBx->value();
mProgramPtr->SaveSystemConfigRequest();
mProgramPtr->SaveSystemConfigRequest(&mDeviceConfigList);
}
@@ -352,12 +381,14 @@ void CProgramSettingsPage::ModifyDeviceBtnPressed()
ui->mCancelModifyParamsBtn->hide();
ui->mDeviceNameEditBx->setEnabled(false);
mDeviceChangeModeEnabled = false;
ui->mAddDeviceBtn->setEnabled(true);
}
else
{
//Modify data
ui->mDeviceDescriptionTxtEdit->setEnabled(true);
ui->mDatabaseFileSelectBtn->show();
@@ -368,9 +399,12 @@ void CProgramSettingsPage::ModifyDeviceBtnPressed()
ui->mModifyDevParamsBtn->setText("Sauvegarder");
ui->mCancelModifyParamsBtn->show();
ui->mDeviceNameEditBx->setEnabled(true);
ui->mAddDeviceBtn->setEnabled(true);
mDeviceChangeModeEnabled = true;
}
return RET_OK;
}
void CProgramSettingsPage::CancelModifyDevBtnPressed()
@@ -384,6 +418,7 @@ void CProgramSettingsPage::CancelModifyDevBtnPressed()
ui->mModifyDevParamsBtn->setText("Modifier");
ui->mCancelModifyParamsBtn->hide();
ui->mDeviceNameEditBx->setEnabled(false);
ui->mAddDeviceBtn->setEnabled(true);
mDeviceChangeModeEnabled = false;
UpdatePage();
@@ -404,3 +439,65 @@ void CProgramSettingsPage::SelectDBFileBtnPressed()
}
}
void CProgramSettingsPage::AddDeviceBtnPressed()
{
//Populate the devices config list with present devices
PopulateDevicesConfigList();
//add an empty config and enable modification
CCANDeviceConfig *NewDevConfig = new CCANDeviceConfig;
mDeviceConfigList.append(NewDevConfig);
//update device information
ui->mDeviceNameEditBx->setPlainText(NewDevConfig->mDeviceName);
ui->mCANBaudrateComboBx->setCurrentIndex(ui->mCANBaudrateComboBx->findData(NewDevConfig->mCANDeviceBaudrate));
ui->mCANIDComboBx->setCurrentIndex(ui->mCANIDComboBx->findData(NewDevConfig->mCANDeviceID));
ui->mDeviceDescriptionTxtEdit->setPlainText(NewDevConfig->mDeviceDescription);
ui->mDatabaseFileNameLbl->setText(NewDevConfig->mCANDeviceDatabaseFilename);
ui->mDatabaseFileNameLbl->setToolTip(NewDevConfig->mCANDeviceDatabaseFilename);
ui->mDevicePollPeriodSpinBx->setValue(NewDevConfig->mDevicePollPeriod);
//update device database information
ui->mDBMessagesListWidget->clear();
ui->mDBSignalDetailsTable->clearContents();
ui->mDBSignalDetailsTable->setRowCount(0);
mCurModifiedDevConfig = NewDevConfig;
ModifyDeviceConfig();
ui->mAddDeviceBtn->setEnabled(false);
}
void CProgramSettingsPage::DeleteDeviceBtnPressed()
{
//Populate the devices config list with present devices
PopulateDevicesConfigList();
//Find the selected device index
int index = ui->mDevicesList->currentRow();
if(index >=0 && index < mDeviceConfigList.size())
{
delete mDeviceConfigList.takeAt(index);
}
mProgramPtr->SaveSystemConfigRequest(&mDeviceConfigList);
}
int CProgramSettingsPage::PopulateDevicesConfigList()
{
while(!mDeviceConfigList.isEmpty())
{
delete mDeviceConfigList.takeFirst();
}
//Gather the actual data in the change buffer.
for(int device = 0; device < mDevicesList->size(); device++)
{
const CCANDevice *CurDevice = mDevicesList->at(device);
CCANDeviceConfig *DevConfig = new CCANDeviceConfig;
*DevConfig = CurDevice->mDeviceConfigInfo;
mDeviceConfigList.append(DevConfig);
}
return RET_OK;
}
+10 -1
View File
@@ -7,6 +7,7 @@ class CCANDevice;
class CCANMessage;
class CCANSignal;
class COtarcikCan;
class CCANDeviceConfig;
namespace Ui {
@@ -25,14 +26,19 @@ public:
int ClearDatabaseData();
int UpdatePage();
int UpdateMessageInformation();
int ModifyDeviceConfig();
COtarcikCan *mProgramPtr;
private:
Ui::CProgramSettingsPage *ui;
QList<CCANDevice *> *mDevicesList;
const QList<CCANDevice *> *mDevicesList;
QList<CCANDeviceConfig*> mDeviceConfigList;
bool mDeviceChangeModeEnabled;
CCANDeviceConfig* mCurModifiedDevConfig;
int PopulateDevicesConfigList();
public slots:
void DeviceSelectionChanged();
@@ -41,6 +47,9 @@ public slots:
void ModifyDeviceBtnPressed();
void CancelModifyDevBtnPressed();
void SelectDBFileBtnPressed();
void AddDeviceBtnPressed();
void DeleteDeviceBtnPressed();
};
#endif // PROGRAMSETTINGSPAGE_H
+27 -1
View File
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>1475</width>
<height>604</height>
<height>693</height>
</rect>
</property>
<property name="windowTitle">
@@ -377,6 +377,32 @@
</property>
</widget>
</widget>
<widget class="QPushButton" name="mAddDeviceBtn">
<property name="geometry">
<rect>
<x>200</x>
<y>420</y>
<width>41</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Ajouter</string>
</property>
</widget>
<widget class="QPushButton" name="mDeleteDeviceBtn">
<property name="geometry">
<rect>
<x>50</x>
<y>420</y>
<width>61</width>
<height>22</height>
</rect>
</property>
<property name="text">
<string>Supprimer</string>
</property>
</widget>
</widget>
<resources/>
<connections/>