|
pflib v3.9.5-18-g30f792c
Pretty Fine HGCROC Interaction Library
|
encapulating a given setup's access rules More...
Public Types | |
| enum class | DaqFormat { SIMPLEROC = 1 , ECOND_SW_HEADERS = 2 } |
| types of daq formats that we can do More... | |
Public Member Functions | |
| virtual int | nrocs ()=0 |
| number of boards | |
| virtual int | necons ()=0 |
| number of econds | |
| virtual bool | have_roc (int iroc) const =0 |
| do we have a roc with this id? | |
| virtual bool | have_econ (int iecon) const =0 |
| do we have an econ with this id? | |
| virtual std::vector< int > | roc_ids () const =0 |
| get a list of the IDs we have set up | |
| virtual std::vector< int > | econ_ids () const =0 |
| get a list of the econ IDs we have set up | |
| virtual ROC & | roc (int which)=0 |
| Get a ROC interface for the given HGCROC board. | |
| virtual ECON & | econ (int which)=0 |
| get a ECON interface for the given econ board | |
| virtual void | hardResetROCs ()=0 |
| Generate a hard reset to all the HGCROC boards. | |
| virtual void | hardResetECONs ()=0 |
| generate a hard reset to all the ECON boards | |
| virtual uint32_t | getFirmwareVersion () |
| Get the firmware version. | |
| virtual void | softResetROC (int which=-1)=0 |
| Generate a soft reset to a specific HGCROC board, -1 for all. | |
| virtual void | softResetECON (int which=-1)=0 |
| Generate a soft reset to a specific ECON board, -1 for all. | |
| virtual Elinks & | elinks ()=0 |
| get the Elinks object | |
| virtual FastControl & | fc ()=0 |
| get the FastControl object | |
| virtual DAQ & | daq ()=0 |
| get the DAQ object | |
| std::vector< std::string > | i2c_bus_names () |
| names of different I2C busses we could talk to | |
| I2C & | get_i2c_bus (const std::string &name) |
| get an I2C bus by name | |
| std::vector< std::string > | opto_link_names () const |
| names of different Optical Links we could talk to | |
| OptoLink & | get_opto_link (const std::string &name) const |
| get an OptoLink by name | |
| virtual const std::vector< std::pair< int, int > > & | getHardwareRocErxMapping ()=0 |
| Define the ROC-half -> eRx input into the ECON-D for the hardware. | |
| const packing::SingleECONDRocErxMapping & | getRocErxMapping () |
| get the mapping that can be used to convert between (i_erx, link_chan) and (i_roc, chan) indices | |
| virtual void | setup_run (int irun, DaqFormat format, int contrib_id=-1)=0 |
| virtual std::vector< uint32_t > | read_event ()=0 |
| virtual bool | has_event () |
Protected Attributes | |
| std::map< std::string, std::shared_ptr< I2C > > | i2c_ |
| std::map< std::string, std::shared_ptr< OptoLink > > | opto_ |
| logging::logger | the_log_ {logging::get("Target")} |
Private Attributes | |
| std::unique_ptr< packing::SingleECONDRocErxMapping > | mapping_ |
encapulating a given setup's access rules
Since both the Hcal and Ecal have ECONs and HGCROCs (that is the whole reason we share pflib and firmware), this pflib::Target is the unifying point for them. It represents one "DMA access" point (i.e. an HcalBackplane or a "group" of Ecal modules).
|
strong |
types of daq formats that we can do
| Enumerator | |
|---|---|
| SIMPLEROC | simple format for direct HGCROC connection This format is only supported for fiberless connections directly between a ZCU and an Hcal HGCROC board. After initial testing of DAQ is complete in this setup, you are encouraged to use ECOND_HEADERS so that code you develop is more transparently shared to other (fiberfull) test stands. |
| ECOND_SW_HEADERS | ECON-D format with headers inserted by software (on the ZCU) or firmware (on the Bittware) to mark the beginning of samples and the end of a multi-sample sequence. |
|
pure virtual |
get the DAQ object
Implemented in pflib::EcalSMMTargetBW, pflib::EcalSMMTargetZCU, pflib::HcalBackplane, pflib::HcalBackplaneBW, pflib::HcalBackplaneZCU, and pflib::HcalFiberless.
|
pure virtual |
get a ECON interface for the given econ board
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplane, and pflib::HcalFiberless.
|
pure virtual |
get a list of the econ IDs we have set up
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplane, and pflib::HcalFiberless.
|
pure virtual |
get the Elinks object
Implemented in pflib::EcalSMMTargetBW, pflib::EcalSMMTargetZCU, pflib::HcalBackplane, pflib::HcalBackplaneBW, pflib::HcalBackplaneZCU, and pflib::HcalFiberless.
|
pure virtual |
get the FastControl object
Implemented in pflib::EcalSMMTargetBW, pflib::EcalSMMTargetZCU, pflib::HcalBackplaneBW, pflib::HcalBackplaneZCU, and pflib::HcalFiberless.
|
pure virtual |
Define the ROC-half -> eRx input into the ECON-D for the hardware.
This does not include which ROCs are active (i.e. assume all the ROCs are active). This is used when constructing the SingleECONDRocErxMapping object that is used to to the index conversions for us.
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplane, and pflib::HcalFiberless.
|
pure virtual |
generate a hard reset to all the ECON boards
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplaneBW, pflib::HcalBackplaneZCU, and pflib::HcalFiberless.
|
pure virtual |
Generate a hard reset to all the HGCROC boards.
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplaneBW, pflib::HcalBackplaneZCU, and pflib::HcalFiberless.
|
pure virtual |
do we have an econ with this id?
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplane, and pflib::HcalFiberless.
|
pure virtual |
do we have a roc with this id?
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplane, and pflib::HcalFiberless.
|
pure virtual |
number of econds
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplane, and pflib::HcalFiberless.
|
pure virtual |
number of boards
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplane, and pflib::HcalFiberless.
|
pure virtual |
Get a ROC interface for the given HGCROC board.
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplane, and pflib::HcalFiberless.
|
pure virtual |
get a list of the IDs we have set up
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplane, and pflib::HcalFiberless.
|
pure virtual |
Generate a soft reset to a specific ECON board, -1 for all.
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplaneBW, pflib::HcalBackplaneZCU, and pflib::HcalFiberless.
|
pure virtual |
Generate a soft reset to a specific HGCROC board, -1 for all.
Implemented in pflib::EcalSingleModuleMotherboard, pflib::HcalBackplaneBW, pflib::HcalBackplaneZCU, and pflib::HcalFiberless.