From 8d779a68f3e2751ffc39499853cf063a3ef3aa47 Mon Sep 17 00:00:00 2001 From: ranchuan Date: Fri, 18 Aug 2023 18:53:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=B0=8F=E6=9D=BF=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=BB=93=E6=9E=9C=E8=BF=94=E5=9B=9E=EF=BC=8C=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E8=84=9A=E6=9C=AC=E5=8F=AF=E4=BB=A5=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=B3=A2=E7=89=B9=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python/file/Ym_Coder 2023-8-16.bin | Bin 0 -> 39188 bytes python/prottcp.py | 32 ++++++++++++++--- python/updata.py | 55 ++++++++++++++++++++--------- source/ReadMe.txt | 7 +++- source/codec/codec.c | 1 + source/main/compiler_info.h | 2 +- source/main/main.c | 38 ++++++++++++++++++-- source/task/prot_uc.c | 2 +- source/task/tran_for_coder2.c | 10 +++--- 9 files changed, 116 insertions(+), 31 deletions(-) create mode 100644 python/file/Ym_Coder 2023-8-16.bin diff --git a/python/file/Ym_Coder 2023-8-16.bin b/python/file/Ym_Coder 2023-8-16.bin new file mode 100644 index 0000000000000000000000000000000000000000..8ce5ef20b13fef6e8d2c0b16d0b7571f2c60bfc4 GIT binary patch literal 39188 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: + t=self.decode(data) + if(self.str_err=="ok"): + self.recv_data+=t + # print("recv",t.hex(",")) + # print(type(self.cmd),type(t),type(self.str_err)) + self.recv_signal.emit(self.cmd,t,self.str_err) + # self.send_file_next(self.cmd,t,self.str_err) + # print("sent signal---") + else: + print(data.decode("utf-8")) + # 带帧校验的接收函数 def recv(self): # self.recv_signal.connect(self.send_file_next) data=bytearray() @@ -381,7 +403,7 @@ class protu(QObject): # print("send:",data.hex(",")) self.ser.write(self.encode(data)) def send_str(self,txt:str): - self.ser.write(txt) + self.ser.write(txt.encode("utf-8")) def start_recv(self): self.thread_ = threading.Thread(target=self.recv, args=()) self.thread_.start() diff --git a/python/updata.py b/python/updata.py index 96f6b31..ed6798a 100644 --- a/python/updata.py +++ b/python/updata.py @@ -78,14 +78,15 @@ class updata_dlg(QObject): self.widget = QWidget() self.widget.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose) self.widget.resize(703, 409) - self.widget.setWindowTitle("批检仪程序升级") + self.widget.setWindowTitle("赋码仪程序升级") self.file_list_init() - self.save_but_init() - self.cmd_but_init() - self.sstate_but_init() - self.updatas_but_init() self.com_but_init() + self.save_but_init() + # self.updatas_but_init() + # self.cmd_but_init() + # self.sstate_but_init() self.com_init() + self.combsp_init() self.widget.destroyed.connect(self.quit) self.failed_signal.connect(self.updata_failed) self.cmd=0 @@ -112,7 +113,7 @@ class updata_dlg(QObject): def com_but_init(self): self.com_but = QPushButton(self.widget) self.com_but.setObjectName(u"com_but") - self.com_but.setGeometry(QRect(450, 10, 93, 28)) + self.com_but.setGeometry(QRect(590, 10, 93, 28)) self.com_but.setText("打开端口") self.com_but.clicked.connect(self.com_but_clicked) @@ -133,6 +134,14 @@ class updata_dlg(QObject): self.cmd_but.setText("升级MCU") self.cmd_but.clicked.connect(self.cmd_but_clicked) + # 初始化升级小板按钮 + def updatas_but_init(self): + self.updatas_but = QPushButton(self.widget) + self.updatas_but.setObjectName(u"updatas_but") + self.updatas_but.setGeometry(QRect(590, 100, 93, 28)) + self.updatas_but.setText("升级小板") + self.updatas_but.clicked.connect(self.updatas_but_clicked) + # 初始化在线状态按钮 def sstate_but_init(self): self.sstate_but = QPushButton(self.widget) @@ -141,19 +150,11 @@ class updata_dlg(QObject): self.sstate_but.setText("MCU在线状态") self.sstate_but.clicked.connect(self.sstate_but_clicked) - # 初始化升级小板按钮 - def updatas_but_init(self): - self.updatas_but = QPushButton(self.widget) - self.updatas_but.setObjectName(u"updatas_but") - self.updatas_but.setGeometry(QRect(590, 180, 93, 28)) - self.updatas_but.setText("升级小板") - self.updatas_but.clicked.connect(self.updatas_but_clicked) - # com口 def com_init(self): self.com = QComboBox(self.widget) self.com.setObjectName(u"com") - self.com.setGeometry(QRect(100, 10, 300, 21)) + self.com.setGeometry(QRect(85, 10, 300, 25)) self.com.setEditable(True) self.com.currentIndexChanged.connect(self.com_changed) self.com.addItem("utcp:7777") @@ -163,9 +164,22 @@ class updata_dlg(QObject): self.com.addItem(comport.name+":"+comport.description) self.com_label = QLabel(self.widget) self.com_label.setObjectName(u"label") - self.com_label.setGeometry(QRect(30, 10, 72, 15)) + self.com_label.setGeometry(QRect(30, 16, 72, 15)) self.com_label.setText("COM口:") + # 选择波特率 + def combsp_init(self): + self.combsp = QComboBox(self.widget) + self.combsp.setObjectName(u"combsp") + self.combsp.setGeometry(QRect(470, 10, 80, 25)) + self.combsp.setEditable(True) + self.combsp.addItem("115200") + self.combsp.addItem("9600") + self.combsp_label = QLabel(self.widget) + self.combsp_label.setObjectName(u"label") + self.combsp_label.setGeometry(QRect(410, 16, 72, 15)) + self.combsp_label.setText("波特率:") + # 显示消息框 def show_msg(self,msg:str): m=QMessageBox(self.widget) @@ -261,6 +275,7 @@ class updata_dlg(QObject): self.port.send(self.cmd,d) except Exception as e: print("com not open") + self.show_msg("端口未打开") del self.handle_ w.close() return @@ -301,8 +316,10 @@ class updata_dlg(QObject): def updatas_but_clicked(self): print("updatas_but clicked.") try: - self.port.send_str("updatas 1,2,3,4,5,6,7,8,9,10".encode("utf-8")) + self.port.send_str("updatas 1,2,3,4,5,6,7,8,9,10") + self.show_msg("已发送升级指令,请留意小板升级情况") except Exception as e: + self.show_msg("命令发送失败") print("com not open") print(str(e)) @@ -353,6 +370,10 @@ class updata_dlg(QObject): def com_thread(self): self.port=prottcp.protu() item=self.com.itemText(self.com.currentIndex()) + bsp=self.combsp.itemText(self.combsp.currentIndex()) + com=item.split(":")[0] + if(com!="utcp"): + item=com+":"+bsp print("item text:",item) if(self.port.init(item)==False): print("init port failed.") diff --git a/source/ReadMe.txt b/source/ReadMe.txt index dc83686..46495bf 100644 --- a/source/ReadMe.txt +++ b/source/ReadMe.txt @@ -148,4 +148,9 @@ 2023.8.4 添加注码错误偏移 2023.8.9 - 解决注码成功返回0xc0的问题 \ No newline at end of file + 解决注码成功返回0xc0的问题 +2023.8.17 + 修改一些通信逻辑,上报数据不自增流水号,使用上位机下发的流水号 + 与20230817V3.28X以前的程序不兼容 +2023.8.18 + 升级小板增加命令行返回 \ No newline at end of file diff --git a/source/codec/codec.c b/source/codec/codec.c index 82f1d55..58d92a8 100644 --- a/source/codec/codec.c +++ b/source/codec/codec.c @@ -74,6 +74,7 @@ array_def *protu_decode(protu_def *p,array_def *data) // DBG_WARN("duplicate sequence number."); // str_set(p->str_err,"duplicate sequence number."); // } + p->cmd_no=cmd_no; p->cmd=arr_get(data,4); // 数据负载 arr_delete(r); diff --git a/source/main/compiler_info.h b/source/main/compiler_info.h index 9760f69..2d42916 100644 --- a/source/main/compiler_info.h +++ b/source/main/compiler_info.h @@ -6,7 +6,7 @@ -#define BUILD_DATE "2023-08-09 13:54:50" +#define BUILD_DATE "2023-08-18 10:34:08" #define SOFT_VERSION "0.10" diff --git a/source/main/main.c b/source/main/main.c index fd3ae3d..07020e4 100644 --- a/source/main/main.c +++ b/source/main/main.c @@ -129,7 +129,10 @@ commend_export(scheme,scheme_info,"print scheme info") - +typedef struct{ + int updata_run; +}updata_def; +static updata_def g_updata; static int updata_slave(list_def *argv) { void *ptr=flash_get_slave(); @@ -150,13 +153,44 @@ static int updata_slave(list_def *argv) { int addr=list_get_int(addrs,i); port_mcu *mcu=tran_get_portm(tran,addr-1); - if(mcu) + if(mcu){ port_start(mcu,updata_creat(data,file->file_size)); + g_updata.updata_run++; + } } cmd_print("start updata,addr=%s",str_temp(list_string(addrs))); return 0; } +static void cmd_end_slot(void *obj,port_mcu *src,void *data,int ack,char *err_str) +{ + updata_def *self=obj; + if(self->updata_run>0) + { + cmd_print("addr:%d %s",port_get_addr(src),err_str); + self->updata_run--; + } +} +// 挂载命令行槽函数 +static int cmd_slot_init(void) +{ + void *tr=app_variable("tran",0,0); + if(tr){ + for(int i=0;i<20;i++){ + port_mcu *mcu=tran_get_portm(tr,i); + // 连接操作结束信号 + if(mcu) + connect(mcu,port_end_signal,0,&g_updata,cmd_end_slot); + } + } + else{ + app_valid_call("tran",(void (*)(void *))cmd_slot_init,0); + } + return 0; +} +app_init_export(cmd_slot_init); + + commend_export(updatas,updata_slave,"updata slave") diff --git a/source/task/prot_uc.c b/source/task/prot_uc.c index dd15158..b925058 100644 --- a/source/task/prot_uc.c +++ b/source/task/prot_uc.c @@ -281,7 +281,7 @@ void protu_send_call(protu_def *p,uint8_t cmd,array_def *data) if(cmd!=0){ p->cmd=cmd; // 上报数据不增加流水号 2023.7.14 - p->cmd_no++; + //p->cmd_no++; if(p->codec) t=p->codec->encode(p,data); }else if(p->cmd==0) diff --git a/source/task/tran_for_coder2.c b/source/task/tran_for_coder2.c index 037a8bb..3c35668 100644 --- a/source/task/tran_for_coder2.c +++ b/source/task/tran_for_coder2.c @@ -199,6 +199,8 @@ static ucport_def *write_uid(tran_def *t, uint8_t cmd,array_def *data) port_start(mcu,code_creat(8,4,u->item[i].uid_pw_hex)); }else{ // 管壳码无效,不注码,此时默认已ack + // 管壳码无效不视为失败 + ret=0; write_uid_fillret(u,i+1,0xff); } } @@ -210,14 +212,14 @@ static ucport_def *write_uid(tran_def *t, uint8_t cmd,array_def *data) array_def *a=arr_creat(); arr_append(a,u->addrs_num); - if(g_self.step==1){ +// if(g_self.step==1){ if(ret==0) arr_append(a,TRAN_ERR_NONE); else arr_append(a,TRAN_ERR_PARAM); - }else{ - arr_append(a,TRAN_ERR_STEP); - } +// }else{ +// arr_append(a,TRAN_ERR_STEP); +// } emit tran_reply_signal(u->u.p,arr_temp(a)); // test:稍后返回成功