V2.02 0x48,0x30指令的返回数据中添加流水号信息
0x11 注码命令所有芯片都使用16位uid 添加自动测试命令0x44
This commit is contained in:
@@ -282,12 +282,68 @@ static void cfginfo(QList<myarray> args){
|
||||
print_item("uart_bsp",mystring::number(cfg_->uart_bsp).toLocal8Bit());
|
||||
print_item("coder_return_mode",mystring::number(cfg_->coder_return_mode).toLocal8Bit());
|
||||
print_item("slave_addr_start",mystring::number(cfg_->slave_addr_start).toLocal8Bit());
|
||||
print_item("slave_scheme_ext",mystring::number(cfg_->slave_scheme_ext).toLocal8Bit())
|
||||
}
|
||||
cmdline_export(cfginfo, cfginfo, get cfg info.);
|
||||
|
||||
|
||||
|
||||
|
||||
static void cfgset(QList<myarray> args){
|
||||
command *c=command_start();
|
||||
prot_slave *slave=protSlave();
|
||||
mycfg *cfg_=syscfg();
|
||||
if(args.size()<3){
|
||||
if((args.size()<2)||(args[1]!="save")){
|
||||
c->send("cmd len too less.");
|
||||
c->send("cfgset [item] [params],for example\n"
|
||||
"\tcfgset tcp_enable true");
|
||||
}else{
|
||||
syscfg()->save();
|
||||
syscfg()->restart();
|
||||
}
|
||||
return ;
|
||||
}
|
||||
if(args[1]=="tcp_enable"){
|
||||
if(args[2]=="true"){
|
||||
cfg_->tcp_enable=true;
|
||||
}else if(args[2]=="false"){
|
||||
cfg_->tcp_enable=false;
|
||||
}
|
||||
print_item("tcp_enable",cfg_->tcp_enable?"true":"false");
|
||||
}else if(args[1]=="server_ip"){
|
||||
cfg_->server_ip=mystring(args[2]);
|
||||
print_item("server_ip",cfg_->server_ip.toLocal8Bit());
|
||||
}else if(args[1]=="server_port"){
|
||||
cfg_->server_port=args[2].toInt();
|
||||
print_item("server_port",mystring::number(cfg_->server_port).toLocal8Bit());
|
||||
}else if(args[1]=="local_id"){
|
||||
cfg_->local_id=args[2].toInt();
|
||||
print_item("local_id",mystring::number(cfg_->local_id).toLocal8Bit());
|
||||
}else if(args[1]=="can_bitrate"){
|
||||
cfg_->can_bitrate=args[2].toInt();
|
||||
print_item("can_bitrate",mystring::number(cfg_->can_bitrate).toLocal8Bit());
|
||||
}else if(args[1]=="slave_num"){
|
||||
cfg_->slave_num=args[2].toInt();
|
||||
print_item("slave_num",mystring::number(cfg_->slave_num).toLocal8Bit());
|
||||
}else if(args[1]=="moter_count"){
|
||||
cfg_->moter_count=args[2].toInt();
|
||||
print_item("moter_count",mystring::number(cfg_->moter_count).toLocal8Bit());
|
||||
}else if(args[1]=="uart_bsp"){
|
||||
cfg_->uart_bsp=args[2].toInt();
|
||||
print_item("uart_bsp",mystring::number(cfg_->uart_bsp).toLocal8Bit());
|
||||
}else if(args[1]=="coder_return_mode"){
|
||||
cfg_->coder_return_mode=args[2].toInt();
|
||||
print_item("coder_return_mode",mystring::number(cfg_->coder_return_mode).toLocal8Bit());
|
||||
}else if(args[1]=="slave_addr_start"){
|
||||
cfg_->slave_addr_start=args[2].toInt();
|
||||
print_item("slave_addr_start",mystring::number(cfg_->slave_addr_start).toLocal8Bit());
|
||||
}else if(args[1]=="slave_scheme_ext"){
|
||||
cfg_->slave_scheme_ext=args[2].toInt();
|
||||
print_item("slave_scheme_ext",mystring::number(cfg_->slave_scheme_ext).toLocal8Bit())
|
||||
}
|
||||
}
|
||||
cmdline_export(cfgset, cfgset, set cfg info.);
|
||||
|
||||
|
||||
|
||||
|
@@ -465,7 +465,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);
|
||||
@@ -474,16 +474,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);
|
||||
@@ -521,11 +521,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));
|
||||
}
|
||||
@@ -559,11 +559,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);
|
||||
}
|
||||
@@ -667,7 +667,7 @@ int cmd_checker_check::dolater(int cmd, myarray data)
|
||||
qWarning("moter failed.");
|
||||
return 1;
|
||||
}
|
||||
if(cmd_m4_key_pressed()!=0){
|
||||
if(key_press()!=0){
|
||||
m4->set_irq_fun(moter_down_cb_fun,"moter down");
|
||||
emit send_to_m4_signal(moter_cmd);
|
||||
}else{
|
||||
@@ -676,6 +676,9 @@ int cmd_checker_check::dolater(int cmd, myarray data)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int cmd_checker_check::key_press(){
|
||||
return cmd_m4_key_pressed();
|
||||
}
|
||||
|
||||
|
||||
// 批检仪检测并写入流水号
|
||||
@@ -695,8 +698,8 @@ myarray cmd_checker_check::cmd_pc_to_slave(myarray data)
|
||||
ret+=d;
|
||||
}
|
||||
|
||||
// 检测模式0,返回原始检测结果
|
||||
ret.insert(0,uint8_t(0));
|
||||
// 检测模式2,返回原始检测结果和槽数据
|
||||
ret.insert(0,uint8_t(2));
|
||||
// qDebug()<<"checker check pack data:"<<ret.toHex(' ');
|
||||
return ret;
|
||||
}
|
||||
@@ -705,13 +708,19 @@ myarray cmd_checker_check::cmd_pc_to_slave(myarray data)
|
||||
myarray cmd_checker_check::ret_slave_to_pc(QList<myarray> data)
|
||||
{
|
||||
myarray r;
|
||||
check_cfg *ccfg_=check_plan();
|
||||
r.append(char(0));
|
||||
for(int i=0;i<data.size();i++){
|
||||
myarray &sdata=data[i];
|
||||
int addr=sdata[0]-1+syscfg()->slave_addr_start;
|
||||
sdata.remove(0,1);
|
||||
qDebug()<<"checker check ret data:"<<sdata.toHex(' ');
|
||||
r.append(tran_slave_to_selfdev_check(sdata));
|
||||
// 返回值个数
|
||||
int return_num=ccfg_->get_return_num();
|
||||
myarray check_data=sdata.left(1+16+return_num*2);
|
||||
r.append(tran_slave_to_selfdev_check(check_data));
|
||||
r.append(coder_slave_find_ret_data(sdata.mid(1+16+return_num*2),2,4));
|
||||
|
||||
}
|
||||
return r;
|
||||
}
|
||||
@@ -726,6 +735,39 @@ protpc_export(0x48, get_checker_check);
|
||||
|
||||
|
||||
|
||||
// 批检仪检测并读取流水号
|
||||
myarray cmd_checker_check2::cmd_pc_to_slave(myarray data)
|
||||
{
|
||||
myarray ret;
|
||||
const task_def *table=nullptr;
|
||||
uint16_t params[10]={0};
|
||||
for(int i=0;i<addrs.size();i++){
|
||||
myarray d;
|
||||
coder_add_task(d,"读取流水号",2,2,params);
|
||||
coder_slave_pack(d,addrs[i]);
|
||||
ret+=d;
|
||||
}
|
||||
|
||||
// 检测模式2,返回原始检测结果和槽数据
|
||||
ret.insert(0,uint8_t(2));
|
||||
return ret;
|
||||
}
|
||||
static HandlePc *get_checker_check2(){
|
||||
return new cmd_checker_check2();
|
||||
}
|
||||
protpc_export(0x30, get_checker_check2);
|
||||
|
||||
|
||||
|
||||
int cmd_checker_check3::key_press(){
|
||||
return 1;
|
||||
}
|
||||
|
||||
static HandlePc *get_checker_check3(){
|
||||
return new cmd_checker_check3();
|
||||
}
|
||||
protpc_export(0x44, get_checker_check3);
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -381,6 +381,7 @@ public:
|
||||
}
|
||||
// 从机返回转pc
|
||||
myarray ret_slave_to_pc(QList<myarray> data);
|
||||
virtual int key_press();
|
||||
protected:
|
||||
// int addrs;
|
||||
int mode;
|
||||
@@ -393,6 +394,46 @@ signals:
|
||||
|
||||
|
||||
|
||||
// 批检仪检测并读取模块流水号
|
||||
class cmd_checker_check2 : public cmd_checker_check
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
cmd_checker_check2():cmd_checker_check(){
|
||||
}
|
||||
~cmd_checker_check2(){
|
||||
}
|
||||
// pc指令转从机
|
||||
myarray cmd_pc_to_slave(myarray data);
|
||||
// pc指令生成从机列表
|
||||
QList<int> cmd_pc_to_addrs(myarray data){
|
||||
return syscfg()->calc_slave_addrs();
|
||||
}
|
||||
// pc收到回复,返回0不回复
|
||||
int cmd_pc_recv(){
|
||||
return 0x30;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
// 批检仪自动检测并读取模块流水号
|
||||
class cmd_checker_check3 : public cmd_checker_check2
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
cmd_checker_check3():cmd_checker_check2(){
|
||||
}
|
||||
~cmd_checker_check3(){
|
||||
}
|
||||
// pc收到回复,返回0不回复
|
||||
int cmd_pc_recv(){
|
||||
return 0x44;
|
||||
}
|
||||
int key_press();
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -174,7 +174,7 @@ void selfdev_check::slave_end_slot(int addr,int ack, myarray data)
|
||||
static HandlePc *get_selfdev_check(){
|
||||
return new selfdev_check();
|
||||
}
|
||||
protpc_export(0x30, get_selfdev_check);
|
||||
//protpc_export(0x30, get_selfdev_check);
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user