批检仪检测流程验证成功

This commit is contained in:
ranchuan
2023-12-07 18:29:49 +08:00
parent 32129cbf9a
commit dc6487c309
15 changed files with 438 additions and 25 deletions

View File

@@ -41,20 +41,7 @@ void ProtPc::init()
myarray data=codec_->decode(src,dst,cmd,recv_data);
recv_data.remove(0,pack_len);
// qDebug("host recv removed:%s",recv_data.toHex(' ').data());
if(handle_!=nullptr){
if(handle_->busy==0){
disconnect(handle_,&HandlePc::send_data_signal,this,&ProtPc::send_data_slot);
delete handle_;
}else{
qWarning("prot_pc is busy.");
return;
}
}
handle_=handlePcFind(cmd);
if(handle_!=nullptr){
connect(handle_,&HandlePc::send_data_signal,this,&ProtPc::send_data_slot);
handle_->dolater(cmd,data);
}
docmd(cmd,data);
}
});
}
@@ -68,6 +55,31 @@ void ProtPc::send_data_slot(int cmd, myarray data)
}
}
bool ProtPc::docmd(int cmd,myarray data)
{
if(handle_!=nullptr){
if(handle_->busy==0){
disconnect(handle_,&HandlePc::send_data_signal,this,&ProtPc::send_data_slot);
delete handle_;
}else{
qWarning("prot_pc is busy.");
return false;
}
}
handle_=handlePcFind(cmd);
if(handle_!=nullptr){
connect(handle_,&HandlePc::send_data_signal,this,&ProtPc::send_data_slot);
handle_->dolater(cmd,data);
return true;
}
return false;
}
static ProtPc *g_protpc;
ProtPc *protPc()
{

View File

@@ -60,7 +60,8 @@ public:
}
~ProtPc() {}
void init();
protected slots:
bool docmd(int cmd,myarray data);
public slots:
void send_data_slot(int cmd, myarray data);
protected:

View File

@@ -32,9 +32,11 @@ void prot_slave::init()
}else{
handle=slaves[src-1];
if(handle!=nullptr){
// handle->dolater(cmd,data);
emit slave_dolater_signal(cmd,data);
}else{
handle->dolater(cmd,data);
// connect(this,&prot_slave::slave_dolater_signal,handle,&HandleSlave::dolater);
// emit slave_dolater_signal(cmd,data);
// disconnect(this,&prot_slave::slave_dolater_signal,handle,&HandleSlave::dolater);
}else{
qWarning("slave addr=%d not have handle.",src);
}
}
@@ -66,7 +68,6 @@ bool prot_slave::set_slave_handle(int addr, HandleSlave *handle)
}
handle->addr=addr;
connect(handle, &HandleSlave::send_data_signal, this, &prot_slave::send_data_slot);
connect(this,&prot_slave::slave_dolater_signal,handle,&HandleSlave::dolater);
slaves.replace(addr - 1, handle);
return true;
}