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 64 of file hermesbutler.py.

Constructor & Destructor Documentation

◆ __init__()

hermesbutler.HermesModule.__init__ ( self,
node )

Definition at line 65 of file hermesbutler.py.

65 def __init__(self, node):
66 self.node = node
67
68 self._load_info()
69
70

Member Function Documentation

◆ _load_info()

hermesbutler.HermesModule._load_info ( self)
protected

Definition at line 71 of file hermesbutler.py.

71 def _load_info(self):
72 magic = self.node.getNode('info.magic').read()
73 self.node.getClient().dispatch()
74 self.magic = magic.value()
75 if self.magic != 0xdeadbeef:
76 raise ValueError(f"Magic number check failed. Expected '0xdeadbeef', found '{hex(self.magic)}'")
77
78
79
80 n_mgt = self.node.getNode('info.generics.n_mgts').read()
81 n_src = self.node.getNode('info.generics.n_srcs').read()
82 ref_freq = self.node.getNode('info.generics.ref_freq').read()
83 self.node.getClient().dispatch()
84
85 # Generics
86 self.n_mgt = n_mgt.value()
87 self.n_src = n_src.value()
88 self.ref_freq = ref_freq.value()
89 # Extra info
90 self.n_srcs_p_mgt = self.n_src
91

◆ dispatch()

hermesbutler.HermesModule.dispatch ( self)

Definition at line 98 of file hermesbutler.py.

98 def dispatch(self):
99 self.node.getClient().dispatch()
100

◆ get_node()

hermesbutler.HermesModule.get_node ( self,
id )

Definition at line 92 of file hermesbutler.py.

92 def get_node(self, id):
93 return self.node.getNode(id)
94

◆ get_nodes()

hermesbutler.HermesModule.get_nodes ( self,
regex )

Definition at line 95 of file hermesbutler.py.

95 def get_nodes(self, regex):
96 return self.node.getNodes(regex)
97

◆ sample_ctrs()

hermesbutler.HermesModule.sample_ctrs ( self,
int seconds )

Definition at line 101 of file hermesbutler.py.

101 def sample_ctrs(self, seconds: int):
102 self.node.getNode('samp.ctrl.samp').write(True)
103 self.node.getNode('samp.ctrl.samp').write(False)
104 self.node.getClient().dispatch()
105 if seconds:
106 time.sleep(seconds)
107 self.node.getNode('samp.ctrl.samp').write(False)
108 self.node.getNode('samp.ctrl.samp').write(False)
109 self.node.getClient().dispatch()
110
111

◆ sel_tx_mux()

hermesbutler.HermesModule.sel_tx_mux ( self,
int i )

Definition at line 112 of file hermesbutler.py.

112 def sel_tx_mux(self, i: int):
113
114 if i >= self.n_mgt:
115 raise ValueError(f"Link {i} does not exist ({self.n_mgt})")
116
117 self.get_node('tx_path.csr_tx_mux.ctrl.tx_mux_sel').write(i)
118 self.dispatch()
119 j = self.get_node('tx_path.csr_tx_mux.ctrl.tx_mux_sel').read()
120 self.dispatch()
121 print(f"Link {j} selected")
122
123

◆ sel_tx_mux_buf()

hermesbutler.HermesModule.sel_tx_mux_buf ( self,
int i )

Definition at line 124 of file hermesbutler.py.

124 def sel_tx_mux_buf(self, i: int):
125
126 if i >= self.n_src:
127 raise ValueError(f"Input buffer {i} does not exist ({self.n_src})")
128
129 self.node.getNode('tx_path.tx_mux.csr.ctrl.sel_buf').write(i)
130 self.node.getClient().dispatch()
131

◆ sel_udp_core()

hermesbutler.HermesModule.sel_udp_core ( self,
int i )

Definition at line 132 of file hermesbutler.py.

132 def sel_udp_core(self, i: int):
133
134 if i >= self.n_mgt:
135 raise ValueError(f"Link {i} does not exist ({self.n_mgt})")
136
137 self.node.getNode('tx_path.csr_udp_core.ctrl.udp_core_sel').write(i)
138 self.node.getClient().dispatch()
139
140
141# N_MGT=4
142# N_SRC=8
143# N_SRCS_P_MGT = N_SRC//N_MGT

Member Data Documentation

◆ magic

hermesbutler.HermesModule.magic = magic.value()

Definition at line 74 of file hermesbutler.py.

◆ n_mgt

hermesbutler.HermesModule.n_mgt = n_mgt.value()

Definition at line 86 of file hermesbutler.py.

◆ n_src

hermesbutler.HermesModule.n_src = n_src.value()

Definition at line 87 of file hermesbutler.py.

◆ n_srcs_p_mgt

hermesbutler.HermesModule.n_srcs_p_mgt = self.n_src

Definition at line 90 of file hermesbutler.py.

◆ node

hermesbutler.HermesModule.node = node

Definition at line 66 of file hermesbutler.py.

◆ ref_freq

hermesbutler.HermesModule.ref_freq = ref_freq.value()

Definition at line 88 of file hermesbutler.py.


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