添加自研批检仪检测命令

This commit is contained in:
ranchuan
2023-11-27 14:31:00 +08:00
parent b3a0d7b57c
commit a0b0f41c39
45 changed files with 3778 additions and 2628 deletions

View File

@@ -1,77 +1,77 @@
#include "prot_slave.h"
#include "QDebug"
void prot_slave::init()
{
if_=interFaceFind("can");
codec_=codecFind("codec_slave");
mycfg *cfg_=syscfg();
for(int i=0;i<cfg_->slave_num;i++){
slaves.append(nullptr);
}
if_->set_irq([=](myarray recv){
if(codec_->packCheck(recv)==true){
int cmd,src,dst;
HandleSlave *handle=nullptr;
myarray data=codec_->decode(src,dst,cmd,recv);
if((src>slaves.size())||(src<=0)){
qWarning("slave addr err:%d",src);
}else{
handle=slaves[src-1];
if(handle!=nullptr){
handle->dolater(cmd,data);
}else{
qWarning("slave addr=%d not have handle.",src);
}
}
}
if_ = interFaceFind("can");
codec_ = codecFind("codec_slave");
mycfg *cfg_ = syscfg();
for (int i = 0; i < cfg_->slave_num; i++)
{
slaves.append(nullptr);
}
if_->set_irq([=](myarray recv)
{
if(codec_->packCheck(recv)==true){
int cmd,src,dst;
HandleSlave *handle=nullptr;
myarray data=codec_->decode(src,dst,cmd,recv);
if((src>slaves.size())||(src<=0)){
qWarning("slave addr err:%d",src);
}else{
handle=slaves[src-1];
if(handle!=nullptr){
handle->dolater(cmd,data);
}else{
qWarning("slave addr=%d not have handle.",src);
}
}
}
});
}
bool prot_slave::set_slave_handle(int addr,HandleSlave *handle)
bool prot_slave::set_slave_handle(int addr, HandleSlave *handle)
{
if((addr>slaves.size())||(addr<=0)){
delete handle;
return false;
if ((addr > slaves.size()) || (addr <= 0))
{
delete handle;
return false;
}
HandleSlave *temp;
temp = slaves[addr - 1];
if (temp != nullptr)
{
if (temp->busy != 0)
{
delete handle;
return false;
}
HandleSlave *temp;
temp=slaves[addr-1];
if(temp!=nullptr){
if(temp->busy!=0){
delete handle;
return false;
}else{
delete temp;
}
else
{
delete temp;
}
connect(handle,&HandleSlave::send_data_signal,this,&prot_slave::send_data_slot);
slaves.replace(addr-1,handle);
return true;
}
connect(handle, &HandleSlave::send_data_signal, this, &prot_slave::send_data_slot);
slaves.replace(addr - 1, handle);
return true;
}
void prot_slave::send_data_slot(int addr,int cmd,myarray data){
if((if_!=nullptr)&&(codec_!=nullptr)){
myarray send=codec_->encode(0,addr,cmd,data);
if_->write(send);
}
void prot_slave::send_data_slot(int addr, int cmd, myarray data)
{
if ((if_ != nullptr) && (codec_ != nullptr))
{
myarray send = codec_->encode(0, addr, cmd, data);
if_->write(send);
}
}
static prot_slave *g_protslave;
prot_slave *protSlave(){
if(g_protslave==nullptr){
g_protslave=new prot_slave();
//g_protslave->init();
}
return g_protslave;
prot_slave *protSlave()
{
if (g_protslave == nullptr)
{
g_protslave = new prot_slave();
// g_protslave->init();
}
return g_protslave;
}