updata_ssh.py 添加jwt模块程序文件下载

This commit is contained in:
ranchuan
2023-11-14 18:17:35 +08:00
parent 4671f6220e
commit e7381b7b3e
4 changed files with 57 additions and 11 deletions

View File

@@ -111,4 +111,6 @@
调整服务器文件列表显示,服务器文件夹显示中文别名
2023.11.6
注码工具更新雷管厂企业代码
2023.11.14
updata_ssh.py 添加jwt模块程序文件下载

View File

@@ -387,10 +387,9 @@ class protu(QObject):
length=data[8]|(data[9]<<8)|(data[10]<<16)|(data[11]<<24)
self.num_to_recv=5+length+2
if(self.num_to_recv>0 and self.num_to_recv==len(data)):
# print("recv",data.hex(","))
t=self.decode(data)
self.recv_data+=t
# print("recv",t.hex(","))
self.recv_signal.emit(self.cmd,t,self.str_err)
# self.send_file_next(self.cmd,t,self.str_err)
# print("sent signal---")
@@ -400,7 +399,9 @@ class protu(QObject):
def send(self,cmd:int,data:bytearray):
self.cmd=cmd
self.cmd_no+=1
self.ser.write(self.encode(data))
d=self.encode(data)
# print("send",d.hex(","))
self.ser.write(d)
def send_str(self,txt:str):
self.ser.write(txt.encode("utf-8"))
def start_recv(self):

View File

@@ -33,11 +33,11 @@ QWidget {
class updata_dlg(QWidget):
def __init__(self):
QWidget.__init__(self)
self.resize(870, 430)
self.resize(930, 430)
self.setStyleSheet (_QSS)
self.tab_widget=QTabWidget(self)
self.setWindowTitle("设备软件升级维护工具")
self.tab_widget.setGeometry(QRect(0,0,870,430))
self.tab_widget.setGeometry(QRect(0,0,930,430))
self.widget_ssh=updata_ssh.updata_dlg()
self.widget_uart=updata_uart.updata_dlg()
self.tab_widget.setTabPosition(QTabWidget.TabPosition.North)

View File

@@ -114,7 +114,7 @@ class updata_dlg(QWidget):
def __init__(self):
QWidget.__init__(self)
self.widget = self
self.widget.resize(870, 410)
self.widget.resize(900, 410)
self.widget.setWindowTitle("批检仪程序升级")
self.widget.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
self.addrs=""
@@ -130,6 +130,7 @@ class updata_dlg(QWidget):
self.dhcp_but_init()
self.console_but_init()
self.settime_but_init()
self.upjwt_but_init()
# self.restart_but_init()
self.cmd_but_init()
self.refresh_but_init()
@@ -256,7 +257,7 @@ class updata_dlg(QWidget):
def dhcp_but_init(self):
self.dhcp_but = QPushButton(self.widget)
self.dhcp_but.setObjectName(u"dhcp_but")
self.dhcp_but.setGeometry(QRect(750, 60, 93, 28))
self.dhcp_but.setGeometry(QRect(750, 60, 150, 28))
self.dhcp_but.setText("打开DHCP")
self.dhcp_but.clicked.connect(self.dhcp_but_clicked)
self.dhcp_but.setToolTip("如果没有搜索到从机则打开DHCP服务器。")
@@ -265,7 +266,7 @@ class updata_dlg(QWidget):
def console_but_init(self):
self.console_but = QPushButton(self.widget)
self.console_but.setObjectName(u"console_but")
self.console_but.setGeometry(QRect(750, 100, 93, 28))
self.console_but.setGeometry(QRect(750, 100, 150, 28))
self.console_but.setText("串口控制台")
self.console_but.clicked.connect(self.console_but_clicked)
self.console_but.setToolTip("通过设备的串口控制台升级程序这种方式需要使用到U盘。")
@@ -274,11 +275,20 @@ class updata_dlg(QWidget):
def settime_but_init(self):
self.settime_but = QPushButton(self.widget)
self.settime_but.setObjectName(u"settime_but")
self.settime_but.setGeometry(QRect(750, 140, 93, 28))
self.settime_but.setGeometry(QRect(750, 140, 150, 28))
self.settime_but.setText("同步时间")
self.settime_but.clicked.connect(self.settime_but_clicked)
self.settime_but.setToolTip("同步主板时间。")
# 初始化升级jwt
def upjwt_but_init(self):
self.upjwt_but = QPushButton(self.widget)
self.upjwt_but.setObjectName(u"settime_but")
self.upjwt_but.setGeometry(QRect(750, 180, 150, 28))
self.upjwt_but.setText("升级JWT程序")
self.upjwt_but.clicked.connect(self.upjwt_but_clicked)
self.upjwt_but.setToolTip("升级JWT模块程序到小板需要先把程序发送到主板中。")
# 初始化重新启动按钮
def restart_but_init(self):
self.restart_but = QPushButton(self.widget)
@@ -621,6 +631,25 @@ class updata_dlg(QWidget):
self.scheme_mcu(slave_list)
self.creat_progress(w,0,slave_list)
w.show()
# 升级JWT按钮按下
def upjwt_but_clicked(self):
print("upjwt_but clicked.")
slave_list=self.get_selected_slave()
if(len(slave_list)==0):
return
print("slaves:",slave_list)
file=self.get_selected_file_by_type([".jwt"])
if(len(file)==0):
return
print("file:",file)
w=QDialog(self.widget)
w.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
w.destroyed.connect(self.quit)
w.resize(700-100, len(slave_list)*40+20)
w.setWindowTitle("升级jwt程序")
self.updata_jwt(slave_list,file)
self.creat_progress(w,0,slave_list)
w.show()
def refresh_but_clicked(self):
print("refresh_but clicked.")
@@ -715,7 +744,7 @@ class updata_dlg(QWidget):
# 扫描文件
def scan_file(self):
self.file_list.clear()
self.file_list.addItems(self.find_type([".sh",".elf",".bin",".pkt",".lua",".json",".dtb",".axf",".py",".service"]))
self.file_list.addItems(self.find_type([".sh",".elf",".bin",".pkt",".jwt",".lua",".json",".dtb",".axf",".py",".service"]))
# 扫描从机
def scan_slave(self):
@@ -788,6 +817,20 @@ class updata_dlg(QWidget):
cmd_list.append((updata_cmd,1,900))
t = threading.Thread(target=u.bordcast, args=(cmd_list,))
t.start()
# 开始升级jwt
def updata_jwt(self,ip_list,file):
u=udp.myudp(1,255)
self.udp=u
u.dst_ip_list=ip_list
u.rate_signal.connect(self.rate_slot)
u.end_signal.connect(self.end_slot)
print("addrs:",self.addrs)
updata_cmd="mcu upjwt "+self.addrs+' '
updata_cmd+="/home/root/config/"+file
cmd_list=[]
cmd_list.append((updata_cmd,1,30))
t = threading.Thread(target=u.bordcast, args=(cmd_list,))
t.start()
# 开始升级方案
def scheme_mcu(self,ip_list):
@@ -798,7 +841,7 @@ class updata_dlg(QWidget):
u.end_signal.connect(self.end_slot)
updata_cmd="mcu scheme "+self.addrs+' '
cmd_list=[]
cmd_list.append((updata_cmd,1,9))
cmd_list.append((updata_cmd,1,15))
t = threading.Thread(target=u.bordcast, args=(cmd_list,))
t.start()