Main Page   Modules   Namespace List   Class Hierarchy   Data Structures   File List   Namespace Members   Data Fields   Globals   Related Pages  

FullBypassSummaryWriter.cpp

Go to the documentation of this file.
00001 #include "FullBypassSummaryWriter.h"
00002 #include "SctData/FullBypassTestResult.h"
00003 #include "SummaryManager.h"
00004 #include "SctData/ModuleDefect.h"
00005 
00006 namespace SctData {
00007     namespace TestSummary{
00008     void FullBypassSummaryWriter::write(const TestResult& t, std::ostream& out) const throw(Sct::IoError, Sct::LogicError)
00009     {
00010         const FullBypassTestResult& result  = dynamic_cast<const FullBypassTestResult&>(t);
00011         out << "#\n%FullBypassTest\n#\n";
00012         out << "#NConfigs  " << result.getNConfig() << endl;
00013         out << "#Vdd = " << result.getTestPointAt(0) << " -> " << result.getTestPointAt(result.getNScans()-1) << endl;
00014         out << "#\n#Vmin\n#token\tr_tkn\ttoken\tr_tkn\n" << endl;
00015         for (unsigned ichip=0; ichip<nChipModule; ichip+=2){
00016         out << "#" << getChipName(ichip) << "\t\t" << getChipName(ichip+1) << endl;
00017         out << result.getChipResult(ichip).vdd_direct << "\t" << result.getChipResult(ichip).vdd_bypass << "\t"
00018             << result.getChipResult(ichip+1).vdd_direct << "\t" << result.getChipResult(ichip+1).vdd_bypass << endl;
00019         }
00020         
00021         out << "#Comment" << endl;
00022         for (unsigned ichip=0; ichip<nChipModule; ichip+=2){
00023         out << "#" << getChipName(ichip) << "\t\t" << getChipName(ichip+1) << endl;
00024         out << reason(result.getChipResult(ichip).status_direct) << "\t" 
00025             << reason(result.getChipResult(ichip).status_bypass) << "\t"
00026             << reason(result.getChipResult(ichip+1).status_direct) << "\t" 
00027             << reason(result.getChipResult(ichip+1).status_bypass) << endl;
00028         }
00029 
00030         out << endl;
00031 
00032         SummaryWriter::write(t.getDefects(), out);
00033     }
00034 
00035     string FullBypassSummaryWriter::reason(const short int status){
00036         switch (status) {
00037         case -3:
00038         return "\"Failing maximal tested Vdd\"";
00039         case -2:
00040         return "\"Not Tested\"";
00041         case -1:
00042         return "\"Minimal accessible\"";
00043         case 0:
00044         return "\"Minimal functional\"";
00045         case 1:
00046         return "\"Minimal tested\"";
00047         default:
00048         return "\"Unknown!\"";
00049         }
00050     }
00051     
00052     bool FullBypassSummaryWriter::inMap = SummaryManager::instance().addWriter("SctData::FullBypassTestResult", shared_ptr<SummaryWriter>(new FullBypassSummaryWriter()));
00053     }
00054 }

Generated on Mon Dec 15 19:36:03 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3