JF vor 6 Jahren
Ursprung
Commit
8342f88720
34 geänderte Dateien mit 472 neuen und 720 gelöschten Zeilen
  1. +1
    -0
      .gitignore
  2. +4
    -2
      CableTestBench.pro
  3. BIN
      Cablotron.csf
  4. +1
    -1
      Makefile
  5. +4
    -4
      Makefile.Debug
  6. +4
    -4
      Makefile.Release
  7. +0
    -52
      Rapports/190510_164434_1S52CABLE_XX_NO_AA_BB.c.txt
  8. +0
    -68
      Rapports/190510_164450_1S52CABLE_XX_NO_AA_BB.c.txt
  9. +0
    -57
      Rapports/190510_170458_1S52CABLE_XX_NO_AA_BB.c.txt
  10. +0
    -54
      Rapports/190510_170522_1S52CABLE_XX_NO_AA_BB.c.txt
  11. +0
    -56
      Rapports/190510_170604_1S52CABLE_XX_NO_AA_BB.c.txt
  12. +0
    -55
      Rapports/190510_170646_1S52CABLE_XX_NO_AA_BB.c.txt
  13. +0
    -71
      Rapports/190510_171027_1S52CABLE_XX_NO_AA_BB.c.txt
  14. +0
    -72
      Rapports/190510_171101_1S52CABLE_XX_NO_AA_BB.c.txt
  15. +64
    -8
      Sources/CableTestBench.cpp
  16. +9
    -0
      Sources/CableTestBench.h
  17. +9
    -3
      Sources/CableTestEngine.cpp
  18. +3
    -1
      Sources/CableTestEngine.h
  19. +91
    -8
      Sources/CableTestPage.cpp
  20. +7
    -0
      Sources/CableTestPage.h
  21. +44
    -56
      Sources/CableTestPage.ui
  22. +2
    -2
      Sources/IOModulesInterface.cpp
  23. +1
    -1
      Sources/IOModulesInterface.h
  24. +43
    -0
      Sources/OptionsPage.cpp
  25. +14
    -0
      Sources/OptionsPage.h
  26. +35
    -76
      Sources/OptionsPage.ui
  27. +63
    -0
      Sources/TestBenchSettings.cpp
  28. +6
    -1
      Sources/TestBenchSettings.h
  29. +20
    -3
      Sources/TestReport.cpp
  30. +3
    -1
      Sources/TestReport.h
  31. +1
    -1
      ui_CMainPage.h
  32. +21
    -28
      ui_CableTestPage.h
  33. +21
    -34
      ui_OptionsPage.h
  34. +1
    -1
      ui_VisualInspectionPage.h

+ 1
- 0
.gitignore Datei anzeigen

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

+ 4
- 2
CableTestBench.pro Datei anzeigen

@@ -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 Datei anzeigen


+ 1
- 1
Makefile Datei anzeigen

@@ -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


+ 4
- 4
Makefile.Debug Datei anzeigen

@@ -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


+ 4
- 4
Makefile.Release Datei anzeigen

@@ -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


+ 0
- 52
Rapports/190510_164434_1S52CABLE_XX_NO_AA_BB.c.txt Datei anzeigen

@@ -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é

+ 0
- 68
Rapports/190510_164450_1S52CABLE_XX_NO_AA_BB.c.txt Datei anzeigen

@@ -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é

+ 0
- 57
Rapports/190510_170458_1S52CABLE_XX_NO_AA_BB.c.txt Datei anzeigen

@@ -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é

+ 0
- 54
Rapports/190510_170522_1S52CABLE_XX_NO_AA_BB.c.txt Datei anzeigen

@@ -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é

+ 0
- 56
Rapports/190510_170604_1S52CABLE_XX_NO_AA_BB.c.txt Datei anzeigen

@@ -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é

+ 0
- 55
Rapports/190510_170646_1S52CABLE_XX_NO_AA_BB.c.txt Datei anzeigen

@@ -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é

+ 0
- 71
Rapports/190510_171027_1S52CABLE_XX_NO_AA_BB.c.txt Datei anzeigen

@@ -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é

+ 0
- 72
Rapports/190510_171101_1S52CABLE_XX_NO_AA_BB.c.txt Datei anzeigen

@@ -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

+ 64
- 8
Sources/CableTestBench.cpp Datei anzeigen

@@ -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;
}

+ 9
- 0
Sources/CableTestBench.h Datei anzeigen

@@ -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,7 +51,10 @@ public:
int RefreshConnectorsStateRequest();
int SaveReportRequest();
int OpenReportRequest();
int CableConfigChanged();


int TestBenchOptionsChanged();





+ 9
- 3
Sources/CableTestEngine.cpp Datei anzeigen

@@ -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)


+ 3
- 1
Sources/CableTestEngine.h Datei anzeigen

@@ -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();



+ 91
- 8
Sources/CableTestPage.cpp Datei anzeigen

@@ -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();
}

+ 7
- 0
Sources/CableTestPage.h Datei anzeigen

@@ -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

+ 44
- 56
Sources/CableTestPage.ui Datei anzeigen

@@ -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>


+ 2
- 2
Sources/IOModulesInterface.cpp Datei anzeigen

@@ -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);


+ 1
- 1
Sources/IOModulesInterface.h Datei anzeigen

@@ -30,7 +30,7 @@ public:
CIOModulesInterface();
~CIOModulesInterface();

int OpenIOModules();
int OpenIOModules(QString IPAddress);
int CloseIOModules();

int SetOutputs(QBitArray Outputs);


+ 43
- 0
Sources/OptionsPage.cpp Datei anzeigen

@@ -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();
}

+ 14
- 0
Sources/OptionsPage.h Datei anzeigen

@@ -2,6 +2,8 @@
#define OPTIONSPAGE_H

#include <QWidget>
#include "TestBenchSettings.h"


namespace Ui {
class COptionsPage;
@@ -18,9 +20,21 @@ public:
~COptionsPage();

CCableTestBench *mProgramHandle;

int GetCurrentOptions(CTestBenchSettings *Settings);
int SetCurrentOptions(CTestBenchSettings *Settings);
private:
Ui::COptionsPage *ui;

public slots:

void OptionChanged();

signals:
void CurrentOptionsChanged();


};

#endif // OPTIONSPAGE_H

+ 35
- 76
Sources/OptionsPage.ui Datei anzeigen

@@ -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/>


+ 63
- 0
Sources/TestBenchSettings.cpp Datei anzeigen

@@ -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;

}

+ 6
- 1
Sources/TestBenchSettings.h Datei anzeigen

@@ -7,11 +7,16 @@ class CTestBenchSettings
public:
CTestBenchSettings();

int LoadSettings();
int LoadSettingFromFile();
int SaveSettingsToFile();


int mPinHoldTime;
bool mIgnoreVisualInspection;
QString mIOModuleIPAddress;
bool mIncludeLogInReport;




};


+ 20
- 3
Sources/TestReport.cpp Datei anzeigen

@@ -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;


+ 3
- 1
Sources/TestReport.h Datei anzeigen

@@ -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();



+ 1
- 1
ui_CMainPage.h Datei anzeigen

@@ -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!


+ 21
- 28
ui_CableTestPage.h Datei anzeigen

@@ -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));


+ 21
- 34
ui_OptionsPage.h Datei anzeigen

@@ -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

};


+ 1
- 1
ui_VisualInspectionPage.h Datei anzeigen

@@ -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!


Laden…
Abbrechen
Speichern