Développement program settings

This commit is contained in:
2023-01-24 19:51:06 -05:00
parent 145d07754d
commit d183780f1b
19 changed files with 1368 additions and 311 deletions
@@ -63,6 +63,10 @@ int CGeneralStatusPage::AddColoredLineToGenMsgBox(QString Line)
{
ui->mGenMsgTextEdit->setTextColor(Qt::blue);
}
else if(Line.at(1) == QChar('S')) //The line is describing a warning... write it yellow
{
ui->mGenMsgTextEdit->setTextColor(Qt::darkGreen);
}
else
{
qDebug("GeneralStatusPage: Logic error in general message box line encoding... you should check into that");
@@ -3,6 +3,8 @@
#include "CANDevice.h"
#include "OtarcikCan.h"
#include <QFileDialog>
#include <QFileInfo>
CProgramSettingsPage::CProgramSettingsPage(QWidget *parent) :
@@ -13,6 +15,7 @@ CProgramSettingsPage::CProgramSettingsPage(QWidget *parent) :
mProgramPtr = 0;
mDevicesList = 0;
mDeviceChangeModeEnabled = false;
ui->mDBSignalDetailsTable->setColumnCount(10);
ui->mDBSignalDetailsTable->setHorizontalHeaderLabels(QStringList() << "Signal" << "Bit No" << "Length" << "Type" << "Max Val" << "Min Val" << "Offset" << "Scale factor" << "Unit" << "Byte order");
@@ -61,12 +64,15 @@ CProgramSettingsPage::CProgramSettingsPage(QWidget *parent) :
ui->mCANIDComboBx->setEnabled(false);
ui->mDevicePollPeriodSpinBx->setEnabled(false);
ui->mCancelModifyParamsBtn->hide();
ui->mDeviceNameEditBx->setEnabled(false);
connect(ui->mDevicesList,&QListWidget::itemSelectionChanged,this,&CProgramSettingsPage::DeviceSelectionChanged);
connect(ui->mDBMessagesListWidget,&QListWidget::itemSelectionChanged,this,&CProgramSettingsPage::MessageSelectionChanged);
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->mDBSignalDetailsTable,&QTableWidget::itemSelectionChanged,this,&CProgramSettingsPage::SignalSelectionChanged);
}
@@ -127,15 +133,20 @@ int CProgramSettingsPage::UpdatePage()
if(Device != 0)
{
//Update device name in the list (it might have just changed)
ui->mDevicesList->item(ui->mDevicesList->currentRow())->setText(Device->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->mDatabaseFileNameLbl->setText(QString("Database: %1").arg(Device->mCANDeviceDatabaseFilename));
// ui->mDevicePollPeriodSpinBx->setEnabled(true);
ui->mDevicePollPeriodSpinBx->setValue(Device->mDevicePollPeriod);
// ui->mDevicePollPeriodSpinBx->setEnabled(false);
QFileInfo FileInfo(Device->mCANDeviceDatabaseFilename);
ui->mDatabaseFileNameLbl->setText(FileInfo.fileName());
ui->mDatabaseFileNameLbl->setToolTip(Device->mCANDeviceDatabaseFilename);
// ui->mDatabaseFileNameLbl->setText(QString("%1").arg(Device->mCANDeviceDatabaseFilename));
ui->mDevicePollPeriodSpinBx->setValue(Device->mDevicePollPeriod);
//update device database information
ui->mDBMessagesListWidget->clear();
ui->mDBSignalDetailsTable->clearContents();
@@ -313,6 +324,24 @@ void CProgramSettingsPage::ModifyDeviceBtnPressed()
if(mDeviceChangeModeEnabled)
{
//Save Data
int index = ui->mDevicesList->currentRow();
if(index >= 0 && index < mDevicesList->size())
{
CCANDevice *ModifiedDevice = mDevicesList->at(index);
ModifiedDevice->mCANDeviceBaudrate = ui->mCANBaudrateComboBx->currentData().toInt();
ModifiedDevice->mCANDeviceID = ui->mCANIDComboBx->currentData().toInt();
ModifiedDevice->mCANDeviceDatabaseFilename = ui->mDatabaseFileNameLbl->toolTip(); //The full path is stored in the tooltip!
ModifiedDevice->mDeviceDescription = ui->mDeviceDescriptionTxtEdit->toPlainText();
ModifiedDevice->mDeviceName = ui->mDeviceNameEditBx->toPlainText();
ModifiedDevice->mDevicePollPeriod = ui->mDevicePollPeriodSpinBx->value();
mProgramPtr->SaveSystemConfigRequest();
}
ui->mDeviceDescriptionTxtEdit->setEnabled(false);
ui->mDatabaseFileSelectBtn->hide();
ui->mCANBaudrateComboBx->setEnabled(false);
@@ -321,9 +350,11 @@ void CProgramSettingsPage::ModifyDeviceBtnPressed()
ui->mDevicePollPeriodSpinBx->setEnabled(false);
ui->mModifyDevParamsBtn->setText("Modifier");
ui->mCancelModifyParamsBtn->hide();
ui->mDeviceNameEditBx->setEnabled(false);
mDeviceChangeModeEnabled = false;
}
else
{
@@ -336,6 +367,7 @@ void CProgramSettingsPage::ModifyDeviceBtnPressed()
ui->mDevicePollPeriodSpinBx->setEnabled(true);
ui->mModifyDevParamsBtn->setText("Sauvegarder");
ui->mCancelModifyParamsBtn->show();
ui->mDeviceNameEditBx->setEnabled(true);
mDeviceChangeModeEnabled = true;
}
@@ -351,8 +383,24 @@ void CProgramSettingsPage::CancelModifyDevBtnPressed()
ui->mDevicePollPeriodSpinBx->setEnabled(false);
ui->mModifyDevParamsBtn->setText("Modifier");
ui->mCancelModifyParamsBtn->hide();
ui->mDeviceNameEditBx->setEnabled(false);
mDeviceChangeModeEnabled = false;
UpdatePage();
}
void CProgramSettingsPage::SelectDBFileBtnPressed()
{
QString FileName;
FileName = QFileDialog::getOpenFileName(this,tr("Fichier database"), "./", tr("Fichiers dbc (*.dbc)"));
if(!FileName.isEmpty())
{
QFileInfo FileInfo(FileName);
ui->mDatabaseFileNameLbl->setText(FileInfo.fileName());
ui->mDatabaseFileNameLbl->setToolTip(FileName);
}
}
@@ -40,6 +40,7 @@ public slots:
void MessageSelectionChanged();
void ModifyDeviceBtnPressed();
void CancelModifyDevBtnPressed();
void SelectDBFileBtnPressed();
};
#endif // PROGRAMSETTINGSPAGE_H
+24 -27
View File
@@ -70,7 +70,7 @@
<property name="geometry">
<rect>
<x>10</x>
<y>40</y>
<y>60</y>
<width>91</width>
<height>16</height>
</rect>
@@ -91,7 +91,7 @@
<property name="geometry">
<rect>
<x>100</x>
<y>39</y>
<y>59</y>
<width>131</width>
<height>20</height>
</rect>
@@ -101,7 +101,7 @@
<property name="geometry">
<rect>
<x>10</x>
<y>70</y>
<y>90</y>
<width>91</width>
<height>16</height>
</rect>
@@ -122,7 +122,7 @@
<property name="geometry">
<rect>
<x>100</x>
<y>70</y>
<y>90</y>
<width>131</width>
<height>21</height>
</rect>
@@ -173,20 +173,20 @@
<property name="geometry">
<rect>
<x>10</x>
<y>100</y>
<y>120</y>
<width>301</width>
<height>51</height>
</rect>
</property>
<property name="title">
<string>Base de données</string>
<string>Fichier base de données</string>
</property>
<widget class="QLabel" name="mDatabaseFileNameLbl">
<property name="geometry">
<rect>
<x>0</x>
<y>27</y>
<width>301</width>
<x>10</x>
<y>26</y>
<width>291</width>
<height>16</height>
</rect>
</property>
@@ -215,24 +215,6 @@
</property>
</widget>
</widget>
<widget class="QLabel" name="mCANBaudrateLbl_3">
<property name="geometry">
<rect>
<x>10</x>
<y>160</y>
<width>91</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>CAN Baudrate:</string>
</property>
</widget>
<widget class="QSpinBox" name="mDevicePollPeriodSpinBx">
<property name="geometry">
<rect>
@@ -256,6 +238,21 @@
<string>Annuler</string>
</property>
</widget>
<widget class="QPlainTextEdit" name="mDeviceNameEditBx">
<property name="geometry">
<rect>
<x>13</x>
<y>23</y>
<width>281</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
</widget>
</widget>
<widget class="QGroupBox" name="mDatabaseGroupBox">
<property name="geometry">