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.
 
 
 
 

242 satır
6.2 KiB

  1. #include "CableTestBench.h"
  2. #include <QDateTime>
  3. #include "CableTestBenchDefs.h"
  4. CCableTestBench::CCableTestBench(QObject *parent) :
  5. QObject(parent),
  6. mActualCable(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE,&mIOInterface)
  7. {
  8. w = new MainWindow(0,this);
  9. }
  10. CCableTestBench::~CCableTestBench()
  11. {
  12. delete w;
  13. //mIOInterface.CloseIOModules();
  14. }
  15. int CCableTestBench::Start()
  16. {
  17. // w->showMaximized();
  18. w->show();
  19. mMainPageHandle = w->mMainPage;
  20. mVisualInspPageHandle = w->mVisualInspPage;
  21. mCableTestPageHandle = w->mCableTestPage;
  22. mCableTestEngine.InitCableTestEngine(this);
  23. mIOInterface.OpenIOModules();
  24. mCableTestPageHandle->mGuiRefreshTimer.start();
  25. return 1;
  26. }
  27. CCable * CCableTestBench::GetActualCable()
  28. {
  29. return &mActualCable;
  30. }
  31. quint8 CCableTestBench::DecToBCDByte(const quint8 byte)
  32. {
  33. quint8 out = 0;
  34. out = ((byte/10) << 4) + (byte%10);
  35. return out;
  36. }
  37. quint16 CCableTestBench::DecToBCDWord(const quint16 word)
  38. {
  39. quint16 out = 0;
  40. quint16 temp = 0;
  41. out = word % 10;
  42. temp = (((word /10) % 10) << 4);
  43. out += temp;
  44. temp = (((word / 100) % 10) << 8);
  45. out += temp;
  46. temp = (((word / 1000) % 10) << 12);
  47. out += temp;
  48. return out;
  49. }
  50. int CCableTestBench::ExecVisualInspectionRequest()
  51. {
  52. qDebug("Exec Visual Inspection clicked");
  53. // mCableTestPageHandle->SetVisualInspectionDone(true);
  54. w->ShowInspectVisuellePage();
  55. return RET_OK;
  56. }
  57. CCable* CCableTestBench::SetSelectedConnector(CConnectorDefs::eConnectorType ConType)
  58. {
  59. if(mActualCable.DefineCableByInputConnector(ConType) == RET_ERROR)
  60. {
  61. return 0;
  62. }
  63. CheckIfReadyForTesting();
  64. return &mActualCable;
  65. }
  66. int CCableTestBench::VisualInspectionQuitRequest()
  67. {
  68. mVisualInspPageHandle->FillVisualInspectionResultReport(mCableTestReport.GetInspectionResult());
  69. if(mCableTestReport.GetInspectionResult()->IsVisualInspectionResultComplete() == true)
  70. {
  71. mCableTestPageHandle->SetVisualInspectionDone(true);
  72. }
  73. else
  74. {
  75. mCableTestPageHandle->SetVisualInspectionDone(false);
  76. }
  77. w->ShowCableTestPage();
  78. CheckIfReadyForTesting();
  79. return RET_OK;
  80. }
  81. int CCableTestBench::StartPauseAutomaticTestRequest()
  82. {
  83. if(mCableTestEngine.GetTestEngineCurrentMode() == CCableTestEngine::CABLE_TEST_STBY_MODE)
  84. {
  85. mCableTestPageHandle->FillReportCableParametersData(mCableTestReport.GetReportCableParameters());
  86. mCableTestReport.GetReportCableParameters()->SetCableType(CConnectorDefs::GetConnectorDescription(mActualCable.GetInputConnector()->GetConnectorType()),
  87. CConnectorDefs::GetConnectorDescription(mActualCable.GetOutputConnector()->GetConnectorType()));
  88. mCableTestReport.GetAutomatedTestReport()->SetPinCount(mActualCable.mOutputConnector.GetPinCount());
  89. mCableTestEngine.StartAutomatedTest();
  90. return RET_OK;
  91. }
  92. if(mCableTestEngine.GetTestEngineCurrentMode() == CCableTestEngine::CABLE_AUTO_TEST_RUNNING_MODE)
  93. {
  94. mCableTestEngine.PauseAutomatedTest();
  95. return RET_OK;
  96. }
  97. if(mCableTestEngine.GetTestEngineCurrentMode() == CCableTestEngine::CABLE_AUTO_TEST_PAUSED_MODE)
  98. {
  99. mCableTestEngine.ResumeAutomatedTest();
  100. return RET_OK;
  101. }
  102. else //Button shouldn't be used in manual mode...
  103. {
  104. return RET_ERROR;
  105. }
  106. return RET_OK;
  107. }
  108. int CCableTestBench::StartStopManualTestRequest()
  109. {
  110. if(mCableTestEngine.GetTestEngineCurrentMode() == CCableTestEngine::CABLE_TEST_STBY_MODE)
  111. {
  112. mCableTestEngine.StartManualTest();
  113. return RET_OK;
  114. }
  115. if(mCableTestEngine.GetTestEngineCurrentMode() == CCableTestEngine::CABLE_TEST_MANUAL_MODE)
  116. {
  117. mCableTestEngine.StopManualTest();
  118. return RET_OK;
  119. }
  120. else //Button shouldn't be used in Automatic mode...
  121. {
  122. return RET_ERROR;
  123. }
  124. }
  125. int CCableTestBench::NewCableRequest()
  126. {
  127. mActualCable.DefineCableByInputConnector(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE);
  128. mVisualInspPageHandle->ResetForm();
  129. mCableTestPageHandle->ResetCable();
  130. mCableTestPageHandle->DisableStartTestBtn();
  131. mCableTestReport.CreateNewTestReport();
  132. return RET_OK;
  133. }
  134. int CCableTestBench::CheckIfReadyForTesting()
  135. {
  136. bool VisualInspectionDone = false, ConnectorSelected = false, CableConfigured = true;
  137. mVisualInspPageHandle->FillVisualInspectionResultReport(mCableTestReport.GetInspectionResult());
  138. if(mCableTestReport.GetInspectionResult()->IsVisualInspectionResultComplete() == true)
  139. {
  140. VisualInspectionDone = true;
  141. }
  142. //todo, use the options flag to bypass visual inspection
  143. VisualInspectionDone = true;
  144. ConnectorSelected = mActualCable.IsCableDefined();
  145. if(VisualInspectionDone && ConnectorSelected && CableConfigured)
  146. {
  147. mCableTestPageHandle->EnableStartTestBtn();
  148. }
  149. else
  150. {
  151. mCableTestPageHandle->DisableStartTestBtn();
  152. }
  153. return RET_OK;
  154. }
  155. int CCableTestBench::CableEngineModeChanged(CCableTestEngine::eCableTestEngineMode Mode)
  156. {
  157. switch(Mode)
  158. {
  159. case CCableTestEngine::CABLE_TEST_STBY_MODE:
  160. {
  161. mCableTestPageHandle->CableTestEnded();
  162. break;
  163. }
  164. case CCableTestEngine::CABLE_AUTO_TEST_RUNNING_MODE:
  165. {
  166. mCableTestPageHandle->CableAutomaticTestStarted();
  167. break;
  168. }
  169. case CCableTestEngine::CABLE_AUTO_TEST_PAUSED_MODE:
  170. {
  171. mCableTestPageHandle->CableAutomaticTestPaused();
  172. break;
  173. }
  174. case CCableTestEngine::CABLE_TEST_MANUAL_MODE:
  175. {
  176. mCableTestPageHandle->CableManualTestStarted();
  177. break;
  178. }
  179. }
  180. return RET_OK;
  181. }
  182. int CCableTestBench::ResetAutomaticTestRequest()
  183. {
  184. return mCableTestEngine.StopAutomatedTest();
  185. }
  186. int CCableTestBench::ManualPinToggleRequest(int ConnectorPinNbr)
  187. {
  188. return mCableTestEngine.ManualPinToggle(ConnectorPinNbr);
  189. }
  190. int CCableTestBench::RefreshConnectorsStateRequest()
  191. {
  192. mCableTestPageHandle->SetInputConnectorState(mActualCable.GetInputConnector()->GetInputPinsStates());
  193. mCableTestPageHandle->SetOutputConnectorState(mActualCable.GetOutputConnector()->GetOutputPinsStates());
  194. return RET_OK;
  195. }