V0.08 解决任务执行次数异常的bug,原因是每次执行任务未更新任务结构体指针

此bug在V2.06版本被引入
解决 EW_Test_ReadUID 函数数组越界的问题
添加 总线翻转任务 JQ_Test_Toggle
This commit is contained in:
ranchuan
2023-12-13 18:28:38 +08:00
parent aeb0e4c206
commit 3909bc13a2
15 changed files with 147 additions and 102 deletions

View File

@@ -284,4 +284,8 @@
广播命令根据数据量自动计算发送数据的窗口时间
2023.12.10
添加任务插槽,未写完
2023.12.11
V0.08 解决任务执行次数异常的bug原因是每次执行任务未更新任务结构体指针此bug在V2.06版本被引入
解决 EW_Test_ReadUID 函数数组越界的问题
2023.12.12
添加 总线翻转任务 JQ_Test_Toggle

View File

@@ -856,8 +856,8 @@ uint8_t DMod_FireBusReadDatasV2_RC(uint8_t* buf, uint8_t len, uint32_t time_out)
EW_DIFF_MOD_H;
Power_SetSampleCurrentRange(range);
if(ret){
DBG_LOG("cur_idle=%d,high_value=%d,idle_line=%d.",fire_dat.cur_idle, fire_dat.cur_high_value,fire_dat.cur_idle_line);
DBG_LOG("cur_max=%d,cur_idle_ad=%d",fire_dat.cur_max,fire_dat.cur_idle_ad);
// DBG_LOG("cur_idle=%d,high_value=%d,idle_line=%d.",fire_dat.cur_idle, fire_dat.cur_high_value,fire_dat.cur_idle_line);
// DBG_LOG("cur_max=%d,cur_idle_ad=%d",fire_dat.cur_max,fire_dat.cur_idle_ad);
}
return ret;
}

View File

@@ -440,6 +440,7 @@ int elec_check_load_task_param(uint8_t task_index)
}
// 装载参数
s->task_par=task_par;
memcpy(&checker_runcfg.task_info,task_par,sizeof(CheckerTask_Info_st));
checker_runcfg.param_count = checker_runcfg.task_info.param_rtv_count & 0x0F;
checker_runcfg.rtv_count = (checker_runcfg.task_info.param_rtv_count >> 4) & 0x0F;
@@ -509,6 +510,7 @@ void elec_exe_task(void)
if(s->task_fun==0){
return;
}
DBG_LOG("start task_index:%d",s->task_index);
for(int i=0;i<1+s->task_par->retry_time;i++)
{
checker_runcfg.excue_rtv=1;

View File

@@ -28,7 +28,7 @@ typedef struct{
task_node *head;
task_node *current;
int err_num;
uint8_t err_table[ERR_TABLE_SIZE]
uint8_t err_table[ERR_TABLE_SIZE];
}task_slot_def;
@@ -114,7 +114,7 @@ int task_slot_add_err(void *context,uint8_t err)
if(index<0) index=i;
}
if(t->err_table[i]==err){
return;
return 0;
}
}
if(index>=0){

View File

@@ -133,13 +133,14 @@ void CheckerExt_Slot(void)
int index;
uint16_t ret=0;
int self_index=checker_runcfg.task_info.runindex;
task_def *t=0;
void *task_slot=0;
if(checker_runcfg.param_count<1){
ret=1;
goto end;
}
index=checker_runcfg.params[0];
task_def *t=0;
void *task_slot=task_slot_init();
task_slot=task_slot_init();
if(task_slot==0){
goto end;
}

View File

@@ -80,7 +80,7 @@ void EW_Test_SetBusV(void)
/*
@brief 测量总线基本电压
@rtv1 返回总线电流 单位0.01uA
@rtv1 返回总线电流 单位0.1uA
*/
void EW_Test_BaseCur(void)
{
@@ -128,7 +128,7 @@ void EW_Test_ReadUID(void)
{
uint8_t uc_rtv = 0;
uint8_t uc_count = 0;
uint16_t aus_temp[12];
uint16_t aus_temp[14];
uint32_t ul_temp = 0;
memset(EW_RunBuf,0,EW_CHECKER_RUN_BUF);
if(checker_runcfg.params[0] == 0)
@@ -175,7 +175,7 @@ void EW_Test_ReadUID(void)
uc_count = (checker_runcfg.params[0]+7+1)/2;
}
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
memcpy(aus_temp+4,EW_RunBuf,24);
memcpy(aus_temp+4,EW_RunBuf,16);
Checker_SetRtv(aus_temp,checker_runcfg.rtv_count);
}
/*

View File

@@ -62,7 +62,7 @@ void JQ_Test_SetBusV(void)
}
/*
@brief 测量总线基本电压
@rtv1 返回总线电流 单位0.01uA
@rtv1 返回总线电流 单位0.1uA
*/
void JQ_Test_BaseCur(void)
{
@@ -1195,6 +1195,29 @@ void JQ_Test_VerifyDelay(void)
end:
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
}
/*
@brief 切换总线极性
@par0 从一个极性切换到另一个极性的间隔
@par1 从正极性切换到负极性为一个循环,循环的次数
@rtv1 返回最后一次总线电流 单位0.1uA
*/
void JQ_Test_Toggle(void)
{
uint16_t ul_cur[2];
uint16_t interval_ms = checker_runcfg.params[0];
uint16_t times = checker_runcfg.params[1];
for(int i=0;i<times;i++)
{
JQBUS_W_1
delay_ms(interval_ms);
JQBUS_W_0
delay_ms(interval_ms);
}
JQBUS_W_1
delay_ms(20);
Checker_MaskResult(0,checker_runcfg.task_info.runindex);
Checker_SetRtv(ul_cur,checker_runcfg.rtv_count);
}
CheckerTask jqtaskArray[CHECKER_MAXID_COUNT] ={
@@ -1236,6 +1259,7 @@ JQ_Test_ReadVersion ,//34 读取版本号
JQ_Test_WriteFacBuff ,//35 写缓存数据
JQ_Test_VerifyFacBuff ,//36 验证缓存数据
JQ_Test_VerifyDelay ,//37 读取延时值和otp数据相比
JQ_Test_Toggle ,//38 切换总线极性
(void*)0 //数组结束
};

View File

@@ -6,8 +6,8 @@
#define BUILD_DATE "2023-12-09 12:34:57"
#define SOFT_VERSION "2.07"
#define BUILD_DATE "2023-12-13 13:46:48"
#define SOFT_VERSION "2.08"

View File

@@ -7,7 +7,7 @@ import mycopy
# 定义软件版本号
SOFT_VERION = "2.07"
SOFT_VERION = "2.08"

View File

@@ -167,6 +167,7 @@ static void check_submit_later(void *t)
if(ret!=0){
emit tran_send_signal(s->tran,s->cmd,ret);
// s->submit_delay=150;
s->submit_delay+=elec_local_addr()*3;
}else{
//while(1);
}
@@ -187,7 +188,7 @@ static void check_later(void *t)
{
s->submit_times=10;
s->submit_running=1;
s->submit_delay=150;
s->submit_delay=elec_local_addr()*10+200;
later_execute(check_submit_later,s,s->submit_delay);
}else{
s->cmd=0;