添加写三码验三码任务,实现0x20任务,完成任务插槽机制
添加文件 tran_for_broadcast.c
This commit is contained in:
@@ -119,6 +119,26 @@ static int calc_skip_num(int index)
|
||||
|
||||
|
||||
|
||||
/*rc{
|
||||
设置UID和密码到小板内存,三码绑定函数使用此数据
|
||||
输入参数[0]=uid长度,[1]=pwd长度,[uid][pwd]
|
||||
}*/
|
||||
void CheckerExt_SetUID(void)
|
||||
{
|
||||
uint8_t pwd_len=0,uid_len=0;
|
||||
uint8_t *uid_psw=(uint8_t *)checker_runcfg.params;
|
||||
uint8_t ret=0;
|
||||
uid_len = uid_psw[0];
|
||||
pwd_len = uid_psw[1];
|
||||
if(uid_len==0||pwd_len==0){
|
||||
ret=1;
|
||||
}
|
||||
checker_runcfg.uid_len=uid_len;
|
||||
checker_runcfg.pwd_len=pwd_len;
|
||||
memcpy(checker_runcfg.writeuid,uid_psw+2,uid_len);
|
||||
memcpy(checker_runcfg.writepwd,uid_psw+2+uid_len,pwd_len);
|
||||
Checker_MaskResult(ret,checker_runcfg.task_info.runindex);
|
||||
}
|
||||
|
||||
|
||||
/*rc{
|
||||
@@ -132,9 +152,11 @@ void CheckerExt_Slot(void)
|
||||
{
|
||||
int index;
|
||||
uint16_t ret=0;
|
||||
uint16_t exe_ret=0;
|
||||
int self_index=checker_runcfg.task_info.runindex;
|
||||
task_def *t=0;
|
||||
void *task_slot=0;
|
||||
CheckerTask fun=0;
|
||||
if(checker_runcfg.param_count<1){
|
||||
ret=1;
|
||||
goto end;
|
||||
@@ -149,12 +171,37 @@ void CheckerExt_Slot(void)
|
||||
goto end;
|
||||
}
|
||||
while(t=task_slot_next(task_slot,(uint8_t)index),t){
|
||||
// t->
|
||||
memset(&checker_runcfg.task_info,0,sizeof(CheckerTask_Info_st));
|
||||
memset(checker_runcfg.params,0,20);
|
||||
checker_runcfg.param_count = 0;//参数个数
|
||||
checker_runcfg.rtv_count = 0;//返回值个数
|
||||
checker_runcfg.excue_rtv = 0;
|
||||
checker_runcfg.task_info.retry_time = 0;
|
||||
|
||||
checker_runcfg.task_info.runindex=self_index;
|
||||
checker_runcfg.param_count = t->par_count;
|
||||
checker_runcfg.rtv_count = t->ret_count;
|
||||
memcpy(checker_runcfg.params,t->params,checker_runcfg.param_count*2);
|
||||
fun=elec_get_task_fun(t->task_id);
|
||||
checker_runcfg.excue_rtv=1;
|
||||
if(fun){
|
||||
fun();
|
||||
checker_runcfg.rtv_index-=checker_runcfg.rtv_count;
|
||||
}
|
||||
exe_ret|=checker_runcfg.excue_rtv;
|
||||
memcpy(t->rets,&checker_runcfg.Test_Rtv[checker_runcfg.rtv_index],checker_runcfg.rtv_count*2);
|
||||
memset(&checker_runcfg.Test_Rtv[checker_runcfg.rtv_index],0,checker_runcfg.rtv_count*2);
|
||||
if(checker_runcfg.excue_rtv){
|
||||
task_slot_add_err(task_slot,t->errcode);
|
||||
}
|
||||
}
|
||||
if(elec_task_env_restore()){
|
||||
ret=5;
|
||||
ret=3;
|
||||
goto end;
|
||||
}
|
||||
if(exe_ret){
|
||||
ret=4;
|
||||
}
|
||||
end:
|
||||
Checker_MaskResult(ret,self_index);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user