新广播命令测试检测,注码正常,加宽了数据上报的时间片

添加异常代码9,槽任务未执行
This commit is contained in:
ranchuan
2023-12-21 18:45:48 +08:00
parent d709a522ea
commit 6cf5e9e720
12 changed files with 301 additions and 55 deletions

View File

@@ -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 //数组结束
};