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;
+}