DiagramDesigner/diagramCavas/source/diagramConnectSetting.cpp

116 lines
3.6 KiB
C++
Raw Normal View History

2025-12-12 17:46:37 +08:00
#include "diagramConnectSetting.h"
#include "ui_diagramConnectSetting.h"
#include "diagramCommunication/include/configManager.h"
2025-12-19 18:28:13 +08:00
#include "uiCommunicationBus.h"
#include "communicationManager.h"
2025-12-12 17:46:37 +08:00
DiagramConnectSetting::DiagramConnectSetting(QWidget *parent)
: QDialog(parent)
, ui(new Ui::diagramConnectSetting)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
initial();
}
DiagramConnectSetting::~DiagramConnectSetting()
{
delete ui;
}
void DiagramConnectSetting::initial()
{
2025-12-19 18:28:13 +08:00
connect(ui->btn_testRecommand,&QPushButton::clicked,this,&DiagramConnectSetting::onTestHttpRecommandClicked);
2025-12-25 09:03:35 +08:00
connect(ui->btn_testData,&QPushButton::clicked,this,&DiagramConnectSetting::onTestHttpDataClicked);
2025-12-19 18:28:13 +08:00
connect(ui->btn_testData,&QPushButton::clicked,this,&DiagramConnectSetting::onTestWebsocketClicked);
2025-12-12 17:46:37 +08:00
connect(ui->btn_testWebsoc,&QPushButton::clicked,this,&DiagramConnectSetting::onTestWebsocketClicked);
connect(ui->btn_ok,&QPushButton::clicked,this,&DiagramConnectSetting::onOkClicked);
connect(ui->btn_cancel,&QPushButton::clicked,this,&DiagramConnectSetting::onCancelClicked);
}
void DiagramConnectSetting::updateByConfig(ChannelConfig info,int nType)
{
if(nType == 0){
ui->le_httpName->setText(info.name);
ui->le_httpIp->setText(info.endpoint);
ui->le_httpOver->setText(QString::number(info.timeout));
}
else if(nType == 1){
ui->le_websocName->setText(info.name);
ui->le_websocIp->setText(info.endpoint);
ui->le_websocOver->setText(QString::number(info.timeout));
ui->le_websocHeart->setText(QString::number(info.heartbeatInterval));
}
}
void DiagramConnectSetting::showDlg()
{
show();
ConfigManager* config = ConfigManager::instance();
auto httpInfo = config->getHttpConfig();
updateByConfig(httpInfo,0);
auto socketInfo = config->getWebSocketConfig();
updateByConfig(socketInfo,1);
}
2025-12-19 18:28:13 +08:00
void DiagramConnectSetting::updateHttpLog(QString sType,QString data)
{
ui->lst_log->addItem("接收http:"+data);
if(sType == "recommend"){
ui->label_httpRecommand->setText("联通");
}
else if(sType == "subscriptions"){
ui->label_httpData->setText("联通");
}
2025-12-25 09:03:35 +08:00
else if(sType == "subscriptionTest"){
ui->label_httpData->setText("联通");
}
2025-12-19 18:28:13 +08:00
}
void DiagramConnectSetting::updateWebsocketLog(QString str)
{
ui->lst_log->addItem("接收websocket:"+str);
}
void DiagramConnectSetting::onTestHttpRecommandClicked()
{
QString strUrl = ui->le_httpIp->text()+"/measurement/recommend?input=";
UiCommunicationBus::instance()->sendHttpRequest(strUrl);
}
void DiagramConnectSetting::onTestHttpDataClicked()
2025-12-12 17:46:37 +08:00
{
2025-12-25 09:03:35 +08:00
QString sPath = ui->le_httpIp->text()+"/monitors/data/subscriptions";
2025-12-12 17:46:37 +08:00
2025-12-25 09:03:35 +08:00
UiCommunicationBus::instance()->sendHttpRequest(sPath,QVariant(),"POST");
2025-12-12 17:46:37 +08:00
}
void DiagramConnectSetting::onTestWebsocketClicked()
{
}
void DiagramConnectSetting::onOkClicked()
{
2025-12-19 18:28:13 +08:00
CommunicationManager* comm = CommunicationManager::instance();
ConfigManager* config = ConfigManager::instance();
// 应用配置
auto httpConfig = config->getHttpConfig();
auto websocketConfig = config->getWebSocketConfig();
httpConfig.endpoint = ui->le_httpIp->text();
httpConfig.timeout = ui->le_httpOver->text().toInt();
websocketConfig.endpoint = ui->le_websocIp->text();
websocketConfig.timeout = ui->le_websocOver->text().toInt();
websocketConfig.heartbeatInterval = ui->le_websocHeart->text().toInt();
comm->updateHttpConfig(httpConfig);
comm->updateWebSocketConfig(config->getWebSocketConfig());
2025-12-12 17:46:37 +08:00
hide();
}
void DiagramConnectSetting::onCancelClicked()
{
hide();
}