批检仪检测流程验证成功
This commit is contained in:
@@ -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()
|
||||
{
|
||||
|
@@ -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:
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user