From 78b3a839fdac6e47872a8a56638ef82db1e5854d Mon Sep 17 00:00:00 2001 From: ranchuan Date: Wed, 3 Jan 2024 17:51:39 +0800 Subject: [PATCH] =?UTF-8?q?=20=20V2.02=200x48,0x30=E6=8C=87=E4=BB=A4?= =?UTF-8?q?=E7=9A=84=E8=BF=94=E5=9B=9E=E6=95=B0=E6=8D=AE=E4=B8=AD=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B5=81=E6=B0=B4=E5=8F=B7=E4=BF=A1=E6=81=AF=20=20=20?= =?UTF-8?q?0x11=20=E6=B3=A8=E7=A0=81=E5=91=BD=E4=BB=A4=E6=89=80=E6=9C=89?= =?UTF-8?q?=E8=8A=AF=E7=89=87=E9=83=BD=E4=BD=BF=E7=94=A816=E4=BD=8Duid=20?= =?UTF-8?q?=20=20=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E5=91=BD=E4=BB=A40x44?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReadMe.txt | 6 ++- complier_info.h | 2 +- info.json | 4 +- prot_cmd/cmd_cmdline.cpp | 56 +++++++++++++++++++++++++ prot_cmd/cmd_coder.cpp | 88 +++++++++++++++++++++++++++++----------- prot_cmd/cmd_coder.h | 41 +++++++++++++++++++ prot_cmd/cmd_pc.cpp | 2 +- quest_info.txt | 2 +- 8 files changed, 171 insertions(+), 30 deletions(-) diff --git a/ReadMe.txt b/ReadMe.txt index cfd3277..6f5c2a0 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -45,6 +45,8 @@ 添加slave_info命令测试小板通信状态 添加cfginfo命令显示配置文件信息 按键处于按下状态才响应检测命令 - - +2024.01.03 + V2.02 0x48,0x30指令的返回数据中添加流水号信息 + 0x11 注码命令所有芯片都使用16位uid + 添加自动测试命令0x44 diff --git a/complier_info.h b/complier_info.h index 035bebe..fa74ef6 100644 --- a/complier_info.h +++ b/complier_info.h @@ -6,7 +6,7 @@ -#define BUILD_DATE "2023-12-29 17:59:05" +#define BUILD_DATE "2024-01-03 17:45:14" diff --git a/info.json b/info.json index b12c113..01e584d 100644 --- a/info.json +++ b/info.json @@ -1,10 +1,10 @@ { - "build_date": "2023-12-29 17:59:05", + "build_date": "2024-01-03 17:45:14", "hard_version": "MHPZ2_V1.00", "private": [ "info.json", "json.lua", "prints.lua" ], - "soft_version": "V2.01" + "soft_version": "V2.02" } diff --git a/prot_cmd/cmd_cmdline.cpp b/prot_cmd/cmd_cmdline.cpp index 92f091c..0dcee98 100644 --- a/prot_cmd/cmd_cmdline.cpp +++ b/prot_cmd/cmd_cmdline.cpp @@ -282,12 +282,68 @@ static void cfginfo(QList args){ print_item("uart_bsp",mystring::number(cfg_->uart_bsp).toLocal8Bit()); print_item("coder_return_mode",mystring::number(cfg_->coder_return_mode).toLocal8Bit()); print_item("slave_addr_start",mystring::number(cfg_->slave_addr_start).toLocal8Bit()); + print_item("slave_scheme_ext",mystring::number(cfg_->slave_scheme_ext).toLocal8Bit()) } cmdline_export(cfginfo, cfginfo, get cfg info.); +static void cfgset(QList args){ + command *c=command_start(); + prot_slave *slave=protSlave(); + mycfg *cfg_=syscfg(); + if(args.size()<3){ + if((args.size()<2)||(args[1]!="save")){ + c->send("cmd len too less."); + c->send("cfgset [item] [params],for example\n" + "\tcfgset tcp_enable true"); + }else{ + syscfg()->save(); + syscfg()->restart(); + } + return ; + } + if(args[1]=="tcp_enable"){ + if(args[2]=="true"){ + cfg_->tcp_enable=true; + }else if(args[2]=="false"){ + cfg_->tcp_enable=false; + } + print_item("tcp_enable",cfg_->tcp_enable?"true":"false"); + }else if(args[1]=="server_ip"){ + cfg_->server_ip=mystring(args[2]); + print_item("server_ip",cfg_->server_ip.toLocal8Bit()); + }else if(args[1]=="server_port"){ + cfg_->server_port=args[2].toInt(); + print_item("server_port",mystring::number(cfg_->server_port).toLocal8Bit()); + }else if(args[1]=="local_id"){ + cfg_->local_id=args[2].toInt(); + print_item("local_id",mystring::number(cfg_->local_id).toLocal8Bit()); + }else if(args[1]=="can_bitrate"){ + cfg_->can_bitrate=args[2].toInt(); + print_item("can_bitrate",mystring::number(cfg_->can_bitrate).toLocal8Bit()); + }else if(args[1]=="slave_num"){ + cfg_->slave_num=args[2].toInt(); + print_item("slave_num",mystring::number(cfg_->slave_num).toLocal8Bit()); + }else if(args[1]=="moter_count"){ + cfg_->moter_count=args[2].toInt(); + print_item("moter_count",mystring::number(cfg_->moter_count).toLocal8Bit()); + }else if(args[1]=="uart_bsp"){ + cfg_->uart_bsp=args[2].toInt(); + print_item("uart_bsp",mystring::number(cfg_->uart_bsp).toLocal8Bit()); + }else if(args[1]=="coder_return_mode"){ + cfg_->coder_return_mode=args[2].toInt(); + print_item("coder_return_mode",mystring::number(cfg_->coder_return_mode).toLocal8Bit()); + }else if(args[1]=="slave_addr_start"){ + cfg_->slave_addr_start=args[2].toInt(); + print_item("slave_addr_start",mystring::number(cfg_->slave_addr_start).toLocal8Bit()); + }else if(args[1]=="slave_scheme_ext"){ + cfg_->slave_scheme_ext=args[2].toInt(); + print_item("slave_scheme_ext",mystring::number(cfg_->slave_scheme_ext).toLocal8Bit()) + } +} +cmdline_export(cfgset, cfgset, set cfg info.); diff --git a/prot_cmd/cmd_coder.cpp b/prot_cmd/cmd_coder.cpp index da9144a..cfeafd4 100644 --- a/prot_cmd/cmd_coder.cpp +++ b/prot_cmd/cmd_coder.cpp @@ -465,7 +465,7 @@ myarray cmd_coder_code2::cmd_pc_to_slave(myarray data) memcpy(uid.shell,data.mid(5+i*14+1,13).data(),13); if(check_shell_code(uid.shell)==1){ // 只有管壳码验证通过时才计算uid和密码 - if(chip_mode!=0){ +// if(chip_mode!=0){ coder_shell_to_uid(year,uid.shell,uid.uid); // 生成存储码 coder_uid_to_save(uid.uid,(uint8_t *)uid.uid_psw); @@ -474,16 +474,16 @@ myarray cmd_coder_code2::cmd_pc_to_slave(myarray data) // 生成密码字符串 sprintf(uid.psw,"%02X%02X%02X%02X",uid.uid_psw[8], uid.uid_psw[9],uid.uid_psw[10],uid.uid_psw[11]); - }else{ - coder_shell_to_uid_jq(year,uid.shell,uid.uid); - // 生成存储码 - UidCode_YM2JQ((PST_JQUID_TYPEDEF)uid.uid_psw,(PST_YMUID_TYPEDEF)uid.uid); - // 生成密码 - JQ_GetPasswordByUidCode((uint8_t *)uid.uid,(uint8_t *)&uid.uid_psw[8]); - // 生成密码字符串 - sprintf(uid.psw,"%02X%02X%02X%02X",uid.uid_psw[11], - uid.uid_psw[10],uid.uid_psw[9],uid.uid_psw[8]); - } +// }else{ +// coder_shell_to_uid_jq(year,uid.shell,uid.uid); +// // 生成存储码 +// UidCode_YM2JQ((PST_JQUID_TYPEDEF)uid.uid_psw,(PST_YMUID_TYPEDEF)uid.uid); +// // 生成密码 +// JQ_GetPasswordByUidCode((uint8_t *)uid.uid,(uint8_t *)&uid.uid_psw[8]); +// // 生成密码字符串 +// sprintf(uid.psw,"%02X%02X%02X%02X",uid.uid_psw[11], +// uid.uid_psw[10],uid.uid_psw[9],uid.uid_psw[8]); +// } } uid_codes.append(uid); params[0]=(8)|(4<<8); @@ -521,11 +521,11 @@ myarray cmd_coder_code2::ret_slave_to_pc(QList data) if(syscfg()->coder_return_mode){ r.append(uint8_t(0)); r.append(13); - if(chip_mode==0){ - r.append(15); - }else{ +// if(chip_mode==0){ +// r.append(15); +// }else{ r.append(16); - } +// } }else{ r.append(uint8_t(1)); } @@ -559,11 +559,11 @@ myarray cmd_coder_code2::ret_slave_to_pc(QList data) if(syscfg()->coder_return_mode){ r.append(uid_codes[i].shell,13); // r.append(13,i+'0'); - if(chip_mode==0){ - r.append(uid_codes[i].uid,15); - }else{ +// if(chip_mode==0){ +// r.append(uid_codes[i].uid,15); +// }else{ r.append(uid_codes[i].uid,16); - } +// } } r.append(uid_codes[i].psw,8); } @@ -667,7 +667,7 @@ int cmd_checker_check::dolater(int cmd, myarray data) qWarning("moter failed."); return 1; } - if(cmd_m4_key_pressed()!=0){ + if(key_press()!=0){ m4->set_irq_fun(moter_down_cb_fun,"moter down"); emit send_to_m4_signal(moter_cmd); }else{ @@ -676,6 +676,9 @@ int cmd_checker_check::dolater(int cmd, myarray data) } return 0; } +int cmd_checker_check::key_press(){ + return cmd_m4_key_pressed(); +} // 批检仪检测并写入流水号 @@ -695,8 +698,8 @@ myarray cmd_checker_check::cmd_pc_to_slave(myarray data) ret+=d; } - // 检测模式0,返回原始检测结果 - ret.insert(0,uint8_t(0)); + // 检测模式2,返回原始检测结果和槽数据 + ret.insert(0,uint8_t(2)); // qDebug()<<"checker check pack data:"< data) { myarray r; + check_cfg *ccfg_=check_plan(); r.append(char(0)); for(int i=0;islave_addr_start; sdata.remove(0,1); qDebug()<<"checker check ret data:"<get_return_num(); + myarray check_data=sdata.left(1+16+return_num*2); + r.append(tran_slave_to_selfdev_check(check_data)); + r.append(coder_slave_find_ret_data(sdata.mid(1+16+return_num*2),2,4)); + } return r; } @@ -726,6 +735,39 @@ protpc_export(0x48, get_checker_check); +// 批检仪检测并读取流水号 +myarray cmd_checker_check2::cmd_pc_to_slave(myarray data) +{ + myarray ret; + const task_def *table=nullptr; + uint16_t params[10]={0}; + for(int i=0;i data); + virtual int key_press(); protected: // int addrs; int mode; @@ -393,6 +394,46 @@ signals: +// 批检仪检测并读取模块流水号 +class cmd_checker_check2 : public cmd_checker_check +{ + Q_OBJECT +public: + cmd_checker_check2():cmd_checker_check(){ + } + ~cmd_checker_check2(){ + } + // pc指令转从机 + myarray cmd_pc_to_slave(myarray data); + // pc指令生成从机列表 + QList cmd_pc_to_addrs(myarray data){ + return syscfg()->calc_slave_addrs(); + } + // pc收到回复,返回0不回复 + int cmd_pc_recv(){ + return 0x30; + } +}; + + + + +// 批检仪自动检测并读取模块流水号 +class cmd_checker_check3 : public cmd_checker_check2 +{ + Q_OBJECT +public: + cmd_checker_check3():cmd_checker_check2(){ + } + ~cmd_checker_check3(){ + } + // pc收到回复,返回0不回复 + int cmd_pc_recv(){ + return 0x44; + } + int key_press(); +}; + diff --git a/prot_cmd/cmd_pc.cpp b/prot_cmd/cmd_pc.cpp index 6db62e6..30a2b34 100644 --- a/prot_cmd/cmd_pc.cpp +++ b/prot_cmd/cmd_pc.cpp @@ -174,7 +174,7 @@ void selfdev_check::slave_end_slot(int addr,int ack, myarray data) static HandlePc *get_selfdev_check(){ return new selfdev_check(); } -protpc_export(0x30, get_selfdev_check); +//protpc_export(0x30, get_selfdev_check); diff --git a/quest_info.txt b/quest_info.txt index 79a21be..c42a65c 100644 --- a/quest_info.txt +++ b/quest_info.txt @@ -1 +1 @@ -V2.00 重构主板程序,添加检测并写入流水号命令,只支持V2.09及以上的小板程序 \ No newline at end of file +V2.02 添加自动测试命令0x44 \ No newline at end of file