#include "diagramConnectSetting.h" #include "ui_diagramConnectSetting.h" #include "diagramCommunication/include/configManager.h" #include "uiCommunicationBus.h" #include "communicationManager.h" 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() { connect(ui->btn_testRecommand,&QPushButton::clicked,this,&DiagramConnectSetting::onTestHttpRecommandClicked); connect(ui->btn_testData,&QPushButton::clicked,this,&DiagramConnectSetting::onTestHttpDataClicked); connect(ui->btn_testData,&QPushButton::clicked,this,&DiagramConnectSetting::onTestWebsocketClicked); 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); } 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("联通"); } else if(sType == "subscriptionTest"){ ui->label_httpData->setText("联通"); } } 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() { QString sPath = ui->le_httpIp->text()+"/monitors/data/subscriptions"; UiCommunicationBus::instance()->sendHttpRequest(sPath,QVariant(),"POST"); } void DiagramConnectSetting::onTestWebsocketClicked() { } void DiagramConnectSetting::onOkClicked() { 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()); hide(); } void DiagramConnectSetting::onCancelClicked() { hide(); }