This commit is contained in:
JF 2019-05-13 11:49:37 -04:00
parent ca1fd2a4aa
commit 8342f88720
34 changed files with 472 additions and 720 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@ release
/object_script.OutilModbus.Release
/%SystemDrive%
/CableTestBench.pro.user
/Rapports

View File

@ -37,7 +37,8 @@ SOURCES += \
Sources/InputConnector.cpp \
Sources/OutputConnector.cpp \
Sources/CableParametersData.cpp \
Sources/AutomatedTestReport.cpp
Sources/AutomatedTestReport.cpp \
Sources/TestBenchSettings.cpp
HEADERS += \
Sources/MainWindow.h \
@ -62,7 +63,8 @@ HEADERS += \
Sources/OutputConnector.h \
Sources/TestBenchVersion.h \
Sources/CableParametersData.h \
Sources/AutomatedTestReport.h
Sources/AutomatedTestReport.h \
Sources/TestBenchSettings.h
FORMS += \
Sources/CMainPage.ui \

BIN
Cablotron.csf Normal file

Binary file not shown.

View File

@ -1,6 +1,6 @@
#############################################################################
# Makefile for building: CableTestBench
# Generated by qmake (2.01a) (Qt 4.8.1) on: Fri May 10 16:58:40 2019
# Generated by qmake (2.01a) (Qt 4.8.1) on: Mon May 13 08:38:34 2019
# Project: CableTestBench.pro
# Template: app
# Command: c:\Qt\4.8.1\bin\qmake.exe -spec ..\..\Qt\4.8.1\mkspecs\win32-g++ CONFIG+=declarative_debug -o Makefile CableTestBench.pro

View File

@ -1,6 +1,6 @@
#############################################################################
# Makefile for building: CableTestBench
# Generated by qmake (2.01a) (Qt 4.8.1) on: Fri May 10 16:58:40 2019
# Generated by qmake (2.01a) (Qt 4.8.1) on: Mon May 13 08:38:34 2019
# Project: CableTestBench.pro
# Template: app
#############################################################################
@ -63,7 +63,7 @@ SOURCES = Sources\MainWindow.cpp \
Sources\OutputConnector.cpp \
Sources\CableParametersData.cpp \
Sources\AutomatedTestReport.cpp \
TestBenchSettings.cpp debug\moc_MainWindow.cpp \
Sources\TestBenchSettings.cpp debug\moc_MainWindow.cpp \
debug\moc_MainPage.cpp \
debug\moc_CableTestBench.cpp \
debug\moc_VisualInspectionPage.cpp \
@ -494,8 +494,8 @@ debug/AutomatedTestReport.o: Sources/AutomatedTestReport.cpp Sources/AutomatedTe
Sources/GlobalDefine.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\AutomatedTestReport.o Sources\AutomatedTestReport.cpp
debug/TestBenchSettings.o: TestBenchSettings.cpp TestBenchSettings.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\TestBenchSettings.o TestBenchSettings.cpp
debug/TestBenchSettings.o: Sources/TestBenchSettings.cpp Sources/TestBenchSettings.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\TestBenchSettings.o Sources\TestBenchSettings.cpp
debug/moc_MainWindow.o: debug/moc_MainWindow.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_MainWindow.o debug\moc_MainWindow.cpp

View File

@ -1,6 +1,6 @@
#############################################################################
# Makefile for building: CableTestBench
# Generated by qmake (2.01a) (Qt 4.8.1) on: Fri May 10 16:58:40 2019
# Generated by qmake (2.01a) (Qt 4.8.1) on: Mon May 13 08:38:34 2019
# Project: CableTestBench.pro
# Template: app
#############################################################################
@ -63,7 +63,7 @@ SOURCES = Sources\MainWindow.cpp \
Sources\OutputConnector.cpp \
Sources\CableParametersData.cpp \
Sources\AutomatedTestReport.cpp \
TestBenchSettings.cpp release\moc_MainWindow.cpp \
Sources\TestBenchSettings.cpp release\moc_MainWindow.cpp \
release\moc_MainPage.cpp \
release\moc_CableTestBench.cpp \
release\moc_VisualInspectionPage.cpp \
@ -494,8 +494,8 @@ release/AutomatedTestReport.o: Sources/AutomatedTestReport.cpp Sources/Automated
Sources/GlobalDefine.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\AutomatedTestReport.o Sources\AutomatedTestReport.cpp
release/TestBenchSettings.o: TestBenchSettings.cpp TestBenchSettings.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\TestBenchSettings.o TestBenchSettings.cpp
release/TestBenchSettings.o: Sources/TestBenchSettings.cpp Sources/TestBenchSettings.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\TestBenchSettings.o Sources\TestBenchSettings.cpp
release/moc_MainWindow.o: release/moc_MainWindow.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_MainWindow.o release\moc_MainWindow.cpp

View File

@ -1,52 +0,0 @@
Rapport de test - Câble SEI
Date de l'essai: 2019-05-10
Version du logiciel de test: V0.10_ING_DEV
-----------------------------------------
Paramètres du câble:
Identification du câble: CABLE_XX_NO_AA_BB.c
Station: 1S52 - Frontenac
Type: Permanent
Opérateur du test: JFMartel
Connecteur d'entrée: Connecteur circulaire 6 contacts
Connecteur de sortie: Connecteur circulaire 6 contacts
-----------------------------------------
Résultats de l'inspection visuelle:
Section 5.2 exécutée: N/A
Section 5.3 exécutée: N/A
Section 5.4 exécutée: N/A
Section 5.5 exécutée: N/A
Section 5.6 exécutée: N/A
Notes d'inspection:
-----------------------------------------
Résultats du test automatique du câble:
Lorsqu'applicable, les valeurs entre crochets [] correspondent aux contacts en défaut.
No. Contact Continuité Isolation Assignation 2è test
1 Succès Succès Succès N/A
2 Succès Succès Succès N/A
3 Succès Succès Succès N/A
4 Succès Succès Succès N/A
5 Succès Succès Succès N/A
6 Succès Succès Succès N/A
Signature de l'opérateur de test: _________________________________________
-----------------------------------------
Log du test:
16:44:31.062 - Démarrage du test automatique.
16:44:31.523 - Succès de l'auto test des modules d'I/O
16:44:32.015 - Succès du test du contact 1
16:44:32.420 - Succès du test du contact 2
16:44:32.832 - Succès du test du contact 3
16:44:33.270 - Succès du test du contact 4
16:44:33.708 - Succès du test du contact 5
16:44:34.144 - Succès du test du contact 6
16:44:34.304 - Test automatique terminé

View File

@ -1,68 +0,0 @@
Rapport de test - Câble SEI
Date de l'essai: 2019-05-10
Version du logiciel de test: V0.10_ING_DEV
-----------------------------------------
Paramètres du câble:
Identification du câble: CABLE_XX_NO_AA_BB.c
Station: 1S52 - Frontenac
Type: Permanent
Opérateur du test: JFMartel
Connecteur d'entrée: Connecteur circulaire 14 contacts
Connecteur de sortie: Connecteur circulaire 14 contacts
-----------------------------------------
Résultats de l'inspection visuelle:
Section 5.2 exécutée: N/A
Section 5.3 exécutée: N/A
Section 5.4 exécutée: N/A
Section 5.5 exécutée: N/A
Section 5.6 exécutée: N/A
Notes d'inspection:
-----------------------------------------
Résultats du test automatique du câble:
Lorsqu'applicable, les valeurs entre crochets [] correspondent aux contacts en défaut.
No. Contact Continuité Isolation Assignation 2è test
1 Succès Succès Succès N/A
2 Succès Succès Succès N/A
3 Succès Succès Succès N/A
4 Succès Succès Succès N/A
5 Succès Succès Succès N/A
6 Succès Succès Succès N/A
7 Succès Succès Succès N/A
8 Succès Succès Succès N/A
9 Succès Succès Succès N/A
10 Succès Succès Succès N/A
11 Succès Succès Succès N/A
12 Succès Succès Succès N/A
13 N/A N/A Échec[14] N/A
14 N/A N/A Échec[13] N/A
Signature de l'opérateur de test: _________________________________________
-----------------------------------------
Log du test:
16:44:44.052 - Démarrage du test automatique.
16:44:44.520 - Succès de l'auto test des modules d'I/O
16:44:44.996 - Succès du test du contact 1
16:44:45.399 - Succès du test du contact 2
16:44:45.827 - Succès du test du contact 3
16:44:46.213 - Succès du test du contact 4
16:44:46.616 - Succès du test du contact 5
16:44:47.029 - Succès du test du contact 6
16:44:47.470 - Succès du test du contact 7
16:44:47.902 - Succès du test du contact 8
16:44:48.339 - Succès du test du contact 9
16:44:48.778 - Succès du test du contact 10
16:44:49.255 - Succès du test du contact 11
16:44:49.658 - Succès du test du contact 12
16:44:50.088 - Échec du test d'assignation du contact 13: le contact 14 est activé.
16:44:50.522 - Échec du test d'assignation du contact 14: le contact 13 est activé.
16:44:50.616 - Test automatique terminé

View File

@ -1,57 +0,0 @@
Rapport de test - Câble SEI
Date de l'essai: 2019-05-10
Version du logiciel de test: V0.10_ING_DEV
-----------------------------------------
Paramètres du câble:
Identification du câble: CABLE_XX_NO_AA_BB.c
Station: 1S52 - Frontenac
Type: Permanent
Opérateur du test: JFMartel
Connecteur d'entrée: Connecteur circulaire 6 contacts
Connecteur de sortie: Connecteur circulaire 6 contacts
-----------------------------------------
Résultats de l'inspection visuelle:
Section 5.2 exécutée: N/A
Section 5.3 exécutée: N/A
Section 5.4 exécutée: N/A
Section 5.5 exécutée: N/A
Section 5.6 exécutée: N/A
Notes d'inspection:
-----------------------------------------
Résultats du test automatique du câble:
Pré-test des modules d'I/O: SuccèsLorsqu'applicable, les valeurs entre crochets [] correspondent aux contacts en défaut.
No. Contact Continuité Isolation Assignation 2è test
1 Succès Succès Succès N/A
2 Succès Succès Succès N/A
3 Succès Succès Succès N/A
4 Succès Succès Succès N/A
5 Succès Succès Succès N/A
6 Succès Succès Succès N/A
Signature de l'opérateur de test: _________________________________________
Date: _________________________________________
-----------------------------------------
Log du test:
17:04:55.541 - Démarrage du test automatique.
17:04:55.950 - Succès de l'auto test des modules d'I/O
17:04:56.359 - Succès du test du contact 1
17:04:56.769 - Succès du test du contact 2
17:04:57.206 - Succès du test du contact 3
17:04:57.644 - Succès du test du contact 4
17:04:58.080 - Succès du test du contact 5
17:04:58.519 - Succès du test du contact 6
17:04:58.734 - Test automatique terminé

View File

@ -1,54 +0,0 @@
Rapport de test - Câble SEI
Date de l'essai: 2019-05-10
Version du logiciel de test: V0.10_ING_DEV
-----------------------------------------
Paramètres du câble:
Identification du câble: CABLE_XX_NO_AA_BB.c
Station: 1S52 - Frontenac
Type: Permanent
Opérateur du test: JFMartel
Connecteur d'entrée: Connecteur circulaire 6 contacts
Connecteur de sortie: Connecteur circulaire 6 contacts
-----------------------------------------
Résultats de l'inspection visuelle:
Section 5.2 exécutée: N/A
Section 5.3 exécutée: N/A
Section 5.4 exécutée: N/A
Section 5.5 exécutée: N/A
Section 5.6 exécutée: N/A
Notes d'inspection:
-----------------------------------------
Résultats du test automatique du câble:
Pré-test des modules d'I/O: SuccèsLorsqu'applicable, les valeurs entre crochets [] correspondent aux contacts en défaut.
No. Contact Continuité Isolation Assignation 2è test
1 Succès Succès Succès N/A
2 Succès Succès Succès N/A
3 Succès Succès Succès N/A
4 Succès Succès Succès N/A
5 Succès Succès Succès N/A
6 Succès Succès Succès N/A
Signature de l'opérateur de test: _________________________________________
Date: _________________________________________
-----------------------------------------
Log du test:
17:05:18.908 - Démarrage du test automatique.
17:05:19.323 - Succès de l'auto test des modules d'I/O
17:05:19.726 - Succès du test du contact 1
17:05:20.143 - Succès du test du contact 2
17:05:20.575 - Succès du test du contact 3
17:05:21.012 - Succès du test du contact 4
17:05:21.451 - Succès du test du contact 5
17:05:21.888 - Succès du test du contact 6
17:05:22.107 - Test automatique terminé

View File

@ -1,56 +0,0 @@
Rapport de test - Câble SEI
Date de l'essai: 2019-05-10
Version du logiciel de test: V0.10_ING_DEV
-----------------------------------------
Paramètres du câble:
Identification du câble: CABLE_XX_NO_AA_BB.c
Station: 1S52 - Frontenac
Type: Permanent
Opérateur du test: JFMartel
Connecteur d'entrée: Connecteur circulaire 6 contacts
Connecteur de sortie: Connecteur circulaire 6 contacts
-----------------------------------------
Résultats de l'inspection visuelle:
Section 5.2 exécutée: N/A
Section 5.3 exécutée: N/A
Section 5.4 exécutée: N/A
Section 5.5 exécutée: N/A
Section 5.6 exécutée: N/A
Notes d'inspection:
-----------------------------------------
Résultats du test automatique du câble:
Pré-test des modules d'I/O: SuccèsLorsqu'applicable, les valeurs entre crochets [] correspondent aux contacts en défaut.
No. Contact Continuité Isolation Assignation 2è test
1 Succès Succès Succès N/A
2 Succès Succès Succès N/A
3 Succès Succès Succès N/A
4 Succès Succès Succès N/A
5 Succès Succès Succès N/A
6 Succès Succès Succès N/A
Signature de l'opérateur de test: _________________________________________
Date: _________________________________________
-----------------------------------------
Log du test:
17:05:57.825 - Entrée en mode test manuel
17:06:00.666 - Fin du test manuel
17:06:01.172 - Démarrage du test automatique.
17:06:01.634 - Succès de l'auto test des modules d'I/O
17:06:02.111 - Succès du test du contact 1
17:06:02.517 - Succès du test du contact 2
17:06:02.945 - Succès du test du contact 3
17:06:03.384 - Succès du test du contact 4
17:06:03.819 - Succès du test du contact 5
17:06:04.254 - Succès du test du contact 6
17:06:04.419 - Test automatique terminé

View File

@ -1,55 +0,0 @@
Rapport de test - Câble SEI
Date de l'essai: 2019-05-10
Version du logiciel de test: V0.10_ING_DEV
-----------------------------------------
Paramètres du câble:
Identification du câble: CABLE_XX_NO_AA_BB.c
Station: 1S52 - Frontenac
Type: Permanent
Opérateur du test: JFMartel
Connecteur d'entrée: Connecteur circulaire 6 contacts
Connecteur de sortie: Connecteur circulaire 6 contacts
-----------------------------------------
Résultats de l'inspection visuelle:
Section 5.2 exécutée: N/A
Section 5.3 exécutée: N/A
Section 5.4 exécutée: N/A
Section 5.5 exécutée: N/A
Section 5.6 exécutée: N/A
Notes d'inspection:
-----------------------------------------
Résultats du test automatique du câble:
Pré-test des modules d'I/O: Succès
Lorsqu'applicable, les valeurs entre crochets [] correspondent aux contacts en défaut.
No. Contact Continuité Isolation Assignation 2è test
1 Succès Succès Succès N/A
2 Succès Succès Succès N/A
3 Succès Succès Succès N/A
4 Succès Succès Succès N/A
5 Succès Succès Succès N/A
6 Succès Succès Succès N/A
Signature de l'opérateur de test: _________________________________________
Date: _________________________________________
-----------------------------------------
Log du test:
17:06:43.002 - Démarrage du test automatique.
17:06:43.438 - Succès de l'auto test des modules d'I/O
17:06:43.853 - Succès du test du contact 1
17:06:44.285 - Succès du test du contact 2
17:06:44.725 - Succès du test du contact 3
17:06:45.159 - Succès du test du contact 4
17:06:45.598 - Succès du test du contact 5
17:06:46.077 - Succès du test du contact 6
17:06:46.085 - Test automatique terminé

View File

