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.
 
 
 
 

95 satır
2.1 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);
  26. int StartAutomatedTest();
  27. int PauseAutomatedTest();
  28. int ResumeAutomatedTest();
  29. int StopAutomatedTest();
  30. int StartManualTest();
  31. int StopManualTest();
  32. int ManualPinToggle(int ConnectorPinNbr);
  33. bool IsAutomaticTestRunning();
  34. eCableTestEngineMode GetTestEngineCurrentMode();
  35. private:
  36. enum eCableTestState
  37. {
  38. CABLE_TEST_INIT_STATE,
  39. CABLE_TEST_STBY_STATE,
  40. CABLE_TEST_START_AUTOMATED_TEST_STATE,
  41. CABLE_AUTO_TEST_SELF_TEST_STATE,
  42. CABLE_AUTO_TEST_PINS_STATE,
  43. CABLE_AUTO_TEST_PAUSE_STATE,
  44. CABLE_AUTO_TEST_END_TEST_STATE,
  45. CABLE_TEST_START_MANUAL_TEST_STATE,
  46. CABLE_MANUAL_TEST_PINS_STATE,
  47. CABLE_MANUAL_TEST_END_TEST_STATE
  48. };
  49. enum eCableTestSMEvents
  50. {
  51. CABLE_TEST_START_AUTO_TEST_SM_EVENT,
  52. CABLE_TEST_TICK_SM_EVENT,
  53. CABLE_TEST_PAUSE_AUTO_TEST_SM_EVENT,
  54. CABLE_TEST_RESUME_AUTO_TEST_SM_EVENT,
  55. CABLE_TEST_CANCEL_AUTO_TEST_SM_EVENT,
  56. CABLE_TEST_START_MANUAL_TEST_SM_EVENT,
  57. CABLE_TEST_EXIT_MANUAL_TEST_SM_EVENT
  58. };
  59. CCable *mTestCable;
  60. int mCableTestSMState;
  61. CCableTestBench *mProgramHandle;
  62. CInputConnector *mTestInputConnectorHandle;
  63. COutputConnector *mTestOutputConnectorHandle;
  64. int mCurPinUnderTest;
  65. int mPinHoldTime;
  66. QTimer *mCableTestSMTimer;
  67. QElapsedTimer mCableTestGPTimer;
  68. void CableTestEngineStateMachine(int Event);
  69. public slots:
  70. void SMTimerExpired();
  71. };
  72. #endif // CABLETESTENGINE_H