diff --git a/ReadMe.txt b/ReadMe.txt index 6f5c2a0..6c59d0c 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -49,4 +49,7 @@ V2.02 0x48,0x30指令的返回数据中添加流水号信息 0x11 注码命令所有芯片都使用16位uid 添加自动测试命令0x44 +2024.01.04 + 添加自动测试命令 auto_test + V2.03 批检仪检测指令使用小板的错误码 diff --git a/complier_info.h b/complier_info.h index fa74ef6..2ca9b5f 100644 --- a/complier_info.h +++ b/complier_info.h @@ -6,7 +6,7 @@ -#define BUILD_DATE "2024-01-03 17:45:14" +#define BUILD_DATE "2024-01-04 14:43:54" diff --git a/info.json b/info.json index 01e584d..5910036 100644 --- a/info.json +++ b/info.json @@ -1,10 +1,10 @@ { - "build_date": "2024-01-03 17:45:14", + "build_date": "2024-01-04 14:43:54", "hard_version": "MHPZ2_V1.00", "private": [ "info.json", "json.lua", "prints.lua" ], - "soft_version": "V2.02" + "soft_version": "V2.03" } diff --git a/prot_cmd/cmd_cmdline.cpp b/prot_cmd/cmd_cmdline.cpp index 0dcee98..8167766 100644 --- a/prot_cmd/cmd_cmdline.cpp +++ b/prot_cmd/cmd_cmdline.cpp @@ -11,6 +11,7 @@ #include "cmd_cmdline.h" #include "interface/if_can.h" #include "elec/mystring.h" +#include "prot/prot_pc.h" @@ -175,11 +176,11 @@ static void mcu_cmdlines(QList args) rate_slot(rate,str); }); myarray data; - if(cfg_->slave_scheme_ext==0){ - data=myarray((const char *)ccfg_->check_scheme()->slave_data,2048); - }else{ +// if(cfg_->slave_scheme_ext==0){ +// data=myarray((const char *)ccfg_->check_scheme()->slave_data,2048); +// }else{ data=myarray((const char *)ccfg_->check_scheme(),ccfg_->check_scheme_size()); - } +// } b->start(data); } } @@ -289,6 +290,33 @@ cmdline_export(cfginfo, cfginfo, get cfg info.); +void cmd_line_slots::auto_test(){ + if(syscfg()->auto_test>0){ + ProtPc *pc=protPc(); + pc->send_data_slot(0x37,myarray(1,char(0))); + } +} + +void cmd_line_slots::auto_start() +{ + command *c=command_start(); + if(timer_==nullptr){ + timer_=new QTimer(); + connect(timer_,&QTimer::timeout, this, &cmd_line_slots::auto_test); + } + if(syscfg()->auto_test>0){ + c->send("auto test start."); + timer_->start(syscfg()->auto_test*1000); + }else{ + c->send("auto test stop."); + timer_->stop(); + } +} + + + +static cmd_line_slots *g_slot_=nullptr; + static void cfgset(QList args){ command *c=command_start(); prot_slave *slave=protSlave(); @@ -341,6 +369,15 @@ static void cfgset(QList args){ }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()) + }else if(args[1]=="auto_test"){ + cfg_->auto_test=args[2].toInt(); + print_item("auto_test",mystring::number(cfg_->auto_test).toLocal8Bit()) + if(g_slot_==nullptr){ + g_slot_=new cmd_line_slots(); + } + if(g_slot_!=nullptr){ + QTimer::singleShot(0, g_slot_, &cmd_line_slots::auto_start); + } } } cmdline_export(cfgset, cfgset, set cfg info.); diff --git a/prot_cmd/cmd_cmdline.h b/prot_cmd/cmd_cmdline.h index 5ee6fe1..8ec9210 100644 --- a/prot_cmd/cmd_cmdline.h +++ b/prot_cmd/cmd_cmdline.h @@ -3,19 +3,33 @@ #include "QObject" +#include "QTimer" #include "base/base.h" -//class cmd_line_slots:public QObject -//{ -// Q_OBJECT -//public: -// cmd_line_slots(){} -// ~cmd_line_slots(){} -//public slots: +class cmd_line_slots:public QObject +{ + Q_OBJECT +public: + cmd_line_slots(){ + timer_=nullptr; + run_flag=0; + } + ~cmd_line_slots(){ + if(timer_!=nullptr){ + delete timer_; + timer_=nullptr; + } + } +public slots: // void rate_slot(int rate,mystring str); // void end_slot(int addr,int ack,myarray data); -//}; + void auto_test(); + void auto_start(); +protected: + QTimer *timer_; + int run_flag; +}; diff --git a/prot_cmd/cmd_coder.cpp b/prot_cmd/cmd_coder.cpp index cfeafd4..106f274 100644 --- a/prot_cmd/cmd_coder.cpp +++ b/prot_cmd/cmd_coder.cpp @@ -661,23 +661,29 @@ int cmd_checker_check::dolater(int cmd, myarray data) slave_acked.append(myarray()); } slave_acked_num=0; + if(key_press()!=0){ + }else{ + busy=0; + qWarning("key not pressed,check will not start."); + return 2; + } myarray moter_cmd=moter_ctrl("down"); if(moter_cmd.size()==0){ busy=0; qWarning("moter failed."); return 1; - } - if(key_press()!=0){ + }else{ m4->set_irq_fun(moter_down_cb_fun,"moter down"); emit send_to_m4_signal(moter_cmd); - }else{ - qWarning("key not pressed,check will not start."); - return 2; } return 0; } int cmd_checker_check::key_press(){ - return cmd_m4_key_pressed(); + if(syscfg()->auto_test==0){ + return cmd_m4_key_pressed(); + }else{ + return 1; + } } diff --git a/prot_cmd/cmd_pc.cpp b/prot_cmd/cmd_pc.cpp index 30a2b34..3523166 100644 --- a/prot_cmd/cmd_pc.cpp +++ b/prot_cmd/cmd_pc.cpp @@ -140,6 +140,7 @@ myarray tran_slave_to_selfdev_check(myarray &data) r.append((len_for_each-1),char(0xff)); }else{ // 去掉应答位 + uint8_t slave_err=data[0]; data.remove(0,1); myarray paramerr=ccfg_->returns_to_paramerr(data.right(return_num*2)); r=data.left(8)+paramerr+data.right(return_num*2); @@ -147,6 +148,9 @@ myarray tran_slave_to_selfdev_check(myarray &data) uint8_t *d=(uint8_t *)data.data(); elec_judge(ccfg_->check_scheme(),ccfg_->get_check_task_num(), d,d+8,d+16,&marerr,&suberr); + if(marerr==0){ + marerr=slave_err; + } r.insert(0,uint8_t(marerr)); } return r; diff --git a/quest_info.txt b/quest_info.txt index c42a65c..bf3b87f 100644 --- a/quest_info.txt +++ b/quest_info.txt @@ -1 +1 @@ -V2.02 添加自动测试命令0x44 \ No newline at end of file +V2.03 批检仪检测命令本地错误码为0时使用小板的错误码 \ No newline at end of file