68def main(det_name, source_id, det_id, sid_suffix, channel_map):
72 mapping = get_mapping_from_channel_map(channel_map)
74 mapping = get_mapping(det_id, source_id)
79 sid_counters = {i : i * 100
for i
in pd.unique(mapping[
"CRP"])}
80 for cg
in [[0, 1, 2, 6, 7], [3, 4, 5, 8, 9]]:
83 crate_map = mapping[mapping[
"Crate"] == crate]
84 amcs = pd.unique(crate_map[
"AMC"])
86 name = f
"crate{crate}-slot{amc}"
87 base_sid = pd.unique(crate_map[crate_map[
"AMC"] == amc][
"CRP"])[0]
88 sid_counters[base_sid] += 1
91 geo = db.create_obj(class_name =
"GeoId", uid = f
"geoId-{det_name}-amc-{sid_counters[base_sid]}")
92 geo[
"detector_id"] = det_id
93 geo[
"crate_id"] = crate
96 ds = db.create_obj(class_name =
"DetectorStream", uid = f
"DetStream-{sid_counters[base_sid]}")
97 ds[
"source_id"] = sid_counters[base_sid]
100 nw_send = db.create_obj(class_name =
"NetworkInterface", uid = f
"nw-{det_name}-amc-{name}-10g")
101 nw_send[
"mac_address"] = amc_net_info[
"mac_10g"]
102 nw_send[
"ip_address"] = [amc_net_info[
"ip_10g"]]
103 nw_send[
"network_name"] =
"Data"
105 nw_rec = db.create_obj(class_name =
"NetworkInterface", uid = f
"nw-{det_name}-amc-{name}-1g")
106 nw_rec[
"mac_address"] = amc_net_info[
"mac_1g"]
107 nw_rec[
"ip_address"] = [amc_net_info[
"ip_1g"]]
108 nw_rec[
"network_name"] =
"Control"
110 sender_names = sid_counters[base_sid]
if sid_suffix
else name
111 dds = db.create_obj(class_name =
"TdeAmcDetDataSender", uid = f
"dds-{det_name}-amc-{sender_names}")
112 dds[
"port"] = 54321 + amc + 1
113 dds[
"control_host"] = f
"np02-amc-{sid_counters[base_sid]}"
114 dds[
"uses"] = nw_send
115 dds[
"control_endpoint"] = nw_rec
116 dds[
"streams"] = [ds]