赋码仪错误判断
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include "coder_lib.h"
|
||||
#include "PSDGenerate.h"
|
||||
#include "mystring.h"
|
||||
#include "coder_judge.h"
|
||||
|
||||
// 这个文件解析跟赋码仪相关的命令
|
||||
|
||||
@@ -93,6 +94,8 @@ static void write_uid_end(ucport_def *u,port_mcu *src,void *data,int ack,char *e
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,6 +126,14 @@ 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.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static ucport_def *write_uid(tran_def *t, uint8_t cmd,array_def *data)
|
||||
{
|
||||
if(arr_length(data)<140+4+1){
|
||||
@@ -134,6 +145,7 @@ static ucport_def *write_uid(tran_def *t, uint8_t cmd,array_def *data)
|
||||
u->u.p=t;
|
||||
u->u.del=write_del;
|
||||
u->u.doend=write_uid_end;
|
||||
u->u.dolater=write_uid_dolater;
|
||||
u->addrs_num=arr_get(data,0);
|
||||
memcpy(u->year,arr_data(data)+1,4);
|
||||
DBG_LOG("coder, year=%s",u->year);
|
||||
@@ -329,7 +341,13 @@ static void check_end(ucport_def *u,port_mcu *src,void *data,int ack,char *err_s
|
||||
ack_d[3]=(errcode>>8)&0xff;
|
||||
ack_d[4]=(errcode>>16)&0xff;
|
||||
ack_d[5]=(errcode>>24)&0xff;
|
||||
if(ack_d[1]==0) ack_d[1]=ack_d[2];
|
||||
if(ack_d[1]==0){
|
||||
// 先判断主要错误,如果没有主要错误,则填充为子错误
|
||||
ack_d[1]=coder_judge(arr_data(data));
|
||||
if(ack_d[1]==0){
|
||||
ack_d[1]=ack_d[2];
|
||||
}
|
||||
}
|
||||
}else{
|
||||
}
|
||||
|
||||
@@ -342,6 +360,8 @@ static void check_end(ucport_def *u,port_mcu *src,void *data,int ack,char *err_s
|
||||
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);
|
||||
// 把命令字改为0x81用于接收主机应答
|
||||
w->u.cmd=0x81;
|
||||
g_self.step=1;
|
||||
}
|
||||
}
|
||||
@@ -372,6 +392,11 @@ static void check_del(ucport_def *u)
|
||||
free(u);
|
||||
}
|
||||
|
||||
static int check_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_str)
|
||||
{
|
||||
DBG_LOG("recv check end signal.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static ucport_def *check(tran_def *t, uint8_t cmd,array_def *data)
|
||||
@@ -384,6 +409,7 @@ static ucport_def *check(tran_def *t, uint8_t cmd,array_def *data)
|
||||
u->u.p=t;
|
||||
u->u.del=check_del;
|
||||
u->u.doend=check_end;
|
||||
u->u.dolater=check_dolater;
|
||||
u->addrs_num=arr_get(data,0);
|
||||
u->type=arr_get(data,0);
|
||||
// 默认失败
|
||||
|
Reference in New Issue
Block a user