Commit 5eff4d4b authored by Christian Dziwok's avatar Christian Dziwok
Browse files

fix sfp+ nullptr execp. and missing handshake to f-writer

parent e604291d
......@@ -499,10 +499,11 @@ int main(int argc, char* argv[])
// cIsBerTestSuccessfull = cSEHBertTestboardTester.GetBertResultSummary();
/*** debug only ***/
/*** debug only
LOG(INFO)<< "\\t\tDEBUG; FIXED LATENCY (4) AND BITSLIP (5) !!!!" << RESET;
cSEHBertTestboardTester.RunBertWithFixedLatencyAndRefindBitslip(lUpdateIntervalInSec, 5, 4,true);
// cSEHBertTestboardTester.RunBertWithFixedLatencyAndRefindBitslip(lUpdateIntervalInSec, 9, 4);
***/
cSEHBertTestboardTester.RunBertWithFixedLatencyAndRefindBitslip(lUpdateIntervalInSec, 9, 4);
cIsBerTestSuccessfull = cSEHBertTestboardTester.GetBertResultSummary();
cSEHBertTestboardTester.Update_Summary("data");
}
......
#include "../tools/SehTestConstants.h"
#include "../tools/TestboardHelperFct.h"
#include "../Utils/Timer.h"
#include "../Utils/Utilities.h"
#include "../Utils/argvparser.h"
#include "../tools/Tool.h"
#include <cstring>
#include <fstream>
#include <inttypes.h>
#include <stdio.h>
#include <Python.h>
#include <tuple>
#include <iostream>
#include <sstream>
#include <vector>
using namespace CommandLineProcessing;
using namespace std;
INITIALIZE_EASYLOGGINGPP
int main(int argc, char* argv[]) {
// configure the logger
el::Configurations conf("settings/logger.conf");
el::Loggers::reconfigureAllLoggers(conf);
ArgvParser cmd;
// init
cmd.setIntroductoryDescription("CMS Ph2_ACF SEH v3.2 Test-BOARD script");
// error codes
cmd.addErrorCode(0, "Success");
cmd.addErrorCode(1, "Error");
// options
cmd.setHelpOption("h", "help", "Print this help page");
cmd.defineOption("file", "termination file name", ArgvParser::OptionRequiresValue /*| ArgvParser::OptionRequired*/);
cmd.defineOptionAlternative("file", "f");
cmd.defineOption("testBoardId", "SEH DUT Id (default: 0)", ArgvParser::OptionRequiresValue);
cmd.defineOptionAlternative("testBoardId", "i");
int result = cmd.parse(argc, argv);
if(result != ArgvParser::NoParserError) {
LOG(INFO) << cmd.parseErrorDescription(result);
exit(1);
}
std::string cTerminationFName = (cmd.foundOption("file")) ? cmd.optionValue("file") : SehTestConstants::TERMINATION_FILE_NAME ;
const int cTestboardDutId = (cmd.foundOption("testBoardId")) ? convertAnyInt(cmd.optionValue("testBoardId").c_str()) : 0;
while (true){
TB_HELPER::CheckTerminationFile(cTerminationFName,cTestboardDutId,SehTestConstants::TERMINATION_KEY_WORD.c_str());
std::this_thread::sleep_for(std::chrono::milliseconds(350));
}
return 0;
}
\ No newline at end of file
......@@ -1595,14 +1595,14 @@ int SEHBertTestboardTester::RunBertWithFixedLatencyAndRefindBitslip(int pUpdate
ReadBertUpdates();
clock_gettime(CLOCK_MONOTONIC, &mRunningTimer);
time_taken = (mRunningTimer.tv_sec - mStartTime.tv_sec);
LOG (INFO) << "\t"
<< "mRunningTimer "<< +mRunningTimer.tv_sec << ", "
<< "mStartTime "<< +mStartTime.tv_sec<< ", "
<< "time_taken " << +time_taken << ", "
<< "pUpdateTimeOut " << +pUpdateTimeOut << ", "
<< "fNBerRecursionCall " << +this->fNBerRecursionCall << ", "
<< "fBerRecursionLimit " << +this->fBerRecursionLimit
<< RESET;
// LOG (INFO) << "\t"
// << "mRunningTimer "<< +mRunningTimer.tv_sec << ", "
// << "mStartTime "<< +mStartTime.tv_sec<< ", "
// << "time_taken " << +time_taken << ", "
// << "pUpdateTimeOut " << +pUpdateTimeOut << ", "
// << "fNBerRecursionCall " << +this->fNBerRecursionCall << ", "
// << "fBerRecursionLimit " << +this->fBerRecursionLimit
// << RESET;
if (time_taken < pUpdateTimeOut && this->fNBerRecursionCall <= this->fBerRecursionLimit) {
if (this->mFailedTRxData!=0) {
......@@ -2229,7 +2229,7 @@ void SEHBertTestboardTester::StatusUpdateMessageForBertExternal() {
<< BOLDYELLOW << std::bitset<8>(this->fLastSendTxWord[dutLinkIdP])<<" >> 0b" << std::bitset<8>(this->fLastReceivedRxWord[dutLinkIdP]) << "]"
<< RESET;
this->fResultTreesFile->Update_Data_Testrun( cOelb->fBeBoard->getId(), cOelb->fLinkId, cOelb->mNbrReceivedWords, cOelb->mNbrFailingWords, cOelb->mNbrReceivedBits, cOelb->mNbrFailingBits) ;
this->fResultTreesFile->Update_Data_Testrun( cOelb->fBeBoard->getId(), cOelb->fLinkId, cOelb->mNbrReceivedWords, cOelb->mNbrFailingWords, cOelb->mNbrReceivedBits, cOelb->mNbrFailingBits, &cOelb->mSfpMonStrct) ;
}
// LOG(DEBUG) << "---END STATUS UPDATE MESSAGE---" << RESET;
return;
......
......@@ -667,12 +667,15 @@ void WriteSehResultFile::Update_Data_Testrun(int pDataBebId,
this->fDataStrct.word.received = pDataWordsReceived;
this->fDataStrct.word.failed = pDataWordsFailed;
this->fDataStrct.bits.received = pDataBitsReceived;
this->fDataStrct.bits.failed = pDataBitsFailed;
this->fSfpMonStrct.data.temperature = pSfpMonStats->temperature;
this->fSfpMonStrct.data.unitVoltage = pSfpMonStats->unitVoltage;
this->fSfpMonStrct.data.biasCurrent = pSfpMonStats->biasCurrent;
this->fSfpMonStrct.data.receiverPwr = pSfpMonStats->receiverPwr;
this->fSfpMonStrct.data.transmitterPwr = pSfpMonStats->transmitterPwr;
this->fDataStrct.bits.failed = pDataBitsFailed;
if (pSfpMonStats!= nullptr)
{
this->fSfpMonStrct.data.temperature = pSfpMonStats->temperature;
this->fSfpMonStrct.data.unitVoltage = pSfpMonStats->unitVoltage;
this->fSfpMonStrct.data.biasCurrent = pSfpMonStats->biasCurrent;
this->fSfpMonStrct.data.receiverPwr = pSfpMonStats->receiverPwr;
this->fSfpMonStrct.data.transmitterPwr = pSfpMonStats->transmitterPwr;
}
// std::cout << "Update_Data_Testrun:";
// std::cout << "\n\tfDataStrct.word.received :\t" << +this->fDataStrct.word.received;
// std::cout << "\n\tfDataStrct.word.failed :\t" << +this->fDataStrct.word.failed ;
......@@ -702,7 +705,7 @@ void WriteSehResultFile::Update_Data_Testrun(int pDataBebId,
SetDataConfidenceLevel();
this->fErrorMemoryMapStrct.data.previousBebId = this->fDataStrct.bebId;
this->fDataStrct.ttree->Fill();
this->fSfpMonStrct.ttree->Fill();
if (pSfpMonStats!= nullptr) this->fSfpMonStrct.ttree->Fill();
return;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment