[t_change_ui: aio.py/brake.py/current.py] 整体修改了操作界面,删除了大部分的配置输入框,改用 configs.xlsx 配置文件替代,并优化了max/avg功能中写入结果数据的方式
This commit is contained in:
135
aio/code/aio.py
135
aio/code/aio.py
@ -1,4 +1,3 @@
|
||||
import sys
|
||||
import tkinter
|
||||
from os.path import exists, dirname
|
||||
from os import getcwd
|
||||
@ -26,22 +25,11 @@ btns_func = {
|
||||
}
|
||||
widgits_dp = {
|
||||
'path': {'label': '', 'entry': '', 'row': 1, 'col': 2, 'text': '数据文件夹路径'},
|
||||
'av': {'label': '', 'entry': '', 'row': 2, 'col': 2, 'text': '角速度'},
|
||||
'rc': {'label': '', 'entry': '', 'row': 2, 'col': 4, 'text': '额定电流'},
|
||||
'rpm': {'label': '', 'entry': '', 'row': 2, 'col': 6, 'text': '额定转速'},
|
||||
'rr': {'label': '', 'entry': '', 'row': 2, 'col': 8, 'text': '减速比'},
|
||||
'dur': {'label': '', 'entry': '', 'row': 2, 'col': 10, 'text': '周期时间'},
|
||||
'axis': {'label': '', 'optionmenu': '', 'row': 3, 'col': 2, 'text': ''},
|
||||
'vel': {'label': '', 'optionmenu': '', 'row': 3, 'col': 4, 'text': ''},
|
||||
'trq': {'label': '', 'optionmenu': '', 'row': 3, 'col': 6, 'text': ''},
|
||||
'trqh': {'label': '', 'optionmenu': '', 'row': 3, 'col': 8, 'text': ''},
|
||||
'estop': {'label': '', 'optionmenu': '', 'row': 3, 'col': 10, 'text': ''},
|
||||
'rc1': {'label': '', 'entry': '', 'row': 4, 'col': 2, 'text': '额定电流'},
|
||||
'rc2': {'label': '', 'entry': '', 'row': 4, 'col': 4, 'text': '额定电流'},
|
||||
'rc3': {'label': '', 'entry': '', 'row': 4, 'col': 6, 'text': '额定电流'},
|
||||
'rc4': {'label': '', 'entry': '', 'row': 4, 'col': 8, 'text': '额定电流'},
|
||||
'rc5': {'label': '', 'entry': '', 'row': 4, 'col': 10, 'text': '额定电流'},
|
||||
'rc6': {'label': '', 'entry': '', 'row': 4, 'col': 12, 'text': '额定电流'},
|
||||
'dur': {'label': '', 'entry': '', 'row': 2, 'col': 2, 'text': '周期时间'},
|
||||
'vel': {'label': '', 'optionmenu': '', 'row': 2, 'col': 4, 'text': ''},
|
||||
'trq': {'label': '', 'optionmenu': '', 'row': 2, 'col': 6, 'text': ''},
|
||||
'trqh': {'label': '', 'optionmenu': '', 'row': 2, 'col': 8, 'text': ''},
|
||||
'estop': {'label': '', 'optionmenu': '', 'row': 2, 'col': 10, 'text': ''},
|
||||
}
|
||||
widgits_at = {
|
||||
'path': {'label': '', 'entry': '', 'row': 2, 'col': 2, 'text': '数据文件夹路径'},
|
||||
@ -127,13 +115,13 @@ class App(customtkinter.CTk):
|
||||
widgits_dp[widgit]['entry'] = customtkinter.CTkEntry(self.tabview.tab('Data Process'), width=670, placeholder_text=widgits_dp[widgit]['text'], font=self.my_font)
|
||||
widgits_dp[widgit]['entry'].grid(row=widgits_dp[widgit]['row'], column=widgits_dp[widgit]['col']+1, columnspan=11, padx=(5, 10), pady=5, sticky='we')
|
||||
widgits_dp[widgit]['entry'].configure(state='disabled')
|
||||
elif widgit in ['av', 'rc', 'rpm', 'rr', 'dur', 'rc1', 'rc2', 'rc3', 'rc4', 'rc5', 'rc6']:
|
||||
elif widgit in ['dur']:
|
||||
widgits_dp[widgit]['label'] = customtkinter.CTkLabel(self.tabview.tab('Data Process'), text=f"{widgit.upper()}", font=self.my_font)
|
||||
widgits_dp[widgit]['label'].grid(row=widgits_dp[widgit]['row'], column=widgits_dp[widgit]['col'], sticky='e', pady=5)
|
||||
widgits_dp[widgit]['entry'] = customtkinter.CTkEntry(self.tabview.tab('Data Process'), width=self.w_param, placeholder_text=f"{widgits_dp[widgit]['text']}", font=self.my_font)
|
||||
widgits_dp[widgit]['entry'].grid(row=widgits_dp[widgit]['row'], column=widgits_dp[widgit]['col']+1, padx=(5, 10), pady=5, sticky='w')
|
||||
widgits_dp[widgit]['entry'].configure(state='disabled')
|
||||
elif widgit in ['axis', 'vel', 'trq', 'trqh', 'estop']:
|
||||
elif widgit in ['vel', 'trq', 'trqh', 'estop']:
|
||||
widgits_dp[widgit]['label'] = customtkinter.CTkLabel(self.tabview.tab('Data Process'), text=f"{widgit.upper()}", font=self.my_font)
|
||||
widgits_dp[widgit]['label'].grid(row=widgits_dp[widgit]['row'], column=widgits_dp[widgit]['col'], sticky='e', pady=5)
|
||||
widgits_dp[widgit]['optionmenu'] = customtkinter.CTkOptionMenu(self.tabview.tab('Data Process'), button_color='#708090', fg_color='#778899', values=["1", "2", "3", "4", "5", "6", "7"], width=self.w_param, font=self.my_font)
|
||||
@ -182,7 +170,7 @@ class App(customtkinter.CTk):
|
||||
try:
|
||||
new_vers = urlopen(url_vers).read().decode('utf-8')
|
||||
if cur_vers.strip() != new_vers.strip():
|
||||
msg = f"""当前版本:{cur_vers}\n更新版本:{new_vers}\n\n请及时更新 http://10.2.23.150:10003/s/jRfM"""
|
||||
msg = f"""当前版本:{cur_vers}\n更新版本:{new_vers}\n\n请及时前往钉盘更新~~~"""
|
||||
tkinter.messagebox.showwarning(title="版本更新", message=msg)
|
||||
except:
|
||||
tkinter.messagebox.showwarning(title="版本更新", message="连接服务器失败,无法确认当前是否是最新版本......")
|
||||
@ -257,12 +245,12 @@ class App(customtkinter.CTk):
|
||||
tab_name = self.tabview.get()
|
||||
if tab_name == 'Data Process':
|
||||
for widgit in widgits_dp:
|
||||
if widgit in ['path', 'av', 'rc', 'rpm', 'rr', 'dur', 'rc1', 'rc2', 'rc3', 'rc4', 'rc5', 'rc6']:
|
||||
if widgit in ['path', 'dur']:
|
||||
widgits_dp[widgit]['label'].configure(text=f'{widgit.upper()}', text_color='black')
|
||||
widgits_dp[widgit]['entry'].delete(0, tkinter.END)
|
||||
widgits_dp[widgit]['entry'].configure(placeholder_text=widgits_dp[widgit]['text'], state='normal')
|
||||
widgits_dp[widgit]['entry'].configure(state='disabled')
|
||||
elif widgit in ['axis', 'vel', 'trq', 'trqh', 'estop']:
|
||||
elif widgit in ['vel', 'trq', 'trqh', 'estop']:
|
||||
widgits_dp[widgit]['label'].configure(text=f'{widgit.upper()}', text_color="black")
|
||||
widgits_dp[widgit]['optionmenu'].configure(state='normal')
|
||||
widgits_dp[widgit]['optionmenu'].set('1')
|
||||
@ -290,10 +278,10 @@ class App(customtkinter.CTk):
|
||||
if tab_name == 'Data Process':
|
||||
if func_name == 'brake':
|
||||
for widgit in widgits_dp:
|
||||
if widgit in ['path', 'av', 'rr']:
|
||||
if widgit in ['path']:
|
||||
widgits_dp[widgit]['label'].configure(text_color='red')
|
||||
widgits_dp[widgit]['entry'].configure(state='normal')
|
||||
elif widgit in ['axis', 'vel', 'trq', 'estop']:
|
||||
elif widgit in ['vel', 'trq', 'estop']:
|
||||
widgits_dp[widgit]['label'].configure(text_color="red")
|
||||
widgits_dp[widgit]['optionmenu'].configure(state='normal')
|
||||
elif func_name == 'current':
|
||||
@ -302,17 +290,9 @@ class App(customtkinter.CTk):
|
||||
self.menu_sub_dp.set("--select--")
|
||||
self.menu_sub_dp.configure(text_color='yellow')
|
||||
|
||||
for widgit in widgits_dp:
|
||||
if widgit in ['path', 'rc', 'rc1', 'rc2', 'rc3', 'rc4', 'rc5', 'rc6']:
|
||||
color = 'blue' if widgit == 'rc' else 'red'
|
||||
widgits_dp[widgit]['label'].configure(text_color=color)
|
||||
widgits_dp[widgit]['entry'].configure(state='normal')
|
||||
elif widgit in ['trqh',]:
|
||||
widgits_dp[widgit]['label'].configure(text_color="red")
|
||||
widgits_dp[widgit]['optionmenu'].configure(state='normal')
|
||||
elif func_name == 'iso' or func_name == 'wavelogger':
|
||||
for widgit in widgits_dp:
|
||||
if widgit in ['path',]:
|
||||
if widgit in ['path']:
|
||||
widgits_dp[widgit]['label'].configure(text_color='red')
|
||||
widgits_dp[widgit]['entry'].configure(state='normal')
|
||||
else:
|
||||
@ -322,30 +302,43 @@ class App(customtkinter.CTk):
|
||||
pass
|
||||
|
||||
def func_sub_callback(self, func_name):
|
||||
if func_name == "max":
|
||||
if func_name == "max" or func_name == "avg":
|
||||
for widgit in widgits_dp:
|
||||
if widgit in ['rpm', 'dur']:
|
||||
if widgit in ['path']:
|
||||
widgits_dp[widgit]['label'].configure(text_color='red')
|
||||
widgits_dp[widgit]['entry'].delete(0, tkinter.END)
|
||||
widgits_dp[widgit]['entry'].configure(placeholder_text=widgits_dp[widgit]['text'], state='normal')
|
||||
widgits_dp[widgit]['entry'].configure(state='normal')
|
||||
elif widgit in ['dur']:
|
||||
widgits_dp[widgit]['label'].configure(text_color='black')
|
||||
widgits_dp[widgit]['entry'].delete(0, tkinter.END)
|
||||
widgits_dp[widgit]['entry'].configure(placeholder_text=widgits_dp[widgit]['text'], state='normal')
|
||||
widgits_dp[widgit]['entry'].configure(state='disabled')
|
||||
elif widgit in ['vel', 'trq']:
|
||||
widgits_dp[widgit]['label'].configure(text_color='black')
|
||||
widgits_dp[widgit]['optionmenu'].configure(state='disabled')
|
||||
elif func_name == 'avg':
|
||||
for widgit in widgits_dp:
|
||||
if widgit in ['rpm', 'dur']:
|
||||
widgits_dp[widgit]['label'].configure(text_color='black')
|
||||
widgits_dp[widgit]['entry'].configure(state='disabled')
|
||||
elif widgit in ['vel', 'trq']:
|
||||
elif widgit in ['vel', 'trqh', 'estop']:
|
||||
widgits_dp[widgit]['label'].configure(text_color='black')
|
||||
widgits_dp[widgit]['optionmenu'].set('1')
|
||||
widgits_dp[widgit]['optionmenu'].configure(state='disabled')
|
||||
elif widgit in ['trq']:
|
||||
widgits_dp[widgit]['label'].configure(text_color='red')
|
||||
widgits_dp[widgit]['optionmenu'].set('1')
|
||||
widgits_dp[widgit]['optionmenu'].configure(state='normal')
|
||||
elif func_name == 'cycle':
|
||||
for widgit in widgits_dp:
|
||||
if widgit in ['rpm', 'dur']:
|
||||
widgits_dp[widgit]['label'].configure(text_color='blue')
|
||||
if widgit in ['path', 'dur']:
|
||||
color = 'blue' if widgit == 'dur' else 'red'
|
||||
widgits_dp[widgit]['label'].configure(text_color=color)
|
||||
widgits_dp[widgit]['entry'].delete(0, tkinter.END)
|
||||
widgits_dp[widgit]['entry'].configure(placeholder_text=widgits_dp[widgit]['text'], state='normal')
|
||||
widgits_dp[widgit]['entry'].configure(state='normal')
|
||||
elif widgit in ['vel', 'trq']:
|
||||
widgits_dp[widgit]['label'].configure(text_color="red")
|
||||
elif widgit in ['vel', 'trq', 'trqh']:
|
||||
color = 'blue' if widgit == 'trqh' else 'red'
|
||||
widgits_dp[widgit]['label'].configure(text_color=color)
|
||||
widgits_dp[widgit]['optionmenu'].set('1')
|
||||
widgits_dp[widgit]['optionmenu'].configure(state='normal')
|
||||
elif widgit in ['estop']:
|
||||
widgits_dp[widgit]['label'].configure(text_color="black")
|
||||
widgits_dp[widgit]['optionmenu'].set('1')
|
||||
widgits_dp[widgit]['optionmenu'].configure(state='disabled')
|
||||
|
||||
def write2textbox(self, text, wait=0, exitcode=0, color='blue'):
|
||||
self.textbox.tag_add(color, 'insert', 'end')
|
||||
@ -385,33 +378,20 @@ class App(customtkinter.CTk):
|
||||
func_name = self.menu_main_dp.get()
|
||||
if func_name == 'brake':
|
||||
path = widgits_dp['path']['entry'].get().strip()
|
||||
av = widgits_dp['av']['entry'].get().strip('- ')
|
||||
rr = widgits_dp['rr']['entry'].get().strip('- ')
|
||||
axis = widgits_dp['axis']['optionmenu'].get()
|
||||
vel = widgits_dp['vel']['optionmenu'].get()
|
||||
trq = widgits_dp['trq']['optionmenu'].get()
|
||||
estop = widgits_dp['estop']['optionmenu'].get()
|
||||
|
||||
c1 = exists(path)
|
||||
c2 = self.is_float('required', av, rr)
|
||||
c3 = True if len({vel, trq, estop}) == 3 else False
|
||||
|
||||
if c1 and c2 and c3:
|
||||
return 1, path, float(av), float(rr), int(axis), int(vel), int(trq), int(estop)
|
||||
c2 = True if len({vel, trq, estop}) == 3 else False
|
||||
if c1 and c2:
|
||||
return 1, path, int(vel), int(trq), int(estop)
|
||||
else:
|
||||
return 0, 0
|
||||
# =======================================================
|
||||
elif func_name == 'current':
|
||||
path = widgits_dp['path']['entry'].get().strip()
|
||||
rc = widgits_dp['rc']['entry'].get().strip('- ')
|
||||
rpm = widgits_dp['rpm']['entry'].get().strip()
|
||||
dur = widgits_dp['dur']['entry'].get().strip()
|
||||
rc1 = widgits_dp['rc1']['entry'].get().strip()
|
||||
rc2 = widgits_dp['rc2']['entry'].get().strip()
|
||||
rc3 = widgits_dp['rc3']['entry'].get().strip()
|
||||
rc4 = widgits_dp['rc4']['entry'].get().strip()
|
||||
rc5 = widgits_dp['rc5']['entry'].get().strip()
|
||||
rc6 = widgits_dp['rc6']['entry'].get().strip()
|
||||
vel = widgits_dp['vel']['optionmenu'].get()
|
||||
trq = widgits_dp['trq']['optionmenu'].get()
|
||||
trqh = widgits_dp['trqh']['optionmenu'].get()
|
||||
@ -419,23 +399,16 @@ class App(customtkinter.CTk):
|
||||
|
||||
c1 = exists(path)
|
||||
c2 = sub in ['max', 'avg', 'cycle']
|
||||
c3 = self.is_float('optional', rc, rpm)
|
||||
c4 = self.is_float('required', rc1, rc2, rc3, rc4, rc5, rc6)
|
||||
|
||||
c5 = c6 = True
|
||||
c3 = c4 = True
|
||||
if sub == 'cycle':
|
||||
c5 = True if len({vel, trq}) == 2 else False
|
||||
c6 = self.is_float('optional', dur)
|
||||
c3 = True if len({vel, trq}) == 2 else False
|
||||
c4 = self.is_float('optional', dur)
|
||||
elif sub == 'max' or sub == 'avg':
|
||||
pass
|
||||
|
||||
if c1 and c2 and c3 and c4 and c5 and c6:
|
||||
rcs = []
|
||||
for x in [rc1, rc2, rc3, rc4, rc5, rc6]:
|
||||
rcs.append(float(x))
|
||||
rc = 0 if rc == '' else rc
|
||||
dur = 0 if sub != 'cycle' or dur == '' else dur
|
||||
rpm = 0 if sub != 'cycle' or rpm == '' else rpm
|
||||
rcs.append(float(rc))
|
||||
return 2, path, sub, rcs, int(vel), int(trq), int(trqh), float(dur), float(rpm)
|
||||
if c1 and c2 and c3 and c4:
|
||||
dur = 0 if dur == '' else dur
|
||||
return 2, path, sub, float(dur), int(vel), int(trq), int(trqh)
|
||||
else:
|
||||
return 0, 0
|
||||
# =======================================================
|
||||
@ -471,9 +444,9 @@ class App(customtkinter.CTk):
|
||||
flag, *args = self.check_param()
|
||||
func_dict = {1: brake.main, 2: current.main, 3: iso.main, 4: wavelogger.main}
|
||||
if flag == 1:
|
||||
func_dict[flag](path=args[0], av=args[1], rr=args[2], axis=args[3], vel=args[4], trq=args[5], estop=args[6], w2t=self.write2textbox)
|
||||
func_dict[flag](path=args[0], vel=args[1], trq=args[2], estop=args[3], w2t=self.write2textbox)
|
||||
elif flag == 2:
|
||||
func_dict[flag](path=args[0], sub=args[1], rcs=args[2], vel=args[3], trq=args[4], trqh=args[5], dur=args[6], rpm=args[7], w2t=self.write2textbox)
|
||||
func_dict[flag](path=args[0], sub=args[1], dur=args[2], vel=args[3], trq=args[4], trqh=args[5], w2t=self.write2textbox)
|
||||
elif flag == 3:
|
||||
func_dict[flag](path=args[0], w2t=self.write2textbox)
|
||||
elif flag == 4:
|
||||
|
Reference in New Issue
Block a user