管壳码全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

@@ -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;
}