#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "basecan.h" #include "modulecomm.h" #include "canmsg.pb.h" #include #define DEC_NUM 200 #define CAN_CHNUM 2 class CANMsgUnit { public: basecan_msg mcan_obj; int mCount = 0; }; namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private: Ui::MainWindow *ui; std::vector mvu[CAN_CHNUM]; void CreateView(); void CreateRawTabView(QTabWidget * p,int nch); QTabWidget * mTabMain; QLineEdit * mpLEDevNum; QPushButton * mpPBCard; bool mbCANOpen; int mnDevNum = 0; bool mrawupdate[CAN_CHNUM]; QFile mFile[CAN_CHNUM]; bool mbSave = false; public: void resizeEvent(QResizeEvent *event); private: void AdjustWPos(QSize sizemain); private slots: void onClickCard(); void onTimer(); void onSigAdd(); void onSigChange(); void onSigDel(); void onSigSave(); void onSigLoad(); void oncbsigchange(); void oncbtypechange(); void onCANState(bool bCAN,int nR,const char * strres); void onCheckSave(); void onClickSend(); private: void ShowRawData(); QPlainTextEdit * mppte[CAN_CHNUM]; QScrollArea * mpSetDecode; void CreateDecodeView(); QScrollArea * mpMainScroll; QGroupBox * mpMainGroup; iv::can::decodearray mdecodearray; QLineEdit * mpLEviewid, * mpLESigName, * mpLEcanid, * mpLEstartbit, * mpLEbitlen, * mpLEfactor, * mpLEoffset; QComboBox * mpCBisintel, * mpCBch, * mpCBSigName, * mpCBSigType; QCheckBox * mpCheckSave; QLabel * mpLabelDec[DEC_NUM]; QLineEdit * mpLEDecValue[DEC_NUM]; QLineEdit * mpLEDecCount[DEC_NUM]; void UpdateDecShow(); void UpdateDecValue(); inline void ExecSave(basecan_msg xmesg,int nch); bool mbSend = false; bool mbCycle = false; int mCycleTime = 100; int mnSendCh = 0; int mnLastSendTime = 0; QTime mTime; QGroupBox * mpGroupDec; QLineEdit * mpLESendID, * mpLESendLen, * mpLESendData, * mpLESendCycle; QComboBox * mpCBSendStandard ,* mpCBSendData, * mpCBSendCh; QCheckBox * mpCheckCycle; QPushButton * mpPBSend; basecan_msg mMsgSend; QComboBox * mpCBCh0Baud, * mpCBCh1Baud; void * mparecv0; void * mparecv1; void * mpasend0; void * mpasend1; public: QMutex mMutexMsg; QMutex mMutex2; private: int mnSendIndex = 0; public: void recvmsg(int index,iv::can::canmsg xmsg); }; #endif // MAINWINDOW_H