|
- #include "widget.h"
- #include "ui_widget.h"
- #include <QSerialPortInfo>
- #include <QDebug>
- #include <QSerialPort>
- #include <QByteArray>
-
- Widget::Widget(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::Widget)
- {
- ui->setupUi(this);
- serialPort = new QSerialPort(this);
-
- connect(serialPort,&QSerialPort::readyRead,this,&Widget::on_SerialData_ReadyToRead);
-
- ui->comboBox_baudRate->setCurrentIndex(3);
- ui->comboBox_dataBit->setCurrentIndex(3);
- ui->comboBox_xiaoyan->setCurrentIndex(2);
-
- QList<QSerialPortInfo> serialList = QSerialPortInfo::availablePorts();
- for(QSerialPortInfo serialInfo : serialList)
- {
- ui->comboBox_serialNum->addItem(serialInfo.portName());
- }
- }
-
- Widget::~Widget()
- {
- delete ui;
- }
-
- void Widget::on_btnConnect_clicked()
- {
- if (ui->btnConnect->text() == "连接")
- {
- //配置串口号
- serialPort->setPortName(ui->comboBox_serialNum->currentText());
- //配置波特率
- serialPort->setBaudRate(ui->comboBox_baudRate->currentText().toInt());
- //配置数据位
- serialPort->setDataBits(QSerialPort::DataBits(ui->comboBox_dataBit->currentText().toInt()));
- //配置校验位
- switch (ui->comboBox_xiaoyan->currentIndex())
- {
- case 0:
- serialPort->setParity(QSerialPort::NoParity);
- break;
- case 1:
- serialPort->setParity(QSerialPort::OddParity);
- break;
- case 2:
- serialPort->setParity(QSerialPort::EvenParity);
- }
- //配置停止位
- serialPort->setStopBits(QSerialPort::StopBits(ui->comboBox_stopBit->currentText().toInt()));
- //打开串口
- if (serialPort->open(QIODevice::ReadWrite))
- {
- qDebug() << "Serial open success";
- ui->btnConnect->setText("断开");
- }
- else
- {
- qDebug() << "error";
- }
- }
- else
- {
- serialPort->close();
- ui->btnConnect->setText("连接");
- }
-
- }
-
- void Widget::on_pushWrite_clicked()
- {
- const char *sendData = ui->lineEdit->text().toStdString().c_str();
- serialPort->write(sendData);
- qDebug() << "SenOk" <<sendData;
- }
-
- void Widget::on_SerialData_ReadyToRead()
- {
- QByteArray revMessage = serialPort->readAll();
- QString hexData = revMessage.toHex().toUpper();
- qDebug() << hexData;
- ui->textEdit->append(hexData);
-
- }
|