制定任务执行命令
This commit is contained in:
@@ -821,18 +821,22 @@ int selfdev_runtask::dolater(int cmd, myarray data)
|
||||
qDebug("set_rescv.");
|
||||
emit send_data_signal(cmd,myarray(1,0));
|
||||
HandleBoardCast *b=new slave_cmd();
|
||||
bool ack=slave->set_boardcast_handle(cfg_->calc_slave_addrs(),b);
|
||||
addrs=cmd_pc_to_addrs(data);
|
||||
bool ack=slave->set_boardcast_handle(addrs,b);
|
||||
if(ack==false){
|
||||
qWarning("handle is busy.");
|
||||
busy=0;
|
||||
}else{
|
||||
connect(b,&HandleBoardCast::end_signal,this,&selfdev_runtask::slave_end_slot);
|
||||
// 广播设置校准值,需使用新增命令
|
||||
b->cmd=0x13;
|
||||
b->start(data);
|
||||
b->cmd=cmd_slave();
|
||||
b->start(cmd_pc_to_slave(data));
|
||||
if(cmd_pc_recv()!=0){
|
||||
emit send_data_signal(cmd_pc_recv(),cmd_pc_recv_to_pc());
|
||||
}
|
||||
}
|
||||
slave_acked.clear();
|
||||
for(int i=0;i<cfg_->slave_num;i++){
|
||||
for(int i=0;i<addrs.size();i++){
|
||||
slave_acked.append(myarray());
|
||||
}
|
||||
slave_acked_num=0;
|
||||
@@ -846,17 +850,18 @@ void selfdev_runtask::timeout()
|
||||
|
||||
void selfdev_runtask::slave_end_slot(int addr,int ack, slave_data data)
|
||||
{
|
||||
qDebug("selfdev set_rescv end.");
|
||||
myarray r;
|
||||
r.append(char(0));
|
||||
emit send_data_signal(0x50,r);
|
||||
qDebug("selfdev runtask end.");
|
||||
for(int i=0;i<data.size();i++){
|
||||
slave_ret slave=data.at(i);
|
||||
slave_acked.replace(slave.addr-1,slave.data);
|
||||
slave_acked_num++;
|
||||
}
|
||||
if(cmd_pc_ret()!=0){
|
||||
emit send_data_signal(cmd_pc_ret(),ret_slave_to_pc(slave_acked));
|
||||
}
|
||||
busy=0;
|
||||
}
|
||||
|
||||
static HandlePc *get_selfdev_runtask(){
|
||||
return new selfdev_runtask();
|
||||
}
|
||||
protpc_export(0x50, get_selfdev_runtask);
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user