Line data Source code
1 : #ifndef FELIX_ELINK_H_
2 : #define FELIX_ELINK_H_
3 :
4 : #include <cstdint>
5 :
6 : typedef uint16_t local_elink_t;
7 : typedef uint64_t felix_id_t;
8 :
9 :
10 : enum elink_type_t : uint8_t {
11 : NONE_ELINK_TYPE,
12 : DAQ,
13 : TTC,
14 : DCS,
15 : IC
16 : };
17 :
18 :
19 : enum encoding_t : uint8_t {
20 : ENC_DIRECT,
21 : ENC_8b10b,
22 : ENC_HDLC,
23 : ENC_TTC
24 : #if REGMAP_VERSION >= 0x0500
25 : ,
26 : ENC_8b10b_STRIPS,
27 : ITk_ItkPixel,
28 : Endeavour,
29 : ENC_INTERLAKEN
30 : #endif
31 : };
32 :
33 :
34 : struct Elink {
35 : felix_id_t fid;
36 : local_elink_t lid;
37 : bool has_streams;
38 : elink_type_t type;
39 : encoding_t enc;
40 :
41 45 : Elink(felix_id_t f, local_elink_t l, bool s, elink_type_t t, encoding_t e) :
42 45 : fid(f), lid(l), has_streams(s), type(t), enc(e) {};
43 :
44 : explicit Elink(felix_id_t f) :
45 : fid(f), lid(0), has_streams(false), type(NONE_ELINK_TYPE), enc(ENC_DIRECT) {};
46 : };
47 :
48 : #endif /* FELIX_ELINK_H_ */
49 :
|