1#include <QLoggingCategory>
2#include <QSerialPortInfo>
3#include "ParameterPlugin.h"
4#include "DlgSettingsSerialPort.h"
5#include "ui_DlgSettingsSerialPort.h"
7static Q_LOGGING_CATEGORY(log,
"SerialPort.Dlg")
17 if(m_pFrmParaAppearnce) {
18 m_pFrmParaAppearnce->SetParameter(&m_pPara->m_Terminal);
19 ui->tabWidget->addTab(m_pFrmParaAppearnce,
20 m_pFrmParaAppearnce->windowTitle());
23 ui->leName->setText(m_pPara->GetName());
24 foreach (
const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
42 szPort = info.portName();
48 ui->cbSerialPort->addItem(szPort);
50 int nSerialPort = m_pPara->GetSerialPort();
52 if(-1 < nSerialPort && nSerialPort < ui->cbSerialPort->count()) {
53 ui->cbSerialPort->setCurrentIndex(nSerialPort);
55 if(-1 != ui->cbSerialPort->currentIndex())
56 info = QSerialPortInfo::availablePorts().at(ui->cbSerialPort->currentIndex());
57 QSerialPort serialPort(info);
59 if(!m_pPara->GetSerialPortName().isEmpty()
60 && ui->cbSerialPort->currentText() != m_pPara->GetSerialPortName()) {
61 ui->cbSerialPort->setCurrentText(m_pPara->GetSerialPortName());
62 serialPort.setPortName(m_pPara->GetSerialPortName());
65 foreach(
const qint32 &baudRate, QSerialPortInfo::standardBaudRates())
67 ui->cbBaudRate->addItem(QString::number(baudRate));
71 szBaudRate = QString::number(serialPort.baudRate());
73 szBaudRate = QString::number(m_pPara->GetBaudRate());
74 ui->cbBaudRate->setCurrentText(szBaudRate);
76 ui->cbDataBits->addItem(
"8", QSerialPort::DataBits::Data8);
77 ui->cbDataBits->addItem(
"7", QSerialPort::DataBits::Data7);
78 ui->cbDataBits->addItem(
"6", QSerialPort::DataBits::Data6);
79 ui->cbDataBits->addItem(
"5", QSerialPort::DataBits::Data5);
80 QSerialPort::DataBits dataBits;
82 dataBits = serialPort.dataBits();
84 dataBits = m_pPara->GetDataBits();
85 int nIndex = ui->cbDataBits->findData(dataBits);
86 ui->cbDataBits->setCurrentIndex(nIndex);
88 ui->cbParity->addItem(tr(
"None"), QSerialPort::Parity::NoParity);
89 ui->cbParity->addItem(tr(
"Even"), QSerialPort::Parity::EvenParity);
90 ui->cbParity->addItem(tr(
"Odd"), QSerialPort::Parity::OddParity);
91 ui->cbParity->addItem(tr(
"Space"), QSerialPort::Parity::SpaceParity);
92 ui->cbParity->addItem(tr(
"Mark"), QSerialPort::Parity::MarkParity);
93 QSerialPort::Parity parity;
95 parity = serialPort.parity();
97 parity = m_pPara->GetParity();
98 nIndex = ui->cbParity->findData(parity);
99 ui->cbParity->setCurrentIndex(nIndex);
101 ui->cbStopBits->addItem(
"1", QSerialPort::StopBits::OneStop);
102 ui->cbStopBits->addItem(
"1.5", QSerialPort::StopBits::OneAndHalfStop);
103 ui->cbStopBits->addItem(
"2", QSerialPort::StopBits::TwoStop);
104 QSerialPort::StopBits stopBits;
105 if(-1 == nSerialPort)
106 stopBits = serialPort.stopBits();
108 stopBits = m_pPara->GetStopBits();
109 nIndex = ui->cbStopBits->findData(stopBits);
110 ui->cbStopBits->setCurrentIndex(nIndex);
112 ui->cbFlowControl->addItem(tr(
"None"), QSerialPort::FlowControl::NoFlowControl);
113 ui->cbFlowControl->addItem(tr(
"HardWare"), QSerialPort::FlowControl::HardwareControl);
114 ui->cbFlowControl->addItem(tr(
"SoftWare"), QSerialPort::FlowControl::SoftwareControl);
115 QSerialPort::FlowControl flowControl;
116 if(-1 == nSerialPort)
117 flowControl = serialPort.flowControl();
119 flowControl = m_pPara->GetFlowControl();
120 nIndex = ui->cbFlowControl->findData(flowControl);
121 ui->cbFlowControl->setCurrentIndex(nIndex);
124CDlgSettingsSerialPort::~CDlgSettingsSerialPort()
129void CDlgSettingsSerialPort::accept()
131 if(m_pFrmParaAppearnce)
132 m_pFrmParaAppearnce->
Accept();
134 m_pPara->SetName(ui->leName->text());
135 m_pPara->SetSerialPort(ui->cbSerialPort->currentIndex());
136 m_pPara->SetSerialPortName(ui->cbSerialPort->currentText());
137 m_pPara->SetBaudRate(ui->cbBaudRate->currentText().toInt());
138 m_pPara->SetParity((QSerialPort::Parity)ui->cbParity->currentData().toInt());
139 m_pPara->SetDataBits((QSerialPort::DataBits)ui->cbDataBits->currentData().toInt());
140 m_pPara->SetStopBits((QSerialPort::StopBits)ui->cbStopBits->currentData().toInt());
141 m_pPara->SetFlowControl((QSerialPort::FlowControl)ui->cbFlowControl->currentData().toInt());
virtual int Accept() override
Accept parameters.