优化了disSys的代码,增加了16进制显示的功能
This commit is contained in:
+29
-6
@@ -215,15 +215,25 @@ class disSys(Frame):
|
|||||||
print(self.checkboxes[i][j].cget("text"),self.checkboxesVar[i][j].get())
|
print(self.checkboxes[i][j].cget("text"),self.checkboxesVar[i][j].get())
|
||||||
# print(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):
|
def update_currentState(self):
|
||||||
# 更新所有数值显示
|
# 更新所有数值显示
|
||||||
for struct, name, entry in self.state_entries:
|
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显示
|
||||||
entry.config(state='normal')
|
entry.config(state='normal')
|
||||||
entry.delete(0, tk.END)
|
entry.delete(0, tk.END)
|
||||||
entry.insert(0, value)
|
entry.insert(0, display_value)
|
||||||
entry.config(state='readonly')
|
entry.config(state='readonly')
|
||||||
|
|
||||||
print('电路状态已更新')
|
print('电路状态已更新')
|
||||||
@@ -288,6 +298,9 @@ class disSys(Frame):
|
|||||||
self.currentStateWin.minsize(1000, 600)
|
self.currentStateWin.minsize(1000, 600)
|
||||||
self.currentStateWin.protocol("WM_DELETE_WINDOW", self.on_close_currentState)
|
self.currentStateWin.protocol("WM_DELETE_WINDOW", self.on_close_currentState)
|
||||||
|
|
||||||
|
# 初始化16进制显示模式
|
||||||
|
self.hex_mode = False
|
||||||
|
|
||||||
# 创建主容器
|
# 创建主容器
|
||||||
main_frame = tk.Frame(self.currentStateWin)
|
main_frame = tk.Frame(self.currentStateWin)
|
||||||
main_frame.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)
|
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,
|
update_btn = tk.Button(btn_frame, text="立即更新", font=state_font,
|
||||||
command=self.update_currentState)
|
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秒
|
self.update_interval = 1000 # 1秒
|
||||||
@@ -334,7 +351,7 @@ class disSys(Frame):
|
|||||||
|
|
||||||
def start_update_data(self):
|
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):
|
def stop_update_data(self):
|
||||||
"""停止数据更新定时器"""
|
"""停止数据更新定时器"""
|
||||||
@@ -345,13 +362,14 @@ class disSys(Frame):
|
|||||||
def _update_data_loop(self):
|
def _update_data_loop(self):
|
||||||
"""定时更新数据"""
|
"""定时更新数据"""
|
||||||
self.updata_data()
|
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):
|
def schedule_update(self):
|
||||||
"""安排定时更新"""
|
"""安排定时更新"""
|
||||||
self.update_currentState()
|
self.update_currentState()
|
||||||
self.update_job = self.currentStateWin.after(self.update_interval, self.schedule_update)
|
self.update_job = self.currentStateWin.after(self.update_interval, self.schedule_update)
|
||||||
def updata_data(self):
|
def updata_data(self):
|
||||||
|
'''通过这个可以更新数据'''
|
||||||
if (self.dict1['燃料电池断路器']=='闭合'):
|
if (self.dict1['燃料电池断路器']=='闭合'):
|
||||||
self.disHVB.DCB1 = 0x55
|
self.disHVB.DCB1 = 0x55
|
||||||
else:
|
else:
|
||||||
@@ -518,7 +536,12 @@ class disSys(Frame):
|
|||||||
self.disLVB.emergencyLithiumBatteryGroup1CircuitBreaker = 0x55
|
self.disLVB.emergencyLithiumBatteryGroup1CircuitBreaker = 0x55
|
||||||
else:
|
else:
|
||||||
self.disLVB.emergencyLithiumBatteryGroup1CircuitBreaker = 0xAA
|
self.disLVB.emergencyLithiumBatteryGroup1CircuitBreaker = 0xAA
|
||||||
|
|
||||||
|
# a = match.sin(time.time())
|
||||||
print("更新数据")
|
print("更新数据")
|
||||||
|
|
||||||
|
|
||||||
|
def get_date(self):
|
||||||
a = self.disHVB.pack()
|
a = self.disHVB.pack()
|
||||||
b = self.disHVBA.pack()
|
b = self.disHVBA.pack()
|
||||||
c = self.disHVBB.pack()
|
c = self.disHVBB.pack()
|
||||||
|
|||||||
Reference in New Issue
Block a user