new frame gcs

This commit is contained in:
hm
2019-12-25 10:53:19 +08:00
commit 3ad2850e79
45 changed files with 3646 additions and 0 deletions
+152
View File
@@ -0,0 +1,152 @@
#include "SerialPortDialog.h"
#include "ui_SerialPortDialog.h"
#include "QDebug"
SerialPortDialog::SerialPortDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::SerialPortDialog)
{
ui->setupUi(this);
serialInfo = new QSerialPortInfo();
}
SerialPortDialog::~SerialPortDialog()
{
delete serialInfo;
delete ui;
}
int SerialPortDialog::exec()
{
QString checkbusy;
foreach(QSerialPortInfo info, serialInfo->availablePorts())
{
ui->combox_local->addItem(info.portName());
}
foreach(QSerialPortInfo info, serialInfo->availablePorts())
{
if(info.portName() == ui->combox_local->currentText())
{
ui->buttonBox->setDisabled(false);
if(info.isBusy())
{
checkbusy.append(tr("this port is busy now\n"));
ui->buttonBox->setDisabled(true);
}
else checkbusy = "";
ui->label_view->setText(checkbusy + info.description());
}
}
//检查如果存在上传连接的串口,那么就设置为当前默认的串口,如果不存在,那么就不设置默认串口
//IniFile *ini = new IniFile();
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)
{
ui->combox_local->setCurrentIndex(ui->combox_local->findText(LastPortName));
baudrate = configIni->value("/"+tiltle+"/BaudRate").toInt();
parity = (QSerialPort::Parity)configIni->value("/"+tiltle+"/Parity").toInt();
ui->buttonBox->setDisabled(false);
if(info.isBusy())
{
ui->buttonBox->setDisabled(true);
}
break;
}
else
{
ui->combox_local->setCurrentIndex(-1);
}
}
ui->lineEdit_baudrate->setText(QString("%1").arg(baudrate));
switch (parity)
{
case QSerialPort::EvenParity:
ui->comboBox_parity->setCurrentIndex(2);
break;
case QSerialPort::OddParity:
ui->comboBox_parity->setCurrentIndex(1);
break;
default:
ui->comboBox_parity->setCurrentIndex(0);
}
delete configIni;
return QDialog::exec();
}
void SerialPortDialog::accept()
{
QDialog::accept();
port = ui->combox_local->currentText();
baudrate = ui->lineEdit_baudrate->text().toInt();
switch (ui->comboBox_parity->currentIndex())
{
case 1:
parity = QSerialPort::OddParity;
break;
case 2:
parity = QSerialPort::EvenParity;
break;
default:
parity = QSerialPort::NoParity;
}
QString tiltle = this->windowTitle();
tiltle = tiltle.simplified();
tiltle = tiltle.replace(" ","");
QSettings *configIni = new QSettings("./connetconfig.ini", QSettings::IniFormat);
configIni->setValue("/"+tiltle+"/Port",port);
configIni->setValue("/"+tiltle+"/BaudRate",QString::number(baudrate));
configIni->setValue("/"+tiltle+"/Parity",QString::number(parity));
delete configIni;
}
void SerialPortDialog::reject()
{
QDialog::reject();
}
void SerialPortDialog::on_combox_local_currentIndexChanged(const QString &arg1)
{
QString str,checkbusy;
foreach(QSerialPortInfo info, serialInfo->availablePorts())
{
if(info.portName() == arg1)
{
ui->buttonBox->setDisabled(false);
if(info.isBusy())
{
checkbusy.append(tr("this port is busy now\n"));
ui->buttonBox->setDisabled(true);
}
str = info.description();
}
}
ui->label_view->setText(checkbusy + str);
}