自动检测指令0x44不读取流水号

解决新赋码指令回复指令不对的问题
  解决tcp不上报心跳的问题
This commit is contained in:
ranchuan
2024-01-23 18:04:57 +08:00
parent f00a2b79f0
commit 2a4e7f1f1e
6 changed files with 26 additions and 23 deletions

View File

@@ -6,7 +6,7 @@
#define BUILD_DATE "2024-01-11 17:54:49"
#define BUILD_DATE "2024-01-18 15:53:38"

View File

@@ -1,5 +1,5 @@
{
"build_date": "2024-01-11 17:54:49",
"build_date": "2024-01-18 15:53:38",
"hard_version": "MHPZ2_V1.00",
"private": [
"info.json",

View File

@@ -46,6 +46,7 @@ void ProtPc::init()
recv_data.remove(0,pack_len);
// qDebug("host recv removed:%s",recv_data.toHex(' ').data());
if(codec_->failed!=true){
qDebug("pc cmd:%02x.",cmd);
docmd(cmd,data);
}else{
qWarning("host data decode failed.");

View File

@@ -488,6 +488,7 @@ myarray cmd_coder_code2::cmd_pc_to_slave(myarray data)
chip_mode=elec_extract_chip(check_plan()->get_plan_id());
char year[10]={0};
delay=data[3]|(data[4]<<8);
qDebug("code delay=%d",delay);
// 移除前4个字节使数据对齐
data.remove(0,4);
memcpy(year,data.mid(1,4).data(),4);
@@ -498,7 +499,7 @@ myarray cmd_coder_code2::cmd_pc_to_slave(myarray data)
memcpy(uid.shell,data.mid(5+i*14+1,13).data(),13);
if(check_shell_code(uid.shell)==1){
// 只有管壳码验证通过时才计算uid和密码
// if(chip_mode!=0){
if(chip_mode!=0){
coder_shell_to_uid(year,uid.shell,uid.uid);
// 生成存储码
coder_uid_to_save(uid.uid,(uint8_t *)uid.uid_psw);
@@ -507,16 +508,16 @@ myarray cmd_coder_code2::cmd_pc_to_slave(myarray data)
// 生成密码字符串
sprintf(uid.psw,"%02X%02X%02X%02X",uid.uid_psw[8],
uid.uid_psw[9],uid.uid_psw[10],uid.uid_psw[11]);
// }else{
// coder_shell_to_uid_jq(year,uid.shell,uid.uid);
// // 生成存储码
// UidCode_YM2JQ((PST_JQUID_TYPEDEF)uid.uid_psw,(PST_YMUID_TYPEDEF)uid.uid);
// // 生成密码
// JQ_GetPasswordByUidCode((uint8_t *)uid.uid,(uint8_t *)&uid.uid_psw[8]);
// // 生成密码字符串
// sprintf(uid.psw,"%02X%02X%02X%02X",uid.uid_psw[11],
// uid.uid_psw[10],uid.uid_psw[9],uid.uid_psw[8]);
// }
}else{
coder_shell_to_uid_jq(year,uid.shell,uid.uid);
// 生成存储码
UidCode_YM2JQ((PST_JQUID_TYPEDEF)uid.uid_psw,(PST_YMUID_TYPEDEF)uid.uid);
// 生成密码
JQ_GetPasswordByUidCode((uint8_t *)uid.uid,(uint8_t *)&uid.uid_psw[8]);
// 生成密码字符串
sprintf(uid.psw,"%02X%02X%02X%02X",uid.uid_psw[11],
uid.uid_psw[10],uid.uid_psw[9],uid.uid_psw[8]);
}
}
uid_codes.append(uid);
params[0]=(8)|(4<<8);
@@ -555,11 +556,11 @@ myarray cmd_coder_code2::ret_slave_to_pc(QList<myarray> data)
if(syscfg()->coder_return_mode){
r.append(uint8_t(0));
r.append(13);
// if(chip_mode==0){
// r.append(15);
// }else{
if(chip_mode==0){
r.append(15);
}else{
r.append(16);
// }
}
}else{
r.append(uint8_t(1));
}
@@ -580,6 +581,7 @@ myarray cmd_coder_code2::ret_slave_to_pc(QList<myarray> data)
// 如果延时不对,则失败
myarray sret=coder_slave_find_ret_data(sdata,3,2);
uint16_t sdelay=sret[0]|(sret[1]<<8);
qDebug("index:%d,delay=%d",i,sdelay);
if(sdelay!=delay){
if(err==0){
err=10;
@@ -595,11 +597,11 @@ myarray cmd_coder_code2::ret_slave_to_pc(QList<myarray> data)
if(syscfg()->coder_return_mode){
r.append(uid_codes[i].shell,13);
// r.append(13,i+'0');
// if(chip_mode==0){
// r.append(uid_codes[i].uid,15);
// }else{
if(chip_mode==0){
r.append(uid_codes[i].uid,15);
}else{
r.append(uid_codes[i].uid,16);
// }
}
}
r.append(uid_codes[i].psw,8);
}

View File

@@ -113,6 +113,7 @@ int selfdev_check::dolater(int cmd, myarray data)
emit send_to_m4_signal(moter_cmd);
}else{
qWarning("key not pressed,check will not start.");
busy=0;
return 2;
}
return 0;

View File

@@ -1,2 +1 @@
V2.05 修改赋码仪0x900x91指令上报格式模块类型字段移到每个模块数据域中
0x900x91指令可以识别EJ、EQ模块类型
V2.05 回滚JQ芯片三码算法