可以给小板升级方案,可以升级改为20通道
This commit is contained in:
@@ -29,4 +29,10 @@
|
||||
2023.5.12
|
||||
添加一些提示和警告信息
|
||||
2023.5.17
|
||||
仓库地址 git@124.70.178.159:/home/git/rep/updata.git
|
||||
仓库地址 git@124.70.178.159:/home/git/rep/updata.git
|
||||
2023.7.27
|
||||
.json 结尾的视为方案
|
||||
2023.7.28
|
||||
添加升级方案按钮
|
||||
.axf 结尾的为主板m4程序
|
||||
改为20通道
|
12
udp.py
12
udp.py
@@ -144,18 +144,22 @@ class myudp(QObject):
|
||||
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 bootinfo 1,2,3,4,5,6,7,8,9,10",1,5))
|
||||
# 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(("whos",1,2))
|
||||
# cmd_list.append(("mcu updata 10 /home/root/config/JQChecker_0008.bin",1,900))
|
||||
|
||||
# cmd_list.append(("local setcfg hostip 192.168.60.202",1,2))
|
||||
# cmd_list.append(("local setcfg usetcp true",1,2))
|
||||
# cmd_list.append(("local setcfg uselua true",1,2))
|
||||
# cmd_list.append(("local setcfg save",1,2))
|
||||
cmd_list.append(("mcu start 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20",2,50))
|
||||
|
||||
# 扫描从机ip地址
|
||||
# 返回元组列表,ip,local_id
|
||||
def main():
|
||||
udp=myudp(1,255)
|
||||
udp.find("192.168.80")
|
||||
udp.find("192.168.60")
|
||||
print(udp.dst_ip_list)
|
||||
udp.bordcast(cmd_list)
|
||||
|
||||
|
89
updata.py
89
updata.py
@@ -106,6 +106,8 @@ class updata_dlg(QObject):
|
||||
self.widget.resize(703, 409)
|
||||
self.widget.setWindowTitle("批检仪程序升级")
|
||||
self.widget.setWindowFlags(Qt.WindowType.WindowStaysOnTopHint)
|
||||
self.but_y=60
|
||||
self.but_y_step=40
|
||||
self.file_list_init()
|
||||
self.slave_list_init()
|
||||
self.save_but_init()
|
||||
@@ -114,6 +116,7 @@ class updata_dlg(QObject):
|
||||
self.sstate_but_init()
|
||||
self.hand_but_init()
|
||||
self.addfile_but_init()
|
||||
self.scheme_but_init()
|
||||
self.ip_prefix_init()
|
||||
self.ip_hand_init()
|
||||
self.widget.destroyed.connect(self.quit)
|
||||
@@ -169,7 +172,8 @@ class updata_dlg(QObject):
|
||||
def hand_but_init(self):
|
||||
self.hand_but = QPushButton(self.widget)
|
||||
self.hand_but.setObjectName(u"hand_but")
|
||||
self.hand_but.setGeometry(QRect(590, 60, 93, 28))
|
||||
self.hand_but.setGeometry(QRect(590, self.but_y, 93, 28))
|
||||
self.but_y+=self.but_y_step
|
||||
self.hand_but.setText("手动添加IP")
|
||||
self.hand_but.clicked.connect(self.hand_but_clicked)
|
||||
self.hand_but.setToolTip("请先在[手动添加IP地址]输入框中输入要添加的地址,然后点击此按钮添加到设备列表中。")
|
||||
@@ -179,7 +183,8 @@ class updata_dlg(QObject):
|
||||
def save_but_init(self):
|
||||
self.save_but = QPushButton(self.widget)
|
||||
self.save_but.setObjectName(u"save_but")
|
||||
self.save_but.setGeometry(QRect(590, 100, 93, 28))
|
||||
self.save_but.setGeometry(QRect(590, self.but_y, 93, 28))
|
||||
self.but_y+=self.but_y_step
|
||||
self.save_but.setText("发送文件")
|
||||
self.save_but.clicked.connect(self.save_but_clicked)
|
||||
self.save_but.setToolTip("请先选中要升级的主板和文件,然后点击此按钮发送到设备中。")
|
||||
@@ -190,7 +195,8 @@ class updata_dlg(QObject):
|
||||
def cmd_but_init(self):
|
||||
self.cmd_but = QPushButton(self.widget)
|
||||
self.cmd_but.setObjectName(u"save_but")
|
||||
self.cmd_but.setGeometry(QRect(590, 140, 93, 28))
|
||||
self.cmd_but.setGeometry(QRect(590, self.but_y, 93, 28))
|
||||
self.but_y+=self.but_y_step
|
||||
self.cmd_but.setText("升级MCU")
|
||||
self.cmd_but.clicked.connect(self.cmd_but_clicked)
|
||||
self.cmd_but.setToolTip("请先将要升级的MCU程序发送到主板中,然后点击此按钮开始升级MCU程序。")
|
||||
@@ -200,7 +206,8 @@ class updata_dlg(QObject):
|
||||
def refresh_but_init(self):
|
||||
self.refresh_but = QPushButton(self.widget)
|
||||
self.refresh_but.setObjectName(u"save_but")
|
||||
self.refresh_but.setGeometry(QRect(590, 180, 93, 28))
|
||||
self.refresh_but.setGeometry(QRect(590, self.but_y, 93, 28))
|
||||
self.but_y+=self.but_y_step
|
||||
self.refresh_but.setText("刷新IP地址")
|
||||
self.refresh_but.clicked.connect(self.refresh_but_clicked)
|
||||
self.refresh_but.setToolTip("点击此按钮刷新主板列表。")
|
||||
@@ -210,7 +217,8 @@ class updata_dlg(QObject):
|
||||
def sstate_but_init(self):
|
||||
self.sstate_but = QPushButton(self.widget)
|
||||
self.sstate_but.setObjectName(u"sstate_but")
|
||||
self.sstate_but.setGeometry(QRect(590, 220, 93, 28))
|
||||
self.sstate_but.setGeometry(QRect(590, self.but_y, 93, 28))
|
||||
self.but_y+=self.but_y_step
|
||||
self.sstate_but.setText("MCU在线状态")
|
||||
self.sstate_but.clicked.connect(self.sstate_but_clicked)
|
||||
self.sstate_but.setToolTip("点击此按钮查看小板在线情况,显示在线小板的地址。")
|
||||
@@ -220,12 +228,24 @@ class updata_dlg(QObject):
|
||||
def addfile_but_init(self):
|
||||
self.addfile_but = QPushButton(self.widget)
|
||||
self.addfile_but.setObjectName(u"addfile_but")
|
||||
self.addfile_but.setGeometry(QRect(590, 260, 93, 28))
|
||||
self.addfile_but.setGeometry(QRect(590, self.but_y, 93, 28))
|
||||
self.but_y+=self.but_y_step
|
||||
self.addfile_but.setText("添加文件")
|
||||
self.addfile_but.clicked.connect(self.addfile_but_clicked)
|
||||
self.addfile_but.setToolTip("如果文件列表中不存在要升级的文件,点击此按钮从外部添加。")
|
||||
# self.addfile_but.setToolTipDuration(1)
|
||||
|
||||
# 初始化升级方案按钮
|
||||
def scheme_but_init(self):
|
||||
self.scheme_but = QPushButton(self.widget)
|
||||
self.scheme_but.setObjectName(u"scheme_but")
|
||||
self.scheme_but.setGeometry(QRect(590, self.but_y, 93, 28))
|
||||
self.but_y+=self.but_y_step
|
||||
self.scheme_but.setText("升级方案")
|
||||
self.scheme_but.clicked.connect(self.scheme_but_clicked)
|
||||
self.scheme_but.setToolTip("请先将要升级的方案文件发送到主板中,然后点击此按钮开始升级方案到MCU。")
|
||||
# self.addfile_but.setToolTipDuration(1)
|
||||
|
||||
# ip前缀
|
||||
def ip_prefix_init(self):
|
||||
self.ip_prefix = QLineEdit(self.widget)
|
||||
@@ -331,10 +351,12 @@ class updata_dlg(QObject):
|
||||
dst_list.append("/usr/local/QDesktop-fb")
|
||||
elif(i[-4:]==".dtb"):
|
||||
dst_list.append("/run/media/mmcblk2p2/"+i)
|
||||
elif(i.find("checker_ye_cfg")>=0):
|
||||
elif(i[-5:]==".json"):
|
||||
dst_list.append("/home/root/config/"+"checker_ye_cfg.json")
|
||||
elif(i[-4:]==".lua"):
|
||||
dst_list.append("/home/root/config/"+"judge.lua")
|
||||
elif(i[-4:]==".axf"):
|
||||
dst_list.append("/lib/firmware/"+"checker_m4.axf")
|
||||
else:
|
||||
dst_list.append("/home/root/config/"+i)
|
||||
return dst_list
|
||||
@@ -397,6 +419,19 @@ class updata_dlg(QObject):
|
||||
self.updata_mcu(slave_list,file)
|
||||
self.creat_progress(w,0,slave_list)
|
||||
w.show()
|
||||
# 升级方案按钮按下
|
||||
def scheme_but_clicked(self):
|
||||
print("scheme_but clicked.")
|
||||
slave_list=self.get_selected_slave()
|
||||
if(len(slave_list)==0):
|
||||
return
|
||||
print("slaves:",slave_list)
|
||||
w=QDialog(self.widget)
|
||||
w.resize(700-100, len(slave_list)*40+20)
|
||||
w.setWindowTitle("升级mcu")
|
||||
self.scheme_mcu(slave_list)
|
||||
self.creat_progress(w,0,slave_list)
|
||||
w.show()
|
||||
|
||||
def refresh_but_clicked(self):
|
||||
print("refresh_but clicked.")
|
||||
@@ -414,7 +449,7 @@ class updata_dlg(QObject):
|
||||
def addfile_but_clicked(self):
|
||||
print("addfile_but clicked")
|
||||
fileName,fileType = QFileDialog.getOpenFileNames(None, "选取文件", os.getcwd(),
|
||||
"主板程序(*.elf);;小板程序(*.bin);;检测方案(*.json);;判定脚本(*.lua);;任意文件(*)")
|
||||
"主板程序(*.elf);;主板m4程序(*.axf);;小板程序(*.bin);;检测方案(*.json);;判定脚本(*.lua);;任意文件(*)")
|
||||
print(fileName,fileType)
|
||||
path=self.getpath()+"file\\"
|
||||
for i in fileName:
|
||||
@@ -430,7 +465,7 @@ class updata_dlg(QObject):
|
||||
# 扫描文件
|
||||
def scan_file(self):
|
||||
self.file_list.clear()
|
||||
self.file_list.addItems(self.find_type([".sh",".elf",".bin",".lua",".json",".dtb"]))
|
||||
self.file_list.addItems(self.find_type([".sh",".elf",".bin",".lua",".json",".dtb",".axf"]))
|
||||
|
||||
# 扫描从机
|
||||
def scan_slave(self):
|
||||
@@ -438,17 +473,17 @@ class updata_dlg(QObject):
|
||||
ip_prefix=self.ip_prefix.text()
|
||||
u.find(ip_prefix)
|
||||
ip_list=u.dst_ip_list
|
||||
if(len(ip_list)==0):
|
||||
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"))
|
||||
ip_list.append((ip_prefix+".84","local_id_4"))
|
||||
ip_list.append((ip_prefix+".85","local_id_5"))
|
||||
ip_list.append((ip_prefix+".86","local_id_6"))
|
||||
ip_list.append((ip_prefix+".87","local_id_7"))
|
||||
ip_list.append((ip_prefix+".88","local_id_8"))
|
||||
# if(len(ip_list)==0):
|
||||
# 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"))
|
||||
# ip_list.append((ip_prefix+".84","local_id_4"))
|
||||
# ip_list.append((ip_prefix+".85","local_id_5"))
|
||||
# ip_list.append((ip_prefix+".86","local_id_6"))
|
||||
# ip_list.append((ip_prefix+".87","local_id_7"))
|
||||
# ip_list.append((ip_prefix+".88","local_id_8"))
|
||||
list_str=[]
|
||||
for i in u.dst_ip_list:
|
||||
list_str.append(i[0]+','+i[1])
|
||||
@@ -488,13 +523,25 @@ class updata_dlg(QObject):
|
||||
u.dst_ip_list=ip_list
|
||||
u.rate_signal.connect(self.rate_slot)
|
||||
u.end_signal.connect(self.end_slot)
|
||||
updata_cmd="mcu updata 1,2,3,4,5,6,7,8,9,10 "
|
||||
updata_cmd="mcu updata 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 "
|
||||
updata_cmd+="/home/root/config/"+file
|
||||
cmd_list=[]
|
||||
cmd_list.append((updata_cmd,1,900))
|
||||
t = threading.Thread(target=u.bordcast, args=(cmd_list,))
|
||||
t.start()
|
||||
|
||||
# 开始升级方案
|
||||
def scheme_mcu(self,ip_list):
|
||||
u=udp.myudp(1,255)
|
||||
u.dst_ip_list=ip_list
|
||||
u.rate_signal.connect(self.rate_slot)
|
||||
u.end_signal.connect(self.end_slot)
|
||||
updata_cmd="mcu scheme 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 "
|
||||
cmd_list=[]
|
||||
cmd_list.append((updata_cmd,1,9))
|
||||
t = threading.Thread(target=u.bordcast, args=(cmd_list,))
|
||||
t.start()
|
||||
|
||||
# 小板通信测试
|
||||
def comm_test(self,ip_list):
|
||||
u=udp.myudp(1,255)
|
||||
|
Reference in New Issue
Block a user