#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() { return &mVisualInspectionResultReport; } CCableParametersData *CTestReport::GetReportCableParameters() { return &mCableParameters; } 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("Pré-test des modules d'I/O: ") << mAutomatedTestReport.GetPretestResult() << "\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 << QString(" Date: _________________________________________\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; }