From 3e3e0b6e8a3a8bf272a9f10df496d25c3f79f35e Mon Sep 17 00:00:00 2001 From: "ZTZHANG\\ztzhang" Date: Fri, 25 Jul 2025 09:58:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=8F=AF=E7=94=A8=E4=B8=B2?= =?UTF-8?q?=E5=8F=A3=E4=B8=8B=E6=8B=89=E6=A1=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Modbus/Modbus.vcxproj | 3 +++ Modbus/Modbus.vcxproj.filters | 5 +++++ Modbus/include/modbus.h | 7 +++++++ Modbus/src/modbus.cpp | 28 ++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+) diff --git a/Modbus/Modbus.vcxproj b/Modbus/Modbus.vcxproj index 2f67d67..22dd846 100644 --- a/Modbus/Modbus.vcxproj +++ b/Modbus/Modbus.vcxproj @@ -100,6 +100,9 @@ + + + diff --git a/Modbus/Modbus.vcxproj.filters b/Modbus/Modbus.vcxproj.filters index 745d07f..dd1f0cd 100644 --- a/Modbus/Modbus.vcxproj.filters +++ b/Modbus/Modbus.vcxproj.filters @@ -47,4 +47,9 @@ Source Files + + + Header Files + + \ No newline at end of file diff --git a/Modbus/include/modbus.h b/Modbus/include/modbus.h index 8569933..6a6e681 100644 --- a/Modbus/include/modbus.h +++ b/Modbus/include/modbus.h @@ -19,6 +19,13 @@ public: Modbus(QWidget *parent = nullptr); ~Modbus(); + QStringList get_avail_serialport(); + +public slots: + // 显示可用串口 + void init_serialport_client(); + + private: Ui::ModbusClass *ui; }; diff --git a/Modbus/src/modbus.cpp b/Modbus/src/modbus.cpp index c5b6dfe..45e92b4 100644 --- a/Modbus/src/modbus.cpp +++ b/Modbus/src/modbus.cpp @@ -5,6 +5,7 @@ Modbus::Modbus(QWidget *parent) , ui(new Ui::ModbusClass()) { ui->setupUi(this); + init_serialport_client(); } Modbus::~Modbus() @@ -12,3 +13,30 @@ Modbus::~Modbus() delete ui; } +// 实现下拉框显示串口 +void Modbus::init_serialport_client() +{ + ui->serialBox->addItems(get_avail_serialport()); +} + +// 下拉框获取信息 +QStringList Modbus::get_avail_serialport() +{ + // 下拉框串口 + QStringList list_avail_serialport; + + // 遍历可用串口 + foreach(const QSerialPortInfo & info, QSerialPortInfo::availablePorts()) + { + // 串口 + QSerialPort serial; + serial.setPort(info); + // 显示串口名 + if (serial.open(QIODevice::ReadWrite)) + { + list_avail_serialport.append(serial.portName()); + serial.close(); + } + } + return list_avail_serialport; +}