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

FullBypassSummaryWriter.cpp

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

Generated on Thu Jul 15 09:50:46 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5