00001 #include "Conventions/Trigger.h"
00002 #include <string>
00003 #include <cstring>
00004
00005 const char* DayaBay::Trigger::AsString(DayaBay::Trigger::TriggerType_t type)
00006 {
00007 std::string name = "";
00008 if(kMult & type) name += "Mult ";
00009 if(kESum & type) name += "ESum ";
00010 if(kAD1 & type) name += "AD1 " ;
00011 if(kAD2 & type) name += "AD2 " ;
00012 if(kAD3 & type) name += "AD3 " ;
00013 if(kAD4 & type) name += "AD4 " ;
00014 if(kIWS & type) name += "IWS " ;
00015 if(kOWS & type) name += "OWS " ;
00016 if(kCross & type) name += "Cross ";
00017 if(kRPC2of4 & type) name += "RPC2of4 ";
00018 if(kRPC3of4 & type) name += "RPC3of4 ";
00019 if(kExternal & type) name += "External ";
00020 if(kManual & type) name+= "Manual ";
00021 if(kPeriodic & type) name += "Periodic ";
00022 if(kESumAll & type ) name += "ESumAll ";
00023 if(kESumHigh & type ) name += "ESumHigh ";
00024 if(kESumLow & type ) name += "ESumLow ";
00025 if(kESumADC & type ) name += "ESumAdc ";
00026 if(name.size() == 0 ) return "?Unknown?";
00027 else return name.c_str();
00028 return "?Unknown? -- This should never happen";
00029 }
00030
00031 DayaBay::Trigger::TriggerType_t DayaBay::Trigger::FromString(const char* str)
00032 {
00033 if(strncasecmp("Mult",str,4)==0) return kMult;
00034 if(strncasecmp("ESum",str,4)==0) return kESum;
00035 if(strncasecmp("AD1",str,3)==0) return kAD1;
00036 if(strncasecmp("AD2",str,3)==0) return kAD2;
00037 if(strncasecmp("AD3",str,3)==0) return kAD3;
00038 if(strncasecmp("AD4",str,3)==0) return kAD4;
00039 if(strncasecmp("IWS",str,3)==0) return kIWS;
00040 if(strncasecmp("OWS",str,3)==0) return kOWS;
00041 if(strncasecmp("Cross",str,5)==0) return kCross;
00042 if(strncasecmp("RPC2of4",str,7)==0) return kRPC2of4;
00043 if(strncasecmp("RPC3of4",str,7)==0) return kRPC3of4;
00044 if(strncasecmp("External",str,8)==0) return kExternal;
00045 return kUnknown;
00046 }
00047