00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "EventReadoutFormat/RomHeader.h"
00010
00011 #include "DaqReadoutFormat/ByteBuffer.h"
00012 #include "EventReadoutFormat/EventTraits.h"
00013
00014 using DybDaq::ByteBuffer;
00015 using DybDaq::EventBuffer;
00016 using DybDaq::EventTraits;
00017 using DybDaq::RomHeader;
00018
00019 RomHeader::RomHeader(const unsigned int ,
00020 const unsigned int ,
00021 const unsigned int moduleType,
00022 const unsigned int slot,
00023 const EventTraits& traits) :
00024 EventBuffer(new char[traits.headerSize(EventTraits::kRomHeader) * kBytesInInt],
00025 traits) {
00026 traits.initializeHeader(EventTraits::kRomHeader,
00027 buffer());
00028 setHeaderSize(traits.headerSize(EventTraits::kRomHeader)),
00029 setTotalSize(headerSize());
00030
00031 setSite(0);
00032 setDetector(0);
00033
00034 setModuleType(moduleType);
00035 setSlot(slot);
00036 }
00037
00038 RomHeader::RomHeader(const ByteBuffer& byteBuffer,
00039 const EventTraits& traits) :
00040 EventBuffer(byteBuffer,
00041 traits) {
00042 byteBuffer.position(byteBuffer.position() + (headerSize() * kBytesInInt));
00043 }
00044
00045 RomHeader::~RomHeader() {
00046 }
00047
00048 unsigned int RomHeader::formatComponent() const {
00049 return EventTraits::kRomHeader;
00050 }
00051
00052 unsigned int RomHeader::headerSize() const {
00053 return readUnsignedInt(EventTraits::kRomHeaderSize);
00054 }
00055
00056 unsigned int RomHeader::totalSize() const {
00057 return readUnsignedInt(EventTraits::kRomTotalSize);
00058 }
00059
00060 unsigned int RomHeader::site() const {
00061 return readUnsignedInt(EventTraits::kRomSite);
00062 }
00063
00064 unsigned int RomHeader::detector() const {
00065 return readUnsignedInt(EventTraits::kRomDetector);
00066 }
00067
00068 unsigned int RomHeader::moduleType() const {
00069 return readUnsignedInt(EventTraits::kRomModuleType);
00070 }
00071
00072 unsigned int RomHeader::slot() const {
00073 return readUnsignedInt(EventTraits::kRomSlot);
00074 }
00075
00076 unsigned int RomHeader::bufferSize() const {
00077 return headerSize();
00078 }
00079
00080 void RomHeader::setHeaderSize(const unsigned int headerLength) {
00081 writeField(headerLength,
00082 EventTraits::kRomHeaderSize);
00083 }
00084
00085 void RomHeader::setTotalSize(const unsigned int totalLength) {
00086 writeField(totalLength,
00087 EventTraits::kRomTotalSize);
00088 }
00089
00090 void RomHeader::setSite(const unsigned int site) {
00091 writeField(site,
00092 EventTraits::kRomSite);
00093 }
00094
00095 void RomHeader::setDetector(const unsigned int detector) {
00096 writeField(detector,
00097 EventTraits::kRomDetector);
00098 }
00099
00100 void RomHeader::setModuleType(const unsigned int moduleType) {
00101 writeField(moduleType,
00102 EventTraits::kRomModuleType);
00103 }
00104
00105 void RomHeader::setSlot(const unsigned int slot) {
00106 writeField(slot,
00107 EventTraits::kRomSlot);
00108 }
00109