mainwindow.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QTabWidget>
  5. #include <QScrollArea>
  6. #include <QGroupBox>
  7. #include <QLabel>
  8. #include <QLineEdit>
  9. #include <QPushButton>
  10. #include <QComboBox>
  11. #include <QPlainTextEdit>
  12. #include <QFileDialog>
  13. #include <vector>
  14. #include <memory>
  15. #include <iostream>
  16. #include <decode.pb.h>
  17. #include <decodearray.pb.h>
  18. #include <QFile>
  19. #include <QCheckBox>
  20. #include <QDateTime>
  21. #include <QDir>
  22. #include <QMutex>
  23. #include "basecan.h"
  24. #include "modulecomm.h"
  25. #include "canmsg.pb.h"
  26. #include <thread>
  27. #define DEC_NUM 200
  28. #define CAN_CHNUM 2
  29. class CANMsgUnit
  30. {
  31. public:
  32. basecan_msg mcan_obj;
  33. int mCount = 0;
  34. };
  35. namespace Ui {
  36. class MainWindow;
  37. }
  38. class MainWindow : public QMainWindow
  39. {
  40. Q_OBJECT
  41. public:
  42. explicit MainWindow(QWidget *parent = 0);
  43. ~MainWindow();
  44. private:
  45. Ui::MainWindow *ui;
  46. std::vector<CANMsgUnit> mvu[CAN_CHNUM];
  47. void CreateView();
  48. void CreateRawTabView(QTabWidget * p,int nch);
  49. QTabWidget * mTabMain;
  50. QLineEdit * mpLEDevNum;
  51. QPushButton * mpPBCard;
  52. bool mbCANOpen;
  53. int mnDevNum = 0;
  54. bool mrawupdate[CAN_CHNUM];
  55. QFile mFile[CAN_CHNUM];
  56. bool mbSave = false;
  57. public:
  58. void resizeEvent(QResizeEvent *event);
  59. private:
  60. void AdjustWPos(QSize sizemain);
  61. private slots:
  62. void onClickCard();
  63. void onTimer();
  64. void onSigAdd();
  65. void onSigChange();
  66. void onSigDel();
  67. void onSigSave();
  68. void onSigLoad();
  69. void oncbsigchange();
  70. void oncbtypechange();
  71. void onCANState(bool bCAN,int nR,const char * strres);
  72. void onCheckSave();
  73. void onClickSend();
  74. private:
  75. void ShowRawData();
  76. QPlainTextEdit * mppte[CAN_CHNUM];
  77. QScrollArea * mpSetDecode;
  78. void CreateDecodeView();
  79. QScrollArea * mpMainScroll;
  80. QGroupBox * mpMainGroup;
  81. iv::can::decodearray mdecodearray;
  82. QLineEdit * mpLEviewid, * mpLESigName, * mpLEcanid, * mpLEstartbit, * mpLEbitlen, * mpLEfactor, * mpLEoffset;
  83. QComboBox * mpCBisintel, * mpCBch, * mpCBSigName, * mpCBSigType;
  84. QCheckBox * mpCheckSave;
  85. QLabel * mpLabelDec[DEC_NUM];
  86. QLineEdit * mpLEDecValue[DEC_NUM];
  87. QLineEdit * mpLEDecCount[DEC_NUM];
  88. void UpdateDecShow();
  89. void UpdateDecValue();
  90. inline void ExecSave(basecan_msg xmesg,int nch);
  91. bool mbSend = false;
  92. bool mbCycle = false;
  93. int mCycleTime = 100;
  94. int mnSendCh = 0;
  95. int mnLastSendTime = 0;
  96. QTime mTime;
  97. QGroupBox * mpGroupDec;
  98. QLineEdit * mpLESendID, * mpLESendLen, * mpLESendData, * mpLESendCycle;
  99. QComboBox * mpCBSendStandard ,* mpCBSendData, * mpCBSendCh;
  100. QCheckBox * mpCheckCycle;
  101. QPushButton * mpPBSend;
  102. basecan_msg mMsgSend;
  103. QComboBox * mpCBCh0Baud, * mpCBCh1Baud;
  104. void * mparecv0;
  105. void * mparecv1;
  106. void * mpasend0;
  107. void * mpasend1;
  108. public:
  109. QMutex mMutexMsg;
  110. QMutex mMutex2;
  111. private:
  112. int mnSendIndex = 0;
  113. public:
  114. void recvmsg(int index,iv::can::canmsg xmsg);
  115. };
  116. #endif // MAINWINDOW_H