修正连接界面
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user