00001 #include "HardwareType.h"
00002 #include <string.h>
00003
00004 typedef struct HardwareString_s {
00005 HardwareType::Hardware_t type;
00006 const char* string;
00007 } HardwareString;
00008
00009 static HardwareString strings[] = {
00010 { HardwareType::kCrate, "Crate" },
00011 { HardwareType::kChannel, "Channel" },
00012 { HardwareType::kVarc, "VARC" },
00013 { HardwareType::kVmm, "VMM" },
00014 { HardwareType::kVfb, "Vfb" },
00015 { HardwareType::kVaChip, "VaChip" },
00016 { HardwareType::kMaster, "MASTER" },
00017 { HardwareType:: kMinder, "MINDER" },
00018 { HardwareType::kMenu, "MENU" },
00019 { HardwareType::kPmt, "PMT" },
00020 { HardwareType::kPmtBase, "PMTBase" },
00021 { HardwareType::kPixel, "Pixel" },
00022 { HardwareType::kPixelSpot,"PixelSpot" },
00023 { HardwareType::kStripEnd, "StripEnd" },
00024 { HardwareType::kStrip, "Strip" },
00025 { HardwareType::kPinDiode, "PinDiode" },
00026 { HardwareType::kPlane, "PinDiode" },
00027 { HardwareType::kSupermodule, "Supermodule" },
00028 { HardwareType::kVetoShield, "Supermodule" },
00029 { HardwareType::kSpectrometer,"Spectrometer" },
00030 { HardwareType::kCalorimeter, "Calorimeter" },
00031 { HardwareType::kDetector , "Detector" },
00032 { HardwareType::kUnknown, "Unknown" }
00033 };
00034
00035 const char* HardwareType::AsString(Hardware_t t)
00036 {
00037 for(int i=0; strings[i].type!=kUnknown; i++) {
00038 if(strings[i].type==t) return strings[i].string;
00039 }
00040 return "Unknown";
00041 }
00042
00043
00044 HardwareType::Hardware_t HardwareType::FromString(const char* s)
00045 {
00046 for(int i=0; strings[i].type!=kUnknown; i++) {
00047 if(strncasecmp(s,strings[i].string,10)==0) return strings[i].type;
00048 }
00049 return kUnknown;
00050 }