添加一些操作提示
This commit is contained in:
@@ -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
3
ftp.py
@@ -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/")
|
||||
|
||||
# 定义命令
|
||||
|
||||
|
2
udp.py
2
udp.py
@@ -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
105
updata.py
@@ -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"))
|
||||
|
Reference in New Issue
Block a user