1 #include "serial.h" 2 #include "ui_serial.h" 3 4 Serial::Serial(QWidget *parent) : 5 QMainWindow(parent), 6 ui(new Ui::Serial) 7 { 8 ui->setupUi(this); 9 10 system_init(); 11 } 12 13 Serial::~Serial() 14 { 15 delete ui; 16 } 17 18
21 void Serial::system_init() 22 { 23 24 global_port.setParity(QSerialPort::NoParity); 25 global_port.setDataBits(QSerialPort::Data8); 26 global_port.setStopBits(QSerialPort::OneStop); 27 28 29 connect(ui->btn_open,&QPushButton::clicked,this,&Serial::btn_open_port); 30 connect(ui->btn_close,&QPushButton::clicked,this,&Serial::btn_close_port); 31 connect(ui->btn_send,&QPushButton::clicked,this,&Serial::btn_send_data); 32 connect(&global_port,&QSerialPort::readyRead,this,&Serial::receive_data); 33 } 34
37 void Serial::btn_open_port(bool) 38 { 39 40 qDebug()<<ui->cmb_port_name->currentIndex(); 41 42 43 switch (ui->cmb_port_name->currentIndex()) { 44 case 0: 45 global_port.setPortName("COM1"); 46 break; 47 case 1: 48 global_port.setPortName("COM2"); 49 break; 50 case 2: 51 global_port.setPortName("COM3"); 52 break; 53 case 3: 54 global_port.setPortName("COM4"); 55 break; 56 case 4: 57 global_port.setPortName("COM5"); 58 break; 59 case 5: 60 global_port.setPortName("COM6"); 61 break; 62 case 6: 63 global_port.setPortName("COM7"); 64 break; 65 default: 66 global_port.setPortName("COM8"); 67 break; 68 } 69 70 switch (ui->cmb_baud_rate->currentIndex()) { 71 case 0: 72 global_port.setBaudRate(QSerialPort::Baud115200); 73 break; 74 case 1: 75 global_port.setBaudRate(QSerialPort::Baud57600); 76 break; 77 case 2: 78 global_port.setBaudRate(QSerialPort::Baud38400); 79 break; 80 case 3: 81 global_port.setBaudRate(QSerialPort::Baud19200); 82 break; 83 case 4: 84 global_port.setBaudRate(QSerialPort::Baud9600); 85 break; 86 case 5: 87 global_port.setBaudRate(QSerialPort::Baud4800); 88 break; 89 case 6: 90 global_port.setBaudRate(QSerialPort::Baud2400); 91 break; 92 default: 93 global_port.setBaudRate(QSerialPort::Baud1200); 94 break; 95 } 96 97 global_port.open(QIODevice::ReadWrite); 98 ui->lab_status->setText("Connected"); 99 100 101 } 102 void Serial::btn_close_port(bool) 103 { 104 ui->lab_status->setText("Disconnected"); 105 global_port.close(); 106 } 107 108 void Serial::btn_send_data(bool) 109 { 110 QString data = ui->lint_send_data->text(); 111 QByteArray array = data.toLatin1(); 112 global_port.write(array); 113 } 114 115 void Serial::receive_data() 116 { 117 QByteArray array = global_port.readAll(); 118 qDebug()<<array; 119 if(ui->checkBox->checkState() == Qt::Checked){ 120 ui->plainTextEdit->insertPlainText(QString(array.toHex(' ').toUpper().append(' '))); 121 }else { 122 ui->plainTextEdit->insertPlainText(QString(array)); 123 } 124 }
|