diff --git a/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/cversions.2.db b/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/cversions.2.db new file mode 100644 index 0000000..6493406 Binary files /dev/null and b/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/cversions.2.db differ diff --git a/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/{6AF0698E-D558-4F6E-9B3C-3716689AF493}.2.ver0x0000000000000001.db b/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/{6AF0698E-D558-4F6E-9B3C-3716689AF493}.2.ver0x0000000000000001.db new file mode 100644 index 0000000..06ae6c4 Binary files /dev/null and b/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/{6AF0698E-D558-4F6E-9B3C-3716689AF493}.2.ver0x0000000000000001.db differ diff --git a/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/{DDF571F2-BE98-426D-8288-1A9A39C3FDA2}.2.ver0x0000000000000001.db b/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/{DDF571F2-BE98-426D-8288-1A9A39C3FDA2}.2.ver0x0000000000000001.db new file mode 100644 index 0000000..111d147 Binary files /dev/null and b/%SystemDrive%/ProgramData/Microsoft/Windows/Caches/{DDF571F2-BE98-426D-8288-1A9A39C3FDA2}.2.ver0x0000000000000001.db differ diff --git a/CableTestBench.pro.user b/CableTestBench.pro.user index cd38a0a..d7360f5 100644 --- a/CableTestBench.pro.user +++ b/CableTestBench.pro.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget diff --git a/Makefile b/Makefile index 8d5242b..58177ff 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: CableTestBench -# Generated by qmake (2.01a) (Qt 4.8.1) on: Wed May 8 14:10:10 2019 +# Generated by qmake (2.01a) (Qt 4.8.1) on: Fri May 10 14:02:01 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 diff --git a/Makefile.Debug b/Makefile.Debug index bb838b9..4f83db7 100644 --- a/Makefile.Debug +++ b/Makefile.Debug @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: CableTestBench -# Generated by qmake (2.01a) (Qt 4.8.1) on: Wed May 8 14:10:10 2019 +# Generated by qmake (2.01a) (Qt 4.8.1) on: Fri May 10 14:02:01 2019 # Project: CableTestBench.pro # Template: app ############################################################################# @@ -71,6 +71,7 @@ SOURCES = Sources\MainWindow.cpp \ debug\moc_ConnectorClickZoneWidget.cpp \ debug\moc_ONOFFStatusWidget.cpp \ debug\moc_ConnectorTestVisualizationWidget.cpp \ + debug\moc_TestReport.cpp \ debug\moc_CableTestEngine.cpp \ debug\moc_OptionsPage.cpp \ debug\moc_IOModulesInterface.cpp \ @@ -106,6 +107,7 @@ OBJECTS = debug/MainWindow.o \ debug/moc_ConnectorClickZoneWidget.o \ debug/moc_ONOFFStatusWidget.o \ debug/moc_ConnectorTestVisualizationWidget.o \ + debug/moc_TestReport.o \ debug/moc_CableTestEngine.o \ debug/moc_OptionsPage.o \ debug/moc_IOModulesInterface.o \ @@ -147,7 +149,7 @@ dist: $(ZIP) CableTestBench.zip $(SOURCES) $(DIST) CableTestBench.pro ..\..\Qt\4.8.1\mkspecs\qconfig.pri ..\..\Qt\4.8.1\mkspecs\modules\qt_webkit_version.pri ..\..\Qt\4.8.1\mkspecs\features\qt_functions.prf ..\..\Qt\4.8.1\mkspecs\features\qt_config.prf ..\..\Qt\4.8.1\mkspecs\features\exclusive_builds.prf ..\..\Qt\4.8.1\mkspecs\features\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\debug.prf ..\..\Qt\4.8.1\mkspecs\features\debug_and_release.prf ..\..\Qt\4.8.1\mkspecs\features\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\build_pass.prf ..\..\Qt\4.8.1\mkspecs\features\declarative_debug.prf ..\..\Qt\4.8.1\mkspecs\features\win32\rtti.prf ..\..\Qt\4.8.1\mkspecs\features\win32\exceptions.prf ..\..\Qt\4.8.1\mkspecs\features\win32\stl.prf ..\..\Qt\4.8.1\mkspecs\features\shared.prf ..\..\Qt\4.8.1\mkspecs\features\warn_on.prf ..\..\Qt\4.8.1\mkspecs\features\qt.prf ..\..\Qt\4.8.1\mkspecs\features\win32\thread.prf ..\..\Qt\4.8.1\mkspecs\features\moc.prf ..\..\Qt\4.8.1\mkspecs\features\win32\windows.prf ..\..\Qt\4.8.1\mkspecs\features\resources.prf ..\..\Qt\4.8.1\mkspecs\features\uic.prf ..\..\Qt\4.8.1\mkspecs\features\yacc.prf ..\..\Qt\4.8.1\mkspecs\features\lex.prf ..\..\Qt\4.8.1\mkspecs\features\include_source_dir.prf c:\Qt\4.8.1\lib\qtmaind.prl HEADERS RESOURCES IMAGES SOURCES OBJECTIVE_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES clean: compiler_clean - -$(DEL_FILE) debug\MainWindow.o debug\main.o debug\MainPage.o debug\CableTestBench.o debug\VisualInspectionPage.o debug\ConnectorSelectWidget.o debug\CableTestPage.o debug\ConnectorClickZoneWidget.o debug\ONOFFStatusWidget.o debug\ConnectorTestVisualizationWidget.o debug\Connector.o debug\Cable.o debug\VisualInspectionResult.o debug\TestReport.o debug\CableTestEngine.o debug\OptionsPage.o debug\CableTestBenchDefs.o debug\IOModulesInterface.o debug\InputConnector.o debug\OutputConnector.o debug\CableParametersData.o debug\AutomatedTestReport.o debug\moc_MainWindow.o debug\moc_MainPage.o debug\moc_CableTestBench.o debug\moc_VisualInspectionPage.o debug\moc_ConnectorSelectWidget.o debug\moc_CableTestPage.o debug\moc_ConnectorClickZoneWidget.o debug\moc_ONOFFStatusWidget.o debug\moc_ConnectorTestVisualizationWidget.o debug\moc_CableTestEngine.o debug\moc_OptionsPage.o debug\moc_IOModulesInterface.o debug\moc_AutomatedTestReport.o + -$(DEL_FILE) debug\MainWindow.o debug\main.o debug\MainPage.o debug\CableTestBench.o debug\VisualInspectionPage.o debug\ConnectorSelectWidget.o debug\CableTestPage.o debug\ConnectorClickZoneWidget.o debug\ONOFFStatusWidget.o debug\ConnectorTestVisualizationWidget.o debug\Connector.o debug\Cable.o debug\VisualInspectionResult.o debug\TestReport.o debug\CableTestEngine.o debug\OptionsPage.o debug\CableTestBenchDefs.o debug\IOModulesInterface.o debug\InputConnector.o debug\OutputConnector.o debug\CableParametersData.o debug\AutomatedTestReport.o debug\moc_MainWindow.o debug\moc_MainPage.o debug\moc_CableTestBench.o debug\moc_VisualInspectionPage.o debug\moc_ConnectorSelectWidget.o debug\moc_CableTestPage.o debug\moc_ConnectorClickZoneWidget.o debug\moc_ONOFFStatusWidget.o debug\moc_ConnectorTestVisualizationWidget.o debug\moc_TestReport.o debug\moc_CableTestEngine.o debug\moc_OptionsPage.o debug\moc_IOModulesInterface.o debug\moc_AutomatedTestReport.o distclean: clean -$(DEL_FILE) $(DESTDIR_TARGET) @@ -159,9 +161,9 @@ mocclean: compiler_moc_header_clean compiler_moc_source_clean mocables: compiler_moc_header_make_all compiler_moc_source_make_all -compiler_moc_header_make_all: debug/moc_MainWindow.cpp debug/moc_MainPage.cpp debug/moc_CableTestBench.cpp debug/moc_VisualInspectionPage.cpp debug/moc_ConnectorSelectWidget.cpp debug/moc_CableTestPage.cpp debug/moc_ConnectorClickZoneWidget.cpp debug/moc_ONOFFStatusWidget.cpp debug/moc_ConnectorTestVisualizationWidget.cpp debug/moc_CableTestEngine.cpp debug/moc_OptionsPage.cpp debug/moc_IOModulesInterface.cpp debug/moc_AutomatedTestReport.cpp +compiler_moc_header_make_all: debug/moc_MainWindow.cpp debug/moc_MainPage.cpp debug/moc_CableTestBench.cpp debug/moc_VisualInspectionPage.cpp debug/moc_ConnectorSelectWidget.cpp debug/moc_CableTestPage.cpp debug/moc_ConnectorClickZoneWidget.cpp debug/moc_ONOFFStatusWidget.cpp debug/moc_ConnectorTestVisualizationWidget.cpp debug/moc_TestReport.cpp debug/moc_CableTestEngine.cpp debug/moc_OptionsPage.cpp debug/moc_IOModulesInterface.cpp debug/moc_AutomatedTestReport.cpp compiler_moc_header_clean: - -$(DEL_FILE) debug\moc_MainWindow.cpp debug\moc_MainPage.cpp debug\moc_CableTestBench.cpp debug\moc_VisualInspectionPage.cpp debug\moc_ConnectorSelectWidget.cpp debug\moc_CableTestPage.cpp debug\moc_ConnectorClickZoneWidget.cpp debug\moc_ONOFFStatusWidget.cpp debug\moc_ConnectorTestVisualizationWidget.cpp debug\moc_CableTestEngine.cpp debug\moc_OptionsPage.cpp debug\moc_IOModulesInterface.cpp debug\moc_AutomatedTestReport.cpp + -$(DEL_FILE) debug\moc_MainWindow.cpp debug\moc_MainPage.cpp debug\moc_CableTestBench.cpp debug\moc_VisualInspectionPage.cpp debug\moc_ConnectorSelectWidget.cpp debug\moc_CableTestPage.cpp debug\moc_ConnectorClickZoneWidget.cpp debug\moc_ONOFFStatusWidget.cpp debug\moc_ConnectorTestVisualizationWidget.cpp debug\moc_TestReport.cpp debug\moc_CableTestEngine.cpp debug\moc_OptionsPage.cpp debug\moc_IOModulesInterface.cpp debug\moc_AutomatedTestReport.cpp debug/moc_MainWindow.cpp: Sources/MainPage.h \ Sources/VisualInspectionPage.h \ Sources/VisualInspectionResult.h \ @@ -191,6 +193,7 @@ debug/moc_CableTestBench.cpp: Sources/MainWindow.h \ Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h \ Sources/CableTestBench.h C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\CableTestBench.h -o debug\moc_CableTestBench.cpp @@ -218,6 +221,14 @@ debug/moc_ConnectorTestVisualizationWidget.cpp: Sources/Widgets/ONOFFStatusWidge Sources/Widgets/ConnectorTestVisualizationWidget.h C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\Widgets\ConnectorTestVisualizationWidget.h -o debug\moc_ConnectorTestVisualizationWidget.cpp +debug/moc_TestReport.cpp: Sources/GlobalDefine.h \ + Sources/VisualInspectionResult.h \ + Sources/CableParametersData.h \ + Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ + Sources/TestReport.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\TestReport.h -o debug\moc_TestReport.cpp + debug/moc_CableTestEngine.cpp: Sources/Cable.h \ Sources/CableTestBenchDefs.h \ Sources/InputConnector.h \ @@ -229,6 +240,7 @@ debug/moc_CableTestEngine.cpp: Sources/Cable.h \ Sources/VisualInspectionResult.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\CableTestEngine.h -o debug\moc_CableTestEngine.cpp @@ -292,6 +304,7 @@ debug/MainWindow.o: Sources/MainWindow.cpp Sources/MainWindow.h \ Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\MainWindow.o Sources\MainWindow.cpp @@ -312,6 +325,7 @@ debug/main.o: Sources/main.cpp Sources/CableTestBench.h \ Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\main.o Sources\main.cpp @@ -336,6 +350,7 @@ debug/CableTestBench.o: Sources/CableTestBench.cpp Sources/CableTestBench.h \ Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\CableTestBench.o Sources\CableTestBench.cpp @@ -357,6 +372,7 @@ debug/VisualInspectionPage.o: Sources/VisualInspectionPage.cpp Sources/VisualIns Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\VisualInspectionPage.o Sources\VisualInspectionPage.cpp @@ -382,6 +398,7 @@ debug/CableTestPage.o: Sources/CableTestPage.cpp Sources/CableTestPage.h \ Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\CableTestPage.o Sources\CableTestPage.cpp @@ -418,7 +435,8 @@ debug/TestReport.o: Sources/TestReport.cpp Sources/TestReport.h \ Sources/GlobalDefine.h \ Sources/VisualInspectionResult.h \ Sources/CableParametersData.h \ - Sources/TestBenchVersion.h + Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\TestReport.o Sources\TestReport.cpp debug/CableTestEngine.o: Sources/CableTestEngine.cpp Sources/CableTestEngine.h \ @@ -433,6 +451,7 @@ debug/CableTestEngine.o: Sources/CableTestEngine.cpp Sources/CableTestEngine.h \ Sources/VisualInspectionResult.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestBench.h \ Sources/MainWindow.h \ Sources/MainPage.h \ @@ -500,6 +519,9 @@ debug/moc_ONOFFStatusWidget.o: debug/moc_ONOFFStatusWidget.cpp debug/moc_ConnectorTestVisualizationWidget.o: debug/moc_ConnectorTestVisualizationWidget.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_ConnectorTestVisualizationWidget.o debug\moc_ConnectorTestVisualizationWidget.cpp +debug/moc_TestReport.o: debug/moc_TestReport.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_TestReport.o debug\moc_TestReport.cpp + debug/moc_CableTestEngine.o: debug/moc_CableTestEngine.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o debug\moc_CableTestEngine.o debug\moc_CableTestEngine.cpp diff --git a/Makefile.Release b/Makefile.Release index e5a5daf..c4a926f 100644 --- a/Makefile.Release +++ b/Makefile.Release @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: CableTestBench -# Generated by qmake (2.01a) (Qt 4.8.1) on: Wed May 8 14:10:10 2019 +# Generated by qmake (2.01a) (Qt 4.8.1) on: Fri May 10 14:02:01 2019 # Project: CableTestBench.pro # Template: app ############################################################################# @@ -71,6 +71,7 @@ SOURCES = Sources\MainWindow.cpp \ release\moc_ConnectorClickZoneWidget.cpp \ release\moc_ONOFFStatusWidget.cpp \ release\moc_ConnectorTestVisualizationWidget.cpp \ + release\moc_TestReport.cpp \ release\moc_CableTestEngine.cpp \ release\moc_OptionsPage.cpp \ release\moc_IOModulesInterface.cpp \ @@ -106,6 +107,7 @@ OBJECTS = release/MainWindow.o \ release/moc_ConnectorClickZoneWidget.o \ release/moc_ONOFFStatusWidget.o \ release/moc_ConnectorTestVisualizationWidget.o \ + release/moc_TestReport.o \ release/moc_CableTestEngine.o \ release/moc_OptionsPage.o \ release/moc_IOModulesInterface.o \ @@ -147,7 +149,7 @@ dist: $(ZIP) CableTestBench.zip $(SOURCES) $(DIST) CableTestBench.pro ..\..\Qt\4.8.1\mkspecs\qconfig.pri ..\..\Qt\4.8.1\mkspecs\modules\qt_webkit_version.pri ..\..\Qt\4.8.1\mkspecs\features\qt_functions.prf ..\..\Qt\4.8.1\mkspecs\features\qt_config.prf ..\..\Qt\4.8.1\mkspecs\features\exclusive_builds.prf ..\..\Qt\4.8.1\mkspecs\features\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_pre.prf ..\..\Qt\4.8.1\mkspecs\features\release.prf ..\..\Qt\4.8.1\mkspecs\features\debug_and_release.prf ..\..\Qt\4.8.1\mkspecs\features\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\win32\default_post.prf ..\..\Qt\4.8.1\mkspecs\features\build_pass.prf ..\..\Qt\4.8.1\mkspecs\features\declarative_debug.prf ..\..\Qt\4.8.1\mkspecs\features\win32\rtti.prf ..\..\Qt\4.8.1\mkspecs\features\win32\exceptions.prf ..\..\Qt\4.8.1\mkspecs\features\win32\stl.prf ..\..\Qt\4.8.1\mkspecs\features\shared.prf ..\..\Qt\4.8.1\mkspecs\features\warn_on.prf ..\..\Qt\4.8.1\mkspecs\features\qt.prf ..\..\Qt\4.8.1\mkspecs\features\win32\thread.prf ..\..\Qt\4.8.1\mkspecs\features\moc.prf ..\..\Qt\4.8.1\mkspecs\features\win32\windows.prf ..\..\Qt\4.8.1\mkspecs\features\resources.prf ..\..\Qt\4.8.1\mkspecs\features\uic.prf ..\..\Qt\4.8.1\mkspecs\features\yacc.prf ..\..\Qt\4.8.1\mkspecs\features\lex.prf ..\..\Qt\4.8.1\mkspecs\features\include_source_dir.prf c:\Qt\4.8.1\lib\qtmain.prl HEADERS RESOURCES IMAGES SOURCES OBJECTIVE_SOURCES FORMS YACCSOURCES YACCSOURCES LEXSOURCES clean: compiler_clean - -$(DEL_FILE) release\MainWindow.o release\main.o release\MainPage.o release\CableTestBench.o release\VisualInspectionPage.o release\ConnectorSelectWidget.o release\CableTestPage.o release\ConnectorClickZoneWidget.o release\ONOFFStatusWidget.o release\ConnectorTestVisualizationWidget.o release\Connector.o release\Cable.o release\VisualInspectionResult.o release\TestReport.o release\CableTestEngine.o release\OptionsPage.o release\CableTestBenchDefs.o release\IOModulesInterface.o release\InputConnector.o release\OutputConnector.o release\CableParametersData.o release\AutomatedTestReport.o release\moc_MainWindow.o release\moc_MainPage.o release\moc_CableTestBench.o release\moc_VisualInspectionPage.o release\moc_ConnectorSelectWidget.o release\moc_CableTestPage.o release\moc_ConnectorClickZoneWidget.o release\moc_ONOFFStatusWidget.o release\moc_ConnectorTestVisualizationWidget.o release\moc_CableTestEngine.o release\moc_OptionsPage.o release\moc_IOModulesInterface.o release\moc_AutomatedTestReport.o + -$(DEL_FILE) release\MainWindow.o release\main.o release\MainPage.o release\CableTestBench.o release\VisualInspectionPage.o release\ConnectorSelectWidget.o release\CableTestPage.o release\ConnectorClickZoneWidget.o release\ONOFFStatusWidget.o release\ConnectorTestVisualizationWidget.o release\Connector.o release\Cable.o release\VisualInspectionResult.o release\TestReport.o release\CableTestEngine.o release\OptionsPage.o release\CableTestBenchDefs.o release\IOModulesInterface.o release\InputConnector.o release\OutputConnector.o release\CableParametersData.o release\AutomatedTestReport.o release\moc_MainWindow.o release\moc_MainPage.o release\moc_CableTestBench.o release\moc_VisualInspectionPage.o release\moc_ConnectorSelectWidget.o release\moc_CableTestPage.o release\moc_ConnectorClickZoneWidget.o release\moc_ONOFFStatusWidget.o release\moc_ConnectorTestVisualizationWidget.o release\moc_TestReport.o release\moc_CableTestEngine.o release\moc_OptionsPage.o release\moc_IOModulesInterface.o release\moc_AutomatedTestReport.o distclean: clean -$(DEL_FILE) $(DESTDIR_TARGET) @@ -159,9 +161,9 @@ mocclean: compiler_moc_header_clean compiler_moc_source_clean mocables: compiler_moc_header_make_all compiler_moc_source_make_all -compiler_moc_header_make_all: release/moc_MainWindow.cpp release/moc_MainPage.cpp release/moc_CableTestBench.cpp release/moc_VisualInspectionPage.cpp release/moc_ConnectorSelectWidget.cpp release/moc_CableTestPage.cpp release/moc_ConnectorClickZoneWidget.cpp release/moc_ONOFFStatusWidget.cpp release/moc_ConnectorTestVisualizationWidget.cpp release/moc_CableTestEngine.cpp release/moc_OptionsPage.cpp release/moc_IOModulesInterface.cpp release/moc_AutomatedTestReport.cpp +compiler_moc_header_make_all: release/moc_MainWindow.cpp release/moc_MainPage.cpp release/moc_CableTestBench.cpp release/moc_VisualInspectionPage.cpp release/moc_ConnectorSelectWidget.cpp release/moc_CableTestPage.cpp release/moc_ConnectorClickZoneWidget.cpp release/moc_ONOFFStatusWidget.cpp release/moc_ConnectorTestVisualizationWidget.cpp release/moc_TestReport.cpp release/moc_CableTestEngine.cpp release/moc_OptionsPage.cpp release/moc_IOModulesInterface.cpp release/moc_AutomatedTestReport.cpp compiler_moc_header_clean: - -$(DEL_FILE) release\moc_MainWindow.cpp release\moc_MainPage.cpp release\moc_CableTestBench.cpp release\moc_VisualInspectionPage.cpp release\moc_ConnectorSelectWidget.cpp release\moc_CableTestPage.cpp release\moc_ConnectorClickZoneWidget.cpp release\moc_ONOFFStatusWidget.cpp release\moc_ConnectorTestVisualizationWidget.cpp release\moc_CableTestEngine.cpp release\moc_OptionsPage.cpp release\moc_IOModulesInterface.cpp release\moc_AutomatedTestReport.cpp + -$(DEL_FILE) release\moc_MainWindow.cpp release\moc_MainPage.cpp release\moc_CableTestBench.cpp release\moc_VisualInspectionPage.cpp release\moc_ConnectorSelectWidget.cpp release\moc_CableTestPage.cpp release\moc_ConnectorClickZoneWidget.cpp release\moc_ONOFFStatusWidget.cpp release\moc_ConnectorTestVisualizationWidget.cpp release\moc_TestReport.cpp release\moc_CableTestEngine.cpp release\moc_OptionsPage.cpp release\moc_IOModulesInterface.cpp release\moc_AutomatedTestReport.cpp release/moc_MainWindow.cpp: Sources/MainPage.h \ Sources/VisualInspectionPage.h \ Sources/VisualInspectionResult.h \ @@ -191,6 +193,7 @@ release/moc_CableTestBench.cpp: Sources/MainWindow.h \ Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h \ Sources/CableTestBench.h C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\CableTestBench.h -o release\moc_CableTestBench.cpp @@ -218,6 +221,14 @@ release/moc_ConnectorTestVisualizationWidget.cpp: Sources/Widgets/ONOFFStatusWid Sources/Widgets/ConnectorTestVisualizationWidget.h C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\Widgets\ConnectorTestVisualizationWidget.h -o release\moc_ConnectorTestVisualizationWidget.cpp +release/moc_TestReport.cpp: Sources/GlobalDefine.h \ + Sources/VisualInspectionResult.h \ + Sources/CableParametersData.h \ + Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ + Sources/TestReport.h + C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\TestReport.h -o release\moc_TestReport.cpp + release/moc_CableTestEngine.cpp: Sources/Cable.h \ Sources/CableTestBenchDefs.h \ Sources/InputConnector.h \ @@ -229,6 +240,7 @@ release/moc_CableTestEngine.cpp: Sources/Cable.h \ Sources/VisualInspectionResult.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h C:\Qt\4.8.1\bin\moc.exe $(DEFINES) $(INCPATH) -D__GNUC__ -DWIN32 Sources\CableTestEngine.h -o release\moc_CableTestEngine.cpp @@ -292,6 +304,7 @@ release/MainWindow.o: Sources/MainWindow.cpp Sources/MainWindow.h \ Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\MainWindow.o Sources\MainWindow.cpp @@ -312,6 +325,7 @@ release/main.o: Sources/main.cpp Sources/CableTestBench.h \ Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\main.o Sources\main.cpp @@ -336,6 +350,7 @@ release/CableTestBench.o: Sources/CableTestBench.cpp Sources/CableTestBench.h \ Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\CableTestBench.o Sources\CableTestBench.cpp @@ -357,6 +372,7 @@ release/VisualInspectionPage.o: Sources/VisualInspectionPage.cpp Sources/VisualI Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\VisualInspectionPage.o Sources\VisualInspectionPage.cpp @@ -382,6 +398,7 @@ release/CableTestPage.o: Sources/CableTestPage.cpp Sources/CableTestPage.h \ Sources/TestReport.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestEngine.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\CableTestPage.o Sources\CableTestPage.cpp @@ -418,7 +435,8 @@ release/TestReport.o: Sources/TestReport.cpp Sources/TestReport.h \ Sources/GlobalDefine.h \ Sources/VisualInspectionResult.h \ Sources/CableParametersData.h \ - Sources/TestBenchVersion.h + Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\TestReport.o Sources\TestReport.cpp release/CableTestEngine.o: Sources/CableTestEngine.cpp Sources/CableTestEngine.h \ @@ -433,6 +451,7 @@ release/CableTestEngine.o: Sources/CableTestEngine.cpp Sources/CableTestEngine.h Sources/VisualInspectionResult.h \ Sources/CableParametersData.h \ Sources/TestBenchVersion.h \ + Sources/AutomatedTestReport.h \ Sources/CableTestBench.h \ Sources/MainWindow.h \ Sources/MainPage.h \ @@ -500,6 +519,9 @@ release/moc_ONOFFStatusWidget.o: release/moc_ONOFFStatusWidget.cpp release/moc_ConnectorTestVisualizationWidget.o: release/moc_ConnectorTestVisualizationWidget.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_ConnectorTestVisualizationWidget.o release\moc_ConnectorTestVisualizationWidget.cpp +release/moc_TestReport.o: release/moc_TestReport.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_TestReport.o release\moc_TestReport.cpp + release/moc_CableTestEngine.o: release/moc_CableTestEngine.cpp $(CXX) -c $(CXXFLAGS) $(INCPATH) -o release\moc_CableTestEngine.o release\moc_CableTestEngine.cpp diff --git a/Rapports/190510_164434_1S52CABLE_XX_NO_AA_BB.c.txt b/Rapports/190510_164434_1S52CABLE_XX_NO_AA_BB.c.txt new file mode 100644 index 0000000..2b372d7 --- /dev/null +++ b/Rapports/190510_164434_1S52CABLE_XX_NO_AA_BB.c.txt @@ -0,0 +1,52 @@ +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é diff --git a/Rapports/190510_164450_1S52CABLE_XX_NO_AA_BB.c.txt b/Rapports/190510_164450_1S52CABLE_XX_NO_AA_BB.c.txt new file mode 100644 index 0000000..e3103a8 --- /dev/null +++ b/Rapports/190510_164450_1S52CABLE_XX_NO_AA_BB.c.txt @@ -0,0 +1,68 @@ +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é diff --git a/Sources/AutomatedTestReport.cpp b/Sources/AutomatedTestReport.cpp index e320a83..4df1eee 100644 --- a/Sources/AutomatedTestReport.cpp +++ b/Sources/AutomatedTestReport.cpp @@ -10,6 +10,7 @@ int CAutomatedTestReport::ClearAutomatedTestReport() { mTestPinsResult.clear(); mPinCount = 0; + mPreTestResult = AUTO_TEST_RESULT_UNKNOWN; return RET_OK; } @@ -39,6 +40,20 @@ int CAutomatedTestReport::SetPinResult(int PinNumber, bool ContinuityPassed, boo return RET_OK; } +int CAutomatedTestReport::SetPinTestAllPassed(int PinNumber) +{ + int ZeroBasedPinIndex = PinNumber - 1; + if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash. + { + return RET_ERROR; + } + + mTestPinsResult[ZeroBasedPinIndex].mIsolationTestPass = true; + mTestPinsResult[ZeroBasedPinIndex].mContinuityTestPass = true; + mTestPinsResult[ZeroBasedPinIndex].mPinAssignationTestPass = true; + return RET_OK; +} + int CAutomatedTestReport::SetPinContinuityResult(int PinNumber,bool ContinuityPassed) { @@ -66,6 +81,23 @@ int CAutomatedTestReport::SetPinIsolationResult(int PinNumber, bool IsolationPas return RET_OK; } +int CAutomatedTestReport::SetPinConcordanceTestResult(int PinNumber, bool AssignationTestPassed, int WrongPinNbr) +{ + int ZeroBasedPinIndex = PinNumber - 1; + if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash. + { + return RET_ERROR; + } + + mTestPinsResult[ZeroBasedPinIndex].mPinAssignationTestPass = AssignationTestPassed; + if(AssignationTestPassed == false) + { + mTestPinsResult[ZeroBasedPinIndex].mWrongAssignationPinNbr = WrongPinNbr; + } + + return RET_OK; +} + int CAutomatedTestReport::SetPinSecondTestResult(int PinNumber, bool SecondTestPassed) { int ZeroBasedPinIndex = PinNumber - 1; @@ -79,16 +111,172 @@ int CAutomatedTestReport::SetPinSecondTestResult(int PinNumber, bool SecondTestP return RET_OK; } +int CAutomatedTestReport::AddShortedPinToPinTest(int PinNumber, int ShortedPinNumber) +{ + int ZeroBasedPinIndex = PinNumber - 1; + if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash. + { + return RET_ERROR; + } + + mTestPinsResult[ZeroBasedPinIndex].mShortedPinsList.append(ShortedPinNumber); + + return RET_OK; +} + +int CAutomatedTestReport::SetPreTestResult(bool PreTestPassed) +{ + mPreTestResult = PreTestPassed; + return RET_OK; +} + CPinTestResult::CPinTestResult(int PinNumber) { mPinNumber = PinNumber; - mContinuityTestPass = PIN_TEST_RESULT_UNKNOWN; - mIsolationTestPass = PIN_TEST_RESULT_UNKNOWN; - mSecondTestPass = PIN_TEST_RESULT_UNKNOWN; + mContinuityTestPass = AUTO_TEST_RESULT_UNKNOWN; + mIsolationTestPass = AUTO_TEST_RESULT_UNKNOWN; + mPinAssignationTestPass = AUTO_TEST_RESULT_UNKNOWN; + mSecondTestPass = AUTO_TEST_RESULT_UNKNOWN; mShortedPinsList.clear(); + mWrongAssignationPinNbr = 0; + } CPinTestResult::~CPinTestResult() { mShortedPinsList.clear(); } + +bool CPinTestResult::IsPinTestSuccess() +{ + if(mPinNumber > 0 && + mContinuityTestPass == AUTO_TEST_SUCCESS && + mIsolationTestPass == AUTO_TEST_SUCCESS && + mPinAssignationTestPass == AUTO_TEST_SUCCESS) //TODO: Add 2nd pass result. + { + return true; + } + + return false; +} + + + +QString CAutomatedTestReport::GetPinIsolationResult(int PinNumber) +{ + int ZeroBasedPinIndex = PinNumber - 1; + if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash. + { + return QString("?"); + } + + if(mTestPinsResult[ZeroBasedPinIndex].mIsolationTestPass == AUTO_TEST_RESULT_UNKNOWN) + { + return QString("N/A"); + } + else if(mTestPinsResult[ZeroBasedPinIndex].mIsolationTestPass == AUTO_TEST_SUCCESS) + { + return QString("Succès"); + } + else if(mTestPinsResult[ZeroBasedPinIndex].mIsolationTestPass == AUTO_TEST_FAILED) + { + QString Result("Échec["); + for(int i = 0; i < mTestPinsResult[ZeroBasedPinIndex].mShortedPinsList.size(); i++) + { + Result.append(QString("%1").arg(mTestPinsResult[ZeroBasedPinIndex].mShortedPinsList.at(i))); + if(i != mTestPinsResult[ZeroBasedPinIndex].mShortedPinsList.size() - 1) + { + Result.append(","); + } + } + Result.append("]"); + return Result; + } + return QString("?"); +} + +QString CAutomatedTestReport::GetPinContinuityResult(int PinNumber) +{ + int ZeroBasedPinIndex = PinNumber - 1; + if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash. + { + return QString("?"); + } + + if(mTestPinsResult[ZeroBasedPinIndex].mContinuityTestPass == AUTO_TEST_RESULT_UNKNOWN) + { + return QString("N/A"); + } + else if(mTestPinsResult[ZeroBasedPinIndex].mContinuityTestPass == AUTO_TEST_SUCCESS) + { + return QString("Succès"); + } + else if(mTestPinsResult[ZeroBasedPinIndex].mContinuityTestPass == AUTO_TEST_FAILED) + { + return QString("Échec"); + } + return QString("?"); +} +QString CAutomatedTestReport::GetPinConcordanceResult(int PinNumber) +{ + int ZeroBasedPinIndex = PinNumber - 1; + if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash. + { + return QString("?"); + } + + if(mTestPinsResult[ZeroBasedPinIndex].mPinAssignationTestPass == AUTO_TEST_RESULT_UNKNOWN) + { + return QString("N/A"); + } + else if(mTestPinsResult[ZeroBasedPinIndex].mPinAssignationTestPass == AUTO_TEST_SUCCESS) + { + return QString("Succès"); + } + else if(mTestPinsResult[ZeroBasedPinIndex].mPinAssignationTestPass == AUTO_TEST_FAILED) + { + return QString("Échec[%1]").arg(mTestPinsResult[ZeroBasedPinIndex].mWrongAssignationPinNbr); + } + return QString("?"); +} +QString CAutomatedTestReport::GetPinSecondTestResult(int PinNumber) +{ + int ZeroBasedPinIndex = PinNumber - 1; + if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash. + { + return QString("?"); + } + + if(mTestPinsResult[ZeroBasedPinIndex].mSecondTestPass == AUTO_TEST_RESULT_UNKNOWN) + { + return QString("N/A"); + } + else if(mTestPinsResult[ZeroBasedPinIndex].mSecondTestPass == AUTO_TEST_SUCCESS) + { + return QString("Succès"); + } + else if(mTestPinsResult[ZeroBasedPinIndex].mSecondTestPass == AUTO_TEST_FAILED) + { + return QString("Échec"); + } + return QString("?"); +} + +bool CAutomatedTestReport::IsAutomatedTestSuccess() +{ + if(mPinCount == 0) + { + return false; + } + + for(int i = 0; i < mTestPinsResult.size(); i++) + { + if(mTestPinsResult[i].IsPinTestSuccess() == false) + { + return false; + } + } + + + return true; +} diff --git a/Sources/AutomatedTestReport.h b/Sources/AutomatedTestReport.h index bd2db75..00ec31b 100644 --- a/Sources/AutomatedTestReport.h +++ b/Sources/AutomatedTestReport.h @@ -6,6 +6,13 @@ class CPinTestResult; +enum eAutoTestResultDef +{ + AUTO_TEST_FAILED, + AUTO_TEST_SUCCESS, + AUTO_TEST_RESULT_UNKNOWN +}; + class CAutomatedTestReport : public QObject { Q_OBJECT @@ -14,15 +21,29 @@ public: int ClearAutomatedTestReport(); int SetPinCount(int Pincount); + int GetPinCount(){return mPinCount;} int SetPinResult(int PinNumber,bool ContinuityPassed, bool IsolationPassed); + int SetPinTestAllPassed(int PinNumber); int SetPinContinuityResult(int PinNumber,bool ContinuityPassed); int SetPinIsolationResult(int PinNumber, bool IsolationPassed); + int SetPinConcordanceTestResult(int PinNumber, bool AssignationTestPassed, int WrongPinNbr); int SetPinSecondTestResult(int PinNumber, bool SecondTestPassed); + int AddShortedPinToPinTest(int PinNumber,int ShortedPinNumber); + bool IsAutomatedTestSuccess(); + + QString GetPinIsolationResult(int PinNumber); + QString GetPinContinuityResult(int PinNumber); + QString GetPinConcordanceResult(int PinNumber); + QString GetPinSecondTestResult(int PinNumber); + QString GetShortedPins(int PinNumber); + QString GetWrongPin(int PinNumber); + + int SetPreTestResult(bool PreTestPassed); -private: QList mTestPinsResult; int mPinCount; + int mPreTestResult; signals: @@ -33,22 +54,26 @@ public slots: class CPinTestResult { public: - enum ePinTestResultDef - { - PIN_TEST_FAILED, - PIN_TEST_SUCCESS, - PIN_TEST_RESULT_UNKNOWN - }; +// enum ePinTestResultDef +// { +// PIN_TEST_FAILED, +// PIN_TEST_SUCCESS, +// PIN_TEST_RESULT_UNKNOWN +// }; explicit CPinTestResult(int PinNumber); ~CPinTestResult(); + bool IsPinTestSuccess(); + int mPinNumber; int mContinuityTestPass; int mIsolationTestPass; + int mPinAssignationTestPass; int mSecondTestPass; QList mShortedPinsList; + int mWrongAssignationPinNbr; }; diff --git a/Sources/CableParametersData.cpp b/Sources/CableParametersData.cpp index 19eb484..0e57e60 100644 --- a/Sources/CableParametersData.cpp +++ b/Sources/CableParametersData.cpp @@ -19,9 +19,10 @@ int CCableParametersData::ResetData() return RET_OK; } -int CCableParametersData::SetCableParams(QString StationName, QString CableIdentification, QString CableType, QString OperatorName) +int CCableParametersData::SetCableParams(QString StationName, QString StationCode, QString CableIdentification, QString CableType, QString OperatorName) { mStationName = StationName; + mStationCodeName = StationCode; mCableIdentification = CableIdentification; mCableType = CableType; mTestOperatorName = OperatorName; diff --git a/Sources/CableParametersData.h b/Sources/CableParametersData.h index 532fd3c..ae3b8d1 100644 --- a/Sources/CableParametersData.h +++ b/Sources/CableParametersData.h @@ -11,13 +11,13 @@ public: int ResetData(); - int SetCableParams(QString StationName, QString CableIdentification, QString CableType, QString OperatorName); + int SetCableParams(QString StationName, QString StationCode, QString CableIdentification, QString CableType, QString OperatorName); int SetCableType(QString InputConnectortype, QString OutputConnectorType); -private: QString mStationName; + QString mStationCodeName; QString mCableIdentification; //Cable name QString mCableType; //permanent or temporary QString mTestOperatorName; diff --git a/Sources/CableTestBench.cpp b/Sources/CableTestBench.cpp index fd55770..91bebe5 100644 --- a/Sources/CableTestBench.cpp +++ b/Sources/CableTestBench.cpp @@ -1,6 +1,8 @@ #include "CableTestBench.h" #include #include "CableTestBenchDefs.h" +#include +#include CCableTestBench::CCableTestBench(QObject *parent) : QObject(parent), @@ -30,6 +32,7 @@ int CCableTestBench::Start() mIOInterface.OpenIOModules(); mCableTestPageHandle->mGuiRefreshTimer.start(); + connect(&mCableTestReport,SIGNAL(NewTestLogEntry(QString)),mCableTestPageHandle,SLOT(AddTestLogEntry(QString))); return 1; } @@ -39,6 +42,11 @@ CCable * CCableTestBench::GetActualCable() return &mActualCable; } +CTestReport *CCableTestBench::GetTestReportHandle() +{ + return &mCableTestReport; +} + quint8 CCableTestBench::DecToBCDByte(const quint8 byte) { quint8 out = 0; @@ -114,7 +122,7 @@ int CCableTestBench::StartPauseAutomaticTestRequest() mCableTestPageHandle->FillReportCableParametersData(mCableTestReport.GetReportCableParameters()); mCableTestReport.GetReportCableParameters()->SetCableType(CConnectorDefs::GetConnectorDescription(mActualCable.GetInputConnector()->GetConnectorType()), CConnectorDefs::GetConnectorDescription(mActualCable.GetOutputConnector()->GetConnectorType())); - mCableTestReport.GetAutomatedTestReport()->SetPinCount(mActualCable.mOutputConnector.GetPinCount()); + mCableTestReport.GetAutomatedTestReport()->SetPinCount(mActualCable.GetOutputConnector()->GetPinCount()); mCableTestEngine.StartAutomatedTest(); return RET_OK; @@ -200,6 +208,19 @@ int CCableTestBench::CableEngineModeChanged(CCableTestEngine::eCableTestEngineMo case CCableTestEngine::CABLE_TEST_STBY_MODE: { mCableTestPageHandle->CableTestEnded(); + if(mCableTestReport.IsAutoTestReportReady()) + { + SaveReportRequest(); + mCableTestPageHandle->EnableOpenReportBtn(); + if(mCableTestReport.GetGlobalAutoTestResult() == true) + { + mCableTestPageHandle->SetAutoTestResult("Succès!",Qt::darkGreen); + } + else + { + mCableTestPageHandle->SetAutoTestResult("Échec",Qt::red); + } + } break; } case CCableTestEngine::CABLE_AUTO_TEST_RUNNING_MODE: @@ -239,3 +260,28 @@ int CCableTestBench::RefreshConnectorsStateRequest() mCableTestPageHandle->SetOutputConnectorState(mActualCable.GetOutputConnector()->GetOutputPinsStates()); return RET_OK; } + +int CCableTestBench::SaveReportRequest() +{ + return mCableTestReport.SaveReportToFile(); +} + +int CCableTestBench::OpenReportRequest() +{ + QString ReportFile = mCableTestReport.GetLastReportFileName(); + if(ReportFile.isEmpty()) + { + return RET_ERROR; + } + + QFileInfo FileInfo(ReportFile); + QString Command =FileInfo.absoluteFilePath(); + Command.prepend("notepad.exe "); + + + QProcess *process = new QProcess; + process->start(Command); + //QProcess::execute(Command); + + return RET_OK; +} diff --git a/Sources/CableTestBench.h b/Sources/CableTestBench.h index 251ce71..fb556a5 100644 --- a/Sources/CableTestBench.h +++ b/Sources/CableTestBench.h @@ -32,6 +32,7 @@ public: CCable mActualCable; CCableTestEngine mCableTestEngine; + CIOModulesInterface mIOInterface; int ExecVisualInspectionRequest(); @@ -42,11 +43,17 @@ public: int StartStopManualTestRequest(); int ManualPinToggleRequest(int ConnectorPinNbr); int RefreshConnectorsStateRequest(); + int SaveReportRequest(); + int OpenReportRequest(); + + CCable *SetSelectedConnector(CConnectorDefs::eConnectorType ConType); CCable *GetActualCable(); + CTestReport* GetTestReportHandle(); + int CableEngineModeChanged(CCableTestEngine::eCableTestEngineMode Mode); diff --git a/Sources/CableTestBenchDefs.cpp b/Sources/CableTestBenchDefs.cpp index 52f4310..43f5220 100644 --- a/Sources/CableTestBenchDefs.cpp +++ b/Sources/CableTestBenchDefs.cpp @@ -20,14 +20,14 @@ const int CConnectorDefs::ConnPinCount[NB_CONNECTOR_TYPE] = {0, 6, 14, 24, 72, 9 const char* CConnectorDefs::ConnectorDescription[NB_CONNECTOR_TYPE] = {"Connecteur inconnu ou invalide", "Connecteur circulaire 6 contacts", - "Connecteur circulair 14 contacts", + "Connecteur circulaire 14 contacts", "Connecteur Amphenol rectangulaire 24 contacts", "Connecteur Amphenol rectangulaire 72 contacts", "Connecteur Souriau rectangulaire 90 contacts", "Connecteur Amphenol rectangulaire 108 contacts", "Connecteur Souriau rectangulaire 120 contacts", "Connecteur circulaire 6 contacts", - "Connecteur circulair 14 contacts", + "Connecteur circulaire 14 contacts", "Connecteur Amphenol rectangulaire 24 contacts", "Connecteur Amphenol rectangulaire 72 contacts", "Connecteur Amphenol rectangulaire 108 contacts"}; @@ -83,3 +83,4 @@ const char * CConnectorDefs::GetConnectorDescription(eConnectorType type) return ConnectorDescription[type]; } + diff --git a/Sources/CableTestBenchDefs.h b/Sources/CableTestBenchDefs.h index 73af806..da9b4e4 100644 --- a/Sources/CableTestBenchDefs.h +++ b/Sources/CableTestBenchDefs.h @@ -1,5 +1,6 @@ #ifndef CABLETESTBENCHDEFS_H #define CABLETESTBENCHDEFS_H +#include class CConnectorDefs diff --git a/Sources/CableTestEngine.cpp b/Sources/CableTestEngine.cpp index f8b3f69..9a3cfb5 100644 --- a/Sources/CableTestEngine.cpp +++ b/Sources/CableTestEngine.cpp @@ -18,6 +18,9 @@ int CCableTestEngine::InitCableTestEngine(CCableTestBench *ProgramHandle) mTestCable = ProgramHandle->GetActualCable(); mTestInputConnectorHandle = mTestCable->GetInputConnector(); mTestOutputConnectorHandle = mTestCable->GetOutputConnector(); + mTestReportHandle = ProgramHandle->GetTestReportHandle(); + mAutoTestReportHandle = mTestReportHandle->GetAutomatedTestReport(); + mCableTestSMTimer = new QTimer(); @@ -27,7 +30,7 @@ int CCableTestEngine::InitCableTestEngine(CCableTestBench *ProgramHandle) connect(mCableTestSMTimer,SIGNAL(timeout()),this,SLOT(SMTimerExpired())); //TODO: Get this from the options page... - mPinHoldTime = 500; //ms + mPinHoldTime = 300; //ms CableTestEngineStateMachine(CABLE_TEST_TICK_SM_EVENT); @@ -76,7 +79,8 @@ void CCableTestEngine::CableTestEngineStateMachine(int Event) mCableTestGPTimer.start(); - qDebug("Test automatique démarré..."); + //qDebug("Test automatique démarré..."); + mTestReportHandle->AddLogEntry(QString("Démarrage du test automatique.")); break; }//case CABLE_TEST_START_AUTOMATED_TEST_STATE @@ -88,15 +92,33 @@ void CCableTestEngine::CableTestEngineStateMachine(int Event) } else { - if(mTestOutputConnectorHandle->GetOutputPinsStates().count(true) != 0) + QBitArray Out = mTestOutputConnectorHandle->GetOutputPinsStates(); + if(Out.count(true) != 0) { //TODO: Manage this failure mode - qDebug("Échec de l'auto test des modules de sortie"); + mAutoTestReportHandle->SetPreTestResult(false); + // qDebug("Échec de l'auto test des modules d'I/O"); + QString LogString = QString("Échec de l'auto test des modules de sortie. %1 contacts sont activés : "); + + for(int pin = 0; pin < Out.count(); pin++) + { + if(Out.at(pin)) + { + mAutoTestReportHandle->AddShortedPinToPinTest(mCurPinUnderTest,pin+1); + LogString.append(QString("[%1], ")); + } + } + + mTestReportHandle->AddLogEntry(LogString); + mCableTestSMState = CABLE_AUTO_TEST_END_TEST_STATE; + break; } else { mCurPinUnderTest = 1; mTestOutputConnectorHandle->SetSinglePin(mCurPinUnderTest); + mAutoTestReportHandle->SetPreTestResult(true); + mTestReportHandle->AddLogEntry(QString("Succès de l'auto test des modules d'I/O")); //OK } @@ -125,27 +147,52 @@ void CCableTestEngine::CableTestEngineStateMachine(int Event) if(In.count(true) != 1) //check if only 1 input pin is active { - //TODO: Manage this failure mode - if(In.count(true) == 0) //Check if no input pin is active { - qDebug("Échec du test du contact %d : aucune pin activée en entrée",mCurPinUnderTest); + mAutoTestReportHandle->SetPinContinuityResult(mCurPinUnderTest,false); +// qDebug("Échec du test du contact %d : aucune pin activée en entrée",mCurPinUnderTest); + mTestReportHandle->AddLogEntry(QString("Échec du test du contact %1 : aucun contact activé en entrée").arg(mCurPinUnderTest)); } else //If here, many input pins are active... { - qDebug("Échec du test du contact %d : plusieurs (%d) pins activées en entrée",mCurPinUnderTest,In.count(true)); + QString LogString = QString("Échec du test d'isolation du contact %1 : (%2) contacts activés en entrée : ").arg(mCurPinUnderTest).arg(In.count(true)); + mAutoTestReportHandle->SetPinIsolationResult(mCurPinUnderTest,false); + for(int pin = 0; pin < In.count(); pin++) + { + if(In.at(pin)) + { + mAutoTestReportHandle->AddShortedPinToPinTest(mCurPinUnderTest,pin+1); + LogString.append(QString("[%1]").arg(pin+1)); + } + } + // qDebug("Échec du test d'isolation du contact %d : (%d) contacts activés en entrée",mCurPinUnderTest,In.count(true)); + mTestReportHandle->AddLogEntry(LogString); } } else if(In.at(mCurPinUnderTest-1) == false) { //TODO: Manage this failure mode - //the output pin isn't set... - qDebug("Échec du test du contact %d: mauvais contact activé en entrée",mCurPinUnderTest); + //the wrong pin is set on the input... find which + + int WrongPin = 0; + for(int pin = 0; pin < In.count(); pin++) + { + if(In.at(pin)) + { + WrongPin = pin+1; + break; + } + } + mAutoTestReportHandle->SetPinConcordanceTestResult(mCurPinUnderTest,false,WrongPin); + mTestReportHandle->AddLogEntry(QString("Échec du test d'assignation du contact %1: le contact %2 est activé.").arg(mCurPinUnderTest).arg(WrongPin)); + // qDebug("Échec du test d'assignation du contact %d: le contact %d est activé.",mCurPinUnderTest); } else { //Pin test passed. Test the next one - qDebug("Succès du test du contact %d", mCurPinUnderTest); + mAutoTestReportHandle->SetPinTestAllPassed(mCurPinUnderTest); + // qDebug("Succès du test du contact %d", mCurPinUnderTest); + mTestReportHandle->AddLogEntry(QString("Succès du test du contact %1").arg(mCurPinUnderTest)); } mCurPinUnderTest++; if(mCurPinUnderTest > (mTestOutputConnectorHandle->GetPinCount())) @@ -166,13 +213,15 @@ void CCableTestEngine::CableTestEngineStateMachine(int Event) { mCableTestSMState = CABLE_AUTO_TEST_PAUSE_STATE; mProgramHandle->CableEngineModeChanged(GetTestEngineCurrentMode()); - qDebug("Test mis en pause..."); +// qDebug("Test mis en pause..."); + mTestReportHandle->AddLogEntry(QString("Test mis en pause")); break; } case CABLE_TEST_CANCEL_AUTO_TEST_SM_EVENT: { mCableTestSMState = CABLE_AUTO_TEST_END_TEST_STATE; - qDebug("Test annulé..."); +// qDebug("Test annulé..."); + mTestReportHandle->AddLogEntry(QString("Test annulé par l'utilisateur")); break; } default: @@ -193,13 +242,15 @@ void CCableTestEngine::CableTestEngineStateMachine(int Event) { mCableTestSMState = CABLE_AUTO_TEST_PINS_STATE; mProgramHandle->CableEngineModeChanged(GetTestEngineCurrentMode()); - qDebug("Test redémarré..."); +// qDebug("Test redémarré..."); + mTestReportHandle->AddLogEntry(QString("Test redémarré...")); break; } case CABLE_TEST_CANCEL_AUTO_TEST_SM_EVENT: { mCableTestSMState = CABLE_AUTO_TEST_END_TEST_STATE; - qDebug("Test annulé..."); +// qDebug("Test annulé..."); + mTestReportHandle->AddLogEntry(QString("Test annulé par l'utilisateur")); break; } default: @@ -213,7 +264,8 @@ void CCableTestEngine::CableTestEngineStateMachine(int Event) case CABLE_AUTO_TEST_END_TEST_STATE: { - qDebug("Test automatique terminé..."); +// qDebug("Test automatique terminé..."); + mTestReportHandle->AddLogEntry(QString("Test automatique terminé")); mTestOutputConnectorHandle->ClearAllPins(); mCableTestSMState = CABLE_TEST_STBY_STATE; mProgramHandle->CableEngineModeChanged(GetTestEngineCurrentMode()); @@ -223,7 +275,8 @@ void CCableTestEngine::CableTestEngineStateMachine(int Event) case CABLE_TEST_START_MANUAL_TEST_STATE: { mTestOutputConnectorHandle->ClearAllPins(); - qDebug("Entrée en mode test manuel"); + // qDebug("Entrée en mode test manuel"); + mTestReportHandle->AddLogEntry(QString("Entrée en mode test manuel")); mCableTestSMState = CABLE_MANUAL_TEST_PINS_STATE; mProgramHandle->CableEngineModeChanged(GetTestEngineCurrentMode()); break; @@ -252,6 +305,7 @@ void CCableTestEngine::CableTestEngineStateMachine(int Event) mTestOutputConnectorHandle->ClearAllPins(); mCableTestSMState = CABLE_TEST_STBY_STATE; mProgramHandle->CableEngineModeChanged(GetTestEngineCurrentMode()); + mTestReportHandle->AddLogEntry(QString("Fin du test manuel")); break; } } diff --git a/Sources/CableTestEngine.h b/Sources/CableTestEngine.h index 41f50e6..ee2678b 100644 --- a/Sources/CableTestEngine.h +++ b/Sources/CableTestEngine.h @@ -79,6 +79,8 @@ private: QTimer *mCableTestSMTimer; QElapsedTimer mCableTestGPTimer; + CAutomatedTestReport *mAutoTestReportHandle; + CTestReport *mTestReportHandle; void CableTestEngineStateMachine(int Event); diff --git a/Sources/CableTestPage.cpp b/Sources/CableTestPage.cpp index 569952f..ec4928a 100644 --- a/Sources/CableTestPage.cpp +++ b/Sources/CableTestPage.cpp @@ -3,6 +3,7 @@ #include "CableTestBench.h" #include #include "CableParametersData.h" +#include CCableTestPage::CCableTestPage(QWidget *parent) : QWidget(parent), @@ -14,6 +15,15 @@ CCableTestPage::CCableTestPage(QWidget *parent) : ui->setupUi(this); mProgramHandle = 0; + ui->mStationNameCombo->insertItem(0,"Frontenac",QVariant("1S52")); + ui->mStationNameCombo->insertItem(1,"Côte-Vertu",QVariant("2S22")); + ui->mStationNameCombo->insertItem(2,"Angrignon",QVariant("1S18")); + ui->mStationNameCombo->insertItem(3,"Garage Angrignon",QVariant("1G17")); + ui->mStationNameCombo->insertItem(4,"Atwater",QVariant("1S34")); + ui->mStationNameCombo->insertItem(5,"Lionel-Groulx",QVariant("1S32")); + ui->mStationNameCombo->insertItem(6,"Viau",QVariant("1S60")); + + mInspectionNotDonePixmap = QPixmap("./images/todo.png").scaled(ui->mInspectionDoneIcon->geometry().width(),ui->mInspectionDoneIcon->geometry().height()); mInspectionDonePixmap = QPixmap("./images/done1.png").scaled(ui->mInspectionDoneIcon->geometry().width(),ui->mInspectionDoneIcon->geometry().height()); ui->mInspectionDoneIcon->setPixmap(mInspectionNotDonePixmap); @@ -35,6 +45,8 @@ CCableTestPage::CCableTestPage(QWidget *parent) : connect(ui->mStartManualTestBtn,SIGNAL(clicked()),this,SLOT(StartManualTestBtnClicked())); connect(ui->mOutputTestVisualisationWidget,SIGNAL(PinClicked(int)),this,SLOT(OutputConnectorPinClicked(int))); connect(&mGuiRefreshTimer,SIGNAL(timeout()),this,SLOT(GuiRefreshTimerExpired())); + connect(ui->mSaveReportBtn,SIGNAL(clicked()),this,SLOT(SaveReportBtnClicked())); + connect(ui->mOpenReportBtn,SIGNAL(clicked()),this,SLOT(OpenReportBtnClicked())); @@ -44,6 +56,8 @@ CCableTestPage::CCableTestPage(QWidget *parent) : ui->mStartTestBtn->setEnabled(false); ui->mStartManualTestBtn->setEnabled(false); ui->mOutputTestVisualisationWidget->DisablePinClicks(); + // ui->mOpenReportBtn->setEnabled(false); + ResetCable(); @@ -127,6 +141,12 @@ int CCableTestPage::ResetCable() //Clear connector selection zone ui->mConnectorSelectWidget->ClearAllConnectorsSelections(); + ui->mTestLogTextBox->clear(); + + ui->mSaveReportBtn->setEnabled(false); + ui->mOpenReportBtn->setEnabled(false); + SetAutoTestResult(""); + return RET_OK; } @@ -149,7 +169,8 @@ int CCableTestPage::CableAutomaticTestStarted() { ui->mStartManualTestBtn->setEnabled(false); DisableGuiForTest(); - ui->mStartTestBtn->setText("Pauser Test"); + ui->mStartTestBtn->setText("Interrompre Test"); + SetAutoTestResult("En Cours...",Qt::black); return RET_OK; } @@ -168,6 +189,8 @@ int CCableTestPage::CableTestEnded() ui->mStartTestBtn->setText("Démarrer Test"); ui->mStartManualTestBtn->setText("Démarrer"); ui->mReinitTestBtn->setEnabled(true); + ui->mSaveReportBtn->setEnabled(true); + return RET_OK; } @@ -178,6 +201,7 @@ int CCableTestPage::CableManualTestStarted() DisableGuiForTest(); ui->mStartManualTestBtn->setText("Terminer"); ui->mReinitTestBtn->setEnabled(false); + ui->mSaveReportBtn->setEnabled(false); return RET_OK; } @@ -241,6 +265,42 @@ void CCableTestPage::hideEvent(QHideEvent *event) int CCableTestPage::FillReportCableParametersData(CCableParametersData *ReportPtr) { - ReportPtr->SetCableParams(ui->mStationNameCombo->currentText(),ui->mIdentCableEditBox->text(),ui->mTypeCableCombo->currentText(),ui->mNomTesteurEditBox->text()); + ReportPtr->SetCableParams(ui->mStationNameCombo->currentText(), + ui->mStationNameCombo->itemData(ui->mStationNameCombo->currentIndex()).toString(), + ui->mIdentCableEditBox->text(), + ui->mTypeCableCombo->currentText(), + ui->mNomTesteurEditBox->text()); + return RET_OK; +} + +void CCableTestPage::AddTestLogEntry(QString Entry) +{ + ui->mTestLogTextBox->insertPlainText(Entry); + ui->mTestLogTextBox->verticalScrollBar()->setValue(ui->mTestLogTextBox->verticalScrollBar()->maximum()); +} + +void CCableTestPage::SaveReportBtnClicked() +{ + mProgramHandle->SaveReportRequest(); +} + +void CCableTestPage::OpenReportBtnClicked() +{ + mProgramHandle->OpenReportRequest(); +} + +int CCableTestPage::EnableOpenReportBtn() +{ + ui->mOpenReportBtn->setEnabled(true); + return RET_OK; +} + +int CCableTestPage::SetAutoTestResult(QString Result, QColor color) +{ + QPalette pal; + pal.setColor(QPalette::WindowText,color); + ui->mAutoTestResultLabel->setPalette(pal); + ui->mAutoTestResultLabel->setText(Result); + return RET_OK; } diff --git a/Sources/CableTestPage.h b/Sources/CableTestPage.h index 2b54c86..e92e3e9 100644 --- a/Sources/CableTestPage.h +++ b/Sources/CableTestPage.h @@ -37,6 +37,9 @@ public: int CableTestEnded(); int CableManualTestStarted(); + int SetAutoTestResult(QString Result, QColor color = Qt::black); + int EnableOpenReportBtn(); + int SetInputConnectorState(QBitArray PinStates); int SetOutputConnectorState(QBitArray PinStates); @@ -66,6 +69,9 @@ public slots: void StartManualTestBtnClicked(); void OutputConnectorPinClicked(int PinNbr); void GuiRefreshTimerExpired(); + void AddTestLogEntry(QString Entry); + void SaveReportBtnClicked(); + void OpenReportBtnClicked(); }; #endif // CABLETESTPAGE_H diff --git a/Sources/CableTestPage.ui b/Sources/CableTestPage.ui index 0201977..93949da 100644 --- a/Sources/CableTestPage.ui +++ b/Sources/CableTestPage.ui @@ -82,43 +82,7 @@ - - - - Frontenac - - - - - Côte-Vertu - - - - - Angrignon - - - - - Garage Angrignon - - - - - Atwater - - - - - Lionel-Groulx - - - - - Viau - - - + @@ -478,6 +442,19 @@ + + + + 360 + 100 + 121 + 23 + + + + Sauvegarder Rapport + + @@ -513,6 +490,53 @@ QFrame::Plain + + + + 600 + 220 + 231 + 131 + + + + Résultat du test + + + + + 30 + 40 + 181 + 41 + + + + + 26 + + + + En cours... + + + Qt::AlignCenter + + + + + + 70 + 100 + 101 + 23 + + + + Ouvrir Rapport + + + diff --git a/Sources/TestReport.cpp b/Sources/TestReport.cpp index 49f4aca..e03a635 100644 --- a/Sources/TestReport.cpp +++ b/Sources/TestReport.cpp @@ -1,9 +1,16 @@ #include "TestReport.h" +#include +#include +#include +#include +#include CTestReport::CTestReport() { mSoftwareVersion = QString(TEST_BENCH_VERSION); CreateNewTestReport(); + mReportFileDirectory = "./Rapports/"; + QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); } CVisualInspectionResult * CTestReport::GetInspectionResult() @@ -21,6 +28,147 @@ int CTestReport::CreateNewTestReport() mVisualInspectionResultReport.ClearResults(); mCableParameters.ResetData(); mAutomatedTestReport.ClearAutomatedTestReport(); + mTestLog.clear(); + mLastReportName.clear(); return RET_OK; } + +int CTestReport::AddLogEntry(QString NewEntry, bool IncludeTime, bool Propagate) +{ + if(NewEntry.isEmpty()) + { + return RET_ERROR; + } + + if(IncludeTime) + { + QString Time = QDateTime::currentDateTime().toString("hh:mm:ss.zzz - "); + NewEntry.prepend(Time); + } + + qDebug(NewEntry.toAscii().data()); + + if(NewEntry.endsWith(QChar('\n')) == false) + { + NewEntry.append(QChar('\n')); + } + + if(Propagate) + { + emit NewTestLogEntry(NewEntry); + } + + mTestLog.append(NewEntry); + + + return RET_OK; +} + +CAutomatedTestReport *CTestReport::GetAutomatedTestReport() +{ + return &mAutomatedTestReport; +} + +int CTestReport::SaveReportToFile() +{ + QFile *ReportFile; + //QTextStream ReportStream; + + + QString Filename = QDateTime::currentDateTime().toString("yyMMdd_hhmmss_"); + Filename.append(mCableParameters.mStationCodeName); + Filename.append(mCableParameters.mCableIdentification); + Filename.append(".txt"); + Filename.prepend(mReportFileDirectory); + + + ReportFile = new QFile(Filename); + + if (!ReportFile->open(QIODevice::ReadWrite |QIODevice::Truncate | QIODevice::Text)) + { + AddLogEntry(QString("Impossible de sauvegarder le rapport %1").arg(Filename),false); + QMessageBox::critical(NULL,"Erreur de sauvegarde",QString("Impossible de sauvegarder le fichier rapport \n%1").arg(Filename)); + + return RET_ERROR; + } + + mLastReportName = Filename; + + QTextStream ReportStream(ReportFile); + ReportStream.setCodec(QTextCodec::codecForName("UTF-8")); + + ReportStream << QString("Rapport de test - Câble SEI\n"); + 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 câble: \n"); + ReportStream << QString("Identification du câble: ") << mCableParameters.mCableIdentification << "\n"; + ReportStream << "Station: " << mCableParameters.mStationCodeName << " - "<< mCableParameters.mStationName << "\n"; + ReportStream << "Type: " << mCableParameters.mCableType << "\n"; + ReportStream << QString("Opérateur du test: ") << mCableParameters.mTestOperatorName << "\n"; + ReportStream << QString("Connecteur d'entrée: ") << mCableParameters.mInputConnectorType << "\n"; + ReportStream << "Connecteur de sortie: " << mCableParameters.mOutputConnectorType << "\n\n"; + ReportStream << "-----------------------------------------\n"; + ReportStream << QString("Résultats de l'inspection visuelle:\n"); + ReportStream << QString("Section 5.2 exécutée: ") << mVisualInspectionResultReport.mVerif52ExecResultText << "\n"; + ReportStream << QString("Section 5.3 exécutée: ") << mVisualInspectionResultReport.mVerif53ExecResultText << "\n"; + ReportStream << QString("Section 5.4 exécutée: ") << mVisualInspectionResultReport.mVerif54ExecResultText << "\n"; + ReportStream << QString("Section 5.5 exécutée: ") << mVisualInspectionResultReport.mVerif55ExecResultText << "\n"; + ReportStream << QString("Section 5.6 exécutée: ") << mVisualInspectionResultReport.mVerif56ExecResultText << "\n\n"; + ReportStream << "Notes d'inspection:\n\n"; + ReportStream << mVisualInspectionResultReport.mVerifNotesText << "\n\n"; + ReportStream << "-----------------------------------------\n"; + ReportStream << QString("Résultats du test automatique du câble:\n"); + ReportStream << QString("Lorsqu'applicable, les valeurs entre crochets [] correspondent aux contacts en défaut.\n\n"); + ReportStream.setFieldWidth(15); + ReportStream.setFieldAlignment(QTextStream::AlignCenter); + ReportStream << "No. Contact" << QString("Continuité") << "Isolation" << "Assignation" << QString("2è test") << qSetFieldWidth(0) << "\n"; + + + + for(int pin = 1; pin <= mAutomatedTestReport.mPinCount; pin++) + { + ReportStream.setFieldWidth(15); + ReportStream.setFieldAlignment(QTextStream::AlignCenter); + + ReportStream << QString("%1").arg(pin) << + mAutomatedTestReport.GetPinContinuityResult(pin) << + mAutomatedTestReport.GetPinIsolationResult(pin) << + mAutomatedTestReport.GetPinConcordanceResult(pin) << + mAutomatedTestReport.GetPinSecondTestResult(pin) << qSetFieldWidth(0) << + " \n"; + + } + + + + ReportStream << QString("\n\n\n Signature de l'opérateur de test: _________________________________________\n\n"); + ReportStream << "-----------------------------------------\n"; + ReportStream << "Log du test:\n"; + ReportStream << mTestLog; + + ReportFile->close(); + delete ReportFile; + + return RET_OK; +} + +bool CTestReport::IsAutoTestReportReady() +{ + if(mAutomatedTestReport.GetPinCount() == 0) + { + return false; + } + return true; +} + +bool CTestReport::GetGlobalAutoTestResult() +{ + return mAutomatedTestReport.IsAutomatedTestSuccess(); +} + +QString CTestReport::GetLastReportFileName() +{ + return mLastReportName; +} diff --git a/Sources/TestReport.h b/Sources/TestReport.h index 8a6f912..6a3f7ef 100644 --- a/Sources/TestReport.h +++ b/Sources/TestReport.h @@ -6,9 +6,11 @@ #include "CableParametersData.h" #include "TestBenchVersion.h" #include "AutomatedTestReport.h" +#include -class CTestReport +class CTestReport : public QObject { + Q_OBJECT public: CTestReport(); @@ -17,12 +19,25 @@ public: CAutomatedTestReport *GetAutomatedTestReport(); int CreateNewTestReport(); + int AddLogEntry(QString NewEntry,bool IncludeTime = true,bool Propagate = true); + bool IsAutoTestReportReady(); + bool GetGlobalAutoTestResult(); + + int SaveReportToFile(); + + QString GetLastReportFileName(); private: CVisualInspectionResult mVisualInspectionResultReport; CCableParametersData mCableParameters; CAutomatedTestReport mAutomatedTestReport; QString mSoftwareVersion; + QString mTestLog; + QString mReportFileDirectory; + QString mLastReportName; + +signals: + void NewTestLogEntry(QString NewEntry); }; #endif // TESTREPORT_H diff --git a/Sources/VisualInspectionResult.cpp b/Sources/VisualInspectionResult.cpp index ff1d44a..177c63c 100644 --- a/Sources/VisualInspectionResult.cpp +++ b/Sources/VisualInspectionResult.cpp @@ -1,6 +1,8 @@ #include "VisualInspectionResult.h" #include +const char * CVisualInspectionResult::mTextualResults[3] = {"N/A","Oui","Non"}; + CVisualInspectionResult::CVisualInspectionResult() { ClearResults(); @@ -9,6 +11,7 @@ CVisualInspectionResult::CVisualInspectionResult() int CVisualInspectionResult::ClearResults() { mVerif52ExecResult = mVerif53ExecResult = mVerif54ExecResult = mVerif55ExecResult = mVerif56ExecResult = VERIF_UNKNOWN_RESULT; + mVerif52ExecResultText = mVerif53ExecResultText = mVerif54ExecResultText = mVerif55ExecResultText = mVerif56ExecResultText = "Non"; mVerifNotesText.clear(); return RET_OK; @@ -17,10 +20,10 @@ int CVisualInspectionResult::ClearResults() bool CVisualInspectionResult::IsVisualInspectionResultComplete() { if(mVerif52ExecResult != VERIF_UNKNOWN_RESULT && - mVerif53ExecResult != VERIF_UNKNOWN_RESULT && - mVerif54ExecResult != VERIF_UNKNOWN_RESULT && - mVerif55ExecResult != VERIF_UNKNOWN_RESULT && - mVerif56ExecResult != VERIF_UNKNOWN_RESULT ) + mVerif53ExecResult != VERIF_UNKNOWN_RESULT && + mVerif54ExecResult != VERIF_UNKNOWN_RESULT && + mVerif55ExecResult != VERIF_UNKNOWN_RESULT && + mVerif56ExecResult != VERIF_UNKNOWN_RESULT ) { return true; } @@ -31,10 +34,20 @@ bool CVisualInspectionResult::IsVisualInspectionResultComplete() int CVisualInspectionResult::SetVisualInspectionResult(eVerifExecResult Verif52, eVerifExecResult Verif53, eVerifExecResult Verif54, eVerifExecResult Verif55, eVerifExecResult Verif56, QString Notes) { mVerif52ExecResult = Verif52; + mVerif52ExecResultText = mTextualResults[Verif52]; + mVerif53ExecResult = Verif53; + mVerif53ExecResultText = mTextualResults[Verif53]; + mVerif54ExecResult = Verif54; + mVerif54ExecResultText = mTextualResults[Verif54]; + mVerif55ExecResult = Verif55; + mVerif55ExecResultText = mTextualResults[Verif55]; + mVerif56ExecResult = Verif56; + mVerif56ExecResultText = mTextualResults[Verif56]; + mVerifNotesText = Notes; return RET_OK; } diff --git a/Sources/VisualInspectionResult.h b/Sources/VisualInspectionResult.h index 6cde2a9..fc58437 100644 --- a/Sources/VisualInspectionResult.h +++ b/Sources/VisualInspectionResult.h @@ -15,10 +15,12 @@ public: VERIF_NOT_DONE_RESULT }; + static const char* mTextualResults[3]; CVisualInspectionResult(); eVerifExecResult mVerif52ExecResult, mVerif53ExecResult, mVerif54ExecResult, mVerif55ExecResult, mVerif56ExecResult; + QString mVerif52ExecResultText, mVerif53ExecResultText, mVerif54ExecResultText, mVerif55ExecResultText, mVerif56ExecResultText; QString mVerifNotesText; int ClearResults(); diff --git a/object_script.CableTestBench.Debug b/object_script.CableTestBench.Debug index a12e37c..42658a8 100644 --- a/object_script.CableTestBench.Debug +++ b/object_script.CableTestBench.Debug @@ -30,6 +30,7 @@ INPUT( ./debug\moc_ConnectorClickZoneWidget.o ./debug\moc_ONOFFStatusWidget.o ./debug\moc_ConnectorTestVisualizationWidget.o +./debug\moc_TestReport.o ./debug\moc_CableTestEngine.o ./debug\moc_OptionsPage.o ./debug\moc_IOModulesInterface.o diff --git a/object_script.CableTestBench.Release b/object_script.CableTestBench.Release index 81e3640..06048cf 100644 --- a/object_script.CableTestBench.Release +++ b/object_script.CableTestBench.Release @@ -30,6 +30,7 @@ INPUT( ./release\moc_ConnectorClickZoneWidget.o ./release\moc_ONOFFStatusWidget.o ./release\moc_ConnectorTestVisualizationWidget.o +./release\moc_TestReport.o ./release\moc_CableTestEngine.o ./release\moc_OptionsPage.o ./release\moc_IOModulesInterface.o diff --git a/ui_CMainPage.h b/ui_CMainPage.h index adabfe0..628004c 100644 --- a/ui_CMainPage.h +++ b/ui_CMainPage.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'CMainPage.ui' ** -** Created: Wed May 8 10:13:26 2019 +** Created: Fri May 10 14:02:03 2019 ** by: Qt User Interface Compiler version 4.8.1 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! diff --git a/ui_CableTestPage.h b/ui_CableTestPage.h index 80ce69c..9aa88ae 100644 --- a/ui_CableTestPage.h +++ b/ui_CableTestPage.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'CableTestPage.ui' ** -** Created: Wed May 8 11:18:26 2019 +** Created: Fri May 10 15:48:28 2019 ** by: Qt User Interface Compiler version 4.8.1 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! @@ -66,8 +66,12 @@ public: QPushButton *mReinitTestBtn; QGroupBox *groupBox_2; QPushButton *mStartManualTestBtn; + QPushButton *mSaveReportBtn; QLabel *mInspVisuelleLabel_2; QTextBrowser *mTestLogTextBox; + QGroupBox *groupBox_3; + QLabel *mAutoTestResultLabel; + QPushButton *mOpenReportBtn; void setupUi(QWidget *CCableTestPage) { @@ -218,6 +222,9 @@ public: 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)); mInspVisuelleLabel_2 = new QLabel(CCableTestPage); mInspVisuelleLabel_2->setObjectName(QString::fromUtf8("mInspVisuelleLabel_2")); mInspVisuelleLabel_2->setGeometry(QRect(50, 200, 221, 20)); @@ -227,6 +234,19 @@ public: mTestLogTextBox->setGeometry(QRect(970, 550, 381, 201)); mTestLogTextBox->setFrameShape(QFrame::Box); mTestLogTextBox->setFrameShadow(QFrame::Plain); + groupBox_3 = new QGroupBox(CCableTestPage); + groupBox_3->setObjectName(QString::fromUtf8("groupBox_3")); + groupBox_3->setGeometry(QRect(600, 220, 231, 131)); + mAutoTestResultLabel = new QLabel(groupBox_3); + mAutoTestResultLabel->setObjectName(QString::fromUtf8("mAutoTestResultLabel")); + mAutoTestResultLabel->setGeometry(QRect(30, 40, 181, 41)); + QFont font2; + font2.setPointSize(26); + mAutoTestResultLabel->setFont(font2); + mAutoTestResultLabel->setAlignment(Qt::AlignCenter); + mOpenReportBtn = new QPushButton(groupBox_3); + mOpenReportBtn->setObjectName(QString::fromUtf8("mOpenReportBtn")); + mOpenReportBtn->setGeometry(QRect(70, 100, 101, 23)); retranslateUi(CCableTestPage); @@ -242,16 +262,6 @@ public: << QApplication::translate("CCableTestPage", "Permanent", 0, QApplication::UnicodeUTF8) << QApplication::translate("CCableTestPage", "Temporaire", 0, QApplication::UnicodeUTF8) ); - mStationNameCombo->clear(); - mStationNameCombo->insertItems(0, QStringList() - << QApplication::translate("CCableTestPage", "Frontenac", 0, QApplication::UnicodeUTF8) - << QApplication::translate("CCableTestPage", "C\303\264te-Vertu", 0, QApplication::UnicodeUTF8) - << QApplication::translate("CCableTestPage", "Angrignon", 0, QApplication::UnicodeUTF8) - << QApplication::translate("CCableTestPage", "Garage Angrignon", 0, QApplication::UnicodeUTF8) - << QApplication::translate("CCableTestPage", "Atwater", 0, QApplication::UnicodeUTF8) - << QApplication::translate("CCableTestPage", "Lionel-Groulx", 0, QApplication::UnicodeUTF8) - << QApplication::translate("CCableTestPage", "Viau", 0, QApplication::UnicodeUTF8) - ); StationNameLabel->setText(QApplication::translate("CCableTestPage", "Station", 0, QApplication::UnicodeUTF8)); mTypeCableLabel->setText(QApplication::translate("CCableTestPage", "Type c\303\242ble", 0, QApplication::UnicodeUTF8)); mIdentCableLabel->setText(QApplication::translate("CCableTestPage", "Identification du c\303\242ble", 0, QApplication::UnicodeUTF8)); @@ -274,7 +284,11 @@ public: 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)); 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)); + mOpenReportBtn->setText(QApplication::translate("CCableTestPage", "Ouvrir Rapport", 0, QApplication::UnicodeUTF8)); } // retranslateUi }; diff --git a/ui_OptionsPage.h b/ui_OptionsPage.h index 554a801..27f08ed 100644 --- a/ui_OptionsPage.h +++ b/ui_OptionsPage.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'OptionsPage.ui' ** -** Created: Wed May 8 10:13:26 2019 +** Created: Fri May 10 14:02:03 2019 ** by: Qt User Interface Compiler version 4.8.1 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! diff --git a/ui_VisualInspectionPage.h b/ui_VisualInspectionPage.h index 8ed39f1..ff7fe16 100644 --- a/ui_VisualInspectionPage.h +++ b/ui_VisualInspectionPage.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'VisualInspectionPage.ui' ** -** Created: Wed May 8 10:13:26 2019 +** Created: Fri May 10 14:02:03 2019 ** by: Qt User Interface Compiler version 4.8.1 ** ** WARNING! All changes made in this file will be lost when recompiling UI file!