AcquisitionDevice: IPv4 address and UDP destination port is property of the device and not of a particular run

This commit is contained in:
2023-04-15 11:52:55 +02:00
parent 3319306b50
commit 32baaef1e4
24 changed files with 223 additions and 169 deletions

View File

@@ -912,7 +912,7 @@ DiffractionExperiment::operator JFJochProtoBuf::DetectorInput() const {
JFJochProtoBuf::DetectorConfig DiffractionExperiment::DetectorConfig(const JFJochProtoBuf::ReceiverNetworkConfig &net_config) const {
JFJochProtoBuf::DetectorConfig ret;
if (net_config.fpga_mac_addr_size() < GetDataStreamsNum())
if (net_config.device_size() < GetDataStreamsNum())
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds,
"Number of FPGA boards in the receiver is less then necessary");
@@ -924,16 +924,17 @@ JFJochProtoBuf::DetectorConfig DiffractionExperiment::DetectorConfig(const JFJoc
*ret.mutable_module_hostname() = internal.detector().module_hostname();
for (int d = 0; d < GetDataStreamsNum(); d++) {
for (int module = 0; module < GetModulesNum(d); module++) {
for (int m = 0; m < GetModulesNum(d); m++) {
auto mod_cfg = ret.add_modules();
mod_cfg->set_udp_dest_port_1(GetDestUDPPort(d, 2 * module));
mod_cfg->set_udp_dest_port_2(GetDestUDPPort(d, 2 * module + 1));
mod_cfg->set_ipv4_src_addr_1(IPv4AddressToStr(GetSrcIPv4Address(d, 2 * module)));
mod_cfg->set_ipv4_src_addr_2(IPv4AddressToStr(GetSrcIPv4Address(d, 2 * module + 1)));
mod_cfg->set_ipv4_dest_addr_1(IPv4AddressToStr(GetDestIPv4Address(d)));
mod_cfg->set_ipv4_dest_addr_2(IPv4AddressToStr(GetDestIPv4Address(d)));
mod_cfg->set_mac_addr_dest_1(net_config.fpga_mac_addr(d));
mod_cfg->set_mac_addr_dest_2(net_config.fpga_mac_addr(d));
mod_cfg->set_udp_dest_port_1(net_config.device(d).udp_port());
mod_cfg->set_udp_dest_port_2(net_config.device(d).udp_port());
mod_cfg->set_ipv4_src_addr_1(IPv4AddressToStr(GetSrcIPv4Address(d, 2 * m)));
mod_cfg->set_ipv4_src_addr_2(IPv4AddressToStr(GetSrcIPv4Address(d, 2 * m + 1)));
mod_cfg->set_ipv4_dest_addr_1(net_config.device(d).ipv4_addr());
mod_cfg->set_ipv4_dest_addr_2(net_config.device(d).ipv4_addr());
mod_cfg->set_mac_addr_dest_1(net_config.device(d).mac_addr());
mod_cfg->set_mac_addr_dest_2(net_config.device(d).mac_addr());
mod_cfg->set_module_id_in_data_stream(m);
}
}
return ret;