#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