Création des brokers fonctionnelle

This commit is contained in:
2025-05-03 13:24:18 -04:00
parent b423b5fddf
commit 9e43e9c748
19 changed files with 1686 additions and 217 deletions
+113 -21
View File
@@ -96,23 +96,49 @@ CLoggingSettingsPage::CLoggingSettingsPage(QWidget *parent) :
connect(ui->mDevicePresChangeParamsBtn,&QPushButton::clicked,this,&CLoggingSettingsPage::DevicePresenceModifyParamsBtnPressed);
connect(ui->mDevicePresCancelBtn,&QPushButton::clicked,this,&CLoggingSettingsPage::DevicePresenceCancelBtnPressed);
connect(ui->mAddMQTTBrokerBtn,&QPushButton::clicked,this,&CLoggingSettingsPage::AddMQTTBrokerBtnPressed);
connect(ui->mDeleteMQTTBrokerBtn,&QPushButton::clicked,this,&CLoggingSettingsPage::DeleteMQTTBrokerBtnPressed);
connect(ui->mMQTTBrokersList,&QListWidget::itemSelectionChanged,this,&CLoggingSettingsPage::MQTTBrokerSelected);
}
CLoggingSettingsPage::~CLoggingSettingsPage()
{
while(mCloudParams.size() != 0)
{
delete mCloudParams.takeAt(0);
}
delete ui;
}
int CLoggingSettingsPage::SetCloudParams(const CCloudParams *CloudParams)
int CLoggingSettingsPage::SetCloudParams(QList<CCloudParams *> *CloudParams)
{
if(CloudParams == 0)
{
return RET_GENERAL_ERROR;
}
mCloudParams = *CloudParams;
while(mCloudParams.size() != 0)
{
delete mCloudParams.takeAt(0);
}
UpdateCloudConfig();
for(int i = 0; i < CloudParams->size(); i++)
{
CCloudParams *NewBrokerParam = new CCloudParams;
*NewBrokerParam = *CloudParams->at(i);
mCloudParams.append(NewBrokerParam);
}
if(mCloudParams.size() != 0)
{
for(int i = 0; i < mCloudParams.size(); i++)
{
ui->mMQTTBrokersList->insertItem(i,mCloudParams.at(i)->mMQTTBrokerHostName);
ui->mMQTTBrokersList->setCurrentRow(0);
}
// UpdateCloudConfig();
}
return RET_OK;
}
@@ -173,6 +199,7 @@ void CLoggingSettingsPage::ModifyParamsBtnPressed()
ui->mCloudMQTTRefreshRateSpinBx->setEnabled(true);
ui->mCloudMQTTClientID->setEnabled(true);
ui->mChangeParamsBtn->setText("Appliquer");
ui->mMQTTBrokersList->setEnabled(false);
}
else
{
@@ -186,26 +213,41 @@ void CLoggingSettingsPage::ModifyParamsBtnPressed()
ui->mCloudMQTTUserNameEdit->setEnabled(false);
ui->mCloudMQTTRefreshRateSpinBx->setEnabled(false);
ui->mCloudMQTTClientID->setEnabled(false);
ui->mMQTTBrokersList->setEnabled(true);
mCloudParams.mMQTTBrokerHostName = ui->mCloudMQTTHostNameEdit->text();
mCloudParams.mMQTTBrokerPassword = ui->mCloudMQTTPasswordEdit->text();
mCloudParams.mMQTTBrokerPort = (quint32)ui->mCloudMQTTPortSpinBx->value();
mCloudParams.mMQTTTopicPrefix = ui->mCloudMQTTTopicPrefixEdit->text();
if(mCloudParams.mMQTTTopicPrefix.isEmpty() == false)
int index = ui->mMQTTBrokersList->currentRow();
if(index < 0 || index >= mCloudParams.size())
{
if(mCloudParams.mMQTTTopicPrefix.endsWith("/") == false)
qDebug("Big problem in LoggingSettingsPage : invalid broker index");
return;
}
CCloudParams *BrokerParams;
BrokerParams = mCloudParams[index];
BrokerParams->mMQTTBrokerHostName = ui->mCloudMQTTHostNameEdit->text();
BrokerParams->mMQTTBrokerPassword = ui->mCloudMQTTPasswordEdit->text();
BrokerParams->mMQTTBrokerPort = (quint32)ui->mCloudMQTTPortSpinBx->value();
BrokerParams->mMQTTTopicPrefix = ui->mCloudMQTTTopicPrefixEdit->text();
if(BrokerParams->mMQTTTopicPrefix.isEmpty() == false)
{
if(BrokerParams->mMQTTTopicPrefix.endsWith("/") == false)
{
mCloudParams.mMQTTTopicPrefix.append("/");
ui->mCloudMQTTTopicPrefixEdit->setText(mCloudParams.mMQTTTopicPrefix);
BrokerParams->mMQTTTopicPrefix.append("/");
ui->mCloudMQTTTopicPrefixEdit->setText(BrokerParams->mMQTTTopicPrefix);
}
}
mCloudParams.mMQTTBrokerUserName = ui->mCloudMQTTUserNameEdit->text();
mCloudParams.mMQTTTransmitTimeout = (quint32)ui->mCloudMQTTRefreshRateSpinBx->value();
mCloudParams.mMQTTClientID = ui->mCloudMQTTClientID->text();
BrokerParams->mMQTTBrokerUserName = ui->mCloudMQTTUserNameEdit->text();
BrokerParams->mMQTTTransmitTimeout = (quint32)ui->mCloudMQTTRefreshRateSpinBx->value();
BrokerParams->mMQTTClientID = ui->mCloudMQTTClientID->text();
ui->mMQTTBrokersList->item(index)->setText(BrokerParams->mMQTTBrokerHostName);
mProgramHandle->SaveCloudLoggingConfigRequest(&mCloudParams);
}
}
@@ -220,19 +262,27 @@ void CLoggingSettingsPage::CancelBtnPressed()
ui->mCloudMQTTUserNameEdit->setEnabled(false);
ui->mCloudMQTTRefreshRateSpinBx->setEnabled(false);
ui->mCloudMQTTClientID->setEnabled(false);
ui->mMQTTBrokersList->setEnabled(true);
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);
int index = ui->mMQTTBrokersList->currentRow();
if(index < 0 || index >= mCloudParams.size())
{
return RET_GENERAL_ERROR;
}
CCloudParams *BrokerParams = mCloudParams.at(index);
ui->mCloudMQTTHostNameEdit->setText(BrokerParams->mMQTTBrokerHostName);
ui->mCloudMQTTPasswordEdit->setText(BrokerParams->mMQTTBrokerPassword);
ui->mCloudMQTTPortSpinBx->setValue(BrokerParams->mMQTTBrokerPort);
ui->mCloudMQTTTopicPrefixEdit->setText(BrokerParams->mMQTTTopicPrefix);
ui->mCloudMQTTUserNameEdit->setText(BrokerParams->mMQTTBrokerUserName);
ui->mCloudMQTTRefreshRateSpinBx->setValue(BrokerParams->mMQTTTransmitTimeout);
ui->mCloudMQTTClientID->setText(BrokerParams->mMQTTClientID);
return RET_OK;
}
@@ -593,3 +643,45 @@ void CLoggingSettingsPage::DevicePresenceModifyParamsBtnPressed()
mProgramHandle->SaveDeviceDetectionSettingsRequest(&mDeviceDetectConfigHandle);
}
}
void CLoggingSettingsPage::AddMQTTBrokerBtnPressed()
{
CCloudParams *NewParam = new CCloudParams;
mCloudParams.append(NewParam);
ui->mMQTTBrokersList->addItem("Broker");
ui->mMQTTBrokersList->setCurrentRow(ui->mMQTTBrokersList->count()-1);
ModifyParamsBtnPressed();
}
void CLoggingSettingsPage::DeleteMQTTBrokerBtnPressed()
{
int index = ui->mMQTTBrokersList->currentRow();
if(index < 0 || index >= mCloudParams.size())
{
return;
}
delete mCloudParams.takeAt(index);
ui->mMQTTBrokersList->takeItem(index);
if(ui->mMQTTBrokersList->count() == 0)
{
AddMQTTBrokerBtnPressed();
}
else
{
ui->mMQTTBrokersList->setCurrentRow(0);
}
}
void CLoggingSettingsPage::MQTTBrokerSelected()
{
int index = ui->mMQTTBrokersList->currentRow();
if(index < 0 || index >= mCloudParams.size())
{
return;
}
UpdateCloudConfig();
}