25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 

99 satır
2.3 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. #define TEST_ENGINE_SM_STANDBY_TIMEOUT 300 //ms
  11. #define TEST_ENGINE_SM_TIMEOUT 100 //ms
  12. class CCableTestEngine : public QObject
  13. {
  14. Q_OBJECT
  15. public:
  16. enum eCableTestEngineMode
  17. {
  18. CABLE_TEST_STBY_MODE,
  19. CABLE_AUTO_TEST_RUNNING_MODE,
  20. CABLE_AUTO_TEST_PAUSED_MODE,
  21. CABLE_TEST_MANUAL_MODE
  22. };
  23. CCableTestEngine();
  24. ~CCableTestEngine();
  25. int InitCableTestEngine(CCableTestBench *ProgramHandle, int PinHoldTime);
  26. int StartAutomatedTest();
  27. int PauseAutomatedTest();
  28. int ResumeAutomatedTest();
  29. int StopAutomatedTest();
  30. int StartManualTest();
  31. int StopManualTest();
  32. int ManualPinToggle(int ConnectorPinNbr);
  33. int SetPinHoldTime(int HoldTime);
  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_TEST_START_MANUAL_TEST_STATE,
  47. CABLE_MANUAL_TEST_PINS_STATE,
  48. CABLE_MANUAL_TEST_END_TEST_STATE
  49. };
  50. enum eCableTestSMEvents
  51. {
  52. CABLE_TEST_START_AUTO_TEST_SM_EVENT,
  53. CABLE_TEST_TICK_SM_EVENT,
  54. CABLE_TEST_PAUSE_AUTO_TEST_SM_EVENT,
  55. CABLE_TEST_RESUME_AUTO_TEST_SM_EVENT,
  56. CABLE_TEST_CANCEL_AUTO_TEST_SM_EVENT,
  57. CABLE_TEST_START_MANUAL_TEST_SM_EVENT,
  58. CABLE_TEST_EXIT_MANUAL_TEST_SM_EVENT
  59. };
  60. CCable *mTestCable;
  61. int mCableTestSMState;
  62. CCableTestBench *mProgramHandle;
  63. CInputConnector *mTestInputConnectorHandle;
  64. COutputConnector *mTestOutputConnectorHandle;
  65. int mCurPinUnderTest;
  66. int mPinHoldTime;
  67. QTimer *mCableTestSMTimer;
  68. QElapsedTimer mCableTestGPTimer;
  69. CAutomatedTestReport *mAutoTestReportHandle;
  70. CTestReport *mTestReportHandle;
  71. void CableTestEngineStateMachine(int Event);
  72. public slots:
  73. void SMTimerExpired();
  74. };
  75. #endif // CABLETESTENGINE_H