CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
sistrip::FEDDAQTrailer Class Reference

#include <SiStripFEDBufferComponents.h>

Public Member Functions

bool badSourceID () const
 
bool cBit () const
 
uint16_t crc () const
 
const uint8_t * data () const
 
uint8_t eoeNibble () const
 
uint32_t eventLengthIn64BitWords () const
 
uint32_t eventLengthInBytes () const
 
uint8_t eventStatusNibble () const
 
bool fBit () const
 
 FEDDAQTrailer ()
 
 FEDDAQTrailer (const uint8_t *trailer)
 
 FEDDAQTrailer (const uint32_t eventLengthIn64BitWords, const uint16_t crc=0, const FEDTTSBits ttsBits=TTS_READY, const bool slinkTransmissionError=false, const bool badFEDID=false, const bool slinkCRCError=false, const uint8_t eventStatusNibble=0)
 
bool lastTrailer () const
 
void print (std::ostream &os) const
 
bool rBit () const
 
FEDDAQTrailersetBadSourceIDBit (const bool bitSet)
 
FEDDAQTrailersetCRC (const uint16_t crc)
 
FEDDAQTrailersetEventLengthIn64BitWords (const uint32_t eventLengthIn64BitWords)
 
FEDDAQTrailersetEventStatusNibble (const uint8_t eventStatusNibble)
 
FEDDAQTrailersetSLinkCRCErrorBit (const bool bitSet)
 
FEDDAQTrailersetSLinkTransmissionErrorBit (const bool bitSet)
 
FEDDAQTrailersetTTSBits (const FEDTTSBits ttsBits)
 
bool slinkCRCError () const
 
bool slinkTransmissionError () const
 
bool tBit () const
 
FEDTTSBits ttsBits () const
 
uint8_t ttsNibble () const
 

Private Attributes

uint8_t trailer_ [8]
 

Detailed Description

Definition at line 211 of file SiStripFEDBufferComponents.h.

Constructor & Destructor Documentation

sistrip::FEDDAQTrailer::FEDDAQTrailer ( )
inline

Definition at line 213 of file SiStripFEDBufferComponents.h.

213 {}
sistrip::FEDDAQTrailer::FEDDAQTrailer ( const uint8_t *  trailer)
inlineexplicit

Definition at line 1244 of file SiStripFEDBufferComponents.h.

1244 { memcpy(trailer_, trailer, 8); }
sistrip::FEDDAQTrailer::FEDDAQTrailer ( const uint32_t  eventLengthIn64BitWords,
const uint16_t  crc = 0,
const FEDTTSBits  ttsBits = TTS_READY,
const bool  slinkTransmissionError = false,
const bool  badFEDID = false,
const bool  slinkCRCError = false,
const uint8_t  eventStatusNibble = 0 
)

Definition at line 986 of file SiStripFEDBufferComponents.cc.

992  {
993  //clear everything (T,x,$ all set to 0)
994  memset(trailer_, 0x0, 8);
995  //set the EoE nibble to indicate this is the last fragment
996  trailer_[7] = 0xA0;
997  //set variable fields vith values supplied
1001  setCRC(crc);
1003  setBadSourceIDBit(badFEDID);
1005  }
FEDDAQTrailer & setSLinkCRCErrorBit(const bool bitSet)
FEDDAQTrailer & setTTSBits(const FEDTTSBits ttsBits)
FEDDAQTrailer & setSLinkTransmissionErrorBit(const bool bitSet)
FEDDAQTrailer & setEventLengthIn64BitWords(const uint32_t eventLengthIn64BitWords)
FEDDAQTrailer & setEventStatusNibble(const uint8_t eventStatusNibble)
FEDDAQTrailer & setCRC(const uint16_t crc)
FEDDAQTrailer & setBadSourceIDBit(const bool bitSet)

Member Function Documentation

bool sistrip::FEDDAQTrailer::badSourceID ( ) const
inline

Definition at line 225 of file SiStripFEDBufferComponents.h.

225 { return fBit(); }
bool sistrip::FEDDAQTrailer::cBit ( ) const
inline

Definition at line 1256 of file SiStripFEDBufferComponents.h.

1256 { return (trailer_[1] & 0x80); }
uint16_t sistrip::FEDDAQTrailer::crc ( void  ) const
inline

Definition at line 1254 of file SiStripFEDBufferComponents.h.

1254 { return (trailer_[2] | (trailer_[3] << 8)); }
const uint8_t * sistrip::FEDDAQTrailer::data ( ) const
inline

Definition at line 1270 of file SiStripFEDBufferComponents.h.

Referenced by sistrip::FEDBufferGenerator::fillBuffer().

1270 { return trailer_; }
uint8_t sistrip::FEDDAQTrailer::eoeNibble ( ) const
inline

Definition at line 1246 of file SiStripFEDBufferComponents.h.

1246 { return ((trailer_[7] & 0xF0) >> 4); }
uint32_t sistrip::FEDDAQTrailer::eventLengthIn64BitWords ( ) const
inline

Definition at line 1248 of file SiStripFEDBufferComponents.h.

1248  {
1249  return (trailer_[4] | (trailer_[5] << 8) | (trailer_[6] << 16));
1250  }
uint32_t sistrip::FEDDAQTrailer::eventLengthInBytes ( ) const
inline

Definition at line 1252 of file SiStripFEDBufferComponents.h.

1252 { return eventLengthIn64BitWords() * 8; }
uint8_t sistrip::FEDDAQTrailer::eventStatusNibble ( ) const
inline

Definition at line 1260 of file SiStripFEDBufferComponents.h.

1260 { return (trailer_[1] & 0x0F); }
bool sistrip::FEDDAQTrailer::fBit ( ) const
inline

Definition at line 1258 of file SiStripFEDBufferComponents.h.

1258 { return (trailer_[1] & 0x40); }
bool sistrip::FEDDAQTrailer::lastTrailer ( ) const
inline

Definition at line 231 of file SiStripFEDBufferComponents.h.

231 { return !tBit(); }
void sistrip::FEDDAQTrailer::print ( std::ostream &  os) const
inline

Definition at line 1268 of file SiStripFEDBufferComponents.h.

References sistrip::printHex().

Referenced by sistrip::operator<<().

1268 { printHex(trailer_, 8, os); }
void printHex(const void *pointer, const size_t length, std::ostream &os)
bool sistrip::FEDDAQTrailer::rBit ( ) const
inline

Definition at line 1266 of file SiStripFEDBufferComponents.h.

1266 { return (trailer_[0] & 0x04); }
FEDDAQTrailer & sistrip::FEDDAQTrailer::setBadSourceIDBit ( const bool  bitSet)

Definition at line 1028 of file SiStripFEDBufferComponents.cc.

1028  {
1029  if (bitSet)
1030  trailer_[1] |= 0x40;
1031  else
1032  trailer_[1] &= (~0x40);
1033  return *this;
1034  }
FEDDAQTrailer & sistrip::FEDDAQTrailer::setCRC ( const uint16_t  crc)

Definition at line 1014 of file SiStripFEDBufferComponents.cc.

Referenced by sistrip::FEDBufferGenerator::fillBuffer().

1014  {
1015  trailer_[2] = (crc & 0x00FF);
1016  trailer_[3] = ((crc >> 8) & 0x00FF);
1017  return *this;
1018  }
FEDDAQTrailer & sistrip::FEDDAQTrailer::setEventLengthIn64BitWords ( const uint32_t  eventLengthIn64BitWords)

Definition at line 1007 of file SiStripFEDBufferComponents.cc.

Referenced by sistrip::FEDBufferGenerator::fillBuffer().

1007  {
1008  trailer_[4] = (eventLengthIn64BitWords & 0x000000FF);
1009  trailer_[5] = ((eventLengthIn64BitWords & 0x0000FF00) >> 8);
1010  trailer_[6] = ((eventLengthIn64BitWords & 0x00FF0000) >> 16);
1011  return *this;
1012  }
FEDDAQTrailer & sistrip::FEDDAQTrailer::setEventStatusNibble ( const uint8_t  eventStatusNibble)

Definition at line 1044 of file SiStripFEDBufferComponents.cc.

1044  {
1045  trailer_[1] = ((trailer_[1] & 0xF0) | (eventStatusNibble & 0x0F));
1046  return *this;
1047  }
FEDDAQTrailer & sistrip::FEDDAQTrailer::setSLinkCRCErrorBit ( const bool  bitSet)

Definition at line 1036 of file SiStripFEDBufferComponents.cc.

1036  {
1037  if (bitSet)
1038  trailer_[0] |= 0x04;
1039  else
1040  trailer_[0] &= (~0x40);
1041  return *this;
1042  }
FEDDAQTrailer & sistrip::FEDDAQTrailer::setSLinkTransmissionErrorBit ( const bool  bitSet)

Definition at line 1020 of file SiStripFEDBufferComponents.cc.

1020  {
1021  if (bitSet)
1022  trailer_[1] |= 0x80;
1023  else
1024  trailer_[1] &= (~0x80);
1025  return *this;
1026  }
FEDDAQTrailer & sistrip::FEDDAQTrailer::setTTSBits ( const FEDTTSBits  ttsBits)

Definition at line 1049 of file SiStripFEDBufferComponents.cc.

1049  {
1050  trailer_[0] = ((trailer_[0] & 0x0F) | (ttsBits & 0xF0));
1051  return *this;
1052  }
bool sistrip::FEDDAQTrailer::slinkCRCError ( ) const
inline

Definition at line 234 of file SiStripFEDBufferComponents.h.

References data, edm::print(), and sistrip::TTS_READY.

234 { return rBit(); }
bool sistrip::FEDDAQTrailer::slinkTransmissionError ( ) const
inline

Definition at line 222 of file SiStripFEDBufferComponents.h.

222 { return cBit(); }
bool sistrip::FEDDAQTrailer::tBit ( ) const
inline

Definition at line 1264 of file SiStripFEDBufferComponents.h.

1264 { return (trailer_[0] & 0x08); }
FEDTTSBits sistrip::FEDDAQTrailer::ttsBits ( ) const
uint8_t sistrip::FEDDAQTrailer::ttsNibble ( ) const
inline

Definition at line 1262 of file SiStripFEDBufferComponents.h.

1262 { return ((trailer_[0] & 0xF0) >> 4); }

Member Data Documentation

uint8_t sistrip::FEDDAQTrailer::trailer_[8]
private

Definition at line 254 of file SiStripFEDBufferComponents.h.