1from pathlib
import Path
5import daqconf.enable
as enable
7def update_ctb_settings(db_file:Path, jsonfile:Path, session_name:str|
None) ->
None :
8 print (f
"Setting {db_file} to {jsonfile}")
10 json_data = json.load(open(jsonfile))
11 ctb = json_data[
"ctb"]
17 to_be_enabled =
set_misc( db, ctb[
"misc"])
18 to_be_enabled +=
set_hlts( db, ctb[
"HLT"][
"trigger"])
23 triggers = db.get_dals(
"CTBTrigger")
24 all_triggers = [t.id
for t
in triggers]
26 for t
in all_triggers :
27 if t
not in to_be_enabled :
28 to_be_disabled.append(t)
30 print(
"Enabling:",to_be_enabled)
31 print(
"Disabling:",to_be_disabled)
34 session_name = db.get_dals(
"Session")[0].id
45 enable +=
set_crt(db, systems[
"crt"])
46 enable +=
set_beam(db, systems[
"beam"])
49def set_beam(db:conffwk.Configuration, beam:dict) -> list[str] :
51 board = db.get_dals(
"CTBoardConf")[0]
53 oks.channel_mask = beam[
"channel_mask"]
54 oks.reshape_lengths = beam[
"reshape_lengths"]
55 oks.delays = beam[
"delays"]
61def set_beam_llts(db:conffwk.Configuration, triggers:dict) -> list[str] :
65 oks = db.get_dal(
"CTBLLT", t[
"id"])
67 oks.description = t[
"description"]
70 enable.append(t[
"id"])
74def set_crt(db:conffwk.Configuration, crt:dict) -> list[str] :
76 oks = db.get_dals(
"CTBCRTSubsystem")[0]
77 oks.pixelate = crt[
"pixelate"]
78 oks.channel_mask = crt[
"channel_mask"]
79 oks.reshape_lengths = crt[
"reshape_lengths"]
80 oks.delays = crt[
"delays"]
85def set_crt_llts(db:conffwk.Configuration, triggers:dict) -> list[str] :
89 oks = db.get_dal(
"CTBCountLLT", t[
"id"])
90 oks.count = t[
"count"]
93 oks.description = t[
"description"]
96 enable.append(t[
"id"])
100def set_pds(db:conffwk.Configuration, pds:dict) ->
None :
101 oks = db.get_dals(
"CTBPDSSubsystem")[0]
102 oks.dac_thresholds = pds[
"dac_thresholds"]
103 oks.channel_mask = pds[
"channel_mask"]
104 oks.reshape_lengths = pds[
"reshape_lengths"]
105 oks.delays = pds[
"delays"]
113 oks = db.get_dal(
"CTBPDSLLT", t[
"id"])
115 oks.description = t[
"description"]
116 oks.enable = t[
"enable"]
119 oks.count = t[
"count"]
122def set_hlts(db:conffwk.Configuration, hlts:dict) -> list[str] :
128 enable.append(d[
"id"])
132def set_hlt(db:conffwk.Configuration, hlt:dict) ->
None :
133 oks = db.get_dal(
"CTBHLT", hlt[
"id"])
134 oks.minc = hlt[
"minc"]
135 oks.mexc = hlt[
"mexc"]
136 oks.prescale = hlt[
"prescale"]
137 oks.description = hlt[
"description"]
140def set_misc(db:conffwk.Configuration, misc:dict) -> list[str] :
142 oks_misc = db.get_dals(
"CTBMisc")[0]
143 oks_misc.ch_status = misc[
"ch_status"]
144 db.update_dal(oks_misc)
146 pulser = misc[
"pulser"]
147 oks_pulser = oks_misc.pulser
148 oks_pulser.enable = pulser[
"enable"]
149 oks_pulser.frequency = pulser[
"frequency"]
150 db.update_dal(oks_pulser)
152 timing = misc[
"timing"]
153 oks_timing = oks_misc.timing
154 oks_timing.address = timing[
"address"]
155 oks_timing.triggers = timing[
"triggers"]
156 oks_timing.lockout = timing[
"lockout"]
158 db.update_dal(oks_timing)
167 oks_trigger=db.get_dal(
"CTBRandomTrigger", trigger_id)
168 oks_trigger.fixed_freq=trigger[
"fixed_freq"]
169 oks_trigger.beam_mode=trigger[
"beam_mode"]
170 oks_trigger.period=trigger[
"period"]
171 oks_trigger.description=trigger[
"description"]
172 db.update_dal(oks_trigger)
174 if trigger[
"enable"] :
181 oks_sockets = db.get_dals(
"CTBSockets")[0]
183 oks_receiver = oks_sockets.receiver
184 receiver = sockets[
"receiver"]
185 oks_receiver.rollover = receiver[
"rollover"]
186 oks_receiver.port = receiver[
"port"]
187 db.update_dal(oks_receiver)
189 oks_monitor = oks_sockets.monitor
190 monitor = sockets[
"monitor"]
191 oks_monitor.enable = monitor[
"enable"]
192 oks_monitor.port = monitor[
"port"]
193 db.update_dal(oks_monitor)
195 oks_statistics = oks_sockets.statistics
196 stat = sockets[
"statistics"]
197 oks_statistics.enable= stat[
"enable"]
198 oks_statistics.port = stat[
"port"]
199 oks_statistics.updt_period = stat[
"updt_period"]
200 db.update_dal(oks_statistics)
list[str] set_subsystems(conffwk.Configuration db, dict systems)
None set_sockets(conffwk.Configuration db, dict sockets)
list[str] set_crt_llts(conffwk.Configuration db, dict triggers)
list[str] set_hlts(conffwk.Configuration db, dict hlts)
None set_hlt(conffwk.Configuration db, dict hlt)
None set_pds_llts(conffwk.Configuration db, dict triggers)
list[str] set_random_trigger(conffwk.Configuration db, str trigger_id, dict trigger)
list[str] set_beam_llts(conffwk.Configuration db, dict triggers)
list[str] set_misc(conffwk.Configuration db, dict misc)
None set_pds(conffwk.Configuration db, dict pds)
list[str] set_crt(conffwk.Configuration db, dict crt)
list[str] set_beam(conffwk.Configuration db, dict beam)
enable(oksfile, disable, resource, session_name)