添加一些操作提示

This commit is contained in:
andy
2023-05-17 08:27:57 +08:00
parent baa520edbf
commit da2433e693
5 changed files with 85 additions and 31 deletions

View File

@@ -22,5 +22,9 @@
上传文件添加进度信号
打包为exe文件
D:\Python\Python38-32\Scripts\pyinstaller.exe -F updata.py
打包为无黑框的exe文件
D:\Python\Python38-32\Scripts\pyinstaller.exe -F -w -i icon.ico updata.py
使用新的图标
可以手动添加文件
2023.5.12
添加一些提示和警告信息

3
ftp.py
View File

@@ -226,10 +226,11 @@ dst_list.append("/home/root/config/judge.lua")
# 定义要从开发板获取的文件
get_list=[]
# get_list.append("/home/root/comm_log/comm_log.csv")
get_list.append("/home/root/log/debug_log.txt")
# get_list.append("/home/root/log/debug_log.txt")
# get_list.append("/home/root/config/checker_app_pre.sh")
# get_list.append("/home/root/config/cfg.json")
# get_list.append("/home/root/config/judge.lua")
get_list.append("/home/root/comm_log/")
# 定义命令

BIN
icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

2
udp.py
View File

@@ -145,7 +145,7 @@ cmd_list=[]
# cmd_list.append(("local setlog filefilter tcp_client",1,1))
# cmd_list.append(("mcu scheme 1,2,3,4,5,6,7,8,9,10",1,30))
cmd_list.append(("mcu bootinfo 1,2,3,4,5,6,7,8,9,10",1,5))
# cmd_list.append(("mcu start 10",2,37))
# cmd_list.append(("mcu start 10",1,37))
# cmd_list.append(("mcu updata 1,2,3,4,5,6,7,8,9,10",1,900))
cmd_list.append(("whos",1,2))
# cmd_list.append(("mcu updata 10 /home/root/config/JQChecker_0008.bin",1,900))

105
updata.py
View File

