1. 程式人生 > 實用技巧 >QT串列埠助手

QT串列埠助手

//mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QPushButton> #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); //begin system_init(); } MainWindow::~MainWindow() {
delete ui; } void MainWindow::system_init(){ //port config Open button global_port.setParity(QSerialPort::NoParity); global_port.setDataBits(QSerialPort::Data8); global_port.setStopBits(QSerialPort::OneStop); //connect connect(ui->btn_open,&QPushButton::clicked,[=](){ emit btn_open_port(); });
//send data connect(ui->btn_send,&QPushButton::clicked,[=](){ emit btn_send_data(); }); //connect receive connect(&global_port,&QSerialPort::readyRead,this,&MainWindow::receive_data); } void MainWindow::btn_open_port(){ qDebug()<<"emit signal!"; /*--------------------portname---------
*/ qDebug()<<ui->cmb_port_name->currentIndex();//0 switch (ui->cmb_port_name->currentIndex()) { case 0: //設定為com0 { global_port.setPortName("COM1"); break; } case 1: //設定為com0 { global_port.setPortName("COM2"); break; } case 2: //設定為com0 { global_port.setPortName("COM3"); break; } case 3: //設定為com0 { global_port.setPortName("COM4"); break; } case 4: //設定為com0 { global_port.setPortName("COM5"); break; } case 5: //設定為com0 { global_port.setPortName("COM6"); break; } case 6: //設定為com0 { global_port.setPortName("COM7"); break; } case 7: //設定為com0 { global_port.setPortName("COM8"); break; } default: break; } /*-------------baud rate----------------*/ switch(ui->cmb_rate->currentIndex()){ case 0: { global_port.setBaudRate(QSerialPort::Baud115200); break; } case 1: { global_port.setBaudRate(QSerialPort::Baud57600); break; } case 2: { global_port.setBaudRate(QSerialPort::Baud38400); break; } case 3: { global_port.setBaudRate(QSerialPort::Baud19200); break; } case 4: { global_port.setBaudRate(QSerialPort::Baud9600); break; } case 5: { global_port.setBaudRate(QSerialPort::Baud4800); break; } case 6: { global_port.setBaudRate(QSerialPort::Baud2400); break; } case 7: { global_port.setBaudRate(QSerialPort::Baud1200); break; } default: { global_port.setBaudRate(QSerialPort::Baud1200); break; } } //open port global_port.open(QIODevice::ReadWrite); ui->label->setText("Connected!"); //test //global_port.write("1"); qDebug()<<"emit signal Done!"; } void MainWindow::btn_send_data(){ QString a = ui->sendEdit->text(); // QString *b; // b =&a; // const char *data QByteArray array = a.toUtf8(); // QByteArray array1 = *b->toLatin1(); global_port.write(array); } void MainWindow::receive_data(){ QByteArray arr = global_port.readAll(); qDebug()<<arr; ui->plainTextEdit->insertPlainText(QString(arr)); } void MainWindow::on_cmb_close_clicked() { global_port.close(); ui->label->setText("Disconnected!"); qDebug()<<"close!"; }