DiagramDesigner/diagramCavas/source/diagramConnectSetting.cpp

116 lines
3.6 KiB
C++

#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();
}