From c9186dfc12cbfc1958a0cd9c931cb67a6907250f Mon Sep 17 00:00:00 2001 From: YuanHongbin <975559679@qq.com> Date: Wed, 24 Jun 2026 15:58:48 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84Lora=E4=BF=A1=E9=81=93?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=92=8C=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8C=87?= =?UTF-8?q?=E4=BB=A4=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gateway_config.py | 105 +++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 58 deletions(-) diff --git a/gateway_config.py b/gateway_config.py index e8a1281..4d15346 100644 --- a/gateway_config.py +++ b/gateway_config.py @@ -71,8 +71,8 @@ class GatewayConfigTool(QMainWindow): def init_ui(self): self.setWindowTitle("网关配置工具") self.setWindowIcon(QIcon(resource_path("物联网网关.png"))) - self.setMinimumSize(800, 800) - self.resize(800, 800) + self.setMinimumSize(1000, 850) + self.resize(1000, 850) central = QWidget() self.setCentralWidget(central) @@ -314,72 +314,43 @@ class GatewayConfigTool(QMainWindow): config_layout.addWidget(eth_group) - # Lora参数 + 自定义指令(一行) - bottom_row = QHBoxLayout() - bottom_row.setSpacing(4) + # Lora信道配置(独立区块,类似ETH参数) + lora_group = QGroupBox("Lora信道配置") + lora_layout = QHBoxLayout(lora_group) + lora_layout.setSpacing(6) - bottom_row.addWidget(QLabel("Lora频率:")) + lora_layout.addWidget(QLabel("信道:")) self.combo_lora_fc = QComboBox() - self.combo_lora_fc.setFixedWidth(120) - lora_freqs = [ - ("433100000", "信道1: 433.1M"), - ("433300000", "信道2: 433.3M"), - ("433500000", "信道3: 433.5M"), - ("433700000", "信道4: 433.7M"), - ("433900000", "信道5: 433.9M"), - ("434100000", "信道6: 434.1M"), - ("434300000", "信道7: 434.3M"), - ("434500000", "信道8: 434.5M"), - ("434700000", "信道9: 434.7M"), - ("434900000", "信道10: 434.9M"), - ("435100000", "信道11: 435.1M"), - ("435300000", "信道12: 435.3M"), - ("435500000", "信道13: 435.5M"), - ("435700000", "信道14: 435.7M"), - ("435900000", "信道15: 435.9M"), - ("436100000", "信道16: 436.1M"), - ("436300000", "信道17: 436.3M"), - ("436500000", "信道18: 436.5M"), - ("436700000", "信道19: 436.7M"), - ("436900000", "信道20: 436.9M"), - ("437100000", "信道21: 437.1M"), - ("437300000", "信道22: 437.3M"), - ("437500000", "信道23: 437.5M"), - ("437700000", "信道24: 437.7M"), - ("437900000", "信道25: 437.9M"), - ("438100000", "信道26: 438.1M"), - ("438300000", "信道27: 438.3M"), - ("438500000", "信道28: 438.5M"), - ("438700000", "信道29: 438.7M"), - ("438900000", "信道30: 438.9M"), - ("439100000", "信道31: 439.1M"), - ("439300000", "信道32: 439.3M"), - ] + self.combo_lora_fc.setSizeAdjustPolicy(QComboBox.AdjustToMinimumContentsLengthWithIcon) + lora_freqs = [] + fc_hz = 410100000 + ch_idx = 1 + while fc_hz < 525000000: + mhz = fc_hz / 1000000 + lora_freqs.append((str(fc_hz), f"信道{ch_idx}: {mhz:.1f}MHz")) + fc_hz += 200000 + ch_idx += 1 for freq, desc in lora_freqs: self.combo_lora_fc.addItem(desc, freq) - bottom_row.addWidget(self.combo_lora_fc) + self.combo_lora_fc.view().setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn) + self.combo_lora_fc.view().setMinimumHeight(200) + lora_layout.addWidget(self.combo_lora_fc, 1) + self.btn_lora_fc = QPushButton("发送") - self.btn_lora_fc.setFixedWidth(50) + self.btn_lora_fc.setFixedWidth(60) + self.btn_lora_fc.setStyleSheet("font-weight:bold;") self.btn_lora_fc.clicked.connect(self.on_lora_send) - bottom_row.addWidget(self.btn_lora_fc) + lora_layout.addWidget(self.btn_lora_fc) - bottom_row.addSpacing(10) - bottom_row.addWidget(QLabel("自定义:")) - self.edit_custom = QLineEdit() - self.edit_custom.setPlaceholderText("输入指令...") - self.edit_custom.returnPressed.connect(self.send_custom_command) - bottom_row.addWidget(self.edit_custom) - self.btn_custom_send = QPushButton("发送") - self.btn_custom_send.clicked.connect(self.send_custom_command) - bottom_row.addWidget(self.btn_custom_send) + config_layout.addWidget(lora_group) - config_layout.addLayout(bottom_row) - - # -- 下方:日志区 -- + # -- 下方:日志区 + 自定义指令 -- log_widget = QWidget() - log_layout = QVBoxLayout(log_widget) + log_layout = QHBoxLayout(log_widget) log_layout.setContentsMargins(0, 0, 0, 0) + log_layout.setSpacing(4) + # 左侧:通讯日志 log_group = QGroupBox("通讯日志") log_inner = QVBoxLayout(log_group) @@ -398,7 +369,25 @@ class GatewayConfigTool(QMainWindow): log_btn_layout.addStretch() log_inner.addLayout(log_btn_layout) - log_layout.addWidget(log_group) + # 右侧:自定义指令 + custom_group = QGroupBox("自定义指令") + custom_inner = QVBoxLayout(custom_group) + custom_inner.setSpacing(6) + + custom_inner.addWidget(QLabel("指令:")) + self.edit_custom = QLineEdit() + self.edit_custom.setPlaceholderText("输入指令...") + self.edit_custom.returnPressed.connect(self.send_custom_command) + custom_inner.addWidget(self.edit_custom) + + self.btn_custom_send = QPushButton("发送") + self.btn_custom_send.setStyleSheet("font-weight:bold;") + self.btn_custom_send.clicked.connect(self.send_custom_command) + custom_inner.addWidget(self.btn_custom_send) + custom_inner.addStretch() + + log_layout.addWidget(log_group, 4) + log_layout.addWidget(custom_group, 1) splitter.addWidget(config_widget) splitter.addWidget(log_widget)