From 6cf5e9e7202d20bbbac1e29d823301ce63dc2508 Mon Sep 17 00:00:00 2001 From: ranchuan Date: Thu, 21 Dec 2023 18:45:48 +0800 Subject: [PATCH] =?UTF-8?q?=20=20=20=20=E6=96=B0=E5=B9=BF=E6=92=AD?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E6=B5=8B=E8=AF=95=E6=A3=80=E6=B5=8B=EF=BC=8C?= =?UTF-8?q?=E6=B3=A8=E7=A0=81=E6=AD=A3=E5=B8=B8=EF=BC=8C=E5=8A=A0=E5=AE=BD?= =?UTF-8?q?=E4=BA=86=E6=95=B0=E6=8D=AE=E4=B8=8A=E6=8A=A5=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E7=89=87=20=20=20=20=20=E6=B7=BB=E5=8A=A0=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E4=BB=A3=E7=A0=819=EF=BC=8C=E6=A7=BD=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=9C=AA=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- checher_slave.uvoptx | 12 +-- doc/CSMZM_V0.13.bin | Bin 0 -> 16384 bytes doc/__csmzm_app.bin | Bin 11264 -> 11264 bytes source/ReadMe.txt | 5 +- source/elec_det/elec_judge.c | 2 +- source/elec_det/elec_task_slot.h | 1 + source/elec_det/interface/CheckerExt.c | 1 + source/elec_det/interface/EWChecker.c | 143 +++++++++++++++++++++---- source/elec_det/interface/JQChecker.c | 117 ++++++++++++++++++++ source/main/compiler_info.h | 2 +- source/task/prot_uc.c | 2 +- source/task/tran_for_broadcast.c | 71 ++++++++---- 12 files changed, 301 insertions(+), 55 deletions(-) create mode 100644 doc/CSMZM_V0.13.bin diff --git a/checher_slave.uvoptx b/checher_slave.uvoptx index 73e0b3e..dd38578 100644 --- a/checher_slave.uvoptx +++ b/checher_slave.uvoptx @@ -299,7 +299,7 @@ 1 0 - 0 + 1 18 @@ -382,14 +382,14 @@ 0 1 - checker_runcfg + g_task_slot 1 - 10 - 0x20006924 + 8 + file 0 @@ -523,7 +523,7 @@ 1 0 - 1 + 0 18 @@ -1565,7 +1565,7 @@ rt_thread - 0 + 1 0 0 0 diff --git a/doc/CSMZM_V0.13.bin b/doc/CSMZM_V0.13.bin new file mode 100644 index 0000000000000000000000000000000000000000..ecb425fe583c8209cb838f8822b283bd022e2b0e GIT binary patch literal 16384 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 a*S}wL;A;+i&4I5u@HGd%=D`0i9QZ#jWKsnH literal 0 HcmV?d00001 diff --git a/doc/__csmzm_app.bin b/doc/__csmzm_app.bin index 605fcad1a0246ec4c71fa1ab730bb3169e671eab..ddb338f29939918da25a338b0356e6173ec9f738 100644 GIT binary patch delta 2665 zcmai03v5&875@M0d;Lh``1+C9Gl(De1WE`DnAk$?~CMmWR=bM}lpbepZtzo|8X!XDc85Zy`)l94iwlk9%G8s-W%d$&3QL;5SU-cXH>ynX_dc|Y z6+#g!vKO^tJABBRGWbvS2+;?;Ml49PwlS6y?Z_6;`|vSqr?+8`b&O)<{~F2@yTZYrF#EyT&efN4%NTwVX-P-unv>Z%DZXR z{VLf&Ug;K%5$_&}v_5~79%EpGx?o{skWjISPi|-z_3MmW&BfBGMy^VU?)B{=@|R16 zah{LJeD6q!k+UgKu9Nw2|A>8@&w{Ah^iy6NSBdjr$IXHK-o8f6=+vNke1oUrZxavf z7~GWKJGK(Yh`){f{Mw3JgF5rSzQU_fXME+?ammn84@ylTlXQbi<6`(4sMA?`L^1ijs7 z@EzFWNjQ9W){Z_xSQy*^_>0Dod$veQJ$})zuylqD zL1FI+qPVexcxwSGUd?%fBU8?&tN-5;`~7R4DG6Ciaea`=aceNjhD};gN_`eAxw_p4 zVKaFz;)q~#YvH*J%lG!pa7CPzvdO0l*FHDQo-UP5$i@mzO?LSNW+aQNZC?+ONWYO2 zvkti0;<5x&{)VL7C7+%a+JinKW^#c$A9O@$xnzjWlfi`sIm5*7kKpEk;zjjRAklL4-P- z&Cu4;n0~-pA$R8WMMp5xK>1jQBBC>h$Gvc(H$$I|c}wY@c)N{2NV%nyB+2RMBVs9@ z8SeMENv^m~;(1t>DKG=8;l<2%7~TOU?W;^jF6`CTFdf zu|hHoESE@9Es;bEwsclRw9CmPCBCYvuhAG*sc}51jg2ZTR!)r?pfLE9$xL)v2LZ!m zCbke>GSo8z*`2oxlPPTgYFf?MW9|UBAWE}9Sv=1$M!CTubjwop>>cbd`@x{-&a2h;g`S+ zk&rB1l{0(6E1jVeO1>LW@_=95DTfo3!&yBRj`t&NZ5)9Okv<*PY^4U}=YvMB3^Pfs z*q3(I1=n({^g|fRnQH7<8tOBVUBSa`$2pu`1kV@DG-oq54rx^NR`E&A`@6h##n8QhgpC+HkY#-t%6NkpBVKszV4Wcq%aIi!uVo4K; zdL*Xf8K}=|P`c+xOrQcTMUJK%&6S1WcV@ z6a=U#(Xzc&ViK=nVyA<$x_ZlWSYfp>UI7yJ9N2B0VX?jVBqI&_P3vV;PKWDO7c)}Q z`N(>N+8b6s8EruAlMn@&nS_gHG zvTV&XAx6XUum!eHhe**$1Mk8?hn2C$;g60&v$boxPk<97SgS>>g)ifk*^6fih8#a+ zbYDW9P{Yg*!CoOi&%ixlDn9i^cDe+fE?W9j)l?C$-JwF S(@QDQc6v%KFr5u0RrG%+ilH>uHr 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 diff --git a/source/ReadMe.txt b/source/ReadMe.txt index 18a1fab..f73065d 100644 --- a/source/ReadMe.txt +++ b/source/ReadMe.txt @@ -301,5 +301,6 @@ 添加文件 tran_for_coder.c 2023.12.20 V2.09 使用任务插槽设置电阻校准值成功 - - +2023.12.21 + 新广播命令测试检测,注码正常,加宽了数据上报的时间片 + 添加异常代码9,槽任务未执行 diff --git a/source/elec_det/elec_judge.c b/source/elec_det/elec_judge.c index 4856b66..b9de1cf 100644 --- a/source/elec_det/elec_judge.c +++ b/source/elec_det/elec_judge.c @@ -340,7 +340,7 @@ int elec_err_classify(int err) // 找到异常代码序号 int elec_report_err(elec_judge_def *e) { - static const uint8_t pro_table[]={1,3,7,8,2,4,5,6,20,0}; + static const uint8_t pro_table[]={1,3,7,8,2,4,5,6,9,20,0}; uint8_t index=0; for (int i=0;iexe_flag=1; } exe_ret|=checker_runcfg.excue_rtv; memcpy(t->rets,&checker_runcfg.Test_Rtv[checker_runcfg.rtv_index],checker_runcfg.rtv_count*2); diff --git a/source/elec_det/interface/EWChecker.c b/source/elec_det/interface/EWChecker.c index 213e1ff..2b1ba42 100644 --- a/source/elec_det/interface/EWChecker.c +++ b/source/elec_det/interface/EWChecker.c @@ -835,18 +835,36 @@ void EW_Test_WriteUID(void) return; } + delay_os_ms(50); memcpy(EW_RunBuf,checker_runcfg.writeuid,checker_runcfg.uid_len); EW_RunBuf[checker_runcfg.uid_len] = CheckCRC_8(EW_RunBuf,checker_runcfg.uid_len); - uc_rtv |= EW_WriteMTP(checker_runcfg.netid,0x00,EW_RunBuf,checker_runcfg.uid_len+1); + uc_rtv = EW_WriteMTP(checker_runcfg.netid,0x00,EW_RunBuf,checker_runcfg.uid_len+1); + if(uc_rtv){ + uc_rtv=1; + goto end; + } delay_os_ms(50); - uc_rtv |= EW_WriteMTP(checker_runcfg.netid,0x20,EW_RunBuf,checker_runcfg.uid_len+1); + uc_rtv = EW_WriteMTP(checker_runcfg.netid,0x20,EW_RunBuf,checker_runcfg.uid_len+1); + if(uc_rtv){ + uc_rtv=2; + goto end; + } delay_os_ms(50); memcpy(EW_RunBuf,checker_runcfg.writepwd,checker_runcfg.pwd_len); EW_RunBuf[checker_runcfg.pwd_len] = CheckCRC_8(EW_RunBuf,checker_runcfg.pwd_len); - uc_rtv |= EW_WriteMTP(checker_runcfg.netid,0x04,EW_RunBuf,checker_runcfg.pwd_len+1); + uc_rtv = EW_WriteMTP(checker_runcfg.netid,0x04,EW_RunBuf,checker_runcfg.pwd_len+1); + if(uc_rtv){ + uc_rtv=3; + goto end; + } delay_os_ms(50); - uc_rtv |= EW_WriteMTP(checker_runcfg.netid,0x24,EW_RunBuf,checker_runcfg.pwd_len+1); + uc_rtv = EW_WriteMTP(checker_runcfg.netid,0x24,EW_RunBuf,checker_runcfg.pwd_len+1); + if(uc_rtv){ + uc_rtv=4; + goto end; + } + end: Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex); } @@ -859,10 +877,11 @@ void EW_Test_VerifyUID(void) System_State_un state; if(JQXT_Test_IsNeedBind() == 0) { - Checker_MaskResult(0,checker_runcfg.task_info.runindex); - return; + uc_rtv=0; + goto end; } //读UID MTP + delay_ms(50); memset(EW_RunBuf,0,sizeof(EW_RunBuf)); EW_ReadMTP(checker_runcfg.netid,0x00,EW_RunBuf,checker_runcfg.uid_len+1); if(EW_RunBuf[checker_runcfg.uid_len] != CheckCRC_8(EW_RunBuf,checker_runcfg.uid_len)) @@ -875,11 +894,11 @@ void EW_Test_VerifyUID(void) } if(uc_rtv > 0) { - Checker_MaskResult(1,checker_runcfg.task_info.runindex); - return; + uc_rtv=1; + goto end; } + delay_ms(50); memset(EW_RunBuf,0,sizeof(EW_RunBuf)); - delay_ms(50); EW_ReadMTP(checker_runcfg.netid,0x20,EW_RunBuf,checker_runcfg.uid_len+1); if(EW_RunBuf[checker_runcfg.uid_len] != CheckCRC_8(EW_RunBuf,checker_runcfg.uid_len)) { @@ -891,8 +910,8 @@ void EW_Test_VerifyUID(void) } if(uc_rtv > 0) { - Checker_MaskResult(2,checker_runcfg.task_info.runindex); - return; + uc_rtv=2; + goto end; } //读PWD MTP @@ -909,8 +928,8 @@ void EW_Test_VerifyUID(void) } if(uc_rtv > 0) { - Checker_MaskResult(3,checker_runcfg.task_info.runindex); - return; + uc_rtv=3; + goto end; } memset(EW_RunBuf,0,sizeof(EW_RunBuf)); delay_ms(50); @@ -925,8 +944,8 @@ void EW_Test_VerifyUID(void) } if(uc_rtv > 0) { - Checker_MaskResult(4,checker_runcfg.task_info.runindex); - return; + uc_rtv=4; + goto end; } //读UID @@ -939,8 +958,8 @@ void EW_Test_VerifyUID(void) } if(uc_rtv > 0) { - Checker_MaskResult(5,checker_runcfg.task_info.runindex); - return; + uc_rtv=5; + goto end; } //验证PWD memcpy(EW_RunBuf,checker_runcfg.writepwd,checker_runcfg.pwd_len); @@ -948,8 +967,8 @@ void EW_Test_VerifyUID(void) uc_rtv = EW_VerfyPWD(checker_runcfg.netid,EW_RunBuf,checker_runcfg.pwd_len); if(uc_rtv > 0) { - Checker_MaskResult(6,checker_runcfg.task_info.runindex); - return; + uc_rtv=6; + goto end; } //读状态 delay_ms(200); @@ -957,10 +976,12 @@ void EW_Test_VerifyUID(void) // if(uc_rtv > 0 || state.State_st.erprom_error >0 || state.State_st.pswd_flag == 0) if(uc_rtv > 0 || state.State_st.pswd_flag == 0) { - Checker_MaskResult(7,checker_runcfg.task_info.runindex); - return; + uc_rtv=7; + goto end; } - Checker_MaskResult(0,checker_runcfg.task_info.runindex); + + end: + Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex); } @@ -973,7 +994,7 @@ void EW_Test_ReadMTP(void) uint8_t addr=checker_runcfg.params[0]; uint8_t len=checker_runcfg.params[1]; delay_ms(50); - uc_rtv|EW_ReadMTP(checker_runcfg.netid,addr,EW_RunBuf,len); + uc_rtv|=EW_ReadMTP(checker_runcfg.netid,addr,EW_RunBuf,len); Checker_SetRtv((uint16_t *)EW_RunBuf,checker_runcfg.rtv_count); Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex); } @@ -993,6 +1014,80 @@ void EW_Test_WriteMTP(void) +// 读流水号 +void EW_Test_ReadSN(void) +{ + uint8_t uc_rtv=0; + uint8_t addr=9; + uint8_t len=4; + typedef union{ + uint8_t arr[4]; + uint32_t data; + }temp_def; + temp_def temp={0}; + uint32_t sn; + sn=checker_runcfg.params[0]|(checker_runcfg.params[1]<<16); + if(sn>=134217728) + { + // 如果流水号超过了2^27 则失败 + uc_rtv=1; + goto end; + } + + delay_ms(50); + uc_rtv|=EW_ReadMTP(checker_runcfg.netid,addr,temp.arr,len); + if(uc_rtv){ + uc_rtv=2; + goto end; + } + // 流水号域如果不为要设置的流水号则失败 + temp.data>>=5; + if((temp.data)!=sn){ + uc_rtv=3; + } + end: + Checker_SetRtv((uint16_t *)&temp,checker_runcfg.rtv_count); + Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex); +} +// 写流水号,读改写 +void EW_Test_WriteSN(void) +{ + uint8_t uc_rtv=0; + uint8_t addr=9; + uint8_t len=4; + typedef union{ + uint8_t arr[4]; + uint32_t data; + }temp_def; + temp_def temp={0}; + uint32_t sn; + delay_ms(50); + uc_rtv|=EW_ReadMTP(checker_runcfg.netid,addr,temp.arr,len); + if(uc_rtv){ + uc_rtv=1; + goto end; + } + + if(sn>=134217728) + { + // 如果流水号超过了2^27 则失败 + uc_rtv=2; + goto end; + } + temp.data=(temp.data&0x1f)|(sn<<5); + uc_rtv |= EW_WriteMTP(checker_runcfg.netid,addr,temp.arr,len); + if(uc_rtv){ + uc_rtv=3; + goto end; + } + end: + Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex); +} + + + + + void EW_Empty(void) { @@ -1054,6 +1149,8 @@ CheckerExt_Slot, //34 任务插槽 EW_Test_ReadMTP, //35 读取mtp EW_Test_WriteMTP, //36 写入mtp CheckerExt_SetCbv, //37 设置电阻校准值 +EW_Test_ReadSN, //38 读取流水号 +EW_Test_WriteSN, //39 写入流水号 (void*)0 //数组结束 }; diff --git a/source/elec_det/interface/JQChecker.c b/source/elec_det/interface/JQChecker.c index a852b4a..646a29d 100644 --- a/source/elec_det/interface/JQChecker.c +++ b/source/elec_det/interface/JQChecker.c @@ -1221,6 +1221,121 @@ void JQ_Test_Toggle(void) } + + +/*rc{ +写入流水号,使用读改写 +par0,par1,流水号,小端存储 +}*/ +void JQ_Test_WriteSN(void) +{ + uint8_t uc_rtv = 0; + uint8_t uc_ack; + uint8_t uc_otpAddr = 20; + uint8_t uc_writeCount = 4; + typedef union{ + uint8_t arr[4]; + uint32_t data; + }temp_def; + temp_def temp={0}; + uint32_t sn=0; + JQ_EnWOTP(); + JQ_EnWOTP(); + for(int i = 0; i < uc_writeCount;i++) + { + uc_ack = JQ_ReadOTP(CHECKER_NET_ID,uc_otpAddr+i,1,temp.arr+i); + if(uc_ack < 1) + { + uc_rtv = 1; + goto end; + } + } + + sn=checker_runcfg.params[0]|(checker_runcfg.params[1]<<16); + if(sn>=134217728) + { + // 如果流水号超过了2^27 则失败 + uc_rtv=2; + goto end; + } + // 流水号域如果有值且不为要设置的流水号则失败 + if((temp.data&(~0x1f))!=0){ + if((temp.data>>5)!=sn){ + uc_rtv=3; + } + goto end; + } + temp.data=temp.data|(sn<<5); + for(int i = 0; i < uc_writeCount;i++) + { + uc_ack = JQ_WriteOTP(uc_otpAddr+i,1,temp.arr+i); + if(uc_ack != 1) + { + uc_rtv = 4; + goto end; + } + + } + end: + Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex); + return; +} + + + +/*rc{ +校验流水号 +par0,par1,流水号,小端存储 +ret,校验失败则此任务失败 +rtv,返回读取的流水号数据 +}*/ +void JQ_Test_ReadSN(void) +{ + uint8_t uc_rtv = 0; + uint8_t uc_ack; + uint8_t uc_otpAddr = 20; + uint8_t uc_writeCount = 4; + typedef union{ + uint8_t arr[4]; + uint32_t data; + }temp_def; + temp_def temp={0}; + uint32_t sn=0; + JQ_EnWOTP(); + JQ_EnWOTP(); + for(int i = 0; i < uc_writeCount;i++) + { + uc_ack = JQ_ReadOTP(CHECKER_NET_ID,uc_otpAddr+i,1,temp.arr+i); + if(uc_ack < 1) + { + uc_rtv = 1; + goto end; + } + } + + sn=checker_runcfg.params[0]|(checker_runcfg.params[1]<<16); + if(sn>=134217728) + { + // 如果流水号超过了2^27 则失败 + uc_rtv=2; + goto end; + } + // 流水号域如果不为要设置的流水号则失败 + temp.data>>=5; + if((temp.data)!=sn){ + uc_rtv=3; + } + + end: + Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex); + Checker_SetRtv((uint16_t *)&temp,checker_runcfg.rtv_count); + return; +} + + + + + CheckerTask jqtaskArray[CHECKER_MAXID_COUNT] ={ Checker_PowerPrapare, //0 电源准备 JQ_Test_PowerOn, //1 上电充能 @@ -1266,6 +1381,8 @@ CheckerExt_Repeat ,//40 重新执行任务 CheckerExt_SetUID ,//41 设置uid数据到小板 CheckerExt_Slot ,//42 任务插槽 CheckerExt_SetCbv ,//43 设置电阻校准值 +JQ_Test_WriteSN ,//44 写入流水号 +JQ_Test_ReadSN ,//45 读取流水号 (void*)0 //数组结束 }; diff --git a/source/main/compiler_info.h b/source/main/compiler_info.h index 8b8d937..6aa1e74 100644 --- a/source/main/compiler_info.h +++ b/source/main/compiler_info.h @@ -6,7 +6,7 @@ -#define BUILD_DATE "2023-12-20 17:27:12" +#define BUILD_DATE "2023-12-21 18:25:05" #define SOFT_VERSION "2.09" diff --git a/source/task/prot_uc.c b/source/task/prot_uc.c index e0de506..3365cb6 100644 --- a/source/task/prot_uc.c +++ b/source/task/prot_uc.c @@ -301,7 +301,7 @@ static void protu_send_ontime(protu_def *p,send_pkt_def *s) uint32_t tick=p->timer->read(p->timer); // 根据返回的数据长度计算发送需要的时间,添加1ms的余量 // 根据协议,每个指令从机的返回数据长度等长,所以需要的时间窗口也相等 - int wnd_tick=((arr_length(s->t)+15)/16+1); + int wnd_tick=((arr_length(s->t)+12)/13+2); int delay=tick%(wnd_tick*(p->num)); int gap=p->rank*wnd_tick; if(delay<=gap){ diff --git a/source/task/tran_for_broadcast.c b/source/task/tran_for_broadcast.c index e7e6030..1ecbbeb 100644 --- a/source/task/tran_for_broadcast.c +++ b/source/task/tran_for_broadcast.c @@ -52,11 +52,16 @@ typedef struct{ ucport_def u; rt_timer_t timer; - array_def *data; }slave_def; +typedef struct{ + array_def *data; +}self_def; +static self_def g_self; + + static slave_def *slave_creat(void) { @@ -70,13 +75,13 @@ static void slave_del(ucport_def *u) { slave_def *s=(slave_def *)u; CHECK_DO(s->timer,rt_timer_delete); - CHECK_DO(s->data,arr_delete); + // CHECK_DO(s->data,arr_delete); free(u); } // 找到自己的数据 -static void slave_get_self(slave_def *s) +static void slave_get_self(self_def *s) { int len=arr_length(s->data); int off=0; @@ -99,7 +104,7 @@ static void slave_get_self(slave_def *s) // 添加任务 -static void slave_adds(slave_def *s) +static void slave_adds(self_def *s) { task_def *t=calloc(1,sizeof(task_def)); void *slot=0; @@ -113,6 +118,7 @@ static void slave_adds(slave_def *s) t->par_count=arr_get(s->data,2); t->ret_count=arr_get(s->data,3); t->errcode=arr_get(s->data,4); + t->exe_flag=0; t->task_index=arr_get(s->data,5); memcpy(t->params,arr_data(s->data)+6,t->par_count*2); task_slot_add_item(slot,t); @@ -124,53 +130,72 @@ static void slave_adds(slave_def *s) // 生成返回数据 -static array_def *slave_creat_retdata(slave_def *s,array_def *r) +// 如果ret不为0,则存在未执行的槽任务 +static array_def *slave_creat_retdata(slave_def *s,array_def *r,int *ret) { void *slot=task_slot_init(); task_def *t=0; + int err=0; while(t=task_slot_next_item(slot),t!=0) { - arr_append(r,t->task_index); - arr_append(r,t->ret_count); - arr_appends(r,t->rets,t->ret_count*2); + if(t->exe_flag==0){ + err|=1; + } + if(r){ + arr_append(r,t->task_index); + arr_append(r,t->ret_count); + arr_appends(r,t->rets,t->ret_count*2); + } } + if(ret) *ret=err; return r; } +// 重新设置异常代码,异常代码9未执行的槽任务 +#define SET_ERRCODE(arr){\ + if(slot_exe_flag){\ + if(arr_get(arr,0)==0){\ + arr_reset(arr,9,0);\ + }\ + }} + + // 执行任务 static int run_task_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_str) { slave_def *s=(slave_def *)u; + self_def *g=&g_self; int pack_curr=0,pack_all=0,pack_size=0; array_def *r=0; array_def *check=0; uint8_t *d; uint8_t ret_mode=0; + int slot_exe_flag=0; pack_all=arr_get(data,0)|(arr_get(data,1)<<8); pack_curr=arr_get(data,2); pack_size=arr_get(data,3); if(pack_curr==0){ // 第一个数据包重置接收 - CHECK_DO(s->data,arr_delete); - s->data=arr_creat(); + CHECK_DO(g->data,arr_delete); + g->data=arr_creat(); } - if(arr_length(s->data)data)data,d,arr_length(data)-4); - } - if(arr_length(s->data)data,d,arr_length(data)-4); r=arr_creat(); arr_append(r,0); emit tran_reply_signal(u->p,arr_temp(r)); } - else if(arr_length(s->data)==pack_all){ + if(arr_length(g->data)==pack_all){ + // 延时以保证正常回复到上位机 + rt_thread_mdelay(50); // 接收完成后执行命令 - ret_mode=arr_get(s->data,0); - arr_remove(s->data,0,1); - slave_get_self(s); - slave_adds(s); + ret_mode=arr_get(g->data,0); + arr_remove(g->data,0,1); + slave_get_self(g); + slave_adds(g); if(ret_mode!=3){ check=elec_check_with_scheme(0); }else{ @@ -178,16 +203,20 @@ static int run_task_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_ } if(ret_mode==0){ // 模式0,只返回检测数据 + slave_creat_retdata(s,0,&slot_exe_flag); + SET_ERRCODE(check); emit tran_reply_signal(u->p,arr_temp(check)); }else if((ret_mode==1)||(ret_mode==3)){ // 模式1,返回异常代码和任务插槽数据 r=arr_creat(); arr_append(r,arr_get(check,0)); - slave_creat_retdata(s,r); + slave_creat_retdata(s,r,&slot_exe_flag); + SET_ERRCODE(r); emit tran_reply_signal(u->p,arr_temp(r)); }else if(ret_mode==2){ // 模式2,返回检测数据和任务插槽数据 - slave_creat_retdata(s,check); + slave_creat_retdata(s,check,&slot_exe_flag); + SET_ERRCODE(check); emit tran_reply_signal(u->p,arr_temp(check)); } }