使用赋码仪主板 app升级,方案升级验证通过
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user