00001 #include "CbltReadoutFormat/CbltTraits_v1_3.h"
00002
00003 #include "DaqReadoutFormat/BitsDefinition.h"
00004
00005 using DybDaq::DaqTraits;
00006 using DybDaq::CbltTraits_v1_3;
00007 using std::string;
00008
00009 static const unsigned int m_indices[] = {
00010 0U,
00011 0U,
00012 0U,
00013 0U,
00014 0U,
00015 0U
00016 };
00017
00018 static const unsigned int m_shifts[] = {
00019 23U,
00020 16U,
00021 23U,
00022 0U,
00023 4U,
00024 0U
00025 };
00026
00027 static const unsigned int m_masks[] = {
00028 0x0000001f,
00029 0x0000000f,
00030 0x0000001f,
00031 0x0000ffff,
00032 0x0000000f,
00033 0x0000000f
00034 };
00035
00036 static const std::string m_description[] = {
00037 "CBLT Module Address",
00038 "CBLT Module Type",
00039 "CBLT Module Address",
00040 "CBLT Data Length"
00041 };
00042
00043 static const unsigned int kCbltHeadElements[] = {
00044 0U,
00045 1U
00046 };
00047
00048 static const unsigned int kCbltBodyElements[] = {
00049 };
00050
00051 static const unsigned int kCbltFootElements[] = {
00052 2U,
00053 3U
00054 };
00055
00056 static const unsigned int* m_componentFields[] = {
00057 kCbltHeadElements,
00058 kCbltBodyElements,
00059 kCbltFootElements
00060 };
00061
00062 static const unsigned int m_componentFieldsEnd[] = {
00063 2U,
00064 0U,
00065 2U
00066 };
00067
00068 static DaqTraits::Definitions* m_definitions[] = {
00069 0,
00070 0,
00071 0
00072 };
00073
00074 static const unsigned int m_moduleTypes[] = {
00075 1U,
00076 2U,
00077 3U,
00078 4U,
00079 5U,
00080 6U
00081 };
00082
00083 static const char* m_moduleTypeStrings[] = {
00084 "UNK",
00085 "PMT_FEE",
00086 "Flash_ADC",
00087 "Local_Trigger",
00088 "RPC_ROM",
00089 "RPC_RTM",
00090 "Master_Trigger"
00091 };
00092
00093 const char* CbltTraits_v1_3::key() {
00094 return "CBLT Format 1.3";
00095 }
00096
00097 CbltTraits_v1_3::CbltTraits_v1_3() {
00098 }
00099
00100 CbltTraits_v1_3::~CbltTraits_v1_3() {
00101 }
00102
00103 unsigned int CbltTraits_v1_3::majorVersion() const {
00104 return 1U;
00105 }
00106
00107 unsigned int CbltTraits_v1_3::minorVersion() const {
00108 return 3U;
00109 }
00110
00111 const string CbltTraits_v1_3::versionString() const {
00112 return key();
00113 }
00114
00115 unsigned int CbltTraits_v1_3::markersEnd() const {
00116 return 0U;
00117 }
00118
00119 const unsigned int* CbltTraits_v1_3::markers() const {
00120 return 0;
00121 }
00122
00123 unsigned int CbltTraits_v1_3::fieldsEnd() const {
00124 return kMinorVersion + 1;
00125 }
00126
00127 const unsigned int* CbltTraits_v1_3::indices() const {
00128 return m_indices;
00129 }
00130
00131 const unsigned int* CbltTraits_v1_3::shifts() const {
00132 return m_shifts;
00133 }
00134
00135 const unsigned int* CbltTraits_v1_3::masks() const {
00136 return m_masks;
00137 }
00138
00139 const std::string* CbltTraits_v1_3::descriptions() const {
00140 return m_description;
00141 }
00142
00143 DaqTraits::Definitions* CbltTraits_v1_3::definitions(unsigned int component) const {
00144 return m_definitions[component];
00145 }
00146
00147 void CbltTraits_v1_3::setDefinitions(DaqTraits::Definitions* definitions,
00148 unsigned int component) {
00149 m_definitions[component] = definitions;
00150 }
00151
00152 const unsigned int* CbltTraits_v1_3::componentFields(unsigned int component) const {
00153 return m_componentFields[component];
00154 }
00155
00156 const unsigned int CbltTraits_v1_3::componentFieldsEnd(unsigned int component) const {
00157 return m_componentFieldsEnd[component];
00158 }
00159
00160 unsigned int CbltTraits_v1_3::maxModuleType() const {
00161 return 6U;
00162 }
00163
00164 const unsigned int* CbltTraits_v1_3::moduleTypes() const {
00165 return m_moduleTypes;
00166 }
00167
00168 const char** CbltTraits_v1_3::moduleTypeStrings() const {
00169 return m_moduleTypeStrings;
00170 }
00171
00172 unsigned int CbltTraits_v1_3::headSize() const {
00173 return 1U;
00174 }
00175
00176 unsigned int CbltTraits_v1_3::footSize() const {
00177 return 1U;
00178 }
00179
00180 void CbltTraits_v1_3::initializeHead(char* buffer) const {
00181 *((unsigned int*)buffer) = 0x20000013U;
00182 }
00183
00184 void CbltTraits_v1_3::initializeFoot(char* buffer) const {
00185 *((unsigned int*)buffer) = 0xc0000000U;
00186 }