YULTek/Otarcik_CAN/Sources/Gui/LoggingSettingsPage.cpp

165 lines
5.9 KiB
C++

#include "LoggingSettingsPage.h"
#include "ui_LoggingSettingsPage.h"
#include "defines.h"
#include "OtarcikCan.h"
CLoggingSettingsPage::CLoggingSettingsPage(QWidget *parent) :
QWidget(parent),
ui(new Ui::CLoggingSettingsPage),
EditMode(false)
{
ui->setupUi(this);
ui->mCancelBtn->hide();
ui->mChangeParamsBtn->setText("Modifier");
ui->mCloudMQTTHostNameEdit->setEnabled(false);
ui->mCloudMQTTPasswordEdit->setEnabled(false);
ui->mCloudMQTTPortSpinBx->setEnabled(false);
ui->mCloudMQTTTopicPrefixEdit->setEnabled(false);
ui->mCloudMQTTUserNameEdit->setEnabled(false);
ui->mCloudMQTTRefreshRateSpinBx->setEnabled(false);
ui->mCloudMQTTClientID->setEnabled(false);
connect(ui->mCancelBtn,&QPushButton::clicked,this,&CLoggingSettingsPage::CancelBtnPressed);
connect(ui->mChangeParamsBtn,&QPushButton::clicked,this,&CLoggingSettingsPage::ModifyParamsBtnPressed);
connect(ui->mLogZoneVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
connect(ui->mLogFileVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
}
CLoggingSettingsPage::~CLoggingSettingsPage()
{
delete ui;
}
int CLoggingSettingsPage::SetCloudParams(const CCloudParams *CloudParams)
{
if(CloudParams == 0)
{
return RET_GENERAL_ERROR;
}
mCloudParams = *CloudParams;
UpdateCloudConfig();
return RET_OK;
}
int CLoggingSettingsPage::SetGeneralSettingsParams(const CGeneralSystemParams *GeneralParams)
{
if(GeneralParams == 0)
{
return RET_GENERAL_ERROR;
}
mGeneralSystemParams = *GeneralParams;
UpdateGeneralParams();
return RET_OK;
}
void CLoggingSettingsPage::ModifyParamsBtnPressed()
{
if(EditMode == false)
{
EditMode = true;
ui->mCancelBtn->show();
ui->mCloudMQTTHostNameEdit->setEnabled(true);
ui->mCloudMQTTPasswordEdit->setEnabled(true);
ui->mCloudMQTTPortSpinBx->setEnabled(true);
ui->mCloudMQTTTopicPrefixEdit->setEnabled(true);
ui->mCloudMQTTUserNameEdit->setEnabled(true);
ui->mCloudMQTTRefreshRateSpinBx->setEnabled(true);
ui->mCloudMQTTClientID->setEnabled(true);
ui->mChangeParamsBtn->setText("Appliquer");
}
else
{
EditMode = false;
ui->mChangeParamsBtn->setText("Modifier");
ui->mCancelBtn->hide();
ui->mCloudMQTTHostNameEdit->setEnabled(false);
ui->mCloudMQTTPasswordEdit->setEnabled(false);
ui->mCloudMQTTPortSpinBx->setEnabled(false);
ui->mCloudMQTTTopicPrefixEdit->setEnabled(false);
ui->mCloudMQTTUserNameEdit->setEnabled(false);
ui->mCloudMQTTRefreshRateSpinBx->setEnabled(false);
ui->mCloudMQTTClientID->setEnabled(false);
mCloudParams.mMQTTBrokerHostName = ui->mCloudMQTTHostNameEdit->text();
mCloudParams.mMQTTBrokerPassword = ui->mCloudMQTTPasswordEdit->text();
mCloudParams.mMQTTBrokerPort = (quint32)ui->mCloudMQTTPortSpinBx->value();
mCloudParams.mMQTTTopicPrefix = ui->mCloudMQTTTopicPrefixEdit->text();
if(mCloudParams.mMQTTTopicPrefix.endsWith("/") == false)
{
mCloudParams.mMQTTTopicPrefix.append("/");
ui->mCloudMQTTTopicPrefixEdit->setText(mCloudParams.mMQTTTopicPrefix);
}
mCloudParams.mMQTTBrokerUserName = ui->mCloudMQTTUserNameEdit->text();
mCloudParams.mMQTTTransmitTimeout = (quint32)ui->mCloudMQTTRefreshRateSpinBx->value();
mCloudParams.mMQTTClientID = ui->mCloudMQTTClientID->text();
mProgramHandle->SaveCloudLoggingConfigRequest(&mCloudParams);
}
}
void CLoggingSettingsPage::CancelBtnPressed()
{
EditMode = false;
ui->mCancelBtn->hide();
ui->mCloudMQTTHostNameEdit->setEnabled(false);
ui->mCloudMQTTPasswordEdit->setEnabled(false);
ui->mCloudMQTTPortSpinBx->setEnabled(false);
ui->mCloudMQTTTopicPrefixEdit->setEnabled(false);
ui->mCloudMQTTUserNameEdit->setEnabled(false);
ui->mCloudMQTTRefreshRateSpinBx->setEnabled(false);
ui->mCloudMQTTClientID->setEnabled(false);
UpdateCloudConfig();
}
int CLoggingSettingsPage::UpdateCloudConfig()
{
ui->mCloudMQTTHostNameEdit->setText(mCloudParams.mMQTTBrokerHostName);
ui->mCloudMQTTPasswordEdit->setText(mCloudParams.mMQTTBrokerPassword);
ui->mCloudMQTTPortSpinBx->setValue(mCloudParams.mMQTTBrokerPort);
ui->mCloudMQTTTopicPrefixEdit->setText(mCloudParams.mMQTTTopicPrefix);
ui->mCloudMQTTUserNameEdit->setText(mCloudParams.mMQTTBrokerUserName);
ui->mCloudMQTTRefreshRateSpinBx->setValue(mCloudParams.mMQTTTransmitTimeout);
ui->mCloudMQTTClientID->setText(mCloudParams.mMQTTClientID);
return RET_OK;
}
int CLoggingSettingsPage::UpdateGeneralParams()
{
disconnect(ui->mLogZoneVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
disconnect(ui->mLogFileVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
ui->mLogFileVerbositySpinBx->setValue(mGeneralSystemParams.mLogFileVerbosity);
ui->mLogZoneVerbositySpinBx->setValue(mGeneralSystemParams.mLocalLogVerbosity);
connect(ui->mLogZoneVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
connect(ui->mLogFileVerbositySpinBx,QOverload<int>::of(&QSpinBox::valueChanged),this,&CLoggingSettingsPage::VerbosityParamsChanged);
return RET_OK;
}
void CLoggingSettingsPage::VerbosityParamsChanged(int value)
{
Q_UNUSED(value)
mGeneralSystemParams.mLocalLogVerbosity = ui->mLogZoneVerbositySpinBx->value();
mGeneralSystemParams.mLogFileVerbosity = ui->mLogFileVerbositySpinBx->value();
mProgramHandle->SaveGeneralParametersSettingsRequest(&mGeneralSystemParams);
qDebug("LogZone: %i, LogFile %i",mGeneralSystemParams.mLocalLogVerbosity,mGeneralSystemParams.mLogFileVerbosity);
}