DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
hermesbutler.HermesModule Class Reference

Public Member Functions

 __init__ (self, node)
 
 get_node (self, id)
 
 get_nodes (self, regex)
 
 dispatch (self)
 
 sample_ctrs (self, int seconds)
 
 sel_tx_mux (self, int i)
 
 sel_tx_mux_buf (self, int i)
 
 sel_udp_core (self, int i)
 

Public Attributes

 node = node
 
 magic = magic.value()
 
 n_mgt = n_mgt.value()
 
 n_src = n_src.value()
 
 ref_freq = ref_freq.value()
 
 n_srcs_p_mgt = self.n_src
 

Protected Member Functions

 _load_info (self)
 

Detailed Description

Definition at line 73 of file hermesbutler.py.

Constructor & Destructor Documentation

◆ __init__()

hermesbutler.HermesModule.__init__ ( self,
node )

Definition at line 74 of file hermesbutler.py.

74 def __init__(self, node):
75 self.node = node
76
77 self._load_info()
78
79

Member Function Documentation

◆ _load_info()

hermesbutler.HermesModule._load_info ( self)
protected

Definition at line 80 of file hermesbutler.py.

80 def _load_info(self):
81 magic = self.node.getNode('info.magic').read()
82 self.node.getClient().dispatch()
83 self.magic = magic.value()
84 if self.magic != 0xdeadbeef:
85 raise ValueError(f"Magic number check failed. Expected '0xdeadbeef', found '{hex(self.magic)}'")
86
87
88
89 n_mgt = self.node.getNode('info.generics.n_mgts').read()
90 n_src = self.node.getNode('info.generics.n_srcs').read()
91 ref_freq = self.node.getNode('info.generics.ref_freq').read()
92 self.node.getClient().dispatch()
93
94 # Generics
95 self.n_mgt = n_mgt.value()
96 self.n_src = n_src.value()
97 self.ref_freq = ref_freq.value()
98 # Extra info
99 self.n_srcs_p_mgt = self.n_src
100

◆ dispatch()

hermesbutler.HermesModule.dispatch ( self)

Definition at line 107 of file hermesbutler.py.

107 def dispatch(self):
108 self.node.getClient().dispatch()
109

◆ get_node()

hermesbutler.HermesModule.get_node ( self,
id )

Definition at line 101 of file hermesbutler.py.

101 def get_node(self, id):
102 return self.node.getNode(id)
103

◆ get_nodes()

hermesbutler.HermesModule.get_nodes ( self,
regex )

Definition at line 104 of file hermesbutler.py.

104 def get_nodes(self, regex):
105 return self.node.getNodes(regex)
106

◆ sample_ctrs()

hermesbutler.HermesModule.sample_ctrs ( self,
int seconds )

Definition at line 110 of file hermesbutler.py.

110 def sample_ctrs(self, seconds: int):
111
112 if not seconds:
113 self.node.getNode('samp.ctrl.samp').write(True)
114 self.node.getNode('samp.ctrl.samp').write(False)
115 self.node.getClient().dispatch()
116 else:
117 self.node.getNode('samp.ctrl.samp').write(True)
118 self.node.getClient().dispatch()
119 time.sleep(seconds)
120 self.node.getNode('samp.ctrl.samp').write(False)
121 self.node.getClient().dispatch()
122
123
124

◆ sel_tx_mux()

hermesbutler.HermesModule.sel_tx_mux ( self,
int i )

Definition at line 125 of file hermesbutler.py.

125 def sel_tx_mux(self, i: int):
126
127 if i >= self.n_mgt:
128 raise ValueError(f"Link {i} does not exist ({self.n_mgt})")
129
130 self.get_node('tx_path.csr_tx_mux.ctrl.tx_mux_sel').write(i)
131 self.dispatch()
132 j = self.get_node('tx_path.csr_tx_mux.ctrl.tx_mux_sel').read()
133 self.dispatch()
134 print(f"Link {j} selected")
135
136

◆ sel_tx_mux_buf()

hermesbutler.HermesModule.sel_tx_mux_buf ( self,
int i )

Definition at line 137 of file hermesbutler.py.

137 def sel_tx_mux_buf(self, i: int):
138
139 if i >= self.n_src:
140 raise ValueError(f"Input buffer {i} does not exist ({self.n_src})")
141
142 self.node.getNode('tx_path.tx_mux.csr.ctrl.sel_buf').write(i)
143 self.node.getClient().dispatch()
144

◆ sel_udp_core()

hermesbutler.HermesModule.sel_udp_core ( self,
int i )

Definition at line 145 of file hermesbutler.py.

145 def sel_udp_core(self, i: int):
146
147 if i >= self.n_mgt:
148 raise ValueError(f"Link {i} does not exist ({self.n_mgt})")
149
150 self.node.getNode('tx_path.csr_udp_core.ctrl.udp_core_sel').write(i)
151 self.node.getClient().dispatch()
152
153
154# N_MGT=4
155# N_SRC=8
156# N_SRCS_P_MGT = N_SRC//N_MGT

Member Data Documentation

◆ magic

hermesbutler.HermesModule.magic = magic.value()

Definition at line 83 of file hermesbutler.py.

◆ n_mgt

hermesbutler.HermesModule.n_mgt = n_mgt.value()

Definition at line 95 of file hermesbutler.py.

◆ n_src

hermesbutler.HermesModule.n_src = n_src.value()

Definition at line 96 of file hermesbutler.py.

◆ n_srcs_p_mgt

hermesbutler.HermesModule.n_srcs_p_mgt = self.n_src

Definition at line 99 of file hermesbutler.py.

◆ node

hermesbutler.HermesModule.node = node

Definition at line 75 of file hermesbutler.py.

◆ ref_freq

hermesbutler.HermesModule.ref_freq = ref_freq.value()

Definition at line 97 of file hermesbutler.py.


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