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

RxThresholdBasedOnConfigRegisterTestResult.h

00001 #ifndef RXTHRESHOLDBASEDONCONFIGREGISTERTESTRESULT_H
00002 #define RXTHRESHOLDBASEDONCONFIGREGISTERTESTRESULT_H
00003 
00004 #include "TestResult.h"
00005 #include "Sct/RangedVector.h"
00006 
00007 namespace SctData{
00012   class RxThresholdBasedOnConfigRegisterTestResult : public TestResult {
00013   public:
00014     RxThresholdBasedOnConfigRegisterTestResult() throw();
00015     
00019     RxThresholdBasedOnConfigRegisterTestResult(unsigned int runNumber, const string& moduleName) throw();
00020     
00024     virtual ~RxThresholdBasedOnConfigRegisterTestResult() throw();
00025     
00026     //Override
00027     virtual string getClassName() const throw();
00028 
00029     class StreamResult {
00030     public:
00031       typedef int ThresholdType;
00032       StreamResult() {
00033         setInvalid();
00034       }
00035       void setInvalid() {
00036         m_minErrorFreeRxThresh = NOT_YET_SET_OR_INVALID;
00037         m_maxErrorFreeRxThresh = NOT_YET_SET_OR_INVALID;
00038         m_bestRxThresh         = NOT_YET_SET_OR_INVALID;
00039       };
00040       int minErrorFreeRxThresh() const { return m_minErrorFreeRxThresh; };
00041       int maxErrorFreeRxThresh() const { return m_maxErrorFreeRxThresh; };
00042       int bestRxThresh() const { return m_bestRxThresh; };
00043       void setMinErrorFreeRxThresh(int val) {
00044         m_minErrorFreeRxThresh = (this->isAllowableRxThreshPrivateVar(val)) ? val : NOT_YET_SET_OR_INVALID;
00045       };
00046       void setMaxErrorFreeRxThresh(int val) {
00047         m_maxErrorFreeRxThresh = (this->isAllowableRxThreshPrivateVar(val)) ? val : NOT_YET_SET_OR_INVALID;
00048       };
00049       void setBestRxThresh(int val) {
00050         m_bestRxThresh = (this->isAllowableRxThreshPrivateVar(val)) ? val : NOT_YET_SET_OR_INVALID;
00051       };
00052     private:
00053       static bool isAllowableRxThreshPrivateVar(const int val) {
00054         return val == NOT_YET_SET_OR_INVALID || (val>=MIN_LEGITIMATE_RX_THRESH && val <= MAX_LEGITIMATE_RX_THRESH);
00055       };
00056     public:
00057       static bool isGoodPhysicalRxThresh(const int val) {
00058         return val != NOT_YET_SET_OR_INVALID && val>=MIN_LEGITIMATE_RX_THRESH && val <= MAX_LEGITIMATE_RX_THRESH;
00059       };
00060     private:
00061       int m_minErrorFreeRxThresh;
00062       int m_maxErrorFreeRxThresh;
00063       int m_bestRxThresh;
00064       static const int NOT_YET_SET_OR_INVALID=-1;
00065       static const int MIN_LEGITIMATE_RX_THRESH=0;
00066       static const int MAX_LEGITIMATE_RX_THRESH=255;
00067     };
00068     
00072     StreamResult& getStreamResult(const unsigned index);
00076     const StreamResult& getStreamResult(const unsigned index) const;
00077   private:
00078     RangedVector<StreamResult> streamResults;
00079 
00080   };
00081 }// end of namespace SctData
00082 #endif //#ifndef TIMEWALKTESTRESULT_H

Generated on Thu Dec 22 20:17:09 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5