101 lines
2.4 KiB
C++
101 lines
2.4 KiB
C++
#ifndef CABLETESTENGINE_H
|
|
#define CABLETESTENGINE_H
|
|
#include "Cable.h"
|
|
#include <QTimer>
|
|
#include "InputConnector.h"
|
|
#include "OutputConnector.h"
|
|
#include <QElapsedTimer>
|
|
#include "TestReport.h"
|
|
|
|
class CCableTestBench;
|
|
class CTestBenchSettings;
|
|
|
|
#define TEST_ENGINE_SM_STANDBY_TIMEOUT 300 //ms
|
|
#define TEST_ENGINE_SM_TIMEOUT 100 //ms
|
|
|
|
class CCableTestEngine : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
|
|
enum eCableTestEngineMode
|
|
{
|
|
CABLE_TEST_STBY_MODE,
|
|
CABLE_AUTO_TEST_RUNNING_MODE,
|
|
CABLE_AUTO_TEST_PAUSED_MODE,
|
|
CABLE_TEST_MANUAL_MODE
|
|
};
|
|
|
|
CCableTestEngine();
|
|
~CCableTestEngine();
|
|
int InitCableTestEngine(CCableTestBench *ProgramHandle, CTestBenchSettings *SettingsHandle);
|
|
|
|
int StartAutomatedTest();
|
|
int PauseAutomatedTest();
|
|
int ResumeAutomatedTest();
|
|
int StopAutomatedTest();
|
|
int StartManualTest();
|
|
int StopManualTest();
|
|
int ManualPinToggle(int ConnectorPinNbr);
|
|
|
|
bool IsAutomaticTestRunning();
|
|
eCableTestEngineMode GetTestEngineCurrentMode();
|
|
|
|
|
|
private:
|
|
|
|
enum eCableTestState
|
|
{
|
|
CABLE_TEST_INIT_STATE,
|
|
CABLE_TEST_STBY_STATE,
|
|
CABLE_TEST_START_AUTOMATED_TEST_STATE,
|
|
CABLE_AUTO_TEST_SELF_TEST_STATE,
|
|
CABLE_AUTO_TEST_PINS_STATE,
|
|
CABLE_AUTO_TEST_PAUSE_STATE,
|
|
CABLE_AUTO_TEST_END_TEST_STATE,
|
|
CABLE_AUTO_TEST_START_SECOND_PASS_STATE,
|
|
CABLE_TEST_START_MANUAL_TEST_STATE,
|
|
CABLE_MANUAL_TEST_PINS_STATE,
|
|
CABLE_MANUAL_TEST_END_TEST_STATE
|
|
};
|
|
|
|
enum eCableTestSMEvents
|
|
{
|
|
CABLE_TEST_START_AUTO_TEST_SM_EVENT,
|
|
CABLE_TEST_TICK_SM_EVENT,
|
|
CABLE_TEST_PAUSE_AUTO_TEST_SM_EVENT,
|
|
CABLE_TEST_RESUME_AUTO_TEST_SM_EVENT,
|
|
CABLE_TEST_CANCEL_AUTO_TEST_SM_EVENT,
|
|
CABLE_TEST_START_MANUAL_TEST_SM_EVENT,
|
|
CABLE_TEST_EXIT_MANUAL_TEST_SM_EVENT
|
|
|
|
};
|
|
|
|
CCable *mTestCable;
|
|
int mCableTestSMState;
|
|
CCableTestBench *mProgramHandle;
|
|
CInputConnector *mTestInputConnectorHandle;
|
|
COutputConnector *mTestOutputConnectorHandle;
|
|
int mCurPinUnderTest;
|
|
bool mExecSecondTest;
|
|
bool mIsSecondPass;
|
|
CTestBenchSettings *mTestSettingsHandle;
|
|
|
|
QTimer *mCableTestSMTimer;
|
|
QElapsedTimer mCableTestGPTimer;
|
|
CAutomatedTestReport *mAutoTestReportHandle;
|
|
CTestReport *mTestReportHandle;
|
|
|
|
void CableTestEngineStateMachine(int Event);
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
void SMTimerExpired();
|
|
|
|
|
|
};
|
|
|
|
#endif // CABLETESTENGINE_H
|