#ifndef CANCTRL_H #define CANCTRL_H #include #include #include #include #include #include #include #include "nvcan.h" #include "modulecomm.h" #include "canmsg.pb.h" #include "canraw.pb.h" #include "canstate.pb.h" class canctrl : public QThread { Q_OBJECT public: canctrl(const char * strmemsend0,const char * strmemrecv0,const char * strmemsend1,const char * strmemrecv1,const char * strcan0name,const char * strcan1name); ~canctrl(); private slots: void onCANState(bool bCAN,int nR,const char * strres); private: void run(); basecan * mpcan; std::shared_ptr mspcan; bool mbCANOpen = false; std::vector msendmsgvector1; const int SENDMSGBUFSIZE = 3000; QMutex mMutexcan1; int mindex[2]; void * mpasend0, * mparecv0, *mpcanState; void * mpasend1, * mparecv1; public: void sendmsg(int index,iv::can::canmsg xmsg); void sharecanmsg(void * xpa,basecan_msg * pxmsg,int ncount,int nch); private: void threadstate(); std::thread * mptheadstate; bool mbstaterun = true; }; #endif // CANCTRL_H