@@ -24,8 +24,20 @@ STR_END="\033[0m"
WARN_TXT="警告:\n程序升级会删除主板中以前的程序,为保证升级成功,请耐心等待升级完成,不要退出本界面,不要给主板断电、重启。"
QUESTION_TXT="程序升级会删除主板中以前的程序,非专业人员不要操作。\n\
为保证升级成功,请耐心等待升级完成,不要退出升级界面,期间不要给主板断电、重启。\n\
点击[YES]以进行升级。"
def warn_creat(father:QDialog,text:str,rect:QRect):
lable=QLabel(father)
lable.setWordWrap(True)
lable.setText(text)
lable.setGeometry(rect)
lable.setMargin(10)
lable.setAlignment(Qt.AlignmentFlag.AlignCenter)
lable.setStyleSheet("QLabel{font:20px;color:red;background-color:rgb(62, 213, 255);}")
return lable
class progress_box(QObject):
@@ -93,7 +105,7 @@ class updata_dlg(QObject):
self.widget = QWidget()
self.widget.resize(703, 409)
self.widget.setWindowTitle("批检仪程序升级")
self.widget.setWindowFlags(Qt.WindowStaysOnTopHint)
self.widget.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
self.file_list_init()
self.slave_list_init()
self.save_but_init()
@@ -122,30 +134,36 @@ class updata_dlg(QObject):
def file_list_init(self):
self.file_list = QListWidget(self.widget)
self.file_list.setObjectName(u"file_list")
self.file_list.setGeometry(QRect(25, 250, 531, 141))
self.file_list.setFrameShape(QFrame.Box)
self.file_list.setGeometry(QRect(25, 230, 531, 141))
self.file_list.setFrameShape(QFrame.Shape.Box)
self.file_list.setMidLineWidth(1)
self.file_list.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
self.file_list.setSelectionMode(QAbstractItemView.MultiSelection)
self.file_list.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAsNeeded)
self.file_list.setSelectionMode(QAbstractItemView.SelectionMode.MultiSelection)
self.file_list_label = QLabel(self.widget)
self.file_list_label.setObjectName(u"label")
self.file_list_label.setGeometry(QRect(30, 230, 200, 15))
self.file_list_label.setText("默认文件列表:")
self.file_list_label.setGeometry(QRect(30, 210, 531, 15))
self.file_list_label.setText("默认文件列表(选中以发送)")
self.file_list_label.setToolTip("请选择要升级的文件,只有选中的文件会发送到主板中。")
self.file_list.setToolTip("请选择要升级的文件,只有选中的文件会发送到主板中。")
# self.file_list_label.setToolTipDuration(1)
# 初始化从机列表
def slave_list_init(self):
self.slave_list = QListWidget(self.widget)
self.slave_list.setObjectName(u"slave_list")
self.slave_list.setGeometry(QRect(25, 80, 531, 141))
self.slave_list.setFrameShape(QFrame.Box)
self.slave_list.setGeometry(QRect(25, 60, 531, 141))
self.slave_list.setFrameShape(QFrame.Shape.Box)
self.slave_list.setMidLineWidth(1)
self.slave_list.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
self.slave_list.setSelectionMode(QAbstractItemView.MultiSelection)
self.slave_list.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAsNeeded)
self.slave_list.setSelectionMode(QAbstractItemView.SelectionMode.MultiSelection)
self.slave_list.doubleClicked.connect(self.slave_list.editItem)
self.slave_list_label = QLabel(self.widget)
self.slave_list_label.setObjectName(u"label")
self.slave_list_label.setGeometry(QRect(30, 60, 200, 15))
self.slave_list_label.setText("在线主板列表:")
self.slave_list_label.setGeometry(QRect(30, 40, 200, 15))
self.slave_list_label.setText("在线主板列表(选中以发送)")
self.slave_list_label.setToolTip("请选择要升级的主板设备,只有选中的主板会升级。")
self.slave_list.setToolTip("请选择要升级的主板设备,只有选中的主板会升级。")
# self.slave_list_label.setToolTipDuration(1)
# 初始化手动添加IP按钮
def hand_but_init(self):
@@ -154,6 +172,8 @@ class updata_dlg(QObject):
self.hand_but.setGeometry(QRect(590, 60, 93, 28))
self.hand_but.setText("手动添加IP")
self.hand_but.clicked.connect(self.hand_but_clicked)
self.hand_but.setToolTip("请先在[手动添加IP地址]输入框中输入要添加的地址,然后点击此按钮添加到设备列表中。")
# self.hand_but.setToolTipDuration(1)
# 初始化发送文件按钮
def save_but_init(self):
@@ -162,6 +182,9 @@ class updata_dlg(QObject):
self.save_but.setGeometry(QRect(590, 100, 93, 28))
self.save_but.setText("发送文件")
self.save_but.clicked.connect(self.save_but_clicked)
self.save_but.setToolTip("请先选中要升级的主板和文件,然后点击此按钮发送到设备中。")
# self.save_but.setToolTipDuration(1)
# 初始化发送命令按钮
def cmd_but_init(self):
@@ -170,6 +193,8 @@ class updata_dlg(QObject):
self.cmd_but.setGeometry(QRect(590, 140, 93, 28))
self.cmd_but.setText("升级MCU")
self.cmd_but.clicked.connect(self.cmd_but_clicked)
self.cmd_but.setToolTip("请先将要升级的MCU程序发送到主板中然后点击此按钮开始升级MCU程序。")
# self.cmd_but.setToolTipDuration(1)
# 初始化刷新按钮
def refresh_but_init(self):
@@ -178,6 +203,8 @@ class updata_dlg(QObject):
self.refresh_but.setGeometry(QRect(590, 180, 93, 28))
self.refresh_but.setText("刷新IP地址")
self.refresh_but.clicked.connect(self.refresh_but_clicked)
self.refresh_but.setToolTip("点击此按钮刷新主板列表。")
# self.refresh_but.setToolTipDuration(1)
# 初始化在线状态按钮
def sstate_but_init(self):
@@ -186,6 +213,8 @@ class updata_dlg(QObject):
self.sstate_but.setGeometry(QRect(590, 220, 93, 28))
self.sstate_but.setText("MCU在线状态")
self.sstate_but.clicked.connect(self.sstate_but_clicked)
self.sstate_but.setToolTip("点击此按钮查看小板在线情况,显示在线小板的地址。")
# self.sstate_but.setToolTipDuration(1)
# 初始化添加文件按钮
def addfile_but_init(self):
@@ -194,29 +223,39 @@ class updata_dlg(QObject):
self.addfile_but.setGeometry(QRect(590, 260, 93, 28))
self.addfile_but.setText("添加文件")
self.addfile_but.clicked.connect(self.addfile_but_clicked)
self.addfile_but.setToolTip("如果文件列表中不存在要升级的文件,点击此按钮从外部添加。")
# self.addfile_but.setToolTipDuration(1)
# ip前缀
def ip_prefix_init(self):
self.ip_prefix = QLineEdit(self.widget)
self.ip_prefix.setObjectName(u"ip_prefix")
self.ip_prefix.setGeometry(QRect(30, 30, 113, 21))
self.ip_prefix.setGeometry(QRect(130, 10, 113, 21))
self.ip_prefix.setText("192.168.80")
self.ip_prefix_label = QLabel(self.widget)
self.ip_prefix_label.setObjectName(u"label")
self.ip_prefix_label.setGeometry(QRect(30, 10, 72, 15))
self.ip_prefix_label.setText("IP前缀")
self.ip_prefix_label.setGeometry(QRect(30, 10, 72, 21))
self.ip_prefix_label.setText("IP前缀")
self.ip_prefix_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ip_prefix_label.setToolTip("如果扫描不到设备请确保局域网网段与此相符将此IP前缀改为和局域网相同。")
self.ip_prefix.setToolTip("如果扫描不到设备请确保局域网网段与此相符将此IP前缀改为和局域网相同。")
# self.ip_prefix_label.setToolTipDuration(1)
# 手动添加ip
def ip_hand_init(self):
self.ip_hand = QLineEdit(self.widget)
self.ip_hand.setObjectName(u"ip_hand")
self.ip_hand.setGeometry(QRect(300, 30, 120, 21))
self.ip_hand.setGeometry(QRect(430, 10, 120, 21))
ip=self.ip_prefix.text()
self.ip_hand.setText(ip+".81")
self.ip_hand_label = QLabel(self.widget)
self.ip_hand_label.setObjectName(u"ip_hand_label")
self.ip_hand_label.setGeometry(QRect(300, 10, 120, 15))
self.ip_hand_label.setText("手动添加IP地址")
self.ip_hand_label.setGeometry(QRect(300, 10, 120, 21))
self.ip_hand_label.setText("手动添加IP地址")
self.ip_hand_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.ip_hand_label.setToolTip("如果扫描不到设备可以尝试手动添加设备的IP地址然后升级。")
self.ip_hand.setToolTip("如果扫描不到设备可以尝试手动添加设备的IP地址然后升级。")
# self.ip_hand_label.setToolTipDuration(1)
# 显示消息框
def show_msg(self,msg:str):
@@ -224,6 +263,13 @@ class updata_dlg(QObject):
m.setText(msg)
m.setWindowTitle("提示")
m.show()
def show_question(self,title:str,msg:str):
ret=QMessageBox.question(self.widget,title,msg,QMessageBox.StandardButton.Yes|QMessageBox.StandardButton.No,
QMessageBox.StandardButton.No)
if(ret==QMessageBox.StandardButton.Yes):
return True
else:
return False
# 找到已选择的文件
def get_selected_file_by_type(self,type:str):
@@ -313,20 +359,23 @@ class updata_dlg(QObject):
slave_list=self.get_selected_slave()
if(len(slave_list)==0):
return
if(self.show_question("警告",QUESTION_TXT)==False):
return
print("slaves:",slave_list)
w=QDialog(self.widget)
w.resize(703-100, len(slave_list)*40+20)
warn_creat(w,WARN_TXT,QRect(0,0,700-100,90))
w.resize(700-100, len(slave_list)*40+20+100)
w.setWindowTitle("上传文件")
self.updata(slave_list,dst_list,file_list)
self.creat_progress(w,slave_list)
self.creat_progress(w,100,slave_list)
w.show()
# 创建进度条
def creat_progress(self,father:QDialog,ip_list:list):
def creat_progress(self,father:QDialog,y_off:int,ip_list:list):
self.probar_list=[]
for i in range(len(ip_list)):
p=progress_box()
p.init(father,ip_list[i][0],+i*40)
p.init(father,ip_list[i][0],+i*40+y_off)
self.rate_signal.connect(p.set_rate)
self.end_signal.connect(p.set_txt)
self.probar_list.append(p)
@@ -343,10 +392,10 @@ class updata_dlg(QObject):
return
print("file:",file)
w=QDialog(self.widget)
w.resize(703-100, len(slave_list)*40+20)
w.resize(700-100, len(slave_list)*40+20)
w.setWindowTitle("升级mcu")
self.updata_mcu(slave_list,file)
self.creat_progress(w,slave_list)
self.creat_progress(w,0,slave_list)
w.show()
def refresh_but_clicked(self):
@@ -390,8 +439,8 @@ class updata_dlg(QObject):
u.find(ip_prefix)
ip_list=u.dst_ip_list
if(len(ip_list)==0):
ret=QMessageBox.question(self.widget,"提示","未扫描到从机,是否自动添加?",QMessageBox.Yes|QMessageBox.No)
if(ret==QMessageBox.Yes):
ret=self.show_question("提示","未扫描到从机,是否自动添加?")
if(ret==True):
ip_list.append((ip_prefix+".81","local_id_1"))
ip_list.append((ip_prefix+".82","local_id_2"))
ip_list.append((ip_prefix+".83","local_id_3"))