新添加一个链接选项,类型为Multicast

This commit is contained in:
hm
2020-12-05 01:44:53 +08:00
parent 92ac310171
commit 454718e248
14 changed files with 1050 additions and 602 deletions
@@ -86,14 +86,17 @@ void ConnectDialog::setInit(QVariant inter, QVariant device)
if((m_Type == inter)&&(m_Param1.toString().size() > 0))//说明有数
{
qDebug() << "fund old setting" << m_Type;
isNew = false;
}
if(isNew == true)//新建一个新的连接
{
qDebug() << "new a interface" << inter;
//根据接口类型新建一个界面
if(inter.toString() == tr("SerialPort"))
{
qDebug() << "create serial port";
m_Type = inter;
m_usrName = device;
@@ -116,6 +119,7 @@ void ConnectDialog::setInit(QVariant inter, QVariant device)
}
else if(inter.toString() == tr("UDP"))
{
qDebug() << "create udp port";
m_Type = inter;
m_usrName = device;
m_Param1 = tr("127.0.0.1");
@@ -123,6 +127,16 @@ void ConnectDialog::setInit(QVariant inter, QVariant device)
m_Param3 = tr("127.0.0.1");
m_Param4 = tr("6061");
}
else if(inter.toString() == tr("Multicast"))
{
qDebug() << "create multicast port";
m_Type = inter;
m_usrName = device;
m_Param1 = tr("226.0.0.80");
m_Param2 = tr("5001");
m_Param3 = tr("227.0.0.201");
m_Param4 = tr("9001");
}
}
@@ -185,9 +199,21 @@ void ConnectDialog::reBuildList(void)
ui->pushButton_param5->hide();
ui->label_Description->setText(tr("NetWork"));
ui->label_Description->setText(tr("udp socket"));
}
else if(m_Type.toString() == tr("Multicast"))
{
ui->label_Param1->setText(tr("receive"));
ui->label_Param2->setText(tr(""));
ui->label_Param3->setText(tr("transmit"));
ui->label_Param4->setText(tr(""));
ui->label_Param5->setText(tr(""));
ui->pushButton_param5->hide();
ui->label_Description->setText(tr("multicast socket"));
}
ui->pushButton_param1->setText(m_Param1.toString());
ui->pushButton_param2->setText(m_Param2.toString());
@@ -351,6 +377,14 @@ void ConnectDialog::setType(QVariant value)
m_Param4 = tr("6061");
m_Param5 = "";
}
else if(m_Type.toString() == tr("Multicast"))
{
m_Param1 = tr("226.0.0.80");
m_Param2 = tr("5001");
m_Param3 = tr("227.0.0.201");
m_Param4 = tr("9001");
m_Param5 = "";
}
}
reBuildList();
@@ -365,7 +399,8 @@ void ConnectDialog::onTypeClicked(void)//选择器
QStringList list;
list << tr("SerialPort")
<< tr("UDP");
<< tr("UDP")
<< tr("Multicast");
//selector->setList(list,ui->pushButton_type->text());
@@ -412,7 +447,7 @@ void ConnectDialog::onParam1Clicked(void)//name/localaddr 串口-选择 udp-
selector->show();
}
else if(m_Type.toString() == tr("UDP"))
else //if(m_Type.toString() == tr("UDP"))
{
Inputter *inputter = new Inputter(this);
inputter->setGeometry(0,0,this->width(),this->height());
@@ -610,7 +645,7 @@ void ConnectDialog::onConnectClicked(void)//关闭本条
emit connectSignal(true,m_usrName,type,m_Param1,m_Param2,m_Param3,Param4,m_Param5);
}
else
else if(m_Type == tr("UDP"))
{
qDebug() << "connect sock"
<< m_usrName
@@ -623,6 +658,20 @@ void ConnectDialog::onConnectClicked(void)//关闭本条
emit connectSignal(true,m_usrName,m_Type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
}
else if(m_Type == tr("Multicast"))
{
type = "Multicast";
qDebug() << "connect Multicast"
<< m_usrName
<< m_Type
<< m_Param1
<< m_Param2
<< m_Param3
<< m_Param4
<< m_Param5;
emit connectSignal(true,m_usrName,type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
}
}
else if(ui->pushButton_Connect->text() == tr("Disconnect"))//断开连接
{
@@ -650,10 +699,15 @@ void ConnectDialog::onConnectClicked(void)//关闭本条
emit connectSignal(false,m_usrName,type,m_Param1,m_Param2,m_Param3,Param4,m_Param5);
}
else
else if(m_Type == tr("UDP"))
{
emit connectSignal(false,m_usrName,m_Type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
}
else if(m_Type == tr("Multicast"))
{
type = "Multicast";
emit connectSignal(false,m_usrName,type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
}
}
@@ -707,6 +761,9 @@ void ConnectDialog::PortConnected(QVariant state, QVariant usrName, QVariant Typ
ui->pushButton_param3->setEnabled(false);
ui->pushButton_param4->setEnabled(false);
ui->pushButton_param5->setEnabled(false);
}
else
{
@@ -721,6 +778,21 @@ void ConnectDialog::PortConnected(QVariant state, QVariant usrName, QVariant Typ
ui->pushButton_param3->setEnabled(true);
ui->pushButton_param4->setEnabled(true);
ui->pushButton_param5->setEnabled(true);
/*
QMessageBox *msg = new QMessageBox();
msg->setWindowTitle(tr("Connect Fail"));
QString str;
str.append(tr("接收地址:") + Param1.toString() + tr(":") + Param2.toString() + tr("\n"));
str.append(tr("发送地址:") + Param3.toString() + tr(":") + Param4.toString() + tr("\n"));
msg->setText(str);
msg->show();
*/
}
}
@@ -19,6 +19,7 @@
#include "Inputter.h"
#include "CharInputter.h"
#include "QMessageBox"
#include "Config/Config.h"
@@ -74,6 +75,8 @@ private slots:
signals:
void usrNameChanged(QVariant m_usrName);
void cancelSignal();
+76
View File
@@ -69,6 +69,7 @@ void LinkUI::recover(void)
SerialPortCount = 0;
UDPCount = 0;
MulticastCount = 0;
}
@@ -264,3 +265,78 @@ void LinkUI::on_pushButton_UDP_clicked()
}
void LinkUI::on_pushButton_Multicast_clicked()
{
if(MulticastCount%2 == 0)
{
//禁止除了自己之外在这个界面内所有按键
//将旧的按键全部删除
QObjectList Interface = ui->frame_InterfaceType->children();
foreach (QObject *obj, Interface) {
QPushButton *btn = qobject_cast<QPushButton *>(obj);
if(btn)
{
QPushButton *s = qobject_cast<QPushButton *>(sender());
if(btn != s)
{
btn->setEnabled(false);
}
else
{
InterfaceString = btn->text();
}
}
}
QObjectList device = ui->frame_DeviceType->children();
foreach (QObject *obj, device) {
QPushButton *btn = qobject_cast<QPushButton *>(obj);
if(btn)
{
delete btn;
}
}
//根据现存的设备生成一个列表
for(QString info: DeviceList) {
QPushButton *btn = new QPushButton(ui->frame_DeviceType);
btn->setText(info);
btn->setFixedSize(200,80);
ui->frame_DeviceType->layout()->addWidget(btn);
connect(btn,SIGNAL(clicked(bool)),
this,SLOT(on_commandClicked()));
}
}
else
{
//使能除了自己之外在这个界面内所有按键
//将旧的按键全部删除
QObjectList Interface = ui->frame_InterfaceType->children();
foreach (QObject *obj, Interface) {
QPushButton *btn = qobject_cast<QPushButton *>(obj);
if(btn)
{
QPushButton *s = qobject_cast<QPushButton *>(sender());
if(btn != s)
btn->setEnabled(true);
}
}
QObjectList device = ui->frame_DeviceType->children();
foreach (QObject *obj, device) {
QPushButton *btn = qobject_cast<QPushButton *>(obj);
if(btn)
{
delete btn;
}
}
}
MulticastCount ++;
}
+4 -1
View File
@@ -1,4 +1,4 @@
#ifndef LINKUI_H
#ifndef LINKUI_H
#define LINKUI_H
#include <QWidget>
@@ -53,12 +53,15 @@ private slots:
void on_pushButton_UDP_clicked();
void on_pushButton_Multicast_clicked();
private:
Ui::LinkUI *ui;
int SerialPortCount = 0;
int UDPCount = 0;
int MulticastCount = 0;
QStringList InterfaceList;
QStringList DeviceList;
+21 -8
View File
@@ -71,6 +71,19 @@
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="3" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="pushButton_SerialPort">
<property name="minimumSize">
@@ -98,17 +111,17 @@
</widget>
</item>
<item row="2" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<widget class="QPushButton" name="pushButton_Multicast">
<property name="minimumSize">
<size>
<width>20</width>
<height>40</height>
<width>200</width>
<height>80</height>
</size>
</property>
</spacer>
<property name="text">
<string>Multicast</string>
</property>
</widget>
</item>
</layout>
</widget>