pflib v3.9.0-rc3-11-g2537d8f
Pretty Fine HGCROC Interaction Library
Loading...
Searching...
No Matches
DAQ.h
1#ifndef PFLIB_DAQ_H_INCLUDED
2#define PFLIB_DAQ_H_INCLUDED
3
4#include <stdint.h>
5
6#include <map>
7#include <string>
8#include <vector>
9
10namespace pflib {
11
19class DAQ {
20 protected:
21 DAQ(int links) : n_links{links}, econid_{0xFFF}, samples_{1}, soi_{0} {}
22
23 public:
24 virtual void reset() = 0;
26 virtual int getEventOccupancy() = 0;
28 virtual void setupLink(int ilink, int l1a_delay, int l1a_capture_width) = 0;
30 virtual void getLinkSetup(int ilink, int& l1a_delay,
31 int& l1a_capture_width) = 0;
33 virtual void bufferStatus(int ilink, bool& empty, bool& full) = 0;
34
36 virtual void setup(int econid, int samples_per_ror, int soi = -1) {
37 econid_ = econid;
38 samples_ = samples_per_ror;
39 soi_ = (soi < 0 || soi > samples_ - 1) ? (0) : soi;
40 }
42 int econid() const { return econid_; }
44 int samples_per_ror() const { return samples_; }
46 int soi() const { return soi_; }
47
49 virtual void enable(bool enable = true) { enabled_ = enable; }
51 virtual bool enabled() { return enabled_; }
53 int nlinks() const { return n_links; }
55 virtual bool AXIS_enabled() { return false; }
57 virtual void AXIS_enable(bool enable) {}
58
60 virtual std::vector<uint32_t> getLinkData(int ilink) = 0;
62 virtual void advanceLinkReadPtr() {}
63
64 // get any useful debugging data
65 virtual std::map<std::string, uint32_t> get_debug(uint32_t ask) {
67 }
68
69 private:
74 int econid_;
75 int samples_, soi_;
76};
77
78DAQ* get_DAQ_zcu();
79
80} // namespace pflib
81
82#endif // PFLIB_DAQ_H_INCLUDED
Interface with DAQ via a WishboneInterface.
Definition DAQ.h:19
virtual void enable(bool enable=true)
enable/disable the readout
Definition DAQ.h:49
int soi() const
get the soi
Definition DAQ.h:46
virtual void setup(int econid, int samples_per_ror, int soi=-1)
setup overall event information for daq channels
Definition DAQ.h:36
virtual void advanceLinkReadPtr()
Advance link read pointer.
Definition DAQ.h:62
int n_links
number of links
Definition DAQ.h:71
virtual std::vector< uint32_t > getLinkData(int ilink)=0
read out link data
virtual void setupLink(int ilink, int l1a_delay, int l1a_capture_width)=0
Setup a link.
Definition DAQ.cxx:50
int econid() const
get the econid
Definition DAQ.h:42
virtual void AXIS_enable(bool enable)
enable/disable AXIS
Definition DAQ.h:57
virtual void getLinkSetup(int ilink, int &l1a_delay, int &l1a_capture_width)=0
read link parameters into the passed variables
Definition DAQ.cxx:76
bool enabled_
enabled
Definition DAQ.h:73
int nlinks() const
number of elinks
Definition DAQ.h:53
virtual bool enabled()
is the readout enabled?
Definition DAQ.h:51
virtual void bufferStatus(int ilink, bool &empty, bool &full)=0
get empty/full status for the given link and stage
Definition DAQ.cxx:90
int samples_per_ror() const
get the samples
Definition DAQ.h:44
virtual bool AXIS_enabled()
is AXIS enabled?
Definition DAQ.h:55
This version of the fast control code interfaces with the CMS Fast control library which can be contr...
Definition Backend.cxx:3