@ -1,71 +0,0 @@
Rapport de test - Câble SEI
Date de l'essai: 2019-05-10
Version du logiciel de test: V0.10_ING_DEV
-----------------------------------------
Paramètres du câble:
Identification du câble: CABLE_XX_NO_AA_BB.c
Station: 1S52 - Frontenac
Type: Permanent
Opérateur du test: JFMartel
Connecteur d'entrée: Connecteur circulaire 14 contacts
Connecteur de sortie: Connecteur circulaire 14 contacts
-----------------------------------------
Résultats de l'inspection visuelle:
Section 5.2 exécutée: Oui
Section 5.3 exécutée: Oui
Section 5.4 exécutée: Oui
Section 5.5 exécutée: Oui
Section 5.6 exécutée: Oui
Notes d'inspection:
jasdij
-----------------------------------------
Résultats du test automatique du câble:
Pré-test des modules d'I/O: Succès
Lorsqu'applicable, les valeurs entre crochets [] correspondent aux contacts en défaut.
No. Contact Continuité Isolation Assignation 2è test
1 Succès Succès Succès N/A
2 Succès Succès Succès N/A
3 Succès Succès Succès N/A
4 Succès Succès Succès N/A
5 Succès Succès Succès N/A
6 Succès Succès Succès N/A
7 Succès Succès Succès N/A
8 Succès Succès Succès N/A
9 Succès Succès Succès N/A
10 Succès Succès Succès N/A
11 Succès Succès Succès N/A
12 Succès Succès Succès N/A
13 N/A N/A Échec[14] N/A
14 N/A N/A Échec[13] N/A
Signature de l'opérateur de test: _________________________________________
Date: _________________________________________
-----------------------------------------
Log du test:
17:10:21.159 - Démarrage du test automatique.
17:10:21.588 - Succès de l'auto test des modules d'I/O
17:10:22.005 - Succès du test du contact 1
17:10:22.436 - Succès du test du contact 2
17:10:22.873 - Succès du test du contact 3
17:10:23.311 - Succès du test du contact 4
17:10:23.747 - Succès du test du contact 5
17:10:24.231 - Succès du test du contact 6
17:10:24.630 - Succès du test du contact 7
17:10:25.060 - Succès du test du contact 8
17:10:25.494 - Succès du test du contact 9
17:10:25.933 - Succès du test du contact 10
17:10:26.368 - Succès du test du contact 11
17:10:26.861 - Succès du test du contact 12
17:10:27.276 - Échec du test d'assignation du contact 13: le contact 14 est activé.
17:10:27.679 - Échec du test d'assignation du contact 14: le contact 13 est activé.
17:10:27.732 - Test automatique terminé

View File

@ -1,72 +0,0 @@
Rapport de test - Câble SEI
Date de l'essai: 2019-05-10
Version du logiciel de test: V0.10_ING_DEV
-----------------------------------------
Paramètres du câble:
Identification du câble: CABLE_XX_NO_AA_BB.c
Station: 1S52 - Frontenac
Type: Permanent
Opérateur du test: JFMartel
Connecteur d'entrée: Connecteur circulaire 14 contacts
Connecteur de sortie: Connecteur circulaire 14 contacts
-----------------------------------------
Résultats de l'inspection visuelle:
Section 5.2 exécutée: Oui
Section 5.3 exécutée: Oui
Section 5.4 exécutée: Oui
Section 5.5 exécutée: Oui
Section 5.6 exécutée: Oui
Notes d'inspection:
jasdij
-----------------------------------------
Résultats du test automatique du câble:
Pré-test des modules d'I/O: Succès
Lorsqu'applicable, les valeurs entre crochets [] correspondent aux contacts en défaut.
No. Contact Continuité Isolation Assignation 2è test
1 Succès Succès Succès N/A
2 Succès Succès Succès N/A
3 Succès Succès Succès N/A
4 Succès Succès Succès N/A
5 Succès Succès Succès N/A
6 Succès Succès Succès N/A
7 Succès Succès Succès N/A
8 Succès Succès Succès N/A
9 Succès Succès Succès N/A
10 Succès Succès Succès N/A
11 Succès Succès Succès N/A
12 Succès Succès Succès N/A
13 N/A N/A Échec[14] N/A
14 N/A N/A Échec[13] N/A
Signature de l'opérateur de test: _________________________________________
Date: _________________________________________
-----------------------------------------
Log du test:
17:10:21.159 - Démarrage du test automatique.
17:10:21.588 - Succès de l'auto test des modules d'I/O
17:10:22.005 - Succès du test du contact 1
17:10:22.436 - Succès du test du contact 2
17:10:22.873 - Succès du test du contact 3
17:10:23.311 - Succès du test du contact 4
17:10:23.747 - Succès du test du contact 5
17:10:24.231 - Succès du test du contact 6
17:10:24.630 - Succès du test du contact 7
17:10:25.060 - Succès du test du contact 8
17:10:25.494 - Succès du test du contact 9
17:10:25.933 - Succès du test du contact 10
17:10:26.368 - Succès du test du contact 11
17:10:26.861 - Succès du test du contact 12
17:10:27.276 - Échec du test d'assignation du contact 13: le contact 14 est activé.
17:10:27.679 - Échec du test d'assignation du contact 14: le contact 13 est activé.
17:10:27.732 - Test automatique terminé
17:11:00.415 - Entrée en mode test manuel

View File

