管壳码全0判断

This commit is contained in:
ranchuan
2023-07-07 18:26:15 +08:00
parent ec758c356b
commit f148347e58
11 changed files with 904 additions and 48 deletions

View File

@@ -138,4 +138,6 @@
添加错误判断,未完成
2023.7.6
赋码仪添加错误判断,管壳码有0字节则不注码,直接返回失败
2023.7.7
boot没有同步app编译升级app会导致之后添加的配置参数丢失
添加管壳码全'0'判断

View File

@@ -159,20 +159,20 @@ uint8_t coder_judge(const uint8_t *data)
}
// 检测电流
TASK_FIND_NEXT(4);
TASK_FIND_NEXT(3);
temp=TASK_DATA(0);
temp2=TASK_DATA(1);
if((temp<10)&&(temp2<10))
if((temp<100)&&(temp2<100))
{
// 接触异常
return 3;
}
else if(((temp>task->range[0].max)&&(temp<1500))||
((temp2>task->range[0].max)&&(temp2<1500)))
else if(((temp>task->range[0].max)&&(temp<800))||
((temp2>task->range[0].max)&&(temp2<800)))
{
// 过流
return 7;
}else if((temp>1500)&&(temp2>1500))
}else if((temp>800)&&(temp2>800))
{
// 短路
return 8;
@@ -180,7 +180,7 @@ uint8_t coder_judge(const uint8_t *data)
// 检测uid
TASK_FIND_NEXT(5);
TASK_FIND_NEXT(4);
if(get_ack(data,task->taskindex))
{
// 芯片错误
@@ -188,7 +188,7 @@ uint8_t coder_judge(const uint8_t *data)
}
// 检测桥丝
TASK_FIND_NEXT(6);
TASK_FIND_NEXT(11);
temp=TASK_DATA(0);
if((temp<task->range[0].min)||(temp>task->range[0].max))
{

View File

@@ -87,6 +87,8 @@ int check_shell_code(const char *shell_code)
if(shell_code[i]==0)
return 0;
}
if(strncmp("0000000000000",shell_code,13)==0)
return 0;
return 1;
}

View File

@@ -6,7 +6,7 @@
#define BUILD_DATE "2023-07-06 22:57:16"
#define BUILD_DATE "2023-07-07 11:16:27"
#define SOFT_VERSION "0.10"

View File

@@ -113,7 +113,7 @@ static int scheme_info(list_def *argv)
for(int i=0;i<s->task_num;i++)
{
t=&s->task[i];
cmd_print(" task:%02d err:%02x",i,t->err);
cmd_print(" task:%02d id:%02d err:%02x",t->taskindex,t->taskid,t->err);
for(int j=0;j<t->item_num;j++)
{
cmd_print(" max:%5d, min:%5d err:%02x %s",t->range[j].max,t->range[j].min,

View File

@@ -68,6 +68,7 @@ static void request_check(void *p)
{
const sys_param_def *par=sys_param();
array_def *d=arr_creat();
arr_append(d,0);
emit key_send_signal(p,0x37,arr_temp(d));
//DBG_LOG("tcp liver:%s",str_temp(arr_string(d)));
}

View File

@@ -75,7 +75,6 @@ static void write_uid_upmit(write_uid_def *w)
}
}
emit tran_send_signal(w->u.p,0x82,arr_temp(a));
tran_set_busy(w->u.p,0);
g_self.step=0;
// 把命令字改为0x82用于接收主机应答
w->u.cmd=0x82;
@@ -83,6 +82,25 @@ static void write_uid_upmit(write_uid_def *w)
// 填充注码结果
static void write_uid_fillret(write_uid_def *w,int addr,int ack)
{
addr-=1;
uint8_t *d=&w->ack[(addr)*39];
w->ack_num++;
d[0]=addr+slave_addr_off();
d[1]=ack;
memcpy(&d[2],w->item[addr].shell_code,13);
memcpy(&d[2+13],w->item[addr].uid_code,16);
memcpy(&d[2+13+16],w->item[addr].password,8);
if(w->ack_num>=10)
{
write_uid_upmit(w);
}
}
// 注码完成
static void write_uid_end(ucport_def *u,port_mcu *src,void *data,int ack,char *err_str)
{
@@ -92,19 +110,7 @@ static void write_uid_end(ucport_def *u,port_mcu *src,void *data,int ack,char *e
DBG_WARN("addr err:%d",addr);
return;
}
addr-=1;
uint8_t *d=&w->ack[(addr)*39];
w->ack_num++;
d[0]=addr+slave_addr_off();
d[1]=ack;
memcpy(&d[2],w->item[addr].shell_code,13);
memcpy(&d[2+13],w->item[addr].uid_code,16);
memcpy(&d[2+13+16],w->item[addr].password,8);
if(w->ack_num>=10)
{
write_uid_upmit(w);
}
write_uid_fillret(w,addr,ack);
}
@@ -137,6 +143,7 @@ static void write_del(ucport_def *u)
static int write_uid_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_str)
{
DBG_LOG("recv write_uid end signal.");
tran_set_busy(u->p,0);
return 0;
}
@@ -191,11 +198,7 @@ static ucport_def *write_uid(tran_def *t, uint8_t cmd,array_def *data)
port_start(mcu,code_creat(8,4,u->item[i].uid_pw_hex));
}else{
// 管壳码无效,不注码,此时默认已ack
u->ack_num++;
if(u->ack_num>=10)
{
write_uid_upmit(u);
}
write_uid_fillret(u,i+1,0xff);
}
}
}
@@ -372,7 +375,7 @@ static void check_end(ucport_def *u,port_mcu *src,void *data,int ack,char *err_s
arr_append(a,w->type);
arr_appends(a,w->ack,(6)*10);
emit tran_send_signal(w->u.p,0x81,arr_temp(a));
tran_set_busy(w->u.p,0);
//tran_set_busy(w->u.p,0);
// 把命令字改为0x81用于接收主机应答
w->u.cmd=0x81;
g_self.step=1;
@@ -408,6 +411,7 @@ static void check_del(ucport_def *u)
static int check_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_str)
{
DBG_LOG("recv check end signal.");
tran_set_busy(u->p,0);
return 0;
}