Public Member Functions | |
QCrateReceiverBuffer (unsigned long ch, bool attach, bool OpenFiles, int RunNumber=0, bool offset_shm=false) | |
constructor | |
virtual | ~QCrateReceiverBuffer () |
destructor | |
unsigned long | Size () const |
returns the number of samples that can be contained in the data buffer | |
char * | Start () const |
get pointer to first valid word | |
unsigned long | GetNumberOfWords () const |
get number of valid words in buffer | |
bool | EnableTriggerPointer () |
book trigger pointer | |
void | ReleaseTriggerPointer () |
release trigger pointer (do nothing if it wasn't booked) | |
bool | EnableBuilderPointer () |
book builder pointer | |
void | ReleaseBuilderPointer () |
release builder pointer (do nothing if it wasn't booked) | |
bool | EnableReadPointer () |
book read pointer | |
void | ReleaseReadPointer () |
release read pointer (do nothing if it wasn't booked) | |
void | Release (unsigned int n) |
remove data from circular buffer | |
void | Add (int n, const long *data) |
add data to circular buffer | |
void | AddFromNetwork (QConnectedSocket *cs) |
get data from network and add to buffer | |
unsigned long | GetLg () const |
get logical channel associated to this object | |
unsigned long | GetRunNumber () const |
get run number associated to this object | |
int | ReadToEnd () const |
distance of read pointer to end of buffer | |
void | SetProcessed (unsigned int n) |
flag n words as processed by trigger | |
void | SetBuilt (unsigned int n) |
flag n words as processed by builder | |
unsigned long | GetToBeProcessed () const |
get number of valid words still to be processed by trigger | |
unsigned long | GetToBeBuilt () const |
get number of valid words still to be processed by builder | |
unsigned long | GetToBeRead () const |
get number of valid words still to be read | |
unsigned long long | GetProcessed () const |
get id of the first word still to be processed by trigger | |
unsigned long long | GetBuilt () const |
get id of the first word to be processed by builder | |
unsigned long long | GetRead () const |
get id of the first word to be read | |
unsigned long long | GetWritten () const |
get id of the first free word in buffer | |
long | GetData (unsigned long long index) const |
get data at a given index | |
long | GetSample (unsigned long long index) const |
get sample | |
int | GetTriggerFlags (unsigned long long index, unsigned long mask=0x0000000F) const |
get trigger flags for given sample | |
void | FlagTrigger (unsigned long long index, int tag) |
flag word with trigger tag | |
void | SetTriggerEnabled (bool enabled) |
set trigger enable/disable flag | |
void | SetSamplingRate (unsigned long rateHz) |
set sampling rate in Hz | |
unsigned long | GetSamplingRate () const |
get sampling rate in Hz | |
long long | GetTimeOfSample (unsigned long long index) const |
get time associated to a given sample index | |
unsigned long long | GetSampleOfTime (long long timeNs) const |
get sample index associated to a given time | |
void | Dump () |
void | SetScanned (unsigned long long i) |
void | SetAnalyzed (unsigned long long i) |
void | SetCounter (unsigned long long i, unsigned int counter) |
Private Member Functions | |
void | Release () |
throw away all useless words from circular buffer | |
void | SetProcessed () |
method used to update trigger pointer when it is not booked | |
void | SetBuilt () |
method used to update builder pointer when it is not booked | |
unsigned long | GetToBeWritten () const |
get number of words still to be written on gzipped file | |
void | WriteFile () |
write data in gzipped file | |
void | OpenFile () |
open new gzipped file | |
void | CloseFile (bool last) |
close current gzipped file | |
Private Attributes | |
int | fHandle |
int | fShmid |
bool | fOwn |
QBufferStructure_t * | p_buffer |
gzFile | zFile |
std::string | fGzFileName |
unsigned int | fPartialFile |
bool | fReadPtrBooked |
bool | fBuilderPtrBooked |
bool | fTrgPtrBooked |
QCrateReceiverBuffer::QCrateReceiverBuffer | ( | unsigned long | ch, | |
bool | attach, | |||
bool | OpenFiles, | |||
int | RunNumber = 0 , |
|||
bool | offset_shm = false | |||
) |
constructor
ch | logical channel this shared memory will be associated to | |
attach | if true this object will be the shared memory owner; if false the constructor will attach to an already existing shared memory | |
OpenFiles | if true, the data stream associated to this object will be dumped into a compressed data stream | |
RunNumber | this parameter is stored in the shared memory in case this object is the owner of the shared memory. | |
off_shm | if true, an offset of 20000 will be added to the id associated to the shared memory handled by this object |
References fBuilderPtrBooked, QBufferStructure_t::fCurrentRun, fGzFileName, QBufferStructure_t::fId, QBufferStructure_t::fNotBuilt, QBufferStructure_t::fNotBuiltIsActive, QBufferStructure_t::fNotProcessed, QBufferStructure_t::fNotProcessedIsActive, QBufferStructure_t::fNum, fOwn, fPartialFile, QBufferStructure_t::fRead, QBufferStructure_t::fReadFile, fReadPtrBooked, QBufferStructure_t::fReadPtrIsActive, QBufferStructure_t::fSamplingRateHz, QBufferStructure_t::fSaveFile, fShmid, fTrgPtrBooked, QBufferStructure_t::fWrite, p_buffer, and zFile.
QCrateReceiverBuffer::~QCrateReceiverBuffer | ( | ) | [virtual] |
destructor
All the data buffer pointers are released and the shared memory is released.
References CloseFile(), QBufferStructure_t::fId, fOwn, p_buffer, ReleaseBuilderPointer(), ReleaseReadPointer(), ReleaseTriggerPointer(), and zFile.
bool QCrateReceiverBuffer::EnableTriggerPointer | ( | ) |
book trigger pointer
References QBufferStructure_t::fId, QBufferStructure_t::fNotProcessedIsActive, fTrgPtrBooked, and p_buffer.
bool QCrateReceiverBuffer::EnableBuilderPointer | ( | ) |
book builder pointer
References fBuilderPtrBooked, QBufferStructure_t::fId, QBufferStructure_t::fNotBuiltIsActive, and p_buffer.
bool QCrateReceiverBuffer::EnableReadPointer | ( | ) |
book read pointer
References QBufferStructure_t::fId, fReadPtrBooked, QBufferStructure_t::fReadPtrIsActive, and p_buffer.
void QCrateReceiverBuffer::Release | ( | unsigned int | n | ) |
remove data from circular buffer
n | number of samples to be removed |
References QBufferStructure_t::fId, QBufferStructure_t::fNum, QBufferStructure_t::fRead, fReadPtrBooked, GetToBeRead(), and p_buffer.
void QCrateReceiverBuffer::Add | ( | int | n, | |
const long * | data | |||
) |
add data to circular buffer
n | number of words to be added | |
data | pointer to buffer containing data |
References DEFAULT_BUFFER_SIZE, QBufferStructure_t::fData, QBufferStructure_t::fId, QBufferStructure_t::fNotBuilt, QBufferStructure_t::fNotProcessedIsActive, QBufferStructure_t::fNum, QBufferStructure_t::fReadFile, QBufferStructure_t::fSaveFile, QBufferStructure_t::fWrite, p_buffer, SetProcessed(), and WriteFile().
int QCrateReceiverBuffer::ReadToEnd | ( | ) | const [inline] |
distance of read pointer to end of buffer
SDD FIXME this method should be removed or at least made private: the distance of the pointer from the physical end of the buffer should an implementation detail
References DEFAULT_BUFFER_SIZE, QBufferStructure_t::fRead, and p_buffer.
long QCrateReceiverBuffer::GetData | ( | unsigned long long | index | ) | const |
get data at a given index
index | index of data to be returned |
References DEFAULT_BUFFER_SIZE, QBufferStructure_t::fData, QBufferStructure_t::fWrite, p_buffer, and QError::SetDescription().
Referenced by GetSample(), GetTriggerFlags(), and WriteFile().
long QCrateReceiverBuffer::GetSample | ( | unsigned long long | index | ) | const |
get sample
index | index of sample to be returned |
References GetData().
Referenced by QSmartScopeChannel::GetData().
int QCrateReceiverBuffer::GetTriggerFlags | ( | unsigned long long | index, | |
unsigned long | mask = 0x0000000F | |||
) | const [inline] |
get trigger flags for given sample
index | index of sample for which trigger flags are returned | |
mask | bit mask that can be used to return only a subset of the trigger flags. Defaults to all (0xF). |
References GetData().
void QCrateReceiverBuffer::FlagTrigger | ( | unsigned long long | index, | |
int | tag | |||
) |
flag word with trigger tag
index | buffer index | |
tag | id of the trigger to be flagged. valid values: 1..4 |
References DEFAULT_BUFFER_SIZE, QBufferStructure_t::fData, QBufferStructure_t::fWrite, p_buffer, and QError::SetDescription().
void QCrateReceiverBuffer::SetTriggerEnabled | ( | bool | enabled | ) |
set trigger enable/disable flag
enabled | if true, bit 26 is flagged. If false, bit 25 is flagged |
References DEFAULT_BUFFER_SIZE, QBufferStructure_t::fData, QBufferStructure_t::fWrite, and p_buffer.
long long QCrateReceiverBuffer::GetTimeOfSample | ( | unsigned long long | index | ) | const |
get time associated to a given sample index
index | sample index for which time is requested |
References QBufferStructure_t::fSamplingRateHz, QBufferStructure_t::fWrite, and p_buffer.
Referenced by QLCTriggerFinder::CheckExtraBits(), and QSmartScopeChannel::SetSampleZero().
unsigned long long QCrateReceiverBuffer::GetSampleOfTime | ( | long long | timeNs | ) | const |
get sample index associated to a given time
References QBufferStructure_t::fSamplingRateHz, and p_buffer.
Referenced by QSmartScopeChannel::SetSampleZero().
int QCrateReceiverBuffer::fShmid [private] |
shared memory id
Referenced by QCrateReceiverBuffer().
bool QCrateReceiverBuffer::fOwn [private] |
true if shared memory is owned by this instance of QCrateReceiverBuffer
Referenced by QCrateReceiverBuffer(), and ~QCrateReceiverBuffer().
QBufferStructure_t* QCrateReceiverBuffer::p_buffer [private] |
pointer to shared memory buffer
Referenced by Add(), AddFromNetwork(), EnableBuilderPointer(), EnableReadPointer(), EnableTriggerPointer(), FlagTrigger(), GetBuilt(), GetData(), GetLg(), GetNumberOfWords(), GetProcessed(), GetRead(), GetRunNumber(), GetSampleOfTime(), GetSamplingRate(), GetTimeOfSample(), GetToBeBuilt(), GetToBeProcessed(), GetToBeRead(), GetToBeWritten(), GetWritten(), OpenFile(), QCrateReceiverBuffer(), ReadToEnd(), Release(), ReleaseBuilderPointer(), ReleaseReadPointer(), ReleaseTriggerPointer(), SetBuilt(), SetProcessed(), SetSamplingRate(), SetTriggerEnabled(), Start(), WriteFile(), and ~QCrateReceiverBuffer().
gzFile QCrateReceiverBuffer::zFile [private] |
pointer to single channel data file
Referenced by CloseFile(), OpenFile(), QCrateReceiverBuffer(), WriteFile(), and ~QCrateReceiverBuffer().
std::string QCrateReceiverBuffer::fGzFileName [private] |
single channel data file name
Referenced by CloseFile(), OpenFile(), QCrateReceiverBuffer(), and WriteFile().
unsigned int QCrateReceiverBuffer::fPartialFile [private] |
partial file number
Referenced by CloseFile(), OpenFile(), and QCrateReceiverBuffer().
bool QCrateReceiverBuffer::fReadPtrBooked [private] |
true if this instance of QCrateReceiver has control on read ptr
Referenced by EnableReadPointer(), QCrateReceiverBuffer(), Release(), and ReleaseReadPointer().
bool QCrateReceiverBuffer::fBuilderPtrBooked [private] |
true if this instance of QCrateReceiverBuffer has control on builder pointer
Referenced by EnableBuilderPointer(), QCrateReceiverBuffer(), ReleaseBuilderPointer(), and SetBuilt().
bool QCrateReceiverBuffer::fTrgPtrBooked [private] |
true if this instance of QCrateReceiverBuffer has control on trigger pointer
Referenced by EnableTriggerPointer(), QCrateReceiverBuffer(), ReleaseTriggerPointer(), and SetProcessed().