@ -3,13 +3,15 @@
#include "CableTestBenchDefs.h"
#include <QFileInfo>
#include <QProcess>
#include "TestBenchVersion.h"
#include <QMessageBox>
CCableTestBench::CCableTestBench(QObject *parent) :
QObject(parent),
mActualCable(CConnectorDefs::UNKNOWN_CONNECTOR_TYPE,&mIOInterface)
{
w = new MainWindow(0,this);
w->setWindowTitle("Cablotron");
w->setWindowTitle(QString("Cablotron %1").arg(TEST_BENCH_VERSION));
}
CCableTestBench::~CCableTestBench()
@ -26,15 +28,30 @@ int CCableTestBench::Start()
mMainPageHandle = w->mMainPage;
mVisualInspPageHandle = w->mVisualInspPage;
mCableTestPageHandle = w->mCableTestPage;
mOptionsPageHandle = w->mOptionsPage;
if(mTestBenchOptions.LoadSettingFromFile() == RET_OK)
{
mOptionsPageHandle->SetCurrentOptions(&mTestBenchOptions);
}
{
mOptionsPageHandle->GetCurrentOptions(&mTestBenchOptions);
}
mCableTestEngine.InitCableTestEngine(this);
mCableTestEngine.InitCableTestEngine(this,mTestBenchOptions.mPinHoldTime);
mIOInterface.OpenIOModules();
if(mIOInterface.OpenIOModules(mTestBenchOptions.mIOModuleIPAddress) == RET_ERROR)
{
mCableTestReport.AddLogEntry("Impossible de communiquer avec le module d'I/O.\nVérifier la connexion ou l'adresse IP.");
QMessageBox::critical(0,"Erreur de connexion","Impossible de communiquer avec le module d'I/O.\nVérifier la connexion ou l'adresse IP.");
}
mCableTestPageHandle->mGuiRefreshTimer.start();
connect(&mCableTestReport,SIGNAL(NewTestLogEntry(QString)),mCableTestPageHandle,SLOT(AddTestLogEntry(QString)));
return 1;
}
@ -173,22 +190,44 @@ int CCableTestBench::NewCableRequest()
mCableTestPageHandle->ResetCable();
mCableTestPageHandle->DisableStartTestBtn();
mCableTestReport.CreateNewTestReport();
return RET_OK;
}
int CCableTestBench::CheckIfReadyForTesting()
{
bool VisualInspectionDone = false, ConnectorSelected = false, CableConfigured = true;
bool VisualInspectionDone = false, ConnectorSelected = false, CableConfigured = false;
mVisualInspPageHandle->FillVisualInspectionResultReport(mCableTestReport.GetInspectionResult());
if(mCableTestReport.GetInspectionResult()->IsVisualInspectionResultComplete() == true)
{
VisualInspectionDone = true;
}
//todo, use the options flag to bypass visual inspection
VisualInspectionDone = true;
if(mTestBenchOptions.mIgnoreVisualInspection)
{
VisualInspectionDone = true;
}
if(mCableTestPageHandle->IsCableConfigured())
{
CableConfigured = true;
mCableTestPageHandle->SetCableConfigureStep(true);
}
else
{
mCableTestPageHandle->SetCableConfigureStep(false);
}
ConnectorSelected = mActualCable.IsCableDefined();
if(ConnectorSelected)
{
mCableTestPageHandle->SetConnectorSelStep();
}
else
{
mCableTestPageHandle->SetConnectorSelStep(false);
}
if(VisualInspectionDone && ConnectorSelected && CableConfigured)
{
@ -264,7 +303,7 @@ int CCableTestBench::RefreshConnectorsStateRequest()
int CCableTestBench::SaveReportRequest()
{
return mCableTestReport.SaveReportToFile();
return mCableTestReport.SaveReportToFile(&mTestBenchOptions);
}
int CCableTestBench::OpenReportRequest()
@ -282,7 +321,24 @@ int CCableTestBench::OpenReportRequest()
QProcess *process = new QProcess;
process->start(Command);
//QProcess::execute(Command);
return RET_OK;
}
int CCableTestBench::CableConfigChanged()
{
CheckIfReadyForTesting();
return RET_OK;
}
int CCableTestBench::TestBenchOptionsChanged()
{
mOptionsPageHandle->GetCurrentOptions(&mTestBenchOptions);
mTestBenchOptions.SaveSettingsToFile();
mCableTestEngine.SetPinHoldTime(mTestBenchOptions.mPinHoldTime);
return RET_OK;
}

View File

@ -9,11 +9,14 @@
#include "TestReport.h"
#include "IOModulesInterface.h"
#include "CableTestEngine.h"
#include "TestBenchSettings.h"
class CMainPage;
class CVisualInspectionPage;
class CCableTestPage;
class COptionsPage;
class CCableTestBench : public QObject
@ -29,9 +32,12 @@ public:
CMainPage *mMainPageHandle;
CVisualInspectionPage *mVisualInspPageHandle;
CCableTestPage *mCableTestPageHandle;
COptionsPage *mOptionsPageHandle;
CCable mActualCable;
CCableTestEngine mCableTestEngine;
CTestBenchSettings mTestBenchOptions;
CIOModulesInterface mIOInterface;
@ -45,8 +51,11 @@ public:
int RefreshConnectorsStateRequest();
int SaveReportRequest();
int OpenReportRequest();
int CableConfigChanged();
int TestBenchOptionsChanged();
CCable *SetSelectedConnector(CConnectorDefs::eConnectorType ConType);

View File

@ -12,7 +12,7 @@ CCableTestEngine::~CCableTestEngine()
delete mCableTestSMTimer;
}
int CCableTestEngine::InitCableTestEngine(CCableTestBench *ProgramHandle)
int CCableTestEngine::InitCableTestEngine(CCableTestBench *ProgramHandle, int PinHoldTime)
{
mProgramHandle = ProgramHandle;
mTestCable = ProgramHandle->GetActualCable();
@ -29,14 +29,20 @@ int CCableTestEngine::InitCableTestEngine(CCableTestBench *ProgramHandle)
mCableTestSMTimer->stop();
connect(mCableTestSMTimer,SIGNAL(timeout()),this,SLOT(SMTimerExpired()));
//TODO: Get this from the options page...
mPinHoldTime = 300; //ms
mPinHoldTime = PinHoldTime; //ms
CableTestEngineStateMachine(CABLE_TEST_TICK_SM_EVENT);
return RET_OK;
}
int CCableTestEngine::SetPinHoldTime(int HoldTime)
{
mPinHoldTime = HoldTime;
return RET_OK;
}
void CCableTestEngine::CableTestEngineStateMachine(int Event)
{
switch(mCableTestSMState)

View File

@ -27,7 +27,7 @@ public:
CCableTestEngine();
~CCableTestEngine();
int InitCableTestEngine(CCableTestBench *ProgramHandle);
int InitCableTestEngine(CCableTestBench *ProgramHandle, int PinHoldTime);
int StartAutomatedTest();
int PauseAutomatedTest();
@ -37,6 +37,8 @@ public:
int StopManualTest();
int ManualPinToggle(int ConnectorPinNbr);
int SetPinHoldTime(int HoldTime);
bool IsAutomaticTestRunning();
eCableTestEngineMode GetTestEngineCurrentMode();

View File

@ -32,7 +32,6 @@ CCableTestPage::CCableTestPage(QWidget *parent) :
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);
@ -47,6 +46,8 @@ CCableTestPage::CCableTestPage(QWidget *parent) :
connect(&mGuiRefreshTimer,SIGNAL(timeout()),this,SLOT(GuiRefreshTimerExpired()));
connect(ui->mSaveReportBtn,SIGNAL(clicked()),this,SLOT(SaveReportBtnClicked()));
connect(ui->mOpenReportBtn,SIGNAL(clicked()),this,SLOT(OpenReportBtnClicked()));
connect(ui->mIdentCableEditBox,SIGNAL(textEdited(QString)),this,SLOT(CableConfigTextChanged()));
connect(ui->mNomTesteurEditBox,SIGNAL(textEdited(QString)),this,SLOT(CableConfigTextChanged()));
@ -56,7 +57,17 @@ CCableTestPage::CCableTestPage(QWidget *parent) :
ui->mStartTestBtn->setEnabled(false);
ui->mStartManualTestBtn->setEnabled(false);
ui->mOutputTestVisualisationWidget->DisablePinClicks();
// ui->mOpenReportBtn->setEnabled(false);
QPalette pal;
pal.setColor(QPalette::WindowText,Qt::red);
ui->mVisualInspectionStepLabel->setPalette(pal);
ui->mVisualInspectionStepLabel->setText("2. Inspection visuelle: À FAIRE");
ui->mCableIdentStepLabel->setPalette(pal);
ui->mCableIdentStepLabel->setText("1. Identification du câble: À REMPLIR");
ui->mConnectorSelStepLabel->setPalette(pal);
ui->mConnectorSelStepLabel->setText("3. Sélection du connecteur d'entrée: À SÉLECTIONNER");
@ -80,19 +91,66 @@ int CCableTestPage::SetVisualInspectionDone(bool 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);
QPalette pal;
pal.setColor(QPalette::WindowText,Qt::darkGreen);
ui->mVisualInspectionStepLabel->setPalette(pal);
ui->mVisualInspectionStepLabel->setText("2. Inspection visuelle: OK");
}
else
{
ui->mInspectionDoneIcon->setPixmap(mInspectionNotDonePixmap);
ui->mExecInspVisuelleBtn->setText("Effectuer Inspection");
ui->mVisualInspStepChkBx->setChecked(false);
QPalette pal;
pal.setColor(QPalette::WindowText,Qt::red);
ui->mVisualInspectionStepLabel->setPalette(pal);
ui->mVisualInspectionStepLabel->setText("2. Inspection visuelle: À FAIRE");
}
return RET_OK;
}
int CCableTestPage::SetConnectorSelStep(bool done)
{
QPalette pal;
if(done)
{
pal.setColor(QPalette::WindowText,Qt::darkGreen);
ui->mConnectorSelStepLabel->setPalette(pal);
ui->mConnectorSelStepLabel->setText("3. Sélection du connecteur d'entrée: OK");
}
else
{
pal.setColor(QPalette::WindowText,Qt::red);
ui->mConnectorSelStepLabel->setPalette(pal);
ui->mConnectorSelStepLabel->setText("3. Sélection du connecteur d'entrée: À SÉLECTIONNER");
}
return RET_OK;
}
int CCableTestPage::SetCableConfigureStep(bool done)
{
QPalette pal;
if(done)
{
pal.setColor(QPalette::WindowText,Qt::darkGreen);
ui->mCableIdentStepLabel->setPalette(pal);
ui->mCableIdentStepLabel->setText("1. Identification du câble: OK");
}
else
{
pal.setColor(QPalette::WindowText,Qt::red);
ui->mCableIdentStepLabel->setPalette(pal);
ui->mCableIdentStepLabel->setText("1. Identification du câble: À REMPLIR");
}
return RET_OK;
}
void CCableTestPage::ConnectorSelectionChanged(CConnectorDefs::eConnectorType ConType)
{
CCable* Cable;
@ -103,6 +161,8 @@ void CCableTestPage::ConnectorSelectionChanged(CConnectorDefs::eConnectorType Co
ui->mInputTestVisualisationWidget->SetConnectorPinCount(Cable->GetInputConnector()->GetPinCount());
ui->mOutputTestVisualisationWidget->SetConnectorPinCount(Cable->GetOutputConnector()->GetPinCount());
}
}
void CCableTestPage::StartTestBtnClicked()
@ -132,12 +192,15 @@ int CCableTestPage::ResetCable()
ui->mOutputTestVisualisationWidget->ClearConnectorsLists();
//Reset cable config zone
ui->mIdentCableEditBox->setText(mDefaultCableName);
ui->mNomTesteurEditBox->setText(mDefaultInspectorName);
// ui->mIdentCableEditBox->setText(mDefaultCableName);
// ui->mNomTesteurEditBox->setText(mDefaultInspectorName);
//Reset Inspection Visuelle result (main program will clear the form)
SetVisualInspectionDone(false);
// SetCableConfigureStep(false);
SetConnectorSelStep(false);
//Clear connector selection zone
ui->mConnectorSelectWidget->ClearAllConnectorsSelections();
@ -304,3 +367,23 @@ int CCableTestPage::SetAutoTestResult(QString Result, QColor color)
return RET_OK;
}
bool CCableTestPage::IsCableConfigured()
{
if(ui->mIdentCableEditBox->text().isEmpty())
{
return false;
}
if(ui->mNomTesteurEditBox->text().isEmpty())
{
return false;
}
return true;
}
void CCableTestPage::CableConfigTextChanged()
{
mProgramHandle->CableConfigChanged();
}

View File

@ -29,6 +29,8 @@ public:
void hideEvent(QHideEvent *event);
int SetVisualInspectionDone(bool Done = true);
int SetCableConfigureStep(bool done = true);
int SetConnectorSelStep(bool done = true);
int ResetCable();
int EnableStartTestBtn();
int DisableStartTestBtn();
@ -45,6 +47,10 @@ public:
int FillReportCableParametersData(CCableParametersData* ReportPtr);
bool IsCableConfigured();
private:
@ -72,6 +78,7 @@ public slots:
void AddTestLogEntry(QString Entry);
void SaveReportBtnClicked();
void OpenReportBtnClicked();
void CableConfigTextChanged();
};
#endif // CABLETESTPAGE_H

View File

@ -316,7 +316,7 @@
<rect>
<x>50</x>
<y>220</y>
<width>491</width>
<width>621</width>
<height>131</height>
</rect>
</property>
@ -326,61 +326,10 @@
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QCheckBox" name="mCableIdentStepChkBx">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>151</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>1. Identification du câble</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
</widget>
<widget class="QCheckBox" name="mVisualInspStepChkBx">
<property name="geometry">
<rect>
<x>20</x>
<y>50</y>
<width>151</width>
<height>17</height>
</rect>
</property>
<property name="toolTip">
<string extracomment="Test"/>
</property>
<property name="text">
<string>2. Inspection visuelle</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
<widget class="QCheckBox" name="mConSelStepChkBx">
<property name="geometry">
<rect>
<x>20</x>
<y>80</y>
<width>191</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>3. Sélection du connecteur d'entrée</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
</widget>
<widget class="QGroupBox" name="groupBox">
<property name="geometry">
<rect>
<x>230</x>
<x>310</x>
<y>10</y>
<width>121</width>
<height>91</height>
@ -419,7 +368,7 @@
<widget class="QGroupBox" name="groupBox_2">
<property name="geometry">
<rect>
<x>370</x>
<x>480</x>
<y>10</y>
<width>111</width>
<height>80</height>
@ -445,7 +394,7 @@
<widget class="QPushButton" name="mSaveReportBtn">
<property name="geometry">
<rect>
<x>360</x>
<x>480</x>
<y>100</y>
<width>121</width>
<height>23</height>
@ -455,6 +404,45 @@
<string>Sauvegarder Rapport</string>
</property>
</widget>
<widget class="QLabel" name="mCableIdentStepLabel">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>201</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>1. Identification du câble: À REMPLIR</string>
</property>
</widget>
<widget class="QLabel" name="mVisualInspectionStepLabel">
<property name="geometry">
<rect>
<x>20</x>
<y>50</y>
<width>201</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>2. Inspection visuelle: À EXÉCUTER</string>
</property>
</widget>
<widget class="QLabel" name="mConnectorSelStepLabel">
<property name="geometry">
<rect>
<x>20</x>
<y>80</y>
<width>271</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>3. Sélection du connecteur d'entrée: À SÉLECTIONNER</string>
</property>
</widget>
</widget>
<widget class="QLabel" name="mInspVisuelleLabel_2">
<property name="geometry">
@ -493,7 +481,7 @@
<widget class="QGroupBox" name="groupBox_3">
<property name="geometry">
<rect>
<x>600</x>
<x>720</x>
<y>220</y>
<width>231</width>
<height>131</height>

View File

@ -22,10 +22,10 @@ CIOModulesInterface::~CIOModulesInterface()
}
int CIOModulesInterface::OpenIOModules()
int CIOModulesInterface::OpenIOModules(QString IPAddress)
{
int ret = SM_Open(&hndl,(char*)"192.168.0.52");
int ret = SM_Open(&hndl,IPAddress.toAscii().data());
if(ret < 0)
{
qDebug("Impossible d'ouvrir le module d'I/O, erreur %d",ret);

View File

@ -30,7 +30,7 @@ public:
CIOModulesInterface();
~CIOModulesInterface();
int OpenIOModules();
int OpenIOModules(QString IPAddress);
int CloseIOModules();
int SetOutputs(QBitArray Outputs);

View File

@ -1,5 +1,8 @@
#include "OptionsPage.h"
#include "ui_OptionsPage.h"
#include "GlobalDefine.h"
#include "CableTestBench.h"
#include <QHostAddress>
COptionsPage::COptionsPage(QWidget *parent) :
QWidget(parent),
@ -8,9 +11,49 @@ COptionsPage::COptionsPage(QWidget *parent) :
ui->setupUi(this);
mProgramHandle = 0;
connect(ui->mApplyAndSaveBtn,SIGNAL(clicked()),this,SLOT(OptionChanged()));
}
COptionsPage::~COptionsPage()
{
delete ui;
}
int COptionsPage::GetCurrentOptions(CTestBenchSettings *Settings)
{
Settings->mPinHoldTime = ui->mTestHoldTimeHighSpinBx->value();
Settings->mIgnoreVisualInspection = ui->mIgnoreVisualInspChkBx->isChecked();
Settings->mIOModuleIPAddress = QString("%1.%2.%3.%4").arg(ui->mIPAdd1SpinBox->value()).arg(ui->mIPAdd2SpinBox->value()).arg(ui->mIPAdd3SpinBox->value()).arg(ui->mIPAdd4SpinBox->value());
Settings->mIncludeLogInReport = ui->mIncludeLogInReportChkBx->isChecked();
return RET_OK;
}
int COptionsPage::SetCurrentOptions(CTestBenchSettings *Settings)
{
ui->mTestHoldTimeHighSpinBx->setValue(Settings->mPinHoldTime);
ui->mIgnoreVisualInspChkBx->setChecked(Settings->mIgnoreVisualInspection);
ui->mIncludeLogInReportChkBx->setChecked(Settings->mIncludeLogInReport);
QHostAddress IPAddres(Settings->mIOModuleIPAddress);
int IPV4 = IPAddres.toIPv4Address();
ui->mIPAdd4SpinBox->setValue(IPV4 & 0x000000FF);
IPV4 >>= 8;
ui->mIPAdd3SpinBox->setValue(IPV4 & 0x000000FF);
IPV4 >>= 8;
ui->mIPAdd2SpinBox->setValue(IPV4 & 0x000000FF);
IPV4 >>= 8;
ui->mIPAdd1SpinBox->setValue(IPV4 & 0x000000FF);
}
void COptionsPage::OptionChanged()
{
mProgramHandle->TestBenchOptionsChanged();
}

View File

@ -2,6 +2,8 @@
#define OPTIONSPAGE_H
#include <QWidget>
#include "TestBenchSettings.h"
namespace Ui {
class COptionsPage;
@ -19,8 +21,20 @@ public:
CCableTestBench *mProgramHandle;
int GetCurrentOptions(CTestBenchSettings *Settings);
int SetCurrentOptions(CTestBenchSettings *Settings);
private:
Ui::COptionsPage *ui;
public slots:
void OptionChanged();
signals:
void CurrentOptionsChanged();
};
#endif // OPTIONSPAGE_H

View File

@ -6,35 +6,17 @@
<rect>
<x>0</x>
<y>0</y>
<width>1119</width>
<width>564</width>
<height>647</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>100</x>
<y>40</y>
<width>181</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>Valeurs par défaut</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>530</x>
<x>170</x>
<y>40</y>
<width>181</width>
<height>31</height>
@ -52,7 +34,7 @@
<widget class="QSpinBox" name="mTestHoldTimeHighSpinBx">
<property name="geometry">
<rect>
<x>680</x>
<x>320</x>
<y>110</y>
<width>61</width>
<height>22</height>
@ -71,7 +53,7 @@
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>500</x>
<x>140</x>
<y>110</y>
<width>171</width>
<height>20</height>
@ -86,48 +68,11 @@
<string>Temps de maintien haut (ms)</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>500</x>
<y>150</y>
<width>171</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Temps de maintien bas (ms)</string>
</property>
</widget>
<widget class="QSpinBox" name="mTestHoldTimeLowSpinBx">
<property name="geometry">
<rect>
<x>680</x>
<y>150</y>
<width>61</width>
<height>22</height>
</rect>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>5000</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
<widget class="QSpinBox" name="mIPAdd1SpinBox">
<property name="geometry">
<rect>
<x>510</x>
<y>340</y>
<x>140</x>
<y>311</y>
<width>42</width>
<height>22</height>
</rect>
@ -142,8 +87,8 @@
<widget class="QSpinBox" name="mIPAdd2SpinBox">
<property name="geometry">
<rect>
<x>560</x>
<y>340</y>
<x>190</x>
<y>311</y>
<width>42</width>
<height>22</height>
</rect>
@ -158,8 +103,8 @@
<widget class="QSpinBox" name="mIPAdd3SpinBox">
<property name="geometry">
<rect>
<x>610</x>
<y>340</y>
<x>240</x>
<y>311</y>
<width>42</width>
<height>22</height>
</rect>
@ -171,8 +116,8 @@
<widget class="QSpinBox" name="mIPAdd4SpinBox">
<property name="geometry">
<rect>
<x>660</x>
<y>340</y>
<x>290</x>
<y>311</y>
<width>42</width>
<height>22</height>
</rect>
@ -187,10 +132,10 @@
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>510</x>
<y>310</y>
<width>171</width>
<height>20</height>
<x>140</x>
<y>270</y>
<width>351</width>
<height>31</height>
</rect>
</property>
<property name="font">
@ -199,14 +144,15 @@
</font>
</property>
<property name="text">
<string>Adresse IP module I/O</string>
<string>Adresse IP module I/O
(redémarrage de l'application requis)</string>
</property>
</widget>
<widget class="QPushButton" name="mApplyAndSaveBtn">
<property name="geometry">
<rect>
<x>390</x>
<y>550</y>
<x>170</x>
<y>470</y>
<width>131</width>
<height>23</height>
</rect>
@ -218,8 +164,8 @@
<widget class="QCheckBox" name="mIgnoreVisualInspChkBx">
<property name="geometry">
<rect>
<x>500</x>
<y>200</y>
<x>140</x>
<y>160</y>
<width>221</width>
<height>17</height>
</rect>
@ -228,6 +174,19 @@
<string>Ignorer l'inspection visuelle</string>
</property>
</widget>
<widget class="QCheckBox" name="mIncludeLogInReportChkBx">
<property name="geometry">
<rect>
<x>140</x>
<y>200</y>
<width>221</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Inclure LOG dans le rapport</string>
</property>
</widget>
</widget>
<resources/>
<connections/>

View File

@ -1,5 +1,68 @@
#include "TestBenchSettings.h"
#include <QFile>
#include <QDataStream>
#include "GlobalDefine.h"
CTestBenchSettings::CTestBenchSettings()
{
}
int CTestBenchSettings::SaveSettingsToFile()
{
QFile *SettingFile = new QFile("./Cablotron.csf");
if(!SettingFile->open(QIODevice::ReadWrite | QIODevice::Truncate))
{
delete SettingFile;
return RET_ERROR;
}
QDataStream Strm(SettingFile);
int MagicNbr = 0xC01DCAFE;
Strm << MagicNbr
<< mPinHoldTime
<< mIgnoreVisualInspection
<< mIOModuleIPAddress
<< mIncludeLogInReport;
SettingFile->close();
delete SettingFile;
return RET_OK;
}
int CTestBenchSettings::LoadSettingFromFile()
{
QFile *SettingFile = new QFile("./Cablotron.csf");
if(!SettingFile->open(QIODevice::ReadOnly))
{
delete SettingFile;
return RET_ERROR;
}
QDataStream Strm(SettingFile);
int MagicNbr;
Strm >> MagicNbr;
if(MagicNbr != (int)0xC01DCAFE)
{
return RET_ERROR;
SettingFile->close();
delete SettingFile;
}
Strm >> mPinHoldTime
>> mIgnoreVisualInspection
>> mIOModuleIPAddress
>> mIncludeLogInReport;
SettingFile->close();
delete SettingFile;
return RET_OK;
}

View File

@ -7,11 +7,16 @@ class CTestBenchSettings
public:
CTestBenchSettings();
int LoadSettings();
int LoadSettingFromFile();
int SaveSettingsToFile();
int mPinHoldTime;
bool mIgnoreVisualInspection;
QString mIOModuleIPAddress;
bool mIncludeLogInReport;
};

View File

@ -4,6 +4,7 @@
#include <QTextStream>
#include <QMessageBox>
#include <QTextCodec>
#include "TestBenchSettings.h"
CTestReport::CTestReport()
{
@ -70,7 +71,7 @@ CAutomatedTestReport *CTestReport::GetAutomatedTestReport()
return &mAutomatedTestReport;
}
int CTestReport::SaveReportToFile()
int CTestReport::SaveReportToFile(CTestBenchSettings *BenchSettings)
{
QFile *ReportFile;
//QTextStream ReportStream;
@ -102,6 +103,18 @@ int CTestReport::SaveReportToFile()
ReportStream << QString("Date de l'essai: ") << QDateTime::currentDateTime().toString("yyyy-MM-dd") << "\n";
ReportStream << "Version du logiciel de test: " << mSoftwareVersion << "\n\n";
ReportStream << "-----------------------------------------\n";
ReportStream << QString("Paramètres du test: \n");
ReportStream << QString("Temps de maintien des contacts: %1ms\n").arg(BenchSettings->mPinHoldTime);
if(BenchSettings->mIgnoreVisualInspection)
{
ReportStream << QString("Ignorer inspection visuelle: OUI\n");
}
else
{
ReportStream << QString("Ignorer inspection visuelle: NON\n");
}
ReportStream << QString("Adresse IP des modules d'I/O : %1\n\n").arg(BenchSettings->mIOModuleIPAddress);
ReportStream << "-----------------------------------------\n";
ReportStream << QString("Paramètres du câble: \n");
ReportStream << QString("Identification du câble: ") << mCableParameters.mCableIdentification << "\n";
ReportStream << "Station: " << mCableParameters.mStationCodeName << " - "<< mCableParameters.mStationName << "\n";
@ -147,8 +160,12 @@ int CTestReport::SaveReportToFile()
ReportStream << QString("\n\n\n Signature de l'opérateur de test: _________________________________________\n\n");
ReportStream << QString(" Date: _________________________________________\n\n");
ReportStream << "-----------------------------------------\n";
ReportStream << "Log du test:\n";
ReportStream << mTestLog;
if(BenchSettings->mIncludeLogInReport)
{
ReportStream << "Log du test:\n";
ReportStream << mTestLog;
}
ReportFile->close();
delete ReportFile;

View File

@ -8,6 +8,8 @@
#include "AutomatedTestReport.h"
#include <QObject>
class CTestBenchSettings;
class CTestReport : public QObject
{
Q_OBJECT
@ -24,7 +26,7 @@ public:
bool GetGlobalAutoTestResult();
int SaveReportToFile();
int SaveReportToFile(CTestBenchSettings *BenchSettings);
QString GetLastReportFileName();

View File

@ -1,7 +1,7 @@
/********************************************************************************
** Form generated from reading UI file 'CMainPage.ui'
**
** Created: Fri May 10 14:02:03 2019
** Created: Mon May 13 08:38:40 2019
** by: Qt User Interface Compiler version 4.8.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!

View File

@ -1,7 +1,7 @@
/********************************************************************************
** Form generated from reading UI file 'CableTestPage.ui'
**
** Created: Fri May 10 15:48:28 2019
** Created: Mon May 13 09:55:56 2019
** by: Qt User Interface Compiler version 4.8.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
@ -14,7 +14,6 @@
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QCheckBox>
#include <QtGui/QComboBox>
#include <QtGui/QFrame>
#include <QtGui/QGridLayout>
@ -58,15 +57,15 @@ public:
QLabel *mOutputContactsTextLabel;
QPushButton *mNewCableBtn;
QFrame *frame;
QCheckBox *mCableIdentStepChkBx;
QCheckBox *mVisualInspStepChkBx;
QCheckBox *mConSelStepChkBx;
QGroupBox *groupBox;
QPushButton *mStartTestBtn;
QPushButton *mReinitTestBtn;
QGroupBox *groupBox_2;
QPushButton *mStartManualTestBtn;
QPushButton *mSaveReportBtn;
QLabel *mCableIdentStepLabel;
QLabel *mVisualInspectionStepLabel;
QLabel *mConnectorSelStepLabel;
QLabel *mInspVisuelleLabel_2;
QTextBrowser *mTestLogTextBox;
QGroupBox *groupBox_3;
@ -192,24 +191,12 @@ public:
mNewCableBtn->setGeometry(QRect(430, 20, 91, 23));
frame = new QFrame(CCableTestPage);
frame->setObjectName(QString::fromUtf8("frame"));
frame->setGeometry(QRect(50, 220, 491, 131));
frame->setGeometry(QRect(50, 220, 621, 131));
frame->setFrameShape(QFrame::Box);
frame->setFrameShadow(QFrame::Raised);
mCableIdentStepChkBx = new QCheckBox(frame);
mCableIdentStepChkBx->setObjectName(QString::fromUtf8("mCableIdentStepChkBx"));
mCableIdentStepChkBx->setGeometry(QRect(20, 20, 151, 17));
mCableIdentStepChkBx->setCheckable(false);
mVisualInspStepChkBx = new QCheckBox(frame);
mVisualInspStepChkBx->setObjectName(QString::fromUtf8("mVisualInspStepChkBx"));
mVisualInspStepChkBx->setGeometry(QRect(20, 50, 151, 17));
mVisualInspStepChkBx->setCheckable(true);
mConSelStepChkBx = new QCheckBox(frame);
mConSelStepChkBx->setObjectName(QString::fromUtf8("mConSelStepChkBx"));
mConSelStepChkBx->setGeometry(QRect(20, 80, 191, 17));
mConSelStepChkBx->setCheckable(false);
groupBox = new QGroupBox(frame);
groupBox->setObjectName(QString::fromUtf8("groupBox"));
groupBox->setGeometry(QRect(230, 10, 121, 91));
groupBox->setGeometry(QRect(310, 10, 121, 91));
mStartTestBtn = new QPushButton(groupBox);
mStartTestBtn->setObjectName(QString::fromUtf8("mStartTestBtn"));
mStartTestBtn->setGeometry(QRect(20, 20, 91, 23));
@ -218,13 +205,22 @@ public:
mReinitTestBtn->setGeometry(QRect(20, 50, 91, 23));
groupBox_2 = new QGroupBox(frame);
groupBox_2->setObjectName(QString::fromUtf8("groupBox_2"));
groupBox_2->setGeometry(QRect(370, 10, 111, 80));
groupBox_2->setGeometry(QRect(480, 10, 111, 80));
mStartManualTestBtn = new QPushButton(groupBox_2);
mStartManualTestBtn->setObjectName(QString::fromUtf8("mStartManualTestBtn"));
mStartManualTestBtn->setGeometry(QRect(20, 30, 75, 23));
mSaveReportBtn = new QPushButton(frame);
mSaveReportBtn->setObjectName(QString::fromUtf8("mSaveReportBtn"));
mSaveReportBtn->setGeometry(QRect(360, 100, 121, 23));
mSaveReportBtn->setGeometry(QRect(480, 100, 121, 23));
mCableIdentStepLabel = new QLabel(frame);
mCableIdentStepLabel->setObjectName(QString::fromUtf8("mCableIdentStepLabel"));
mCableIdentStepLabel->setGeometry(QRect(20, 20, 201, 16));
mVisualInspectionStepLabel = new QLabel(frame);
mVisualInspectionStepLabel->setObjectName(QString::fromUtf8("mVisualInspectionStepLabel"));
mVisualInspectionStepLabel->setGeometry(QRect(20, 50, 201, 16));
mConnectorSelStepLabel = new QLabel(frame);
mConnectorSelStepLabel->setObjectName(QString::fromUtf8("mConnectorSelStepLabel"));
mConnectorSelStepLabel->setGeometry(QRect(20, 80, 271, 16));
mInspVisuelleLabel_2 = new QLabel(CCableTestPage);
mInspVisuelleLabel_2->setObjectName(QString::fromUtf8("mInspVisuelleLabel_2"));
mInspVisuelleLabel_2->setGeometry(QRect(50, 200, 221, 20));
@ -236,7 +232,7 @@ public:
mTestLogTextBox->setFrameShadow(QFrame::Plain);
groupBox_3 = new QGroupBox(CCableTestPage);
groupBox_3->setObjectName(QString::fromUtf8("groupBox_3"));
groupBox_3->setGeometry(QRect(600, 220, 231, 131));
groupBox_3->setGeometry(QRect(720, 220, 231, 131));
mAutoTestResultLabel = new QLabel(groupBox_3);
mAutoTestResultLabel->setObjectName(QString::fromUtf8("mAutoTestResultLabel"));
mAutoTestResultLabel->setGeometry(QRect(30, 40, 181, 41));
@ -273,18 +269,15 @@ public:
mInputContactsTextLabel->setText(QApplication::translate("CCableTestPage", "Contacts entr\303\251e", 0, QApplication::UnicodeUTF8));
mOutputContactsTextLabel->setText(QApplication::translate("CCableTestPage", "Contacts sortie", 0, QApplication::UnicodeUTF8));
mNewCableBtn->setText(QApplication::translate("CCableTestPage", "Nouveau C\303\242ble", 0, QApplication::UnicodeUTF8));
mCableIdentStepChkBx->setText(QApplication::translate("CCableTestPage", "1. Identification du c\303\242ble", 0, QApplication::UnicodeUTF8));
#ifndef QT_NO_TOOLTIP
mVisualInspStepChkBx->setToolTip(QString());
#endif // QT_NO_TOOLTIP
mVisualInspStepChkBx->setText(QApplication::translate("CCableTestPage", "2. Inspection visuelle", 0, QApplication::UnicodeUTF8));
mConSelStepChkBx->setText(QApplication::translate("CCableTestPage", "3. S\303\251lection du connecteur d'entr\303\251e", 0, QApplication::UnicodeUTF8));
groupBox->setTitle(QApplication::translate("CCableTestPage", "Test Automatique", 0, QApplication::UnicodeUTF8));
mStartTestBtn->setText(QApplication::translate("CCableTestPage", "D\303\251marrer test", 0, QApplication::UnicodeUTF8));
mReinitTestBtn->setText(QApplication::translate("CCableTestPage", "R\303\251initialiser test", 0, QApplication::UnicodeUTF8));
groupBox_2->setTitle(QApplication::translate("CCableTestPage", "Test Manuel", 0, QApplication::UnicodeUTF8));
mStartManualTestBtn->setText(QApplication::translate("CCableTestPage", "Ex\303\251cuter", 0, QApplication::UnicodeUTF8));
mSaveReportBtn->setText(QApplication::translate("CCableTestPage", "Sauvegarder Rapport", 0, QApplication::UnicodeUTF8));
mCableIdentStepLabel->setText(QApplication::translate("CCableTestPage", "1. Identification du c\303\242ble: \303\200 REMPLIR", 0, QApplication::UnicodeUTF8));
mVisualInspectionStepLabel->setText(QApplication::translate("CCableTestPage", "2. Inspection visuelle: \303\200 EX\303\211CUTER", 0, QApplication::UnicodeUTF8));
mConnectorSelStepLabel->setText(QApplication::translate("CCableTestPage", "3. S\303\251lection du connecteur d'entr\303\251e: \303\200 S\303\211LECTIONNER", 0, QApplication::UnicodeUTF8));
mInspVisuelleLabel_2->setText(QApplication::translate("CCableTestPage", "Contr\303\264le du test \303\251lectrique", 0, QApplication::UnicodeUTF8));
groupBox_3->setTitle(QApplication::translate("CCableTestPage", "R\303\251sultat du test", 0, QApplication::UnicodeUTF8));
mAutoTestResultLabel->setText(QApplication::translate("CCableTestPage", "En cours...", 0, QApplication::UnicodeUTF8));

View File

@ -1,7 +1,7 @@
/********************************************************************************
** Form generated from reading UI file 'OptionsPage.ui'
**
** Created: Fri May 10 14:02:03 2019
** Created: Mon May 13 10:53:13 2019
** by: Qt User Interface Compiler version 4.8.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
@ -26,12 +26,9 @@ QT_BEGIN_NAMESPACE
class Ui_COptionsPage
{
public:
QLabel *label;
QLabel *label_2;
QSpinBox *mTestHoldTimeHighSpinBx;
QLabel *label_3;
QLabel *label_4;
QSpinBox *mTestHoldTimeLowSpinBx;
QSpinBox *mIPAdd1SpinBox;
QSpinBox *mIPAdd2SpinBox;
QSpinBox *mIPAdd3SpinBox;
@ -39,73 +36,63 @@ public:
QLabel *label_5;
QPushButton *mApplyAndSaveBtn;
QCheckBox *mIgnoreVisualInspChkBx;
QCheckBox *mIncludeLogInReportChkBx;
void setupUi(QWidget *COptionsPage)
{
if (COptionsPage->objectName().isEmpty())
COptionsPage->setObjectName(QString::fromUtf8("COptionsPage"));
COptionsPage->resize(1119, 647);
label = new QLabel(COptionsPage);
label->setObjectName(QString::fromUtf8("label"));
label->setGeometry(QRect(100, 40, 181, 31));
QFont font;
font.setPointSize(14);
label->setFont(font);
COptionsPage->resize(564, 647);
label_2 = new QLabel(COptionsPage);
label_2->setObjectName(QString::fromUtf8("label_2"));
label_2->setGeometry(QRect(530, 40, 181, 31));
label_2->setGeometry(QRect(170, 40, 181, 31));
QFont font;
font.setPointSize(14);
label_2->setFont(font);
mTestHoldTimeHighSpinBx = new QSpinBox(COptionsPage);
mTestHoldTimeHighSpinBx->setObjectName(QString::fromUtf8("mTestHoldTimeHighSpinBx"));
mTestHoldTimeHighSpinBx->setGeometry(QRect(680, 110, 61, 22));
mTestHoldTimeHighSpinBx->setGeometry(QRect(320, 110, 61, 22));
mTestHoldTimeHighSpinBx->setMinimum(100);
mTestHoldTimeHighSpinBx->setMaximum(5000);
mTestHoldTimeHighSpinBx->setValue(1000);
label_3 = new QLabel(COptionsPage);
label_3->setObjectName(QString::fromUtf8("label_3"));
label_3->setGeometry(QRect(500, 110, 171, 20));
label_3->setGeometry(QRect(140, 110, 171, 20));
QFont font1;
font1.setPointSize(10);
label_3->setFont(font1);
label_4 = new QLabel(COptionsPage);
label_4->setObjectName(QString::fromUtf8("label_4"));
label_4->setGeometry(QRect(500, 150, 171, 20));
label_4->setFont(font1);
mTestHoldTimeLowSpinBx = new QSpinBox(COptionsPage);
mTestHoldTimeLowSpinBx->setObjectName(QString::fromUtf8("mTestHoldTimeLowSpinBx"));
mTestHoldTimeLowSpinBx->setGeometry(QRect(680, 150, 61, 22));
mTestHoldTimeLowSpinBx->setMinimum(1);
mTestHoldTimeLowSpinBx->setMaximum(5000);
mTestHoldTimeLowSpinBx->setValue(1);
mIPAdd1SpinBox = new QSpinBox(COptionsPage);
mIPAdd1SpinBox->setObjectName(QString::fromUtf8("mIPAdd1SpinBox"));
mIPAdd1SpinBox->setGeometry(QRect(510, 340, 42, 22));
mIPAdd1SpinBox->setGeometry(QRect(140, 311, 42, 22));
mIPAdd1SpinBox->setMaximum(255);
mIPAdd1SpinBox->setValue(192);
mIPAdd2SpinBox = new QSpinBox(COptionsPage);
mIPAdd2SpinBox->setObjectName(QString::fromUtf8("mIPAdd2SpinBox"));
mIPAdd2SpinBox->setGeometry(QRect(560, 340, 42, 22));
mIPAdd2SpinBox->setGeometry(QRect(190, 311, 42, 22));
mIPAdd2SpinBox->setMaximum(255);
mIPAdd2SpinBox->setValue(168);
mIPAdd3SpinBox = new QSpinBox(COptionsPage);
mIPAdd3SpinBox->setObjectName(QString::fromUtf8("mIPAdd3SpinBox"));
mIPAdd3SpinBox->setGeometry(QRect(610, 340, 42, 22));
mIPAdd3SpinBox->setGeometry(QRect(240, 311, 42, 22));
mIPAdd3SpinBox->setMaximum(255);
mIPAdd4SpinBox = new QSpinBox(COptionsPage);
mIPAdd4SpinBox->setObjectName(QString::fromUtf8("mIPAdd4SpinBox"));
mIPAdd4SpinBox->setGeometry(QRect(660, 340, 42, 22));
mIPAdd4SpinBox->setGeometry(QRect(290, 311, 42, 22));
mIPAdd4SpinBox->setMaximum(255);
mIPAdd4SpinBox->setValue(52);
label_5 = new QLabel(COptionsPage);
label_5->setObjectName(QString::fromUtf8("label_5"));
label_5->setGeometry(QRect(510, 310, 171, 20));
label_5->setGeometry(QRect(140, 270, 351, 31));
label_5->setFont(font1);
mApplyAndSaveBtn = new QPushButton(COptionsPage);
mApplyAndSaveBtn->setObjectName(QString::fromUtf8("mApplyAndSaveBtn"));
mApplyAndSaveBtn->setGeometry(QRect(390, 550, 131, 23));
mApplyAndSaveBtn->setGeometry(QRect(170, 470, 131, 23));
mIgnoreVisualInspChkBx = new QCheckBox(COptionsPage);
mIgnoreVisualInspChkBx->setObjectName(QString::fromUtf8("mIgnoreVisualInspChkBx"));
mIgnoreVisualInspChkBx->setGeometry(QRect(500, 200, 221, 17));
mIgnoreVisualInspChkBx->setGeometry(QRect(140, 160, 221, 17));
mIncludeLogInReportChkBx = new QCheckBox(COptionsPage);
mIncludeLogInReportChkBx->setObjectName(QString::fromUtf8("mIncludeLogInReportChkBx"));
mIncludeLogInReportChkBx->setGeometry(QRect(140, 200, 221, 17));
retranslateUi(COptionsPage);
@ -115,13 +102,13 @@ public:
void retranslateUi(QWidget *COptionsPage)
{
COptionsPage->setWindowTitle(QApplication::translate("COptionsPage", "Form", 0, QApplication::UnicodeUTF8));
label->setText(QApplication::translate("COptionsPage", "Valeurs par d\303\251faut", 0, QApplication::UnicodeUTF8));
label_2->setText(QApplication::translate("COptionsPage", "Param\303\250tres de test", 0, QApplication::UnicodeUTF8));
label_3->setText(QApplication::translate("COptionsPage", "Temps de maintien haut (ms)", 0, QApplication::UnicodeUTF8));
label_4->setText(QApplication::translate("COptionsPage", "Temps de maintien bas (ms)", 0, QApplication::UnicodeUTF8));
label_5->setText(QApplication::translate("COptionsPage", "Adresse IP module I/O", 0, QApplication::UnicodeUTF8));
label_5->setText(QApplication::translate("COptionsPage", "Adresse IP module I/O \n"
"(red\303\251marrage de l'application requis)", 0, QApplication::UnicodeUTF8));
mApplyAndSaveBtn->setText(QApplication::translate("COptionsPage", "Appliquer && Sauvegarder", 0, QApplication::UnicodeUTF8));
mIgnoreVisualInspChkBx->setText(QApplication::translate("COptionsPage", "Ignorer l'inspection visuelle", 0, QApplication::UnicodeUTF8));
mIncludeLogInReportChkBx->setText(QApplication::translate("COptionsPage", "Inclure LOG dans le rapport", 0, QApplication::UnicodeUTF8));
} // retranslateUi
};

View File

@ -1,7 +1,7 @@
/********************************************************************************
** Form generated from reading UI file 'VisualInspectionPage.ui'
**
** Created: Fri May 10 14:02:03 2019
** Created: Mon May 13 08:38:40 2019
** by: Qt User Interface Compiler version 4.8.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!