1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #ifndef CANCTRL_H
- #define CANCTRL_H
- #include <QThread>
- #include <QMutex>
- #include <memory>
- #include <QTimer>
- #include <array>
- #include <vector>
- #include <iostream>
- #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<basecan> mspcan;
- bool mbCANOpen = false;
- std::vector<basecan_msg> 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
|