网站制作 招聘建盏世家直播

当前位置: 首页 > news >正文

网站制作 招聘,建盏世家直播,公司简介英语作文,海口网站建设方面文章目录 Qt QSerialPort数据发送和接收DataComm2.添加 Qt Serial Port 模块3.实例源码 Qt QSerialPort数据发送和接收DataComm Qt 框架的Qt Serial Port 模块提供了访问串口的基本功能#xff0c;包括串口通信参数配置和数据读写#xff0c;使用 Qt Serial Port 模块就可以… 文章目录 Qt QSerialPort数据发送和接收DataComm2.添加 Qt Serial Port 模块3.实例源码 Qt QSerialPort数据发送和接收DataComm Qt 框架的Qt Serial Port 模块提供了访问串口的基本功能包括串口通信参数配置和数据读写使用 Qt Serial Port 模块就可以很方便地编写具有串口通信功能的应用程序。 ‌创建一个基于QMainWindow应用程序
2.添加 Qt Serial Port 模块 Qt Serial Port 模块用于串口通信编程要在一个项目中使用 Qt Serial Port 模块需要在项目配置文件中加入一行语句QT serialport Qt Serial Port 模块中只包含有两个类QSerialPortInfo 和 QSerialPort。 3.实例源码 头文件datacomm.h #ifndef DATACOMM_H #define DATACOMM_H#include QMainWindow #include QSerialPort #include QSerialPortInfo #include QTimerQT_BEGIN_NAMESPACE namespace Ui { class DataComm; } QT_END_NAMESPACEclass DataComm : public QMainWindow {Q_OBJECTpublic:DataComm(QWidget *parent nullptr);~DataComm(); private slots:void clear_recv();void clear_send();void on_com_recv();void on_com_send();void on_com_open();void on_com_changed(int index);void on_timeout();void on_check_state_changed(int);void get_interval(); private:void send();Ui::DataComm *ui;QSerialPort comPort;bool bCircle;int interval;QTimer *timer;QByteArray stdCmd;QString strCmd; }; #endif // DATACOMM_H 源文件datacomm.cpp #include datacomm.h #include ui_datacomm.h #include QMessageBoxDataComm::DataComm(QWidget *parent): QMainWindow(parent), ui(new Ui::DataComm) {ui-setupUi(this);foreach (QSerialPortInfo portInfo, QSerialPortInfo::availablePorts()) {ui-comboBoxPort-addItem(portInfo.portName());}ui-comboBoxPort-setCurrentIndex(2);connect(ui-comboBoxPort,SIGNAL(currentIndexChanged(int)),this,SLOT(on_com_changed(int)));ui-pushButtonOpen-setEnabled(ui-comboBoxPort-count()0);ui-pushButtonSend-setEnabled(false);connect(ui-pushButtonOpen,SIGNAL(clicked()),this,SLOT(on_com_open()));connect(ui-pushButtonSend,SIGNAL(clicked()),this,SLOT(on_com_send()));ui-comboBoxBaud-clear();foreach (qint32 baud, QSerialPortInfo::standardBaudRates()) {ui-comboBoxBaud-addItem(QString::number(baud));}ui-comboBoxBaud-setCurrentText(9600);ui-comboBoxCheck-addItem(NONE);ui-comboBoxCheck-addItem(ODD);ui-comboBoxCheck-addItem(EVEN);ui-comboBoxCheck-addItem(SPACE);ui-comboBoxCheck-addItem(MARK);ui-comboBoxFlowCtrl-addItem(NONE);ui-comboBoxFlowCtrl-addItem(HARD);ui-comboBoxFlowCtrl-addItem(SOFT);ui-comboBoxDataBit-addItem(5);ui-comboBoxDataBit-addItem(6);ui-comboBoxDataBit-addItem(7);ui-comboBoxDataBit-addItem(8);ui-comboBoxDataBit-setCurrentText(8);ui-comboBoxStopBit-addItem(1);ui-comboBoxStopBit-addItem(1.5);ui-comboBoxStopBit-addItem(2);timer new QTimer(this);ui-lineEditTime-setText(1000);interval 1000;connect(ui-pushButtonClearRecv,QPushButton::clicked,this,DataComm::clear_recv);connect(ui-pushButtonClearSend,QPushButton::clicked,this,DataComm::clear_send);connect(timer,QTimer::timeout,this,DataComm::on_timeout);connect(ui-lineEditTime,QLineEdit::textChanged,this,DataComm::get_interval);connect(comPort,QIODevice::readyRead,this,DataComm::on_com_recv);connect(ui-checkBoxCircle,QCheckBox::stateChanged,this,DataComm::on_check_state_changed);resize(800,600); }DataComm::~DataComm() {delete ui; }void DataComm::clear_recv() {ui-plainTextEditRecv-clear(); }void DataComm::clear_send() {ui-plainTextEditSend-clear(); } void DataComm::on_com_open() {if(comPort.isOpen()) {comPort.close();ui-comboBoxPort-setEnabled(true);ui-comboBoxBaud-setEnabled(true);ui-comboBoxCheck-setEnabled(true);ui-comboBoxDataBit-setEnabled(true);ui-comboBoxStopBit-setEnabled(true);ui-comboBoxFlowCtrl-setEnabled(true);ui-pushButtonSend-setEnabled(false);ui-pushButtonOpen-setText(打开);}else {int index ui-comboBoxPort-currentIndex();QListQSerialPortInfo comList QSerialPortInfo::availablePorts();QSerialPortInfo portInfo comList.at(index);comPort.setPort(portInfo);comPort.setReadBufferSize(2048);comPort.setBaudRate(ui-comboBoxBaud-currentText().toInt());int value ui-comboBoxDataBit-currentText().toInt();comPort.setDataBits(QSerialPort::DataBits(value));value ui-comboBoxCheck-currentText().toInt();if(value ! 0) {value ;}comPort.setParity(QSerialPort::Parity(value));value ui-comboBoxStopBit-currentText().toInt();comPort.setStopBits(QSerialPort::StopBits(value));value ui-comboBoxFlowCtrl-currentText().toInt();comPort.setFlowControl(QSerialPort::FlowControl(value));if(comPort.open(QIODevice::ReadWrite)) {ui-comboBoxPort-setEnabled(false);ui-comboBoxBaud-setEnabled(false);ui-comboBoxCheck-setEnabled(false);ui-comboBoxDataBit-setEnabled(false);ui-comboBoxStopBit-setEnabled(false);ui-comboBoxFlowCtrl-setEnabled(false);ui-pushButtonSend-setEnabled(true);ui-pushButtonOpen-setText(关闭);}} }void DataComm::get_interval() {int val ui-lineEditTime-text().toInt();if(val 0) {interval val;}else {ui-lineEditTime-setText(QString::number(interval));} }void DataComm::on_check_state_changed(int) {bCircle ui-checkBoxCircle-isChecked();if(!bCircle) {if(timer-isActive()) {timer-stop();ui-pushButtonSend-setEnabled(true);}} } void DataComm::send() {ui-plainTextEditRecv-appendPlainText(Tx: strCmd );comPort.write((const QByteArray )stdCmd); }void DataComm::on_com_send() {strCmd ui-plainTextEditSend-toPlainText();if(strCmd.isEmpty()) {QMessageBox::information(this,tr(发送内容为空),tr(发送内容为空));return;}QByteArray ba QByteArray (strCmd.toUtf8());stdCmd ba;send();bCircle ui-checkBoxCircle-isChecked();if(bCircle) {ui-pushButtonSend-setEnabled(false);timer-start(interval);} }void DataComm::on_timeout() {send(); }void DataComm::on_com_recv() {if(comPort.bytesAvailable()) {comPort.waitForReadyRead(100);QByteArray all comPort.read(1024);QString str(all);if(!str.isEmpty()){ui-plainTextEditRecv-appendPlainText(Rx: str );}} }void DataComm::on_comchanged(int index) {}源文件main.cpp #include datacomm.h#include QApplication #include QLocale #include QTranslatorint main(int argc, char *argv[]) {QApplication a(argc, argv);QTranslator translator;const QStringList uiLanguages QLocale::system().uiLanguages();for (const QString locale : uiLanguages) {const QString baseName DataCom QLocale(locale).name();if (translator.load(:/i18n/ baseName)) {a.installTranslator(translator);break;}}DataComm w;w.show();return a.exec(); } nguages) { const QString baseName “DataCom_” QLocale(locale).name(); if (translator.load(“:/i18n/” baseName)) { a.installTranslator(translator); break; } } DataComm w; w.show(); return a.exec(); }