DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
timing_rc_cmd_gen.py
Go to the documentation of this file.
1from rich.console import Console
2console = Console()
3
4# Set moo schema search path
5from dunedaq.env import get_moo_model_path
6import moo.io
7moo.io.default_load_path = get_moo_model_path()
8
9# Load configuration types
10import moo.otypes
11moo.otypes.load_types('timinglibs/timingcmd.jsonnet')
13
14from appfwk.utils import acmd
15
16import json
17import math
18
20 MASTER_CONTROLLER_APP_NAME,
21 MASTER_CONTROLLER_MOD_NAME,
22 JSON_DIR,
23 DEBUG=False,
24 ):
25
26 cmds = [
27 ("master_send_fl_command", acmd([ (MASTER_CONTROLLER_MOD_NAME, tcmd.TimingMasterSendFLCmdCmdPayload(
28 fl_cmd_id=0x1,
29 channel=0,
30 number_of_commands_to_send=1))])),
31 ("master_set_endpoint_delay", acmd([ (MASTER_CONTROLLER_MOD_NAME, tcmd.TimingMasterSetEndpointDelayCmdPayload(
32 address=0,
33 coarse_delay=0,
34 fine_delay=0,
35 phase_delay=0,
36 measure_rtt=False,
37 control_sfp=False,
38 sfp_mux=-1))])),
39 ]
40
41 data_dir = f"{JSON_DIR}/data"
42
43 for c,d in cmds:
44 cfg = {
45 "apps": {MASTER_CONTROLLER_APP_NAME: f'data/{MASTER_CONTROLLER_APP_NAME}_{c}'}
46 }
47 with open(f"{JSON_DIR}/{c}.json", 'w') as f:
48 json.dump(cfg, f, indent=4, sort_keys=True)
49
50 with open(f'{data_dir}/{MASTER_CONTROLLER_APP_NAME}_{c}.json', 'w') as f:
51 json.dump(d.pod(), f, indent=4, sort_keys=True)
52
53if __name__ == '__main__':
54 # Add -h as default help option
55 CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])
56
57 import click
58
59 @click.command(context_settings=CONTEXT_SETTINGS)
60
61 @click.option('--master-controller-app-name', default="tmc")
62 @click.option('--master-controller-mod-name', default="tmc")
63
64 @click.argument('json_dir', type=click.Path(), default="")
65 def cli(
66 master_controller_app_name, master_controller_mod_name, json_dir):
67
69 MASTER_CONTROLLER_APP_NAME=master_controller_app_name,
70 MASTER_CONTROLLER_MOD_NAME=master_controller_mod_name,
71 JSON_DIR=json_dir,
72 )
73 cli()
cli(master_controller_app_name, master_controller_mod_name, json_dir)
generate_timing_rc_cmds(MASTER_CONTROLLER_APP_NAME, MASTER_CONTROLLER_MOD_NAME, JSON_DIR, DEBUG=False)