pflib v3.12.0-1-g716e801
Pretty Fine HGCROC Interaction Library
Loading...
Searching...
No Matches
zcu_optolink.h
1#ifndef ZCU_OPTOLINK_INCLUDED
2#define ZCU_OPTOLINK_INCLUDED 1
3
4#include <memory>
5
6#include "pflib/OptoLink.h"
7#include "pflib/logging/Logging.h"
8#include "pflib/zcu/UIO.h"
9#include "pflib/zcu/lpGBT_ICEC_ZCU_Simple.h"
10
11namespace pflib {
12namespace zcu {
13
15 public:
16 ZCUOptoLink(const std::string& name, int ilink, bool isdaq);
17
18 virtual int ilink() { return ilink_; }
19 virtual bool is_bidirectional() { return isdaq_; }
20 virtual void soft_reset_link() override;
21 virtual void reset_link();
22 virtual void run_linktrick();
23
24 virtual bool get_rx_polarity();
25 virtual bool get_tx_polarity();
26 virtual void set_rx_polarity(bool polarity);
27 virtual void set_tx_polarity(bool polarity);
28
30 virtual std::map<std::string, uint32_t> opto_rates();
31
32 virtual lpGBT_ConfigTransport& lpgbt_transport() { return *transport_; }
33
34 ::pflib::UIO& coder() { return coder_; }
35
36 // setup various aspects
38 virtual int get_elink_tx_mode(int elink);
39 virtual void set_elink_tx_mode(int elink, int mode);
40
41 virtual void capture_ec(int mode, std::vector<uint8_t>& tx,
43 virtual void capture_ic(int mode, std::vector<uint8_t>& tx,
45
46 private:
48 ::pflib::UIO transright_;
49 ::pflib::UIO coder_;
50 std::string coder_name_;
51 int ilink_;
52 bool isdaq_;
53 mutable logging::logger the_log_;
54};
55
56} // namespace zcu
57} // namespace pflib
58
59#endif // ZCU_OPTOLINK_INCLUDED
Definition UIO.h:15
Definition lpGBT.h:18
boost::log::sources::severity_channel_logger_mt< level, std::string > logger
our logger type
Definition Logging.h:39
This version of the fast control code interfaces with the CMS Fast control library which can be contr...
Definition Backend.cxx:3