From c824caa27e08ae1bb1822ed2bf6d4f3092039b62 Mon Sep 17 00:00:00 2001 From: zhaojingkui <1553836110@qq.com> Date: Tue, 21 Jan 2025 21:21:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86disSys=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81,=E5=A2=9E=E5=8A=A0=E4=BA=8616=E8=BF=9B?= =?UTF-8?q?=E5=88=B6=E6=98=BE=E7=A4=BA=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/scripts/disSys.py | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/test/scripts/disSys.py b/test/scripts/disSys.py index cb3a18d..a884531 100644 --- a/test/scripts/disSys.py +++ b/test/scripts/disSys.py @@ -215,15 +215,25 @@ class disSys(Frame): print(self.checkboxes[i][j].cget("text"),self.checkboxesVar[i][j].get()) # print(self.checkboxesVar[i][j].get()) + def toggle_hex_mode(self): + """切换16进制显示模式""" + self.hex_mode = not self.hex_mode + self.update_currentState() + def update_currentState(self): # 更新所有数值显示 for struct, name, entry in self.state_entries: # 获取最新值 - value = str(getattr(struct, name)) + value = getattr(struct, name) + # 根据显示模式格式化值 + if self.hex_mode and isinstance(value, int): + display_value = f"0x{value:02X}" + else: + display_value = str(value) # 更新entry显示 entry.config(state='normal') entry.delete(0, tk.END) - entry.insert(0, value) + entry.insert(0, display_value) entry.config(state='readonly') print('电路状态已更新') @@ -288,6 +298,9 @@ class disSys(Frame): self.currentStateWin.minsize(1000, 600) self.currentStateWin.protocol("WM_DELETE_WINDOW", self.on_close_currentState) + # 初始化16进制显示模式 + self.hex_mode = False + # 创建主容器 main_frame = tk.Frame(self.currentStateWin) main_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10) @@ -319,8 +332,12 @@ class disSys(Frame): # 添加更新按钮 update_btn = tk.Button(btn_frame, text="立即更新", font=state_font, command=self.update_currentState) - update_btn.pack(fill=tk.X, padx=5, pady=5) - # update_btn.pack(side=tk.LEFT, padx=5) + update_btn.pack(side=tk.LEFT, padx=5) + + # 添加16进制显示切换按钮 + hex_btn = tk.Button(btn_frame, text="16进制显示", font=state_font, + command=self.toggle_hex_mode) + hex_btn.pack(side=tk.LEFT, padx=5) # 启动定时更新 self.update_interval = 1000 # 1秒 @@ -334,7 +351,7 @@ class disSys(Frame): def start_update_data(self): """启动数据更新定时器""" - self.update_data_job = self.root.after(1000, self._update_data_loop) + self.update_data_job = self.root.after(500, self._update_data_loop) def stop_update_data(self): """停止数据更新定时器""" @@ -345,13 +362,14 @@ class disSys(Frame): def _update_data_loop(self): """定时更新数据""" self.updata_data() - self.update_data_job = self.root.after(1000, self._update_data_loop) + self.update_data_job = self.root.after(500, self._update_data_loop) def schedule_update(self): """安排定时更新""" self.update_currentState() self.update_job = self.currentStateWin.after(self.update_interval, self.schedule_update) def updata_data(self): + '''通过这个可以更新数据''' if (self.dict1['燃料电池断路器']=='闭合'): self.disHVB.DCB1 = 0x55 else: @@ -518,7 +536,12 @@ class disSys(Frame): self.disLVB.emergencyLithiumBatteryGroup1CircuitBreaker = 0x55 else: self.disLVB.emergencyLithiumBatteryGroup1CircuitBreaker = 0xAA + + # a = match.sin(time.time()) print("更新数据") + + + def get_date(self): a = self.disHVB.pack() b = self.disHVBA.pack() c = self.disHVBB.pack()