25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

247 lines
7.2 KiB

  1. #include "CableTestPage.h"
  2. #include "ui_CableTestPage.h"
  3. #include "CableTestBench.h"
  4. #include <QTextCodec>
  5. #include "CableParametersData.h"
  6. CCableTestPage::CCableTestPage(QWidget *parent) :
  7. QWidget(parent),
  8. ui(new Ui::CCableTestPage)
  9. {
  10. QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
  11. ui->setupUi(this);
  12. mProgramHandle = 0;
  13. mInspectionNotDonePixmap = QPixmap("./images/todo.png").scaled(ui->mInspectionDoneIcon->geometry().width(),ui->mInspectionDoneIcon->geometry().height());
  14. mInspectionDonePixmap = QPixmap("./images/done1.png").scaled(ui->mInspectionDoneIcon->geometry().width(),ui->mInspectionDoneIcon->geometry().height());
  15. ui->mInspectionDoneIcon->setPixmap(mInspectionNotDonePixmap);
  16. connect(ui->mExecInspVisuelleBtn,SIGNAL(clicked()),this,SLOT(InspVisuelleBtnClicked()));
  17. connect(ui->mConnectorSelectWidget,SIGNAL(ConnectorSelected(CConnectorDefs::eConnectorType)),this,SLOT(ConnectorSelectionChanged(CConnectorDefs::eConnectorType)));
  18. ui->mInputTestVisualisationWidget->SetConnectorPinCount(0);
  19. ui->mOutputTestVisualisationWidget->SetConnectorPinCount(0);
  20. ui->mVisualInspStepChkBx->setCheckable(false);
  21. mGuiRefreshTimer.setSingleShot(false);
  22. mGuiRefreshTimer.setInterval(200);
  23. connect(ui->mStartTestBtn,SIGNAL(clicked()),this,SLOT(StartTestBtnClicked()));
  24. connect(ui->mReinitTestBtn,SIGNAL(clicked()),this,SLOT(ResetTestBtnClicked()));
  25. connect(ui->mNewCableBtn,SIGNAL(clicked()),this,SLOT(NewCableBtnClicked()));
  26. connect(ui->mStartManualTestBtn,SIGNAL(clicked()),this,SLOT(StartManualTestBtnClicked()));
  27. connect(ui->mOutputTestVisualisationWidget,SIGNAL(PinClicked(int)),this,SLOT(OutputConnectorPinClicked(int)));
  28. connect(&mGuiRefreshTimer,SIGNAL(timeout()),this,SLOT(GuiRefreshTimerExpired()));
  29. mDefaultCableName = "CABLE_XX_NO_AA_BB.c";
  30. mDefaultInspectorName = "JFMartel";
  31. ui->mStartTestBtn->setEnabled(false);
  32. ui->mStartManualTestBtn->setEnabled(false);
  33. ui->mOutputTestVisualisationWidget->DisablePinClicks();
  34. ResetCable();
  35. }
  36. CCableTestPage::~CCableTestPage()
  37. {
  38. delete ui;
  39. }
  40. void CCableTestPage::InspVisuelleBtnClicked()
  41. {
  42. mProgramHandle->ExecVisualInspectionRequest();
  43. }
  44. int CCableTestPage::SetVisualInspectionDone(bool Done)
  45. {
  46. if(Done)
  47. {
  48. ui->mInspectionDoneIcon->setPixmap(mInspectionDonePixmap);
  49. ui->mExecInspVisuelleBtn->setText(QString("Réviser Inspection").toUtf8());
  50. ui->mVisualInspStepChkBx->setCheckable(true);
  51. ui->mVisualInspStepChkBx->setChecked(true);
  52. ui->mVisualInspStepChkBx->setCheckable(false);
  53. }
  54. else
  55. {
  56. ui->mInspectionDoneIcon->setPixmap(mInspectionNotDonePixmap);
  57. ui->mExecInspVisuelleBtn->setText("Effectuer Inspection");
  58. ui->mVisualInspStepChkBx->setChecked(false);
  59. }
  60. return RET_OK;
  61. }
  62. void CCableTestPage::ConnectorSelectionChanged(CConnectorDefs::eConnectorType ConType)
  63. {
  64. CCable* Cable;
  65. Cable = mProgramHandle->SetSelectedConnector(ConType);
  66. if(Cable != 0)
  67. {
  68. ui->mInputTestVisualisationWidget->SetConnectorPinCount(Cable->GetInputConnector()->GetPinCount());
  69. ui->mOutputTestVisualisationWidget->SetConnectorPinCount(Cable->GetOutputConnector()->GetPinCount());
  70. }
  71. }
  72. void CCableTestPage::StartTestBtnClicked()
  73. {
  74. mProgramHandle->StartPauseAutomaticTestRequest();
  75. }
  76. void CCableTestPage::StartManualTestBtnClicked()
  77. {
  78. mProgramHandle->StartStopManualTestRequest();
  79. }
  80. void CCableTestPage::ResetTestBtnClicked()
  81. {
  82. mProgramHandle->ResetAutomaticTestRequest();
  83. }
  84. void CCableTestPage::NewCableBtnClicked()
  85. {
  86. mProgramHandle->NewCableRequest();
  87. }
  88. int CCableTestPage::ResetCable()
  89. {
  90. //reset pins state visualization area
  91. ui->mInputTestVisualisationWidget->ClearConnectorsLists();
  92. ui->mOutputTestVisualisationWidget->ClearConnectorsLists();
  93. //Reset cable config zone
  94. ui->mIdentCableEditBox->setText(mDefaultCableName);
  95. ui->mNomTesteurEditBox->setText(mDefaultInspectorName);
  96. //Reset Inspection Visuelle result (main program will clear the form)
  97. SetVisualInspectionDone(false);
  98. //Clear connector selection zone
  99. ui->mConnectorSelectWidget->ClearAllConnectorsSelections();
  100. return RET_OK;
  101. }
  102. int CCableTestPage::EnableStartTestBtn()
  103. {
  104. ui->mStartTestBtn->setEnabled(true);
  105. ui->mStartManualTestBtn->setEnabled(true);
  106. return RET_OK;
  107. }
  108. int CCableTestPage::DisableStartTestBtn()
  109. {
  110. ui->mStartTestBtn->setEnabled(false);
  111. ui->mStartManualTestBtn->setEnabled(false);
  112. return RET_OK;
  113. }
  114. int CCableTestPage::CableAutomaticTestStarted()
  115. {
  116. ui->mStartManualTestBtn->setEnabled(false);
  117. DisableGuiForTest();
  118. ui->mStartTestBtn->setText("Pauser Test");
  119. return RET_OK;
  120. }
  121. int CCableTestPage::CableAutomaticTestPaused()
  122. {
  123. ui->mStartTestBtn->setText("Reprendre Test");
  124. return RET_OK;
  125. }
  126. int CCableTestPage::CableTestEnded()
  127. {
  128. EnableGuiAfterTest();
  129. ui->mOutputTestVisualisationWidget->DisablePinClicks();
  130. ui->mStartManualTestBtn->setEnabled(true);
  131. ui->mStartTestBtn->setEnabled(true);
  132. ui->mStartTestBtn->setText("Démarrer Test");
  133. ui->mStartManualTestBtn->setText("Démarrer");
  134. ui->mReinitTestBtn->setEnabled(true);
  135. return RET_OK;
  136. }
  137. int CCableTestPage::CableManualTestStarted()
  138. {
  139. ui->mStartTestBtn->setEnabled(false);
  140. ui->mOutputTestVisualisationWidget->EnablePinClicks();
  141. DisableGuiForTest();
  142. ui->mStartManualTestBtn->setText("Terminer");
  143. ui->mReinitTestBtn->setEnabled(false);
  144. return RET_OK;
  145. }
  146. int CCableTestPage::DisableGuiForTest()
  147. {
  148. ui->mNewCableBtn->setEnabled(false);
  149. ui->mConnectorSelectWidget->setEnabled(false);
  150. ui->mIdentCableEditBox->setEnabled(false);
  151. ui->mExecInspVisuelleBtn->setEnabled(false);
  152. ui->mNomTesteurEditBox->setEnabled(false);
  153. ui->mTypeCableCombo->setEnabled(false);
  154. ui->mStationNameCombo->setEnabled(false);
  155. return RET_OK;
  156. }
  157. int CCableTestPage::EnableGuiAfterTest()
  158. {
  159. ui->mNewCableBtn->setEnabled(true);
  160. ui->mConnectorSelectWidget->setEnabled(true);
  161. ui->mIdentCableEditBox->setEnabled(true);
  162. ui->mExecInspVisuelleBtn->setEnabled(true);
  163. ui->mNomTesteurEditBox->setEnabled(true);
  164. ui->mTypeCableCombo->setEnabled(true);
  165. ui->mStationNameCombo->setEnabled(true);
  166. return RET_OK;
  167. }
  168. void CCableTestPage::OutputConnectorPinClicked(int PinNbr)
  169. {
  170. mProgramHandle->ManualPinToggleRequest(PinNbr);
  171. }
  172. void CCableTestPage::GuiRefreshTimerExpired()
  173. {
  174. mProgramHandle->RefreshConnectorsStateRequest();
  175. }
  176. int CCableTestPage::SetOutputConnectorState(QBitArray PinStates)
  177. {
  178. return ui->mOutputTestVisualisationWidget->SetConnectorPinStates(PinStates);
  179. }
  180. int CCableTestPage::SetInputConnectorState(QBitArray PinStates)
  181. {
  182. return ui->mInputTestVisualisationWidget->SetConnectorPinStates(PinStates);
  183. }
  184. void CCableTestPage::showEvent(QShowEvent *event)
  185. {
  186. qDebug("Refresh timer started");
  187. mGuiRefreshTimer.start();
  188. }
  189. void CCableTestPage::hideEvent(QHideEvent *event)
  190. {
  191. qDebug("Refresh timer stopped");
  192. mGuiRefreshTimer.stop();
  193. }
  194. int CCableTestPage::FillReportCableParametersData(CCableParametersData *ReportPtr)
  195. {
  196. ReportPtr->SetCableParams(ui->mStationNameCombo->currentText(),ui->mIdentCableEditBox->text(),ui->mTypeCableCombo->currentText(),ui->mNomTesteurEditBox->text());
  197. return RET_OK;
  198. }