V2.09 使用任务插槽设置电阻校准值成功
This commit is contained in:
@@ -299,5 +299,7 @@
|
|||||||
2023.12.19
|
2023.12.19
|
||||||
添加赋码设备注码命令,实现ew检测时注码
|
添加赋码设备注码命令,实现ew检测时注码
|
||||||
添加文件 tran_for_coder.c
|
添加文件 tran_for_coder.c
|
||||||
|
2023.12.20
|
||||||
|
V2.09 使用任务插槽设置电阻校准值成功
|
||||||
|
|
||||||
|
|
||||||
|
@@ -214,7 +214,7 @@ array_def *elec_bootinfo(void)
|
|||||||
board_st.resistor_diff=sys_param()->resistor_diff;
|
board_st.resistor_diff=sys_param()->resistor_diff;
|
||||||
//board_st.hard_v=rt_tick_get()/1000;
|
//board_st.hard_v=rt_tick_get()/1000;
|
||||||
board_st.hard_v=HARD_VERSION;
|
board_st.hard_v=HARD_VERSION;
|
||||||
board_st.soft_v=(int)(str_atof(SOFT_VERSION)*100);
|
board_st.soft_v=(int)(str_atof(SOFT_VERSION)*100+0.5);
|
||||||
array_def *r=arr_creat();
|
array_def *r=arr_creat();
|
||||||
arr_append(r,0);
|
arr_append(r,0);
|
||||||
arr_appends(r,&board_st,sizeof(BoartCheck_st));
|
arr_appends(r,&board_st,sizeof(BoartCheck_st));
|
||||||
@@ -629,3 +629,33 @@ array_def *elec_code(array_def *uid_psw)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 执行任务插槽
|
||||||
|
array_def *elec_check_slot(void)
|
||||||
|
{
|
||||||
|
self_def *s=&g_self;
|
||||||
|
s->task_par=0;
|
||||||
|
s->chip_type=0;
|
||||||
|
uint8_t taskid=0;
|
||||||
|
uint8_t res=0;
|
||||||
|
s->task_index=0;
|
||||||
|
array_def *r=arr_creat();
|
||||||
|
res=checker_runcfg.power_prapare_exe;
|
||||||
|
memset(&checker_runcfg,0,sizeof(Checker_RunCfg_st));
|
||||||
|
checker_runcfg.power_prapare_exe=res;
|
||||||
|
|
||||||
|
checker_runcfg.param_count=1;
|
||||||
|
checker_runcfg.params[0]=1;
|
||||||
|
CheckerExt_Slot();
|
||||||
|
|
||||||
|
elec_judge_def *e=malloc(sizeof(elec_judge_def));
|
||||||
|
elec_judge(e,s->task_num,checker_runcfg.Task_Result,
|
||||||
|
checker_runcfg.Task_Excute,
|
||||||
|
(uint8_t *)checker_runcfg.Test_Rtv,&res,0);
|
||||||
|
free(e);
|
||||||
|
arr_append(r,res);
|
||||||
|
return arr_temp(r);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -38,7 +38,7 @@ array_def *elec_check_with_scheme(array_def *uid_psw);
|
|||||||
|
|
||||||
array_def *elec_code(array_def *uid_psw);
|
array_def *elec_code(array_def *uid_psw);
|
||||||
|
|
||||||
|
array_def *elec_check_slot(void);
|
||||||
|
|
||||||
int elec_check_load_task_param(uint8_t task_index);
|
int elec_check_load_task_param(uint8_t task_index);
|
||||||
|
|
||||||
|
@@ -33,9 +33,12 @@ typedef struct{
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static task_slot_def *g_task_slot;
|
||||||
|
|
||||||
void task_slot_delete(void)
|
void task_slot_delete(void)
|
||||||
{
|
{
|
||||||
task_slot_def *t=app_variable("task_slot",0,0);
|
//task_slot_def *t=app_variable("task_slot",0,0);
|
||||||
|
task_slot_def *t=g_task_slot;
|
||||||
if(t){
|
if(t){
|
||||||
task_node *n=t->head;
|
task_node *n=t->head;
|
||||||
task_node *old=0;
|
task_node *old=0;
|
||||||
@@ -46,18 +49,21 @@ void task_slot_delete(void)
|
|||||||
}
|
}
|
||||||
free(t);
|
free(t);
|
||||||
}
|
}
|
||||||
|
g_task_slot=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 初始化
|
// 初始化
|
||||||
void *task_slot_init(void)
|
void *task_slot_init(void)
|
||||||
{
|
{
|
||||||
task_slot_def *t=app_variable("task_slot",0,0);
|
//task_slot_def *t=app_variable("task_slot",0,0);
|
||||||
|
task_slot_def *t=g_task_slot;
|
||||||
if(t==0){
|
if(t==0){
|
||||||
t=calloc(1,sizeof(task_slot_def));
|
t=calloc(1,sizeof(task_slot_def));
|
||||||
app_variable("task_slot",t,0);
|
// app_variable("task_slot",t,0);
|
||||||
}
|
}
|
||||||
t->current=t->head;
|
t->current=t->head;
|
||||||
|
g_task_slot=t;
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,7 +79,7 @@ int task_slot_add_item(void *context,task_def *item)
|
|||||||
task_node **n=&t->head;
|
task_node **n=&t->head;
|
||||||
task_node *tail;
|
task_node *tail;
|
||||||
tail=calloc(1,sizeof(task_node));
|
tail=calloc(1,sizeof(task_node));
|
||||||
memcpy(tail,item,sizeof(task_node));
|
memcpy(&tail->task,item,sizeof(task_def));
|
||||||
while(*n){
|
while(*n){
|
||||||
n=&(*n)->next;
|
n=&(*n)->next;
|
||||||
}
|
}
|
||||||
|
@@ -208,8 +208,19 @@ void CheckerExt_Slot(void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*rc{
|
||||||
|
|
||||||
|
写电阻校准值
|
||||||
|
par0:电阻校准值
|
||||||
|
ret:无
|
||||||
|
}*/
|
||||||
|
void CheckerExt_SetCbv(void)
|
||||||
|
{
|
||||||
|
int cbv=checker_runcfg.params[0];
|
||||||
|
int self_index=checker_runcfg.task_info.runindex;
|
||||||
|
elec_write_resistor_cbv(cbv);
|
||||||
|
Checker_MaskResult(0,self_index);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -220,5 +231,6 @@ CheckerTask exttaskArray[CHECKER_EXTID_COUNT]={
|
|||||||
CheckerExt_Repeat,
|
CheckerExt_Repeat,
|
||||||
CheckerExt_SetUID,
|
CheckerExt_SetUID,
|
||||||
CheckerExt_Slot,
|
CheckerExt_Slot,
|
||||||
|
CheckerExt_SetCbv,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -23,7 +23,7 @@ void CheckerExt_SetUID(void);
|
|||||||
|
|
||||||
void CheckerExt_Slot(void);
|
void CheckerExt_Slot(void);
|
||||||
|
|
||||||
|
void CheckerExt_SetCbv(void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -966,6 +966,31 @@ void EW_Test_VerifyUID(void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 读mtp
|
||||||
|
void EW_Test_ReadMTP(void)
|
||||||
|
{
|
||||||
|
uint8_t uc_rtv=0;
|
||||||
|
uint8_t addr=checker_runcfg.params[0];
|
||||||
|
uint8_t len=checker_runcfg.params[1];
|
||||||
|
delay_ms(50);
|
||||||
|
uc_rtv|EW_ReadMTP(checker_runcfg.netid,addr,EW_RunBuf,len);
|
||||||
|
Checker_SetRtv((uint16_t *)EW_RunBuf,checker_runcfg.rtv_count);
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
}
|
||||||
|
// 写mtp
|
||||||
|
void EW_Test_WriteMTP(void)
|
||||||
|
{
|
||||||
|
uint8_t uc_rtv=0;
|
||||||
|
uint8_t addr=checker_runcfg.params[0];
|
||||||
|
uint8_t len=checker_runcfg.params[1];
|
||||||
|
delay_ms(50);
|
||||||
|
memcpy(EW_RunBuf,&checker_runcfg.params[1],len);
|
||||||
|
uc_rtv |= EW_WriteMTP(checker_runcfg.netid,addr,EW_RunBuf,len);
|
||||||
|
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -986,6 +1011,10 @@ void EW_Empty(void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CheckerTask ewtaskArray[CHECKER_MAXID_COUNT] ={
|
CheckerTask ewtaskArray[CHECKER_MAXID_COUNT] ={
|
||||||
Checker_PowerPrapare, //0 电源准备
|
Checker_PowerPrapare, //0 电源准备
|
||||||
Checker_WaitDelay, //1 延时等待
|
Checker_WaitDelay, //1 延时等待
|
||||||
@@ -1022,6 +1051,9 @@ EW_Test_WriteUID, //31 写入三码数据
|
|||||||
EW_Test_VerifyUID, //32 验证三码数据
|
EW_Test_VerifyUID, //32 验证三码数据
|
||||||
CheckerExt_SetUID, //33 配置三码数据到小板
|
CheckerExt_SetUID, //33 配置三码数据到小板
|
||||||
CheckerExt_Slot, //34 任务插槽
|
CheckerExt_Slot, //34 任务插槽
|
||||||
|
EW_Test_ReadMTP, //35 读取mtp
|
||||||
|
EW_Test_WriteMTP, //36 写入mtp
|
||||||
|
CheckerExt_SetCbv, //37 设置电阻校准值
|
||||||
(void*)0 //数组结束
|
(void*)0 //数组结束
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -4,6 +4,7 @@
|
|||||||
#include "base/utility.h"
|
#include "base/utility.h"
|
||||||
#include "hardware/power.h"
|
#include "hardware/power.h"
|
||||||
#include "JQChecker.h"
|
#include "JQChecker.h"
|
||||||
|
#include "CheckerExt.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@brief 统计模块的上电充能,具有电压设置功能,采集档位 R10_0p1mA_1p6mA_UC
|
@brief 统计模块的上电充能,具有电压设置功能,采集档位 R10_0p1mA_1p6mA_UC
|
||||||
@@ -1264,6 +1265,7 @@ CheckerExt_CalcErr ,//39 计算异常
|
|||||||
CheckerExt_Repeat ,//40 重新执行任务
|
CheckerExt_Repeat ,//40 重新执行任务
|
||||||
CheckerExt_SetUID ,//41 设置uid数据到小板
|
CheckerExt_SetUID ,//41 设置uid数据到小板
|
||||||
CheckerExt_Slot ,//42 任务插槽
|
CheckerExt_Slot ,//42 任务插槽
|
||||||
|
CheckerExt_SetCbv ,//43 设置电阻校准值
|
||||||
(void*)0 //数组结束
|
(void*)0 //数组结束
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define BUILD_DATE "2023-12-19 15:39:10"
|
#define BUILD_DATE "2023-12-20 17:27:12"
|
||||||
#define SOFT_VERSION "2.08"
|
#define SOFT_VERSION "2.09"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -7,7 +7,7 @@ import mycopy
|
|||||||
|
|
||||||
|
|
||||||
# 定义软件版本号
|
# 定义软件版本号
|
||||||
SOFT_VERION = "2.08"
|
SOFT_VERION = "2.09"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -177,10 +177,12 @@ rt_hw_interrupt_thread_switch PROC
|
|||||||
ENDP
|
ENDP
|
||||||
|
|
||||||
IMPORT rt_hw_hard_fault_exception
|
IMPORT rt_hw_hard_fault_exception
|
||||||
|
IMPORT bk_reboot_hard_err
|
||||||
EXPORT HardFault_Handler
|
EXPORT HardFault_Handler
|
||||||
HardFault_Handler PROC
|
HardFault_Handler PROC
|
||||||
|
|
||||||
; get current context
|
; get current context
|
||||||
|
BL bk_reboot_hard_err
|
||||||
B .
|
B .
|
||||||
TST lr, #0x04 ; if(!EXC_RETURN[2])
|
TST lr, #0x04 ; if(!EXC_RETURN[2])
|
||||||
ITE EQ
|
ITE EQ
|
||||||
|
@@ -26,7 +26,13 @@
|
|||||||
[4...n]=数据
|
[4...n]=数据
|
||||||
|
|
||||||
数据域格式
|
数据域格式
|
||||||
[0]=小板地址,[1]=数据长度,[2...n]=数据
|
[0]=检测模式0,只检测,返回原始检测结果;模式1,检测并添加任务插槽,只返回异常代码和任务插槽数据;
|
||||||
|
模式2,检测并执行任务插槽,返回原始检测数据和任务插槽数据;
|
||||||
|
模式3,只执行任务插槽,返回异常代码和插槽数据
|
||||||
|
[1...n]小板数据
|
||||||
|
|
||||||
|
小板数据格式
|
||||||
|
[0]=小板地址(0x1f时为通用数据,每个小板都可以使用),[1]=数据长度,[2...n]=数据
|
||||||
|
|
||||||
单个任务数据格式
|
单个任务数据格式
|
||||||
[0]=插槽序号,[1]=任务id,[2]=参数个数(u16)
|
[0]=插槽序号,[1]=任务id,[2]=参数个数(u16)
|
||||||
@@ -80,7 +86,7 @@ static void slave_get_self(slave_def *s)
|
|||||||
while(off<len){
|
while(off<len){
|
||||||
addr=arr_get(s->data,off);
|
addr=arr_get(s->data,off);
|
||||||
slave_len=arr_get(s->data,off+1);
|
slave_len=arr_get(s->data,off+1);
|
||||||
if(addr==elec_local_addr()){
|
if((addr==elec_local_addr())||(addr==0x1f)){
|
||||||
d=arr_data(s->data)+off+2;
|
d=arr_data(s->data)+off+2;
|
||||||
arr_appends(expat,d,slave_len);
|
arr_appends(expat,d,slave_len);
|
||||||
break;
|
break;
|
||||||
@@ -141,6 +147,7 @@ static int run_task_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_
|
|||||||
array_def *r=0;
|
array_def *r=0;
|
||||||
array_def *check=0;
|
array_def *check=0;
|
||||||
uint8_t *d;
|
uint8_t *d;
|
||||||
|
uint8_t ret_mode=0;
|
||||||
pack_all=arr_get(data,0)|(arr_get(data,1)<<8);
|
pack_all=arr_get(data,0)|(arr_get(data,1)<<8);
|
||||||
pack_curr=arr_get(data,2);
|
pack_curr=arr_get(data,2);
|
||||||
pack_size=arr_get(data,3);
|
pack_size=arr_get(data,3);
|
||||||
@@ -160,13 +167,29 @@ static int run_task_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_
|
|||||||
}
|
}
|
||||||
else if(arr_length(s->data)==pack_all){
|
else if(arr_length(s->data)==pack_all){
|
||||||
// 接收完成后执行命令
|
// 接收完成后执行命令
|
||||||
r=arr_creat();
|
ret_mode=arr_get(s->data,0);
|
||||||
|
arr_remove(s->data,0,1);
|
||||||
slave_get_self(s);
|
slave_get_self(s);
|
||||||
slave_adds(s);
|
slave_adds(s);
|
||||||
check=elec_check_with_scheme(0);
|
if(ret_mode!=3){
|
||||||
arr_append(r,arr_get(check,0));
|
check=elec_check_with_scheme(0);
|
||||||
slave_creat_retdata(s,r);
|
}else{
|
||||||
emit tran_reply_signal(u->p,arr_temp(r));
|
check=elec_check_slot();
|
||||||
|
}
|
||||||
|
if(ret_mode==0){
|
||||||
|
// 模式0,只返回检测数据
|
||||||
|
emit tran_reply_signal(u->p,arr_temp(check));
|
||||||
|
}else if((ret_mode==1)||(ret_mode==3)){
|
||||||
|
// 模式1,返回异常代码和任务插槽数据
|
||||||
|
r=arr_creat();
|
||||||
|
arr_append(r,arr_get(check,0));
|
||||||
|
slave_creat_retdata(s,r);
|
||||||
|
emit tran_reply_signal(u->p,arr_temp(r));
|
||||||
|
}else if(ret_mode==2){
|
||||||
|
// 模式2,返回检测数据和任务插槽数据
|
||||||
|
slave_creat_retdata(s,check);
|
||||||
|
emit tran_reply_signal(u->p,arr_temp(check));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user