From 58b751d5194f57ec7f7e2e0db18bb03ff7b589c2 Mon Sep 17 00:00:00 2001 From: ranchuan Date: Wed, 9 Aug 2023 18:39:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E7=BB=99=E5=B0=8F=E6=9D=BF?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E6=96=B9=E6=A1=88=EF=BC=8C=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E6=94=B9=E4=B8=BA20=E9=80=9A=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReadMe.txt | 8 ++++- udp.py | 12 +++++--- updata.py | 89 +++++++++++++++++++++++++++++++++++++++++------------- 3 files changed, 83 insertions(+), 26 deletions(-) diff --git a/ReadMe.txt b/ReadMe.txt index 85912b5..2a8494b 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -29,4 +29,10 @@ 2023.5.12 添加一些提示和警告信息 2023.5.17 - 仓库地址 git@124.70.178.159:/home/git/rep/updata.git \ No newline at end of file + 仓库地址 git@124.70.178.159:/home/git/rep/updata.git +2023.7.27 + .json 结尾的视为方案 +2023.7.28 + 添加升级方案按钮 + .axf 结尾的为主板m4程序 + 改为20通道 \ No newline at end of file diff --git a/udp.py b/udp.py index 48e9ebe..47550cf 100644 --- a/udp.py +++ b/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) diff --git a/updata.py b/updata.py index ba5946e..cd1eda8 100644 --- a/updata.py +++ b/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)