artdaq_demo  v3_04_00
demo::AsciiSimulator Class Reference

Generates ASCIIFragments filled with user-specified ASCII strings. More...

#include <artdaq-demo/Generators/AsciiSimulator.hh>

Inheritance diagram for demo::AsciiSimulator:
artdaq::CommandableFragmentGenerator artdaq::FragmentGenerator

Public Member Functions

 AsciiSimulator (fhicl::ParameterSet const &ps)
 AsciiSimulator Constructor. More...
 
- Public Member Functions inherited from artdaq::CommandableFragmentGenerator
 CommandableFragmentGenerator (const fhicl::ParameterSet &ps)
 
void joinThreads ()
 
bool getNext (FragmentPtrs &output) overridefinal
 
void applyRequestsIgnoredMode (artdaq::FragmentPtrs &frags)
 
void applyRequestsSingleMode (artdaq::FragmentPtrs &frags)
 
void applyRequestsBufferMode (artdaq::FragmentPtrs &frags)
 
void applyRequestsWindowMode (artdaq::FragmentPtrs &frags)
 
bool applyRequests (FragmentPtrs &output)
 
bool sendEmptyFragment (FragmentPtrs &frags, size_t sequenceId, std::string desc)
 
void sendEmptyFragments (FragmentPtrs &frags, std::map< Fragment::sequence_id_t, Fragment::timestamp_t > &requests)
 
void checkOutOfOrderWindows (Fragment::sequence_id_t seq)
 
std::map
< Fragment::sequence_id_t,
std::chrono::steady_clock::time_point > 
getOutOfOrderWindowList () const
 
void startDataThread ()
 
void startMonitoringThread ()
 
void getDataLoop ()
 
bool waitForDataBufferReady ()
 
bool dataBufferIsTooLarge ()
 
void getDataBufferStats ()
 
void checkDataBuffer ()
 
void getMonitoringDataLoop ()
 
std::vector
< Fragment::fragment_id_t
fragmentIDs () override
 
size_t ev_counter () const
 
RequestMode request_mode () const
 
void StartCmd (int run, uint64_t timeout, uint64_t timestamp)
 
void StopCmd (uint64_t timeout, uint64_t timestamp)
 
void PauseCmd (uint64_t timeout, uint64_t timestamp)
 
void ResumeCmd (uint64_t timeout, uint64_t timestamp)
 
std::string ReportCmd (std::string const &which="")
 
virtual std::string metricsReportingInstanceName () const
 
bool exception () const
 
virtual bool metaCommand (std::string const &command, std::string const &arg)
 

Additional Inherited Members

- Protected Member Functions inherited from artdaq::CommandableFragmentGenerator
int run_number () const
 
int subrun_number () const
 
uint64_t timeout () const
 
uint64_t timestamp () const
 
bool should_stop () const
 
bool check_stop ()
 
int board_id () const
 
int fragment_id () const
 
size_t ev_counter_inc (size_t step=1, bool force=false)
 
void set_exception (bool exception)
 
void metricsReportingInstanceName (std::string const &name)
 
std::string printMode_ ()
 
virtual bool checkHWStatus_ ()
 
virtual void pauseNoMutex ()
 
virtual void pause ()
 
virtual void resume ()
 
virtual std::string report ()
 
virtual std::string reportSpecific (std::string const &what)
 
- Protected Attributes inherited from artdaq::CommandableFragmentGenerator
std::mutex mutex_
 

Detailed Description

Generates ASCIIFragments filled with user-specified ASCII strings.

AsciiSimulator is a simple type of fragment generator intended to be studied by new users of artdaq as an example of how to create such a generator in the "best practices" manner. Derived from artdaq's CommandableFragmentGenerator class, it can be used in a full DAQ simulation, generating ASCII strings used for data validataion.

Definition at line 25 of file AsciiSimulator.hh.

Constructor & Destructor Documentation

demo::AsciiSimulator::AsciiSimulator ( fhicl::ParameterSet const &  ps)
explicit

AsciiSimulator Constructor.

Parameters
psfhicl::ParameterSet to configure AsciiSimulator. AsciiSimulator accepts the following configuration parameters: "throttle_usecs", how long to pause at the beginning of each call to getNext_, "string1" and "string2", strings to alternately put into the AsciiFragment

Definition at line 54 of file AsciiSimulator_generator.cc.


The documentation for this class was generated from the following files: