启动时调压改为查找任务id0,自检信息中的方案id由方案初始化时确定

接收到升级方案命令时把本机方案状态设置为无效
    检测电阻命令index为5时读取本机校准值
This commit is contained in:
ranchuan
2023-11-03 18:15:01 +08:00
parent 250f91bbad
commit c13291bc03
10 changed files with 100 additions and 56 deletions

View File

@@ -74,16 +74,42 @@ int elec_scheme_init(void)
}
// 方案去初始化
int elec_scheme_deinit(void)
{
self_def *s=&g_self;
s->scheme_inited=0;
board_st.plan_id = ~0;
return 0;
}
// 找到第一个指定taskid的任务
static CheckerTask_Info_st *elec_find_task_by_taskid(int id)
{
self_def *s=&g_self;
CheckerTask_Info_st *task_par=0;
for(int i=0;i<s->task_num;i++){
task_par= s->task_info_array[i];
if(task_par->taskid==id){
return task_par;
}
}
return 0;
}
// 调压
static int elec_parper_power(void)
{
self_def *s=&g_self;
CheckerTask_Info_st *task_par=0;
int ret=0;
task_par= s->task_info_array[0];
if(task_par->taskid!=0){
// 第一个任务不是调压任务,失败
DBG_WARN("parper power failed,first taskid is not 0.");
task_par= elec_find_task_by_taskid(0);
if(task_par==0){
// 找不到调压任务,失败
DBG_WARN("parper power failed,can not find task with id 0.");
return 1;
}
// 装载参数
@@ -226,7 +252,7 @@ array_def *elec_write_fat_buff(array_def *d)
// 测量桥丝阻值
array_def *elec_check_resistor(void)
array_def *elec_check_resistor(uint8_t index)
{
/*
1 通道1-4通过桥丝
@@ -243,11 +269,12 @@ array_def *elec_check_resistor(void)
aus_sample[uc_index] -= board_st.resistor_diff;
}
// 读取方案中测量电阻的模式
switch(0)
switch(index)
{
case 0: us_resistor = aus_sample[0];break;
case 1: us_resistor = aus_sample[1];break;
case 2: us_resistor = aus_sample[2];break;
case 5: us_resistor = board_st.resistor_diff;break;
default : us_resistor = 0;break;
}
array_def *r=arr_creat();
@@ -382,7 +409,11 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
CheckerTask task_fun=0;
uint8_t res=0;
array_def *r=arr_creat();
//CHECK_DO(s->data,arr_delete);
if(s->scheme_inited==0){
DBG_WARN("scheme not init.");
arr_append(r,1);
return arr_temp(r);
}
res=checker_runcfg.power_prapare_exe;
memset(&checker_runcfg,0,sizeof(Checker_RunCfg_st));
checker_runcfg.power_prapare_exe=res;
@@ -391,11 +422,6 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
elec_code_load_param(uid_psw);
}
if(s->scheme_inited==0){
DBG_WARN("scheme not init.");
arr_append(r,1);
return arr_temp(r);
}
if(chip_type>=LENGTH(tasks_fun_table)){
DBG_WARN("unknown chip type.");
arr_append(r,2);