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       int getRiseTime() const { return m_riseTime; };
00044       void setMinErrorFreeRxThresh(int val) {
00045         m_minErrorFreeRxThresh = (this->isAllowableRxThreshPrivateVar(val)) ? val : NOT_YET_SET_OR_INVALID;
00046       };
00047       void setMaxErrorFreeRxThresh(int val) {
00048         m_maxErrorFreeRxThresh = (this->isAllowableRxThreshPrivateVar(val)) ? val : NOT_YET_SET_OR_INVALID;
00049       };
00050       void setBestRxThresh(int val) {
00051         m_bestRxThresh = (this->isAllowableRxThreshPrivateVar(val)) ? val : NOT_YET_SET_OR_INVALID;
00052       };
00053       void setRiseTime(int val) {
00054         m_riseTime = val;
00055       };
00056     private:
00057       static bool isAllowableRxThreshPrivateVar(const int val) {
00058         return val == NOT_YET_SET_OR_INVALID || (val>=MIN_LEGITIMATE_RX_THRESH && val <= MAX_LEGITIMATE_RX_THRESH);
00059       };
00060     public:
00061       static bool isGoodPhysicalRxThresh(const int val) {
00062         return val != NOT_YET_SET_OR_INVALID && val>=MIN_LEGITIMATE_RX_THRESH && val <= MAX_LEGITIMATE_RX_THRESH;
00063       };
00064     private:
00065       int m_minErrorFreeRxThresh;
00066       int m_maxErrorFreeRxThresh;
00067       int m_bestRxThresh;
00068       int m_riseTime;
00069       static const int NOT_YET_SET_OR_INVALID=-1;
00070       static const int MIN_LEGITIMATE_RX_THRESH=0;
00071       static const int MAX_LEGITIMATE_RX_THRESH=255;
00072     };
00073     
00077     StreamResult& getStreamResult(const unsigned index);
00081     const StreamResult& getStreamResult(const unsigned index) const;
00082   private:
00083     RangedVector<StreamResult> streamResults;
00084 
00085   };
00086 }// end of namespace SctData
00087 #endif //#ifndef TIMEWALKTESTRESULT_H

Generated on Mon Feb 6 14:01:26 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6