广播命令已接收的回复不再触发回调

检测命令0x0c只能使用单播方式,广播方式因为不能即时回复停止信号,回复会出错
  添加电阻测试命令,添加自检命令
This commit is contained in:
ranchuan
2023-12-13 18:29:46 +08:00
parent fe11c52253
commit cc5b1b7458
13 changed files with 606 additions and 76 deletions

View File

@@ -38,6 +38,40 @@ signals:
// 检测 自研批检仪 广播形式
class selfdev_check2 : public HandlePc
{
Q_OBJECT
public:
selfdev_check2() : HandlePc() {
slave_acked_num=0;
moter_down_cb_fun=nullptr;
}
~selfdev_check2() {
if(moter_down_cb_fun!=nullptr){
// 取消电机下降到位回调
prot_m4 *m4 = protM4();
if(m4!=nullptr) {
m4->del_irq_fun(moter_down_cb_fun,"moter ");
}
}
}
int dolater(int cmd, myarray data);
void timeout();
public slots:
void slave_end_slot(int addr,int ack, slave_data data);
protected:
QList<myarray> slave_acked;
int slave_acked_num;
prot_m4_cb moter_down_cb_fun;
signals:
void send_to_m4_signal(myarray data);
};
// 检测结束 自研批检仪
class selfdev_checkend : public HandlePc
{
@@ -148,8 +182,7 @@ public:
int dolater(int cmd, myarray data);
void timeout();
public slots:
// void slave_end_slot(int addr,int ack, slave_data data);
void slave_end_slot(int addr,int ack, myarray data);
void slave_end_slot(int addr,int ack, slave_data data);
protected:
QList<myarray> slave_acked;
int slave_acked_num;
@@ -160,4 +193,62 @@ protected:
// 测量电阻
class selfdev_measure_rescv : public HandlePc
{
Q_OBJECT
public:
selfdev_measure_rescv() : HandlePc() {
slave_acked_num=0;
}
~selfdev_measure_rescv() {
if(moter_down_cb_fun!=nullptr){
// 取消电机下降到位回调
prot_m4 *m4 = protM4();
if(m4!=nullptr) {
m4->del_irq_fun(moter_down_cb_fun,"moter ");
}
}
}
int dolater(int cmd, myarray data);
void timeout();
public slots:
void slave_end_slot(int addr,int ack, slave_data data);
protected:
QList<myarray> slave_acked;
int slave_acked_num;
prot_m4_cb moter_down_cb_fun;
signals:
void send_to_m4_signal(myarray data);
};
// 设置电阻校准
class selfdev_set_rescv : public HandlePc
{
Q_OBJECT
public:
selfdev_set_rescv() : HandlePc() {
slave_acked_num=0;
}
~selfdev_set_rescv() {
}
int dolater(int cmd, myarray data);
void timeout();
public slots:
void slave_end_slot(int addr,int ack, slave_data data);
protected:
QList<myarray> slave_acked;
int slave_acked_num;
signals:
void send_to_m4_signal(myarray data);
};
#endif