使用赋码仪主板 app升级,方案升级验证通过

This commit is contained in:
ranchuan
2023-10-11 18:10:06 +08:00
parent ed9e4c0c3e
commit f0f36cf79a
25 changed files with 324 additions and 207 deletions

View File

@@ -2,6 +2,8 @@
#include "bytearray.h"
#include "mystdlib.h"
#include "debug.h"
#include "stdlib.h"
#include "dev_flash.h"
#include "elec_det.h"
#include "base/delay.h"
@@ -27,6 +29,7 @@
typedef struct{
CheckerTask_Info_st* task_info_array[PLAN_MAX_TASK];//方案参数结构体指针
int scheme_inited;
array_def *data;
}self_def;
@@ -38,13 +41,23 @@ static self_def g_self;
// 初始化
int elec_init(void)
{
self_def *s=&g_self;
void Ye_BoardInit(void);
void Ye_BoardCheck(void);
int elec_parper_power(void);
Ye_BoardInit();
elec_bootinfo();
DBG_LOG("local addr:%d.",elec_local_addr());
return elec_scheme_init();
}
// 初始化方案
int elec_scheme_init(void)
{
self_def *s=&g_self;
int ret=0;
int elec_check_scheme(void);
void elec_load_scheme(void);
Ye_BoardInit();
Ye_BoardCheck();
int elec_parper_power(void);
if(elec_check_scheme()!=0){
// 方案校验失败
DBG_WARN("scheme check failed.");
@@ -53,10 +66,36 @@ int elec_init(void)
}
s->scheme_inited=1;
elec_load_scheme();
return 0;
ret=elec_parper_power();
return ret;
}
// 调压
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.");
return 1;
}
// 装载参数
checker_runcfg.power_prapare_exe=0;
rt_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;
rt_memcpy(checker_runcfg.params,checker_runcfg.task_info.params,checker_runcfg.param_count*2);
Checker_PowerPrapare();
ret=checker_runcfg.excue_rtv;
if(ret){
DBG_WARN("parper power failed,ret=%d.",ret);
}
return ret;
}
@@ -64,8 +103,9 @@ int elec_init(void)
uint8_t elec_local_addr(void)
{
static uint8_t addr=0;
if(addr==0)
if(addr==0){
addr=Gpio_GetDeivceAddr();
}
return addr;
}
@@ -84,11 +124,34 @@ void elec_led2_power(int power)
// 获取自检参数
array_def *elec_bootinfo(void)
{
void Ye_BoardCheck(void);
Ye_BoardCheck();
board_st.hard_v=sys_param()->hard_version;
board_st.resistor_diff=sys_param()->resistor_diff;
board_st.hard_v=15;
array_def *r=arr_creat();
arr_append(r,0);
arr_appends(r,&board_st,sizeof(BoartCheck_st));
return arr_temp(r);
}
// 获取检测结果
array_def *elec_check_result(void)
{
array_def *r=arr_creat();
arr_append(r,3);
self_def *s=&g_self;
array_def *r=0;
if(s->data){
r=arr_duplicate(s->data);
}else{
r=arr_creat();
arr_append(r,2);
}
return arr_temp(r);
}
@@ -96,8 +159,14 @@ array_def *elec_check_result(void)
// 写硬件版本号
array_def *elec_write_hardversion(int version)
{
array_def *r=arr_creat();
sys_param_def *spar=0;
spar=calloc(1,sizeof(sys_param_def));
memcpy(spar,sys_param(),sizeof(sys_param_def));
spar->hard_version=version;
flash_save_param(spar);
free(spar);
board_st.hard_v=version;
array_def *r=arr_creat();
arr_append(r,0);
return arr_temp(r);
}
@@ -107,8 +176,14 @@ array_def *elec_write_hardversion(int version)
// 写电阻校准值
array_def *elec_write_resistor_cbv(int cbv)
{
array_def *r=arr_creat();
sys_param_def *spar=0;
spar=calloc(1,sizeof(sys_param_def));
memcpy(spar,sys_param(),sizeof(sys_param_def));
spar->resistor_diff=cbv;
flash_save_param(spar);
free(spar);
board_st.resistor_diff=cbv;
array_def *r=arr_creat();
arr_append(r,0);
return 0;
}
@@ -283,6 +358,8 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
arr_appends(r,checker_runcfg.Task_Result,8);
arr_appends(r,checker_runcfg.Task_Excute,8);
arr_appends(r,checker_runcfg.Test_Rtv,checker_runcfg.rtv_index*2);
CHECK_DO(s->data,arr_delete);
s->data=arr_duplicate(r);
return arr_temp(r);
}