Files
checker_host/prot_cmd/cmd_pc.cpp

71 lines
1.5 KiB
C++
Raw Normal View History

2023-11-26 23:05:35 +08:00
#include "cmd_pc.h"
#include "prot/prot_m4.h"
#include "prot/prot_pc.h"
#include "prot/prot_slave.h"
#include "base/mycfg.h"
#include "QDebug"
typedef struct{
int moter_count;
int moter_run;
}moter_def;
static moter_def g_moter;
myarray moter_ctrl(myarray op)
{
mycfg *cfg_=syscfg();
moter_def *moter=&g_moter;
myarray r;
if(op=="up"){
int count=0;
if(moter->moter_count>0){
moter->moter_run=1;
count=-moter->moter_count-100;
moter->moter_count=0;
QString s=QString("moter %1").arg(count);
r=s.toLocal8Bit();
}else{
qWarning()<<"moter count out of range."<<endl;
return r;
}
}else if(op=="down"){
int count=0;
if(moter->moter_count<cfg_->moter_count){
moter->moter_run=1;
count=cfg_->moter_count-moter->moter_count;
moter->moter_count+=count;
QString s=QString("moter %1").arg(count);
r=s.toLocal8Bit();
}else{
qWarning()<<"moter count out of range."<<endl;
return r;
}
}
return 0;
}
int selfdev_check::dolater(int cmd, myarray data)
{
prot_m4 *m4=protM4();
connect(this,send_to_m4_signal,m4,&prot_m4::send_data_slot);
m4->set_irq_fun([=](myarray data){
m4->del_irq_fun(nullptr,"moter ");
if(data=="down"){
// 这里开始检测
}
},"moter ");
emit send_to_m4_signal(moter_ctrl("up"));
return 0;
}