pflib v3.9.0-rc3-11-g2537d8f
Pretty Fine HGCROC Interaction Library
Loading...
Searching...
No Matches
pflib::bittware::BWOptoLink Class Reference
Inheritance diagram for pflib::bittware::BWOptoLink:
[legend]
Collaboration diagram for pflib::bittware::BWOptoLink:
[legend]

Public Member Functions

 BWOptoLink (int ilink, const char *dev)
 for a daq link
 
 BWOptoLink (int ilink, BWOptoLink &daqlink)
 for a trigger link
 
const char * dev () const
 
virtual int ilink ()
 which optical link does this represent?
 
virtual bool is_bidirectional ()
 is this link bidirectional (e.g. a DAQ lpGBT)
 
virtual void reset_link ()
 reset a given optical link, may have side-effects
 
virtual void run_linktrick ()
 
virtual bool get_rx_polarity ()
 
virtual bool get_tx_polarity ()
 
virtual void set_rx_polarity (bool polarity)
 
virtual void set_tx_polarity (bool polarity)
 
virtual std::map< std::string, uint32_t > opto_status ()
 
virtual std::map< std::string, uint32_t > opto_rates ()
 
virtual lpGBT_ConfigTransportlpgbt_transport ()
 
virtual int get_elink_tx_mode (int elink)
 there are four TX elinks configured in the coder block
 
virtual void set_elink_tx_mode (int elink, int mode)
 
virtual void capture_ec (int mode, std::vector< uint8_t > &tx, std::vector< uint8_t > &rx)
 
virtual void capture_ic (int mode, std::vector< uint8_t > &tx, std::vector< uint8_t > &rx)
 

Private Attributes

AxiLite gtys_
 
std::shared_ptr< AxiLitecoder_
 
std::shared_ptr< AxiLiteiceccoder_
 
int ilink_
 
bool isdaq_
 
std::unique_ptr< BWlpGBT_Transporttransport_
 

Member Function Documentation

◆ capture_ec()

void pflib::bittware::BWOptoLink::capture_ec ( int mode,
std::vector< uint8_t > & tx,
std::vector< uint8_t > & rx )
virtual

Implements pflib::OptoLink.

◆ capture_ic()

void pflib::bittware::BWOptoLink::capture_ic ( int mode,
std::vector< uint8_t > & tx,
std::vector< uint8_t > & rx )
virtual

Implements pflib::OptoLink.

◆ get_elink_tx_mode()

int pflib::bittware::BWOptoLink::get_elink_tx_mode ( int elink)
virtual

there are four TX elinks configured in the coder block

Implements pflib::OptoLink.

◆ get_rx_polarity()

bool pflib::bittware::BWOptoLink::get_rx_polarity ( )
virtual

Implements pflib::OptoLink.

◆ get_tx_polarity()

bool pflib::bittware::BWOptoLink::get_tx_polarity ( )
virtual

Implements pflib::OptoLink.

◆ ilink()

virtual int pflib::bittware::BWOptoLink::ilink ( )
inlinevirtual

which optical link does this represent?

Implements pflib::OptoLink.

◆ is_bidirectional()

virtual bool pflib::bittware::BWOptoLink::is_bidirectional ( )
inlinevirtual

is this link bidirectional (e.g. a DAQ lpGBT)

Reimplemented from pflib::OptoLink.

◆ lpgbt_transport()

virtual lpGBT_ConfigTransport & pflib::bittware::BWOptoLink::lpgbt_transport ( )
inlinevirtual

Implements pflib::OptoLink.

◆ opto_rates()

std::map< std::string, uint32_t > pflib::bittware::BWOptoLink::opto_rates ( )
virtual

Implements pflib::OptoLink.

◆ opto_status()

std::map< std::string, uint32_t > pflib::bittware::BWOptoLink::opto_status ( )
virtual

Implements pflib::OptoLink.

◆ reset_link()

void pflib::bittware::BWOptoLink::reset_link ( )
virtual

reset a given optical link, may have side-effects

This reset could affect all links in a block since we use the GTH_RESET if the RX_RESET isn't working.

only do these items for daq links

GTH_RESET about 1/10 of the attempts

RX_RESET the other 9/10 attempts

Implements pflib::OptoLink.

◆ run_linktrick()

void pflib::bittware::BWOptoLink::run_linktrick ( )
virtual

Reimplemented from pflib::OptoLink.

◆ set_elink_tx_mode()

void pflib::bittware::BWOptoLink::set_elink_tx_mode ( int elink,
int mode )
virtual

Implements pflib::OptoLink.

◆ set_rx_polarity()

void pflib::bittware::BWOptoLink::set_rx_polarity ( bool polarity)
virtual

Implements pflib::OptoLink.

◆ set_tx_polarity()

void pflib::bittware::BWOptoLink::set_tx_polarity ( bool polarity)
virtual

Implements pflib::OptoLink.


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