Orion
high-rate readout
procdefs.hpp
1 
5 #pragma once
6 
7 #define PROC_REGNAME(addr, name) name
8 #define PROC_FLDNAME(name) name
9 
10 #define PROC_NAME(name) name
11 #define PROC_REFT(name) ref_t name
12 #define PROC_INIT(name) name(name)
13 
14 #define PROC_REGMAP(name) regmap::name
15 #define PROC_FLDMAP(name) fldmap::name
16 
17 #define PROC_REGNAMEMAP(name) { #name, &regmap::name }
18 #define PROC_FLDNAMEMAP(name) { #name, &fldmap::name }
19 
20 
21 #define PROC_REGADDRMAP(name) \
22  { regmap::name.get_addr(), &regmap::name }
23 
24 #define PROC_REGPROP(name) \
25  .def_property_readonly(#name, [](const RegMap& self) -> const Register& { return self.name; })
26 
27 #define PROC_FLDPROP(name) \
28  .def_property_readonly(#name, [](const FldMap& self) -> const Field& { return self.name; })
29