添加写三码验三码任务,实现0x20任务,完成任务插槽机制

添加文件 tran_for_broadcast.c
This commit is contained in:
ranchuan
2023-12-18 18:17:21 +08:00
parent 8f28200ffe
commit 58c902a94f
13 changed files with 525 additions and 28 deletions

View File

@@ -353,7 +353,7 @@ void EW_Test_VerifyThreedCode(void)
}
if(uc_rtv > 0)
{
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
Checker_MaskResult(1,checker_runcfg.task_info.runindex);
return;
}
EW_ReadMTP(checker_runcfg.netid,0x20,EW_RunBuf,checker_runcfg.uid_len+1);
@@ -367,7 +367,7 @@ void EW_Test_VerifyThreedCode(void)
}
if(uc_rtv > 0)
{
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
Checker_MaskResult(2,checker_runcfg.task_info.runindex);
return;
}
@@ -383,7 +383,7 @@ void EW_Test_VerifyThreedCode(void)
}
if(uc_rtv > 0)
{
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
Checker_MaskResult(3,checker_runcfg.task_info.runindex);
return;
}
EW_ReadMTP(checker_runcfg.netid,0x24,EW_RunBuf,checker_runcfg.pwd_len+1);
@@ -397,7 +397,7 @@ void EW_Test_VerifyThreedCode(void)
}
if(uc_rtv > 0)
{
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
Checker_MaskResult(4,checker_runcfg.task_info.runindex);
return;
}
@@ -409,30 +409,34 @@ void EW_Test_VerifyThreedCode(void)
}
if(uc_rtv > 0)
{
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
Checker_MaskResult(5,checker_runcfg.task_info.runindex);
return;
}
//验证PWD
memcpy(EW_RunBuf,EW_Test_PWD,checker_runcfg.pwd_len);
delay_ms(200);
uc_rtv = EW_VerfyPWD(checker_runcfg.netid,EW_RunBuf,checker_runcfg.pwd_len);
if(uc_rtv > 0)
{
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
Checker_MaskResult(6,checker_runcfg.task_info.runindex);
return;
}
//读状态
delay_ms(200);
uc_rtv = EW_ReadState(checker_runcfg.netid,(uint8_t*)state.datas);
if(uc_rtv > 0 || state.State_st.erprom_error >0 || state.State_st.pswd_flag == 0)
// 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(1,checker_runcfg.task_info.runindex);
Checker_MaskResult(7,checker_runcfg.task_info.runindex);
return;
}
Checker_MaskResult(1,checker_runcfg.task_info.runindex);
Checker_MaskResult(0,checker_runcfg.task_info.runindex);
}
/*
@brief 自检
@param 自检模式
@param1 自检时间ms
@rtv 自检模式0x08的回读数据
*/
void EW_Test_CheckSelf()
@@ -441,8 +445,9 @@ void EW_Test_CheckSelf()
uint32_t ul_temp;
uint8_t uc_mode = checker_runcfg.params[0];
uc_rtv = EW_ChecSelf(checker_runcfg.netid,uc_mode,(uint8_t*)&ul_temp);
delay_ms(checker_runcfg.params[1]);
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
Checker_SetRtv((uint16_t*)ul_temp,checker_runcfg.rtv_count);
}
/*
@@ -702,9 +707,9 @@ void EW_Test_EnBoom(void)
}
/*
@brief 起爆
@param0 采样超时
@param1 起爆电流AD
@param2 延迟采样
@param0 采样超时 0.01ms
@param1 起爆电流AD
@param2 延迟采样ms
*/
void EW_Test_Boom()
@@ -814,6 +819,147 @@ void EW_Test_PowerOFF(void)
/*
@brief 写三码数据
*/
void EW_Test_WriteUID(void)
{
uint8_t uc_rtv = 0;
if(JQXT_Test_IsNeedBind() == 0)
{
Checker_MaskResult(0,checker_runcfg.task_info.runindex);
return;
}
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);
delay_os_ms(50);
uc_rtv |= EW_WriteMTP(checker_runcfg.netid,0x20,EW_RunBuf,checker_runcfg.uid_len+1);
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);
delay_os_ms(50);
uc_rtv |= EW_WriteMTP(checker_runcfg.netid,0x24,EW_RunBuf,checker_runcfg.pwd_len+1);
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
}
/*
@breif 验证写入的三码数据
*/
void EW_Test_VerifyUID(void)
{
uint8_t uc_rtv = 0;
System_State_un state;
//读UID MTP
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))
{
uc_rtv = 1;
}
if(0 != memcmp(EW_RunBuf,checker_runcfg.writeuid,checker_runcfg.uid_len))
{
uc_rtv = 1;
}
if(uc_rtv > 0)
{
Checker_MaskResult(1,checker_runcfg.task_info.runindex);
return;
}
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
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))
{
uc_rtv = 1;
}
if(0 != memcmp(EW_RunBuf,checker_runcfg.writeuid,checker_runcfg.uid_len))
{
uc_rtv = 1;
}
if(uc_rtv > 0)
{
Checker_MaskResult(2,checker_runcfg.task_info.runindex);
return;
}
//读PWD MTP
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
EW_ReadMTP(checker_runcfg.netid,0x04,EW_RunBuf,checker_runcfg.pwd_len+1);
if(EW_RunBuf[checker_runcfg.pwd_len] != CheckCRC_8(EW_RunBuf,checker_runcfg.pwd_len))
{
uc_rtv = 1;
}
if(0 != memcmp(EW_RunBuf,checker_runcfg.writepwd,checker_runcfg.pwd_len))
{
uc_rtv = 1;
}
if(uc_rtv > 0)
{
Checker_MaskResult(3,checker_runcfg.task_info.runindex);
return;
}
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
EW_ReadMTP(checker_runcfg.netid,0x24,EW_RunBuf,checker_runcfg.pwd_len+1);
if(EW_RunBuf[checker_runcfg.pwd_len] != CheckCRC_8(EW_RunBuf,checker_runcfg.pwd_len))
{
uc_rtv = 1;
}
if(0 != memcmp(EW_RunBuf,checker_runcfg.writepwd,checker_runcfg.pwd_len))
{
uc_rtv = 1;
}
if(uc_rtv > 0)
{
Checker_MaskResult(4,checker_runcfg.task_info.runindex);
return;
}
//读UID
memset(EW_RunBuf,0,sizeof(EW_RunBuf));
uc_rtv = EW_ReadUID(checker_runcfg.netid,EW_RunBuf,checker_runcfg.uid_len);
if(0 != memcmp(EW_RunBuf,checker_runcfg.writeuid,checker_runcfg.uid_len))
{
uc_rtv = 1;
}
if(uc_rtv > 0)
{
Checker_MaskResult(5,checker_runcfg.task_info.runindex);
return;
}
//验证PWD
memcpy(EW_RunBuf,checker_runcfg.writepwd,checker_runcfg.pwd_len);
delay_ms(200);
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;
}
//读状态
delay_ms(200);
uc_rtv = EW_ReadState(checker_runcfg.netid,(uint8_t*)state.datas);
// 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;
}
Checker_MaskResult(0,checker_runcfg.task_info.runindex);
}
void EW_Empty(void)
{
Checker_RunCfg_st *cfg=&checker_runcfg;
@@ -863,6 +1009,10 @@ EW_Updata, //27 升级
EW_Test_ChgEnergy, //28 充能统计
CheckerExt_CalcErr, //29 计算异常
CheckerExt_Repeat, //30 重新执行一次指定任务
EW_Test_WriteUID, //31 写入三码数据
EW_Test_VerifyUID, //32 验证三码数据
CheckerExt_SetUID, //33 配置三码数据到小板
CheckerExt_Slot, //34 任务插槽
(void*)0 //数组结束
};