247 lines
7.2 KiB
C++
247 lines
7.2 KiB
C++
#include "CableTestPage.h"
|
|
#include "ui_CableTestPage.h"
|
|
#include "CableTestBench.h"
|
|
#include <QTextCodec>
|
|
#include "CableParametersData.h"
|
|
|
|
CCableTestPage::CCableTestPage(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::CCableTestPage)
|
|
{
|
|
|
|
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
|
|
|
|
ui->setupUi(this);
|
|
mProgramHandle = 0;
|
|
|
|
mInspectionNotDonePixmap = QPixmap("./images/todo.png").scaled(ui->mInspectionDoneIcon->geometry().width(),ui->mInspectionDoneIcon->geometry().height());
|
|
mInspectionDonePixmap = QPixmap("./images/done1.png").scaled(ui->mInspectionDoneIcon->geometry().width(),ui->mInspectionDoneIcon->geometry().height());
|
|
ui->mInspectionDoneIcon->setPixmap(mInspectionNotDonePixmap);
|
|
|
|
connect(ui->mExecInspVisuelleBtn,SIGNAL(clicked()),this,SLOT(InspVisuelleBtnClicked()));
|
|
connect(ui->mConnectorSelectWidget,SIGNAL(ConnectorSelected(CConnectorDefs::eConnectorType)),this,SLOT(ConnectorSelectionChanged(CConnectorDefs::eConnectorType)));
|
|
ui->mInputTestVisualisationWidget->SetConnectorPinCount(0);
|
|
ui->mOutputTestVisualisationWidget->SetConnectorPinCount(0);
|
|
ui->mVisualInspStepChkBx->setCheckable(false);
|
|
|
|
|
|
mGuiRefreshTimer.setSingleShot(false);
|
|
mGuiRefreshTimer.setInterval(200);
|
|
|
|
|
|
connect(ui->mStartTestBtn,SIGNAL(clicked()),this,SLOT(StartTestBtnClicked()));
|
|
connect(ui->mReinitTestBtn,SIGNAL(clicked()),this,SLOT(ResetTestBtnClicked()));
|
|
connect(ui->mNewCableBtn,SIGNAL(clicked()),this,SLOT(NewCableBtnClicked()));
|
|
connect(ui->mStartManualTestBtn,SIGNAL(clicked()),this,SLOT(StartManualTestBtnClicked()));
|
|
connect(ui->mOutputTestVisualisationWidget,SIGNAL(PinClicked(int)),this,SLOT(OutputConnectorPinClicked(int)));
|
|
connect(&mGuiRefreshTimer,SIGNAL(timeout()),this,SLOT(GuiRefreshTimerExpired()));
|
|
|
|
|
|
|
|
mDefaultCableName = "CABLE_XX_NO_AA_BB.c";
|
|
mDefaultInspectorName = "JFMartel";
|
|
|
|
ui->mStartTestBtn->setEnabled(false);
|
|
ui->mStartManualTestBtn->setEnabled(false);
|
|
ui->mOutputTestVisualisationWidget->DisablePinClicks();
|
|
|
|
|
|
ResetCable();
|
|
}
|
|
|
|
CCableTestPage::~CCableTestPage()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void CCableTestPage::InspVisuelleBtnClicked()
|
|
{
|
|
mProgramHandle->ExecVisualInspectionRequest();
|
|
|
|
}
|
|
|
|
int CCableTestPage::SetVisualInspectionDone(bool Done)
|
|
{
|
|
if(Done)
|
|
{
|
|
ui->mInspectionDoneIcon->setPixmap(mInspectionDonePixmap);
|
|
ui->mExecInspVisuelleBtn->setText(QString("Réviser Inspection").toUtf8());
|
|
ui->mVisualInspStepChkBx->setCheckable(true);
|
|
ui->mVisualInspStepChkBx->setChecked(true);
|
|
ui->mVisualInspStepChkBx->setCheckable(false);
|
|
}
|
|
else
|
|
{
|
|
ui->mInspectionDoneIcon->setPixmap(mInspectionNotDonePixmap);
|
|
ui->mExecInspVisuelleBtn->setText("Effectuer Inspection");
|
|
ui->mVisualInspStepChkBx->setChecked(false);
|
|
}
|
|
return RET_OK;
|
|
}
|
|
|
|
void CCableTestPage::ConnectorSelectionChanged(CConnectorDefs::eConnectorType ConType)
|
|
{
|
|
CCable* Cable;
|
|
Cable = mProgramHandle->SetSelectedConnector(ConType);
|
|
|
|
if(Cable != 0)
|
|
{
|
|
ui->mInputTestVisualisationWidget->SetConnectorPinCount(Cable->GetInputConnector()->GetPinCount());
|
|
ui->mOutputTestVisualisationWidget->SetConnectorPinCount(Cable->GetOutputConnector()->GetPinCount());
|
|
}
|
|
}
|
|
|
|
void CCableTestPage::StartTestBtnClicked()
|
|
{
|
|
mProgramHandle->StartPauseAutomaticTestRequest();
|
|
}
|
|
|
|
void CCableTestPage::StartManualTestBtnClicked()
|
|
{
|
|
mProgramHandle->StartStopManualTestRequest();
|
|
}
|
|
|
|
void CCableTestPage::ResetTestBtnClicked()
|
|
{
|
|
mProgramHandle->ResetAutomaticTestRequest();
|
|
}
|
|
|
|
void CCableTestPage::NewCableBtnClicked()
|
|
{
|
|
mProgramHandle->NewCableRequest();
|
|
}
|
|
|
|
int CCableTestPage::ResetCable()
|
|
{
|
|
//reset pins state visualization area
|
|
ui->mInputTestVisualisationWidget->ClearConnectorsLists();
|
|
ui->mOutputTestVisualisationWidget->ClearConnectorsLists();
|
|
|
|
//Reset cable config zone
|
|
ui->mIdentCableEditBox->setText(mDefaultCableName);
|
|
ui->mNomTesteurEditBox->setText(mDefaultInspectorName);
|
|
|
|
//Reset Inspection Visuelle result (main program will clear the form)
|
|
SetVisualInspectionDone(false);
|
|
|
|
//Clear connector selection zone
|
|
ui->mConnectorSelectWidget->ClearAllConnectorsSelections();
|
|
|
|
return RET_OK;
|
|
|
|
}
|
|
|
|
int CCableTestPage::EnableStartTestBtn()
|
|
{
|
|
ui->mStartTestBtn->setEnabled(true);
|
|
ui->mStartManualTestBtn->setEnabled(true);
|
|
return RET_OK;
|
|
}
|
|
|
|
int CCableTestPage::DisableStartTestBtn()
|
|
{
|
|
ui->mStartTestBtn->setEnabled(false);
|
|
ui->mStartManualTestBtn->setEnabled(false);
|
|
return RET_OK;
|
|
}
|
|
|
|
int CCableTestPage::CableAutomaticTestStarted()
|
|
{
|
|
ui->mStartManualTestBtn->setEnabled(false);
|
|
DisableGuiForTest();
|
|
ui->mStartTestBtn->setText("Pauser Test");
|
|
return RET_OK;
|
|
}
|
|
|
|
int CCableTestPage::CableAutomaticTestPaused()
|
|
{
|
|
ui->mStartTestBtn->setText("Reprendre Test");
|
|
return RET_OK;
|
|
}
|
|
|
|
int CCableTestPage::CableTestEnded()
|
|
{
|
|
EnableGuiAfterTest();
|
|
ui->mOutputTestVisualisationWidget->DisablePinClicks();
|
|
ui->mStartManualTestBtn->setEnabled(true);
|
|
ui->mStartTestBtn->setEnabled(true);
|
|
ui->mStartTestBtn->setText("Démarrer Test");
|
|
ui->mStartManualTestBtn->setText("Démarrer");
|
|
ui->mReinitTestBtn->setEnabled(true);
|
|
return RET_OK;
|
|
}
|
|
|
|
int CCableTestPage::CableManualTestStarted()
|
|
{
|
|
ui->mStartTestBtn->setEnabled(false);
|
|
ui->mOutputTestVisualisationWidget->EnablePinClicks();
|
|
DisableGuiForTest();
|
|
ui->mStartManualTestBtn->setText("Terminer");
|
|
ui->mReinitTestBtn->setEnabled(false);
|
|
return RET_OK;
|
|
}
|
|
|
|
int CCableTestPage::DisableGuiForTest()
|
|
{
|
|
ui->mNewCableBtn->setEnabled(false);
|
|
ui->mConnectorSelectWidget->setEnabled(false);
|
|
ui->mIdentCableEditBox->setEnabled(false);
|
|
ui->mExecInspVisuelleBtn->setEnabled(false);
|
|
ui->mNomTesteurEditBox->setEnabled(false);
|
|
ui->mTypeCableCombo->setEnabled(false);
|
|
ui->mStationNameCombo->setEnabled(false);
|
|
return RET_OK;
|
|
}
|
|
|
|
int CCableTestPage::EnableGuiAfterTest()
|
|
{
|
|
ui->mNewCableBtn->setEnabled(true);
|
|
ui->mConnectorSelectWidget->setEnabled(true);
|
|
ui->mIdentCableEditBox->setEnabled(true);
|
|
ui->mExecInspVisuelleBtn->setEnabled(true);
|
|
ui->mNomTesteurEditBox->setEnabled(true);
|
|
ui->mTypeCableCombo->setEnabled(true);
|
|
ui->mStationNameCombo->setEnabled(true);
|
|
return RET_OK;
|
|
}
|
|
|
|
void CCableTestPage::OutputConnectorPinClicked(int PinNbr)
|
|
{
|
|
mProgramHandle->ManualPinToggleRequest(PinNbr);
|
|
}
|
|
|
|
void CCableTestPage::GuiRefreshTimerExpired()
|
|
{
|
|
mProgramHandle->RefreshConnectorsStateRequest();
|
|
}
|
|
|
|
int CCableTestPage::SetOutputConnectorState(QBitArray PinStates)
|
|
{
|
|
return ui->mOutputTestVisualisationWidget->SetConnectorPinStates(PinStates);
|
|
}
|
|
|
|
int CCableTestPage::SetInputConnectorState(QBitArray PinStates)
|
|
{
|
|
return ui->mInputTestVisualisationWidget->SetConnectorPinStates(PinStates);
|
|
}
|
|
|
|
void CCableTestPage::showEvent(QShowEvent *event)
|
|
{
|
|
|
|
qDebug("Refresh timer started");
|
|
mGuiRefreshTimer.start();
|
|
|
|
}
|
|
|
|
void CCableTestPage::hideEvent(QHideEvent *event)
|
|
{
|
|
qDebug("Refresh timer stopped");
|
|
mGuiRefreshTimer.stop();
|
|
}
|
|
|
|
int CCableTestPage::FillReportCableParametersData(CCableParametersData *ReportPtr)
|
|
{
|
|
ReportPtr->SetCableParams(ui->mStationNameCombo->currentText(),ui->mIdentCableEditBox->text(),ui->mTypeCableCombo->currentText(),ui->mNomTesteurEditBox->text());
|
|
return RET_OK;
|
|
}
|