76 lines
1.0 KiB
C++
76 lines
1.0 KiB
C++
|
|
|
|
#ifndef prot_pc_h__
|
|
#define prot_pc_h__
|
|
|
|
#include "QObject"
|
|
#include "base/base.h"
|
|
#include "QList"
|
|
#include "interface/codec.h"
|
|
#include "interface/interface.h"
|
|
#include "base/mycfg.h"
|
|
#include "QThread"
|
|
|
|
|
|
// 定义处理命令的类
|
|
class HandlePc:public QObject{
|
|
Q_OBJECT
|
|
public:
|
|
HandlePc(){busy=0;}
|
|
virtual ~HandlePc(){}
|
|
virtual int dolater(int cmd,myarray data)=0;
|
|
int busy;
|
|
signals:
|
|
void send_data_signal(int cmd,myarray data);
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ProtPc:public QObject{
|
|
Q_OBJECT
|
|
public:
|
|
ProtPc(){if_=nullptr;codec_=nullptr;handle_=nullptr;}
|
|
~ProtPc(){}
|
|
void init();
|
|
protected slots:
|
|
void send_data_slot(int cmd,myarray data);
|
|
protected:
|
|
InterFace *if_;
|
|
Codec *codec_;
|
|
HandlePc *handle_;
|
|
QThread thread;
|
|
myarray recv_data;
|
|
};
|
|
|
|
|
|
ProtPc *protPc();
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct{
|
|
int cmd;
|
|
HandlePc *(*handle_get_fun)();
|
|
}handlepc_def;
|
|
|
|
|
|
|
|
#define protpc_export(cmd_,fun_) \
|
|
__attribute__((used)) static handlepc_def _handlepc_##name_ __attribute__((section("protpc")))={\
|
|
.cmd=cmd_,\
|
|
.handle_get_fun=fun_,\
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|