CAN Config fonctionnel.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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/>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/>
|
||||
|
||||
Reference in New Issue
Block a user