您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

101 行
2.4 KiB

  1. #ifndef CABLETESTENGINE_H
  2. #define CABLETESTENGINE_H
  3. #include "Cable.h"
  4. #include <QTimer>
  5. #include "InputConnector.h"
  6. #include "OutputConnector.h"
  7. #include <QElapsedTimer>
  8. #include "TestReport.h"
  9. class CCableTestBench;
  10. class CTestBenchSettings;
  11. #define TEST_ENGINE_SM_STANDBY_TIMEOUT 300 //ms
  12. #define TEST_ENGINE_SM_TIMEOUT 100 //ms
  13. class CCableTestEngine : public QObject
  14. {
  15. Q_OBJECT
  16. public:
  17. enum eCableTestEngineMode
  18. {
  19. CABLE_TEST_STBY_MODE,
  20. CABLE_AUTO_TEST_RUNNING_MODE,
  21. CABLE_AUTO_TEST_PAUSED_MODE,
  22. CABLE_TEST_MANUAL_MODE
  23. };
  24. CCableTestEngine();
  25. ~CCableTestEngine();
  26. int InitCableTestEngine(CCableTestBench *ProgramHandle, CTestBenchSettings *SettingsHandle);
  27. int StartAutomatedTest();
  28. int PauseAutomatedTest();
  29. int ResumeAutomatedTest();
  30. int StopAutomatedTest();
  31. int StartManualTest();
  32. int StopManualTest();
  33. int ManualPinToggle(int ConnectorPinNbr);
  34. bool IsAutomaticTestRunning();
  35. eCableTestEngineMode GetTestEngineCurrentMode();
  36. private:
  37. enum eCableTestState
  38. {
  39. CABLE_TEST_INIT_STATE,
  40. CABLE_TEST_STBY_STATE,
  41. CABLE_TEST_START_AUTOMATED_TEST_STATE,
  42. CABLE_AUTO_TEST_SELF_TEST_STATE,
  43. CABLE_AUTO_TEST_PINS_STATE,
  44. CABLE_AUTO_TEST_PAUSE_STATE,
  45. CABLE_AUTO_TEST_END_TEST_STATE,
  46. CABLE_AUTO_TEST_START_SECOND_PASS_STATE,
  47. CABLE_TEST_START_MANUAL_TEST_STATE,
  48. CABLE_MANUAL_TEST_PINS_STATE,
  49. CABLE_MANUAL_TEST_END_TEST_STATE
  50. };
  51. enum eCableTestSMEvents
  52. {
  53. CABLE_TEST_START_AUTO_TEST_SM_EVENT,
  54. CABLE_TEST_TICK_SM_EVENT,
  55. CABLE_TEST_PAUSE_AUTO_TEST_SM_EVENT,
  56. CABLE_TEST_RESUME_AUTO_TEST_SM_EVENT,
  57. CABLE_TEST_CANCEL_AUTO_TEST_SM_EVENT,
  58. CABLE_TEST_START_MANUAL_TEST_SM_EVENT,
  59. CABLE_TEST_EXIT_MANUAL_TEST_SM_EVENT
  60. };
  61. CCable *mTestCable;
  62. int mCableTestSMState;
  63. CCableTestBench *mProgramHandle;
  64. CInputConnector *mTestInputConnectorHandle;
  65. COutputConnector *mTestOutputConnectorHandle;
  66. int mCurPinUnderTest;
  67. bool mExecSecondTest;
  68. bool mIsSecondPass;
  69. CTestBenchSettings *mTestSettingsHandle;
  70. QTimer *mCableTestSMTimer;
  71. QElapsedTimer mCableTestGPTimer;
  72. CAutomatedTestReport *mAutoTestReportHandle;
  73. CTestReport *mTestReportHandle;
  74. void CableTestEngineStateMachine(int Event);
  75. public slots:
  76. void SMTimerExpired();
  77. };
  78. #endif // CABLETESTENGINE_H