33 MASTER_DEVICE_NAME="",
34 MASTER_ENDPOINT_SCAN_PERIOD=0,
36 MASTER_CLOCK_SOURCE=255,
37 MONITORED_ENDPOINTS=[],
39 HARDWARE_STATE_RECOVERY_ENABLED=True,
45 if FIRMWARE_TYPE ==
'pdi':
46 tmc_class=
'TimingMasterControllerPDI'
47 elif FIRMWARE_TYPE ==
'pdii':
48 tmc_class=
'TimingMasterControllerPDII'
50 raise Exception(f
"'Unexpected firmware type: {FIRMWARE_TYPE}")
53 modules = [DAQModule(name =
"tmc",
55 conf = tmc.ConfParams(
56 device=MASTER_DEVICE_NAME,
57 hardware_state_recovery_enabled=HARDWARE_STATE_RECOVERY_ENABLED,
58 timing_session_name=TIMING_SESSION,
59 endpoint_scan_period=MASTER_ENDPOINT_SCAN_PERIOD,
60 clock_config=MASTER_CLOCK_FILE,
61 clock_source=MASTER_CLOCK_SOURCE,
62 monitored_endpoints=MONITORED_ENDPOINTS,
65 mgraph = ModuleGraph(modules)
66 mgraph.add_endpoint(
"timing_cmds",
"tmc.timing_cmds",
"TimingHwCmd", Direction.OUT)
67 mgraph.add_endpoint(MASTER_DEVICE_NAME+
"_info",
"tmc."+MASTER_DEVICE_NAME+
"_info",
"JSON", Direction.IN, is_pubsub=
True)
69 tmc_app = App(modulegraph=mgraph, host=HOST, name=
"TMCApp")
72 tmc_app.export(
"tmc_app.dot")
get_tmc_app(FIRMWARE_TYPE='pdii', MASTER_DEVICE_NAME="", MASTER_ENDPOINT_SCAN_PERIOD=0, MASTER_CLOCK_FILE="", MASTER_CLOCK_SOURCE=255, MONITORED_ENDPOINTS=[], TIMING_SESSION="", HARDWARE_STATE_RECOVERY_ENABLED=True, HOST="localhost", DEBUG=False)