修正连接界面

This commit is contained in:
2020-06-15 18:24:22 +08:00
parent 0246ab4f69
commit 9e816891f9
14 changed files with 444 additions and 135 deletions
@@ -51,13 +51,14 @@ ConnectDialog::ConnectDialog(QWidget *parent) :
//默认串口
m_usrName = tr("unname");
m_usrName = tr("New");
m_Type = tr("SerialPort");
serialInfo = new QSerialPortInfo();
foreach(QSerialPortInfo info, serialInfo->availablePorts())
{
m_Param1 = info.portName();
if(!info.isBusy())
m_Param1 = info.portName();
}
@@ -245,38 +246,72 @@ void ConnectDialog::onUsrNameClicked(void)//英文输入
void ConnectDialog::setType(QVariant value)
{
m_Type = value;
//载入默认值
if(m_Type.toString() == tr("SerialPort"))
{
//m_usrName = tr("Port");
bool isContain = false;
for(QJsonValue info: Connect_info) {
if (info.isObject()) {
foreach(QSerialPortInfo info, serialInfo->availablePorts())
{
if(!info.isBusy())//不忙的话就加入
if(info.toObject().value(tr("Name")).toString() == ui->pushButton_usrName->text())
{
m_Param1 = info.portName();
if(info.toObject().value("Type") == value)
{
isContain = true;
qDebug() << "isContain" << isContain;
}
}
}
}
if(isContain)//如果存在一样名字的,那么读取旧的数据,否则设置默认值
{
//如果存在,并且类型和当前选中一致,那么读取旧数据,否则新数据
for(QJsonValue info: Connect_info) {
if (info.isObject()) {
if(info.toObject().value("Name") == ui->pushButton_usrName->text())
{
m_Type = value;
m_Param1 = info.toObject().value("Param1");
m_Param2 = info.toObject().value("Param2");
m_Param3 = info.toObject().value("Param3");
m_Param4 = info.toObject().value("Param4");
m_Param5 = info.toObject().value("Param5");
}
}
}
m_Param2 = tr("115200");
m_Param3 = tr("8");
m_Param4 = tr("NONE");
m_Param5 = tr("1");
}
else if(m_Type.toString() == tr("UDP"))
else
{
//m_usrName = tr("Net");
m_Type = value;
//载入默认值
if(m_Type.toString() == tr("SerialPort"))
{
foreach(QSerialPortInfo info, serialInfo->availablePorts())
{
if(!info.isBusy())//不忙的话就加入
{
m_Param1 = info.portName();
}
}
//根据上一次的网络连接号设置名称
//读取上一次的参数设置
m_Param2 = tr("115200");
m_Param3 = tr("8");
m_Param4 = tr("NONE");
m_Param5 = tr("1");
m_Param1 = tr("127.0.0.1");
m_Param2 = tr("6061");
m_Param3 = tr("127.0.0.1");
m_Param4 = tr("6060");
m_Param5 = "";
qDebug() << "set default";
}
else if(m_Type.toString() == tr("UDP"))
{
m_Param1 = tr("127.0.0.1");
m_Param2 = tr("6061");
m_Param3 = tr("127.0.0.1");
m_Param4 = tr("6060");
m_Param5 = "";
}
}
reBuildList();
@@ -318,30 +353,14 @@ void ConnectDialog::onParam1Clicked(void)//name/localaddr 串口-选择 udp-
foreach(QSerialPortInfo info, serialInfo->availablePorts())
{
list.append(info.portName());
if(!info.isBusy())
{
list.append(info.portName());
}
}
//检查如果存在上传连接的串口,那么就设置为当前默认的串口,如果不存在,那么就不设置默认串口
QString tiltle = this->windowTitle();
tiltle = tiltle.simplified();
tiltle = tiltle.replace(" ","");
QSettings *configIni = new QSettings("./connetconfig.ini", QSettings::IniFormat);
QString LastPortName = configIni->value("/"+tiltle+"/Port").toString();
foreach(QSerialPortInfo info, serialInfo->availablePorts())
{
if(info.portName() == LastPortName)
{
selector->setList(list,LastPortName);
}
else
{
selector->setList(list,ui->pushButton_param1->text());
}
}
selector->setList(list,ui->pushButton_param1->text());
connect(selector,SIGNAL(confirmValue(QVariant)),
this,SLOT(setParam1(QVariant)));
@@ -401,9 +420,9 @@ void ConnectDialog::onParam3Clicked(void)//databit/remote addr 串口-选择 u
QStringList list;
list << "7"
<< "8"
<< "9";
list << tr("7")
<< tr("8")
<< tr("9");
selector->setList(list,ui->pushButton_param3->text());
@@ -443,10 +462,9 @@ void ConnectDialog::onParam4Clicked(void)//parity/remote port 串口-选择 ud
QStringList list;
list << "NONE"
<< "ODD"
<< "EVEN";
list << tr("NONE")
<< tr("ODD")
<< tr("EVEN");
selector->setList(list,ui->pushButton_param4->text());
@@ -518,9 +536,72 @@ void ConnectDialog::onParam5Clicked()//stopbit/remote port 串口-选择 udp-
void ConnectDialog::onConnectClicked(void)//关闭本条
{
writeInfo(m_usrName,m_Type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
emit connectSignal(true,m_usrName,m_Type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
//断开连接
if(ui->pushButton_Connect->text() == tr("Connect"))
{
writeInfo(m_usrName,m_Type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
//由于翻译问题,需要在这处理一下数据才能发送出去
QVariant type;
if(m_Type == tr("SerialPort"))
{
type = "SerialPort";
QVariant Param4;
if(m_Param4 == tr("NONE"))
{
Param4 = "NONE";
}
else if(m_Param4 == tr("ODD"))
{
Param4 = "ODD";
}
else if(m_Param4 == tr("EVEN"))
{
Param4 = "EVEN";
}
emit connectSignal(true,m_usrName,type,m_Param1,m_Param2,m_Param3,Param4,m_Param5);
}
else
{
emit connectSignal(true,m_usrName,m_Type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
}
}
else if(ui->pushButton_Connect->text() == tr("DisConnect"))//断开连接
{
QVariant type;
if(m_Type == tr("SerialPort"))
{
type = "SerialPort";
QVariant Param4;
if(m_Param4 == tr("NONE"))
{
Param4 = "NONE";
}
else if(m_Param4 == tr("ODD"))
{
Param4 = "ODD";
}
else if(m_Param4 == tr("EVEN"))
{
Param4 = "EVEN";
}
emit connectSignal(false,m_usrName,type,m_Param1,m_Param2,m_Param3,Param4,m_Param5);
}
else
{
emit connectSignal(false,m_usrName,m_Type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
}
}
}
void ConnectDialog::on_pushButton_Cancel_clicked()
@@ -551,8 +632,8 @@ void ConnectDialog::writeInfo(QVariant Name,
}
QByteArray bytes = jsonFile.readAll();
jsonFile.close();
QJsonParseError jsonParseError;
QJsonDocument doc = QJsonDocument::fromJson(bytes, &jsonParseError);
if (jsonParseError.error != QJsonParseError::NoError) {
@@ -654,7 +735,45 @@ void ConnectDialog::readInfo(void)
void ConnectDialog::PortConnected(QVariant state, QVariant usrName, QVariant Type, QVariant Param1, QVariant Param2, QVariant Param3, QVariant Param4, QVariant Param5)
{
if(usrName == m_usrName)
{
if(state == true)//成功连接
{
qDebug() << "connect success";
connectState = true;
ui->pushButton_Connect->setText(tr("DisConnect"));
ui->pushButton_Cancel->setEnabled(false);
ui->pushButton_param1->setEnabled(false);
ui->pushButton_param2->setEnabled(false);
ui->pushButton_param3->setEnabled(false);
ui->pushButton_param4->setEnabled(false);
ui->pushButton_param5->setEnabled(false);
ui->pushButton_type->setEnabled(false);
ui->pushButton_usrName->setEnabled(false);
}
else
{
qDebug() << "connect fail";
connectState = false;
ui->pushButton_Connect->setText(tr("Connect"));
ui->pushButton_Cancel->setEnabled(true);
ui->pushButton_param1->setEnabled(true);
ui->pushButton_param2->setEnabled(true);
ui->pushButton_param3->setEnabled(true);
ui->pushButton_param4->setEnabled(true);
ui->pushButton_param5->setEnabled(true);
ui->pushButton_type->setEnabled(true);
ui->pushButton_usrName->setEnabled(true);
}
}
}
@@ -80,6 +80,15 @@ signals:
QVariant m_Param3,QVariant m_Param4,
QVariant m_Param5);
public slots:
void PortConnected(QVariant state,
QVariant usrName, QVariant Type,
QVariant Param1, QVariant Param2,
QVariant Param3, QVariant Param4,
QVariant Param5);
private:
@@ -95,6 +104,9 @@ private:
QJsonArray Connect_info;
QVariant connectState = false;
QVariant m_usrName;
QVariant m_Type;
QVariant m_Param1;
+3
View File
@@ -39,6 +39,9 @@ void LinkUI::on_pushButton_Add_clicked()
connect(connectdialog,SIGNAL(connectSignal(QVariant,QVariant,QVariant,QVariant,QVariant,QVariant,QVariant,QVariant)),
this,SIGNAL(connectSignal(QVariant,QVariant,QVariant,QVariant,QVariant,QVariant,QVariant,QVariant)));
connect(this,SIGNAL(PortConnect(QVariant,QVariant,QVariant,QVariant,QVariant,QVariant,QVariant,QVariant)),
connectdialog,SLOT(PortConnected(QVariant,QVariant,QVariant,QVariant,QVariant,QVariant,QVariant,QVariant)));
int index = ui->tabWidget->insertTab(ui->tabWidget->currentIndex(),connectdialog,tr("SerialPort"));
ui->tabWidget->setCurrentIndex(index);
+6
View File
@@ -33,6 +33,12 @@ signals:
QVariant m_Param3,QVariant m_Param4,
QVariant m_Param5);
void PortConnect(QVariant m_state,
QVariant m_usrName,QVariant m_Type,
QVariant m_Param1,QVariant m_Param2,
QVariant m_Param3,QVariant m_Param4,
QVariant m_Param5);
private slots: