DiffractionExperiment: Refactor IPv4 handling (now it is just base addr for detector IP)
This commit is contained in:
1 parent
32baaef1e4
commit
feb5fcacf3
8 files changed
+104
-193
No files matched your search
@@ -227,7 +227,7 @@ void ParseFacilityConfiguration(const nlohmann::json &input, const std::string&
|
||||
experiment.SpotFindingPeriod(GET_TIME(j, "spot_finding_period_us"));
|
||||
experiment.PreviewPeriod(GET_TIME(j, "preview_period_us"));
|
||||
|
||||
experiment.IPv4Subnet(GET_STR(j, "ipv4_subnet"));
|
||||
experiment.IPv4BaseAddr(GET_STR(j, "detector_ipv4"));
|
||||
} else
|
||||
throw JFJochException(JFJochExceptionCategory::JSON, "Default configuration not found");
|
||||
}
|
||||
|
||||
@@ -67,8 +67,7 @@ DiffractionExperiment::DiffractionExperiment(const DetectorSetup& det_setup) {
|
||||
internal.set_high_q(5.0);
|
||||
internal.set_q_spacing(0.02);
|
||||
|
||||
internal.set_ipv4_subnet(0x0032010a);
|
||||
internal.set_base_udp_port(8192);
|
||||
internal.set_ipv4_base_addr(0x0132010a);
|
||||
internal.set_git_sha1(jfjoch_git_sha1());
|
||||
internal.set_git_date(jfjoch_git_date());
|
||||
|
||||
@@ -253,27 +252,8 @@ DiffractionExperiment &DiffractionExperiment::UseInternalPacketGenerator(bool in
|
||||
return *this;
|
||||
}
|
||||
|
||||
DiffractionExperiment &DiffractionExperiment::IPv4Subnet(std::string input) {
|
||||
IPv4Subnet(IPv4AddressFromStr(input)); // IPv4 address is passed as low endian to FPGA
|
||||
return *this;
|
||||
}
|
||||
|
||||
DiffractionExperiment &DiffractionExperiment::IPv4Subnet(int64_t input) {
|
||||
check_min("IPv4 address", input, 1);
|
||||
check_max("IPv4 address", input, (1L<<33) - 1);
|
||||
if ((input >> 24) % 256 != 0)
|
||||
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,"Requires 255.255.255.0 masked subnet");
|
||||
|
||||
internal.set_ipv4_subnet(input);
|
||||
return *this;
|
||||
}
|
||||
|
||||
DiffractionExperiment &DiffractionExperiment::BaseUDPPort(int64_t input) {
|
||||
check_min("UDP port", input, 1024);
|
||||
check_max("UDP port", input, 65535);
|
||||
if (input % 64 != 0)
|
||||
throw JFJochException(JFJochExceptionCategory::WrongNumber, "Base UDP port must be multiple of 64");
|
||||
internal.set_base_udp_port(input);
|
||||
DiffractionExperiment &DiffractionExperiment::IPv4BaseAddr(std::string input) {
|
||||
internal.set_ipv4_base_addr(IPv4AddressFromStr(input));
|
||||
return *this;
|
||||
}
|
||||
|
||||
@@ -734,32 +714,12 @@ bool DiffractionExperiment::IsUsingInternalPacketGen() const {
|
||||
uint32_t DiffractionExperiment::GetSrcIPv4Address(uint32_t data_stream, uint32_t half_module) const {
|
||||
if (data_stream >= GetDataStreamsNum())
|
||||
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, "Non existing data stream");
|
||||
if (half_module >= 2 * GetModulesNum())
|
||||
if (half_module >= 2 * GetModulesNum(data_stream))
|
||||
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, "Non existing module");
|
||||
if ((data_stream+1) >= 256/32)
|
||||
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds,
|
||||
"Cannot handle more than 7 data stream in the current model");
|
||||
if (half_module >= 32)
|
||||
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds,
|
||||
"Cannot handle more than 16 modules / data stream in the current model");
|
||||
uint32_t host = (((data_stream+1) * 32) | half_module) << 24;
|
||||
return internal.ipv4_subnet() | host;
|
||||
}
|
||||
|
||||
uint32_t DiffractionExperiment::GetDestIPv4Address(uint32_t data_stream) const {
|
||||
if (data_stream >= GetDataStreamsNum())
|
||||
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, "Non existing data stream");
|
||||
uint32_t host = half_module + 2 * GetFirstModuleOfDataStream(data_stream);
|
||||
|
||||
uint32_t host = (data_stream + 1) << 24;
|
||||
return internal.ipv4_subnet() | host;
|
||||
}
|
||||
|
||||
uint16_t DiffractionExperiment::GetDestUDPPort(uint16_t data_stream, uint16_t half_module) const {
|
||||
if (data_stream >= GetDataStreamsNum())
|
||||
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, "Non existing data stream");
|
||||
if (half_module >= GetModulesNum(data_stream) * 2)
|
||||
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, "Non existing module");
|
||||
return internal.base_udp_port() + data_stream;
|
||||
return internal.ipv4_base_addr() + (host << 24);
|
||||
}
|
||||
|
||||
bool DiffractionExperiment::CheckGitSha1Consistent() const {
|
||||
|
||||
@@ -69,9 +69,7 @@ public:
|
||||
DiffractionExperiment& SpotFindingPeriod(std::chrono::microseconds input);
|
||||
|
||||
DiffractionExperiment& UseInternalPacketGenerator(bool input);
|
||||
DiffractionExperiment& IPv4Subnet(std::string input); // requires 255.255.255.0 subnet
|
||||
DiffractionExperiment& IPv4Subnet(int64_t input); // requires 255.255.255.0 subnet
|
||||
DiffractionExperiment& BaseUDPPort(int64_t input);
|
||||
DiffractionExperiment& IPv4BaseAddr(std::string input);
|
||||
DiffractionExperiment& MaskModuleEdges(bool input);
|
||||
DiffractionExperiment& MaskChipEdges(bool input);
|
||||
DiffractionExperiment& SetUnitCell(const UnitCell &cell);
|
||||
@@ -177,8 +175,6 @@ public:
|
||||
bool IsUsingInternalPacketGen() const;
|
||||
|
||||
uint32_t GetSrcIPv4Address(uint32_t data_stream, uint32_t half_module) const;
|
||||
uint32_t GetDestIPv4Address(uint32_t data_stream) const;
|
||||
uint16_t GetDestUDPPort(uint16_t data_stream, uint16_t half_module) const;
|
||||
|
||||
bool CheckGitSha1Consistent() const;
|
||||
std::string CheckGitSha1Msg() const;
|
||||
|
||||
+1
-2
@@ -163,8 +163,7 @@ message InternalSettings {
|
||||
bool mask_module_edges = 20;
|
||||
bool mask_chip_edges = 21;
|
||||
|
||||
int64 ipv4_subnet = 22;
|
||||
int64 base_udp_port = 23;
|
||||
int64 ipv4_base_addr = 22;
|
||||
|
||||
float low_q = 26;
|
||||
float high_q = 27;
|
||||
|
||||
+86
-86
@@ -13,7 +13,7 @@ _sym_db = _symbol_database.Default()
|
||||
|
||||
|
||||
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cjfjoch.proto\x12\x0eJFJochProtoBuf\"\x07\n\x05\x45mpty\"W\n\x08UnitCell\x12\t\n\x01\x61\x18\x01 \x01(\x02\x12\t\n\x01\x62\x18\x02 \x01(\x02\x12\t\n\x01\x63\x18\x03 \x01(\x02\x12\r\n\x05\x61lpha\x18\x04 \x01(\x02\x12\x0c\n\x04\x62\x65ta\x18\x05 \x01(\x02\x12\r\n\x05gamma\x18\x06 \x01(\x02\")\n\x06Vector\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02\"|\n\x10RotationSettings\x12\x17\n\x0fstart_angle_deg\x18\x01 \x01(\x02\x12 \n\x18\x61ngle_incr_per_image_deg\x18\x02 \x01(\x02\x12-\n\rrotation_axis\x18\x03 \x01(\x0b\x32\x16.JFJochProtoBuf.Vector\"\x1c\n\x04Plot\x12\t\n\x01x\x18\x01 \x03(\x02\x12\t\n\x01y\x18\x02 \x03(\x02\"\xa5\x04\n\x0f\x44\x61tasetSettings\x12\x1a\n\x12images_per_trigger\x18\x01 \x01(\x03\x12\x10\n\x08ntrigger\x18\x02 \x01(\x03\x12\x13\n\tsummation\x18\x03 \x01(\x03H\x00\x12\x17\n\rimage_time_us\x18\x04 \x01(\x03H\x00\x12\x12\n\nbeam_x_pxl\x18\x05 \x01(\x02\x12\x12\n\nbeam_y_pxl\x18\x06 \x01(\x02\x12\x1c\n\x14\x64\x65tector_distance_mm\x18\x07 \x01(\x02\x12\x19\n\x11photon_energy_keV\x18\x08 \x01(\x02\x12\x13\n\x0b\x66ile_prefix\x18\t \x01(\t\x12\x17\n\x0f\x64\x61ta_file_count\x18\n \x01(\x03\x12\x30\n\x0b\x63ompression\x18\x0b \x01(\x0e\x32\x1b.JFJochProtoBuf.Compression\x12\x13\n\x0bsample_name\x18\x0c \x01(\t\x12\x30\n\tunit_cell\x18\r \x01(\x0b\x32\x18.JFJochProtoBuf.UnitCellH\x01\x88\x01\x01\x12\x1a\n\x12space_group_number\x18\x0e \x01(\x03\x12\x36\n\x11scattering_vector\x18\x0f \x01(\x0b\x32\x16.JFJochProtoBuf.VectorH\x02\x88\x01\x01\x12\x18\n\x10\x61pply_pixel_mask\x18\x10 \x01(\x08\x12\x12\n\nbinning2x2\x18\x11 \x01(\x08\x42\x08\n\x06timingB\x0c\n\n_unit_cellB\x14\n\x12_scattering_vector\"\xf6\x02\n\x10\x44\x65tectorSettings\x12\x15\n\rframe_time_us\x18\x01 \x01(\x03\x12\x1a\n\rcount_time_us\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x19\n\x11use_storage_cells\x18\x03 \x01(\x08\x12%\n\x1duse_internal_packet_generator\x18\x04 \x01(\x08\x12\x18\n\x10\x63ollect_raw_data\x18\x05 \x01(\x08\x12\x1f\n\x12pedestal_g0_frames\x18\x06 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\x12pedestal_g1_frames\x18\x07 \x01(\x03H\x02\x88\x01\x01\x12\x1f\n\x12pedestal_g2_frames\x18\x08 \x01(\x03H\x03\x88\x01\x01\x12\x19\n\x11\x63onversion_on_cpu\x18\t \x01(\x08\x42\x10\n\x0e_count_time_usB\x15\n\x13_pedestal_g0_framesB\x15\n\x13_pedestal_g1_framesB\x15\n\x13_pedestal_g2_frames\"b\n\x16\x44\x65tectorModuleGeometry\x12\x0e\n\x06pixel0\x18\x01 \x01(\x03\x12\x1b\n\x13\x66\x61st_direction_step\x18\x02 \x01(\x03\x12\x1b\n\x13slow_direction_step\x18\x03 \x01(\x03\"z\n\x10\x44\x65tectorGeometry\x12\x11\n\twidth_pxl\x18\x01 \x01(\x03\x12\x12\n\nheight_pxl\x18\x02 \x01(\x03\x12?\n\x0fmodule_geometry\x18\x03 \x03(\x0b\x32&.JFJochProtoBuf.DetectorModuleGeometry\"\xc1\x01\n\x08\x44\x65tector\x12\x10\n\x08nmodules\x18\x01 \x01(\x03\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x15\n\rpixel_size_mm\x18\x03 \x01(\x02\x12\x17\n\x0fmodule_hostname\x18\x04 \x03(\t\x12\x32\n\x08geometry\x18\x05 \x01(\x0b\x32 .JFJochProtoBuf.DetectorGeometry\x12*\n\x04type\x18\x06 \x01(\x0e\x32\x1c.JFJochProtoBuf.DetectorType\"\xf5\x05\n\x10InternalSettings\x12\"\n\x1a\x66rame_time_pedestalG1G2_us\x18\x01 \x01(\x03\x12\x15\n\rframe_time_us\x18\x03 \x01(\x03\x12\x15\n\rcount_time_us\x18\x04 \x01(\x03\x12*\n\x08\x64\x65tector\x18\x05 \x01(\x0b\x32\x18.JFJochProtoBuf.Detector\x12\x14\n\x0cndatastreams\x18\x06 \x01(\x03\x12&\n\x1einternal_fpga_packet_generator\x18\t \x01(\x08\x12\x15\n\rstorage_cells\x18\n \x01(\x03\x12\x1a\n\x12storage_cell_start\x18\x0b \x01(\x03\x12\x1a\n\x12pedestal_g0_frames\x18\x0c \x01(\x03\x12\x1a\n\x12pedestal_g1_frames\x18\r \x01(\x03\x12\x1a\n\x12pedestal_g2_frames\x18\x0e \x01(\x03\x12\x19\n\x11preview_period_us\x18\x0f \x01(\x03\x12\x1e\n\x16spot_finding_period_us\x18\x10 \x01(\x03\x12*\n\x04mode\x18\x13 \x01(\x0e\x32\x1c.JFJochProtoBuf.DetectorMode\x12\x19\n\x11mask_module_edges\x18\x14 \x01(\x08\x12\x17\n\x0fmask_chip_edges\x18\x15 \x01(\x08\x12\x13\n\x0bipv4_subnet\x18\x16 \x01(\x03\x12\x15\n\rbase_udp_port\x18\x17 \x01(\x03\x12\r\n\x05low_q\x18\x1a \x01(\x02\x12\x0e\n\x06high_q\x18\x1b \x01(\x02\x12\x11\n\tq_spacing\x18\x1c \x01(\x02\x12\x10\n\x08git_sha1\x18\x1d \x01(\t\x12\x10\n\x08git_date\x18\x1e \x01(\t\x12\x19\n\x11\x63onversion_on_cpu\x18\x1f \x01(\x08\x12\x13\n\x0bsource_name\x18 \x01(\t\x12\x19\n\x11source_name_short\x18! \x01(\t\x12\x17\n\x0finstrument_name\x18\" \x01(\t\x12\x1d\n\x15instrument_name_short\x18# \x01(\t\"|\n\x14JungfraujochSettings\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x1f.JFJochProtoBuf.DatasetSettings\x12\x32\n\x08internal\x18\x02 \x01(\x0b\x32 .JFJochProtoBuf.InternalSettings\"\x1e\n\nJFPedestal\x12\x10\n\x08pedestal\x18\x01 \x01(\x0c\"-\n\x11JFGainCalibration\x12\x18\n\x10gain_calibration\x18\x01 \x01(\x0c\"\xb2\x01\n\rJFCalibration\x12\x10\n\x08nmodules\x18\x01 \x01(\x04\x12\x16\n\x0enstorage_cells\x18\x02 \x01(\x04\x12,\n\x08pedestal\x18\x03 \x03(\x0b\x32\x1a.JFJochPrLine truncated
|
||||
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cjfjoch.proto\x12\x0eJFJochProtoBuf\"\x07\n\x05\x45mpty\"W\n\x08UnitCell\x12\t\n\x01\x61\x18\x01 \x01(\x02\x12\t\n\x01\x62\x18\x02 \x01(\x02\x12\t\n\x01\x63\x18\x03 \x01(\x02\x12\r\n\x05\x61lpha\x18\x04 \x01(\x02\x12\x0c\n\x04\x62\x65ta\x18\x05 \x01(\x02\x12\r\n\x05gamma\x18\x06 \x01(\x02\")\n\x06Vector\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02\"|\n\x10RotationSettings\x12\x17\n\x0fstart_angle_deg\x18\x01 \x01(\x02\x12 \n\x18\x61ngle_incr_per_image_deg\x18\x02 \x01(\x02\x12-\n\rrotation_axis\x18\x03 \x01(\x0b\x32\x16.JFJochProtoBuf.Vector\"\x1c\n\x04Plot\x12\t\n\x01x\x18\x01 \x03(\x02\x12\t\n\x01y\x18\x02 \x03(\x02\"\xa5\x04\n\x0f\x44\x61tasetSettings\x12\x1a\n\x12images_per_trigger\x18\x01 \x01(\x03\x12\x10\n\x08ntrigger\x18\x02 \x01(\x03\x12\x13\n\tsummation\x18\x03 \x01(\x03H\x00\x12\x17\n\rimage_time_us\x18\x04 \x01(\x03H\x00\x12\x12\n\nbeam_x_pxl\x18\x05 \x01(\x02\x12\x12\n\nbeam_y_pxl\x18\x06 \x01(\x02\x12\x1c\n\x14\x64\x65tector_distance_mm\x18\x07 \x01(\x02\x12\x19\n\x11photon_energy_keV\x18\x08 \x01(\x02\x12\x13\n\x0b\x66ile_prefix\x18\t \x01(\t\x12\x17\n\x0f\x64\x61ta_file_count\x18\n \x01(\x03\x12\x30\n\x0b\x63ompression\x18\x0b \x01(\x0e\x32\x1b.JFJochProtoBuf.Compression\x12\x13\n\x0bsample_name\x18\x0c \x01(\t\x12\x30\n\tunit_cell\x18\r \x01(\x0b\x32\x18.JFJochProtoBuf.UnitCellH\x01\x88\x01\x01\x12\x1a\n\x12space_group_number\x18\x0e \x01(\x03\x12\x36\n\x11scattering_vector\x18\x0f \x01(\x0b\x32\x16.JFJochProtoBuf.VectorH\x02\x88\x01\x01\x12\x18\n\x10\x61pply_pixel_mask\x18\x10 \x01(\x08\x12\x12\n\nbinning2x2\x18\x11 \x01(\x08\x42\x08\n\x06timingB\x0c\n\n_unit_cellB\x14\n\x12_scattering_vector\"\xf6\x02\n\x10\x44\x65tectorSettings\x12\x15\n\rframe_time_us\x18\x01 \x01(\x03\x12\x1a\n\rcount_time_us\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x19\n\x11use_storage_cells\x18\x03 \x01(\x08\x12%\n\x1duse_internal_packet_generator\x18\x04 \x01(\x08\x12\x18\n\x10\x63ollect_raw_data\x18\x05 \x01(\x08\x12\x1f\n\x12pedestal_g0_frames\x18\x06 \x01(\x03H\x01\x88\x01\x01\x12\x1f\n\x12pedestal_g1_frames\x18\x07 \x01(\x03H\x02\x88\x01\x01\x12\x1f\n\x12pedestal_g2_frames\x18\x08 \x01(\x03H\x03\x88\x01\x01\x12\x19\n\x11\x63onversion_on_cpu\x18\t \x01(\x08\x42\x10\n\x0e_count_time_usB\x15\n\x13_pedestal_g0_framesB\x15\n\x13_pedestal_g1_framesB\x15\n\x13_pedestal_g2_frames\"b\n\x16\x44\x65tectorModuleGeometry\x12\x0e\n\x06pixel0\x18\x01 \x01(\x03\x12\x1b\n\x13\x66\x61st_direction_step\x18\x02 \x01(\x03\x12\x1b\n\x13slow_direction_step\x18\x03 \x01(\x03\"z\n\x10\x44\x65tectorGeometry\x12\x11\n\twidth_pxl\x18\x01 \x01(\x03\x12\x12\n\nheight_pxl\x18\x02 \x01(\x03\x12?\n\x0fmodule_geometry\x18\x03 \x03(\x0b\x32&.JFJochProtoBuf.DetectorModuleGeometry\"\xc1\x01\n\x08\x44\x65tector\x12\x10\n\x08nmodules\x18\x01 \x01(\x03\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x15\n\rpixel_size_mm\x18\x03 \x01(\x02\x12\x17\n\x0fmodule_hostname\x18\x04 \x03(\t\x12\x32\n\x08geometry\x18\x05 \x01(\x0b\x32 .JFJochProtoBuf.DetectorGeometry\x12*\n\x04type\x18\x06 \x01(\x0e\x32\x1c.JFJochProtoBuf.DetectorType\"\xe1\x05\n\x10InternalSettings\x12\"\n\x1a\x66rame_time_pedestalG1G2_us\x18\x01 \x01(\x03\x12\x15\n\rframe_time_us\x18\x03 \x01(\x03\x12\x15\n\rcount_time_us\x18\x04 \x01(\x03\x12*\n\x08\x64\x65tector\x18\x05 \x01(\x0b\x32\x18.JFJochProtoBuf.Detector\x12\x14\n\x0cndatastreams\x18\x06 \x01(\x03\x12&\n\x1einternal_fpga_packet_generator\x18\t \x01(\x08\x12\x15\n\rstorage_cells\x18\n \x01(\x03\x12\x1a\n\x12storage_cell_start\x18\x0b \x01(\x03\x12\x1a\n\x12pedestal_g0_frames\x18\x0c \x01(\x03\x12\x1a\n\x12pedestal_g1_frames\x18\r \x01(\x03\x12\x1a\n\x12pedestal_g2_frames\x18\x0e \x01(\x03\x12\x19\n\x11preview_period_us\x18\x0f \x01(\x03\x12\x1e\n\x16spot_finding_period_us\x18\x10 \x01(\x03\x12*\n\x04mode\x18\x13 \x01(\x0e\x32\x1c.JFJochProtoBuf.DetectorMode\x12\x19\n\x11mask_module_edges\x18\x14 \x01(\x08\x12\x17\n\x0fmask_chip_edges\x18\x15 \x01(\x08\x12\x16\n\x0eipv4_base_addr\x18\x16 \x01(\x03\x12\r\n\x05low_q\x18\x1a \x01(\x02\x12\x0e\n\x06high_q\x18\x1b \x01(\x02\x12\x11\n\tq_spacing\x18\x1c \x01(\x02\x12\x10\n\x08git_sha1\x18\x1d \x01(\t\x12\x10\n\x08git_date\x18\x1e \x01(\t\x12\x19\n\x11\x63onversion_on_cpu\x18\x1f \x01(\x08\x12\x13\n\x0bsource_name\x18 \x01(\t\x12\x19\n\x11source_name_short\x18! \x01(\t\x12\x17\n\x0finstrument_name\x18\" \x01(\t\x12\x1d\n\x15instrument_name_short\x18# \x01(\t\"|\n\x14JungfraujochSettings\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x1f.JFJochProtoBuf.DatasetSettings\x12\x32\n\x08internal\x18\x02 \x01(\x0b\x32 .JFJochProtoBuf.InternalSettings\"\x1e\n\nJFPedestal\x12\x10\n\x08pedestal\x18\x01 \x01(\x0c\"-\n\x11JFGainCalibration\x12\x18\n\x10gain_calibration\x18\x01 \x01(\x0c\"\xb2\x01\n\rJFCalibration\x12\x10\n\x08nmodules\x18\x01 \x01(\x04\x12\x16\n\x0enstorage_cells\x18\x02 \x01(\x04\x12,\n\x08pedestal\x18\x03 \x03(\x0b\x32\x1a.JFJochProtoBuf.JFPedestal\x12\x0c\n\x04mask\x18\Line truncated
|
||||
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'jfjoch_pb2', globals())
|
||||
@@ -22,16 +22,16 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
DESCRIPTOR._options = None
|
||||
_FPGASTATUS_FIFOSTATUSENTRY._options = None
|
||||
_FPGASTATUS_FIFOSTATUSENTRY._serialized_options = b'8\001'
|
||||
_COMPRESSION._serialized_start=8603
|
||||
_COMPRESSION._serialized_end=8687
|
||||
_DETECTORTYPE._serialized_start=8689
|
||||
_DETECTORTYPE._serialized_end=8728
|
||||
_DETECTORMODE._serialized_start=8730
|
||||
_DETECTORMODE._serialized_end=8820
|
||||
_FPGAFIFOSTATUS._serialized_start=8822
|
||||
_FPGAFIFOSTATUS._serialized_end=8872
|
||||
_STATE._serialized_start=8874
|
||||
_STATE._serialized_end=8968
|
||||
_COMPRESSION._serialized_start=8583
|
||||
_COMPRESSION._serialized_end=8667
|
||||
_DETECTORTYPE._serialized_start=8669
|
||||
_DETECTORTYPE._serialized_end=8708
|
||||
_DETECTORMODE._serialized_start=8710
|
||||
_DETECTORMODE._serialized_end=8800
|
||||
_FPGAFIFOSTATUS._serialized_start=8802
|
||||
_FPGAFIFOSTATUS._serialized_end=8852
|
||||
_STATE._serialized_start=8854
|
||||
_STATE._serialized_end=8948
|
||||
_EMPTY._serialized_start=32
|
||||
_EMPTY._serialized_end=39
|
||||
_UNITCELL._serialized_start=41
|
||||
@@ -53,79 +53,79 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
_DETECTOR._serialized_start=1483
|
||||
_DETECTOR._serialized_end=1676
|
||||
_INTERNALSETTINGS._serialized_start=1679
|
||||
_INTERNALSETTINGS._serialized_end=2436
|
||||
_JUNGFRAUJOCHSETTINGS._serialized_start=2438
|
||||
_JUNGFRAUJOCHSETTINGS._serialized_end=2562
|
||||
_JFPEDESTAL._serialized_start=2564
|
||||
_JFPEDESTAL._serialized_end=2594
|
||||
_JFGAINCALIBRATION._serialized_start=2596
|
||||
_JFGAINCALIBRATION._serialized_end=2641
|
||||
_JFCALIBRATION._serialized_start=2644
|
||||
_JFCALIBRATION._serialized_end=2822
|
||||
_JFCALIBRATIONSTATISTICS._serialized_start=2824
|
||||
_JFCALIBRATIONSTATISTICS._serialized_end=2910
|
||||
_ACQUISITIONDEVICESTATISTICS._serialized_start=2913
|
||||
_ACQUISITIONDEVICESTATISTICS._serialized_end=3394
|
||||
_RECEIVERINPUT._serialized_start=3397
|
||||
_RECEIVERINPUT._serialized_end=3533
|
||||
_RECEIVEROUTPUT._serialized_start=3536
|
||||
_RECEIVEROUTPUT._serialized_end=3962
|
||||
_RECEIVERNETWORKCONFIGDEVICE._serialized_start=3964
|
||||
_RECEIVERNETWORKCONFIGDEVICE._serialized_end=4048
|
||||
_RECEIVERNETWORKCONFIG._serialized_start=4050
|
||||
_RECEIVERNETWORKCONFIG._serialized_end=4134
|
||||
_RECEIVERSTATUS._serialized_start=4137
|
||||
_RECEIVERSTATUS._serialized_end=4284
|
||||
_RECEIVERDATAPROCESSINGPLOTS._serialized_start=4287
|
||||
_RECEIVERDATAPROCESSINGPLOTS._serialized_end=4497
|
||||
_WRITERINPUT._serialized_start=4499
|
||||
_WRITERINPUT._serialized_end=4561
|
||||
_WRITEROUTPUT._serialized_start=4563
|
||||
_WRITEROUTPUT._serialized_end=4643
|
||||
_DETECTORMODULECONFIG._serialized_start=4646
|
||||
_DETECTORMODULECONFIG._serialized_end=4904
|
||||
_DETECTORCONFIG._serialized_start=4906
|
||||
_DETECTORCONFIG._serialized_end=5002
|
||||
_DETECTORINPUT._serialized_start=5005
|
||||
_DETECTORINPUT._serialized_end=5254
|
||||
_DETECTOROUTPUT._serialized_start=5256
|
||||
_DETECTOROUTPUT._serialized_end=5272
|
||||
_DETECTORSTATUS._serialized_start=5274
|
||||
_DETECTORSTATUS._serialized_end=5372
|
||||
_FPGASTATUS._serialized_start=5375
|
||||
_FPGASTATUS._serialized_end=6445
|
||||
_FPGASTATUS_FIFOSTATUSENTRY._serialized_start=6364
|
||||
_FPGASTATUS_FIFOSTATUSENTRY._serialized_end=6445
|
||||
_INDEXERDATAPROCESSINGPLOTS._serialized_start=6447
|
||||
_INDEXERDATAPROCESSINGPLOTS._serialized_end=6520
|
||||
_DATAPROCESSINGSETTINGS._serialized_start=6523
|
||||
_DATAPROCESSINGSETTINGS._serialized_end=6917
|
||||
_PREVIEWFRAME._serialized_start=6920
|
||||
_PREVIEWFRAME._serialized_end=7189
|
||||
_MODULESTATISTICS._serialized_start=7192
|
||||
_MODULESTATISTICS._serialized_end=7429
|
||||
_IMAGE._serialized_start=7431
|
||||
_IMAGE._serialized_end=7504
|
||||
_MASKTOLOAD._serialized_start=7506
|
||||
_MASKTOLOAD._serialized_end=7552
|
||||
_MEASUREMENTSTATISTICS._serialized_start=7555
|
||||
_MEASUREMENTSTATISTICS._serialized_end=8063
|
||||
_BROKERSTATUS._serialized_start=8066
|
||||
_BROKERSTATUS._serialized_end=8207
|
||||
_BROKERFULLSTATUS._serialized_start=8210
|
||||
_BROKERFULLSTATUS._serialized_end=8374
|
||||
_DETECTORLISTELEMENT._serialized_start=8376
|
||||
_DETECTORLISTELEMENT._serialized_end=8448
|
||||
_DETECTORLIST._serialized_start=8450
|
||||
_DETECTORLIST._serialized_end=8568
|
||||
_DETECTORSELECTION._serialized_start=8570
|
||||
_DETECTORSELECTION._serialized_end=8601
|
||||
_GRPC_JFJOCHRECEIVER._serialized_start=8971
|
||||
_GRPC_JFJOCHRECEIVER._serialized_end=9655
|
||||
_GRPC_JFJOCHWRITER._serialized_start=9658
|
||||
_GRPC_JFJOCHWRITER._serialized_end=9860
|
||||
_GRPC_JFJOCHDETECTOR._serialized_start=9863
|
||||
_GRPC_JFJOCHDETECTOR._serialized_end=10249
|
||||
_GRPC_JFJOCHBROKER._serialized_start=10252
|
||||
_GRPC_JFJOCHBROKER._serialized_end=11858
|
||||
_INTERNALSETTINGS._serialized_end=2416
|
||||
_JUNGFRAUJOCHSETTINGS._serialized_start=2418
|
||||
_JUNGFRAUJOCHSETTINGS._serialized_end=2542
|
||||
_JFPEDESTAL._serialized_start=2544
|
||||
_JFPEDESTAL._serialized_end=2574
|
||||
_JFGAINCALIBRATION._serialized_start=2576
|
||||
_JFGAINCALIBRATION._serialized_end=2621
|
||||
_JFCALIBRATION._serialized_start=2624
|
||||
_JFCALIBRATION._serialized_end=2802
|
||||
_JFCALIBRATIONSTATISTICS._serialized_start=2804
|
||||
_JFCALIBRATIONSTATISTICS._serialized_end=2890
|
||||
_ACQUISITIONDEVICESTATISTICS._serialized_start=2893
|
||||
_ACQUISITIONDEVICESTATISTICS._serialized_end=3374
|
||||
_RECEIVERINPUT._serialized_start=3377
|
||||
_RECEIVERINPUT._serialized_end=3513
|
||||
_RECEIVEROUTPUT._serialized_start=3516
|
||||
_RECEIVEROUTPUT._serialized_end=3942
|
||||
_RECEIVERNETWORKCONFIGDEVICE._serialized_start=3944
|
||||
_RECEIVERNETWORKCONFIGDEVICE._serialized_end=4028
|
||||
_RECEIVERNETWORKCONFIG._serialized_start=4030
|
||||
_RECEIVERNETWORKCONFIG._serialized_end=4114
|
||||
_RECEIVERSTATUS._serialized_start=4117
|
||||
_RECEIVERSTATUS._serialized_end=4264
|
||||
_RECEIVERDATAPROCESSINGPLOTS._serialized_start=4267
|
||||
_RECEIVERDATAPROCESSINGPLOTS._serialized_end=4477
|
||||
_WRITERINPUT._serialized_start=4479
|
||||
_WRITERINPUT._serialized_end=4541
|
||||
_WRITEROUTPUT._serialized_start=4543
|
||||
_WRITEROUTPUT._serialized_end=4623
|
||||
_DETECTORMODULECONFIG._serialized_start=4626
|
||||
_DETECTORMODULECONFIG._serialized_end=4884
|
||||
_DETECTORCONFIG._serialized_start=4886
|
||||
_DETECTORCONFIG._serialized_end=4982
|
||||
_DETECTORINPUT._serialized_start=4985
|
||||
_DETECTORINPUT._serialized_end=5234
|
||||
_DETECTOROUTPUT._serialized_start=5236
|
||||
_DETECTOROUTPUT._serialized_end=5252
|
||||
_DETECTORSTATUS._serialized_start=5254
|
||||
_DETECTORSTATUS._serialized_end=5352
|
||||
_FPGASTATUS._serialized_start=5355
|
||||
_FPGASTATUS._serialized_end=6425
|
||||
_FPGASTATUS_FIFOSTATUSENTRY._serialized_start=6344
|
||||
_FPGASTATUS_FIFOSTATUSENTRY._serialized_end=6425
|
||||
_INDEXERDATAPROCESSINGPLOTS._serialized_start=6427
|
||||
_INDEXERDATAPROCESSINGPLOTS._serialized_end=6500
|
||||
_DATAPROCESSINGSETTINGS._serialized_start=6503
|
||||
_DATAPROCESSINGSETTINGS._serialized_end=6897
|
||||
_PREVIEWFRAME._serialized_start=6900
|
||||
_PREVIEWFRAME._serialized_end=7169
|
||||
_MODULESTATISTICS._serialized_start=7172
|
||||
_MODULESTATISTICS._serialized_end=7409
|
||||
_IMAGE._serialized_start=7411
|
||||
_IMAGE._serialized_end=7484
|
||||
_MASKTOLOAD._serialized_start=7486
|
||||
_MASKTOLOAD._serialized_end=7532
|
||||
_MEASUREMENTSTATISTICS._serialized_start=7535
|
||||
_MEASUREMENTSTATISTICS._serialized_end=8043
|
||||
_BROKERSTATUS._serialized_start=8046
|
||||
_BROKERSTATUS._serialized_end=8187
|
||||
_BROKERFULLSTATUS._serialized_start=8190
|
||||
_BROKERFULLSTATUS._serialized_end=8354
|
||||
_DETECTORLISTELEMENT._serialized_start=8356
|
||||
_DETECTORLISTELEMENT._serialized_end=8428
|
||||
_DETECTORLIST._serialized_start=8430
|
||||
_DETECTORLIST._serialized_end=8548
|
||||
_DETECTORSELECTION._serialized_start=8550
|
||||
_DETECTORSELECTION._serialized_end=8581
|
||||
_GRPC_JFJOCHRECEIVER._serialized_start=8951
|
||||
_GRPC_JFJOCHRECEIVER._serialized_end=9635
|
||||
_GRPC_JFJOCHWRITER._serialized_start=9638
|
||||
_GRPC_JFJOCHWRITER._serialized_end=9840
|
||||
_GRPC_JFJOCHDETECTOR._serialized_start=9843
|
||||
_GRPC_JFJOCHDETECTOR._serialized_end=10229
|
||||
_GRPC_JFJOCHBROKER._serialized_start=10232
|
||||
_GRPC_JFJOCHBROKER._serialized_end=11838
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
@@ -93,7 +93,7 @@ void HLSSimulatedDevice::CreatePacketJF(const DiffractionExperiment& experiment,
|
||||
packet->ipv4_header_ttl_protocol = htons(0x0011);
|
||||
packet->ipv4_header_checksum = checksum( (uint16_t *) &packet->ipv4_header_h, 20); // checksum is already in network order
|
||||
|
||||
packet->udp_dest_port = htons(experiment.GetDestUDPPort(data_stream, half_module)); // module number
|
||||
packet->udp_dest_port = htons(GetUDPPort()); // module number
|
||||
packet->udp_sour_port = htons(0xDFAC);
|
||||
packet->udp_length = htons(8248);
|
||||
|
||||
|
||||
@@ -178,28 +178,10 @@ TEST_CASE("DiffractionExperiment_IPv4Address","[DiffractionExperiment]") {
|
||||
uint32_t ndatastreams = 3;
|
||||
x.DataStreams(ndatastreams);
|
||||
|
||||
REQUIRE(x.GetDestIPv4Address(0) == 0x0132010a);
|
||||
REQUIRE(x.GetDestIPv4Address(1) == 0x0232010a);
|
||||
REQUIRE(x.GetDestIPv4Address(2) == 0x0332010a);
|
||||
REQUIRE(x.GetSrcIPv4Address(0, 4) == (0x0032010a | ((1 * 32 + 4) << 24)));
|
||||
REQUIRE(x.GetSrcIPv4Address(2, 23) == (0x0032010a | ((3 * 32 + 23) << 24)));
|
||||
REQUIRE_THROWS(x.GetDestIPv4Address(3));
|
||||
REQUIRE_THROWS(x.GetSrcIPv4Address(0, 24));
|
||||
REQUIRE_THROWS(x.GetSrcIPv4Address(3, 5));
|
||||
|
||||
REQUIRE_THROWS(x.IPv4Subnet("456"));
|
||||
REQUIRE_THROWS(x.IPv4Subnet("257.1.1.1"));
|
||||
REQUIRE_THROWS(x.IPv4Subnet("257.1.1.1111"));
|
||||
REQUIRE_THROWS(x.IPv4Subnet("64.1.124.34"));
|
||||
REQUIRE_THROWS(x.IPv4Subnet("64.1.124.129"));
|
||||
|
||||
REQUIRE_NOTHROW(x.IPv4Subnet("64.1.124.0"));
|
||||
REQUIRE(x.GetDestIPv4Address(0) == 0x017c0140u);
|
||||
REQUIRE(x.GetDestIPv4Address(1) == 0x027c0140u);
|
||||
REQUIRE(x.GetDestIPv4Address(2) == 0x037c0140u);
|
||||
REQUIRE(x.GetSrcIPv4Address(2, 12) == 0x007c0140u + ((3 * 32 + 12) << 24));
|
||||
|
||||
REQUIRE(IPv4AddressToStr(x.GetDestIPv4Address(2)) == "64.1.124.3");
|
||||
REQUIRE_NOTHROW(x.IPv4BaseAddr("64.1.124.1"));
|
||||
REQUIRE(x.GetSrcIPv4Address(0, 0) == IPv4AddressFromStr("64.1.124.1"));
|
||||
REQUIRE(x.GetSrcIPv4Address(0, 6) == IPv4AddressFromStr("64.1.124.7"));
|
||||
REQUIRE(x.GetSrcIPv4Address(2, 6) == IPv4AddressFromStr("64.1.124.23"));
|
||||
}
|
||||
|
||||
TEST_CASE("IPv4AddressToStr","") {
|
||||
@@ -226,32 +208,6 @@ TEST_CASE("MacAddressFromStr","") {
|
||||
REQUIRE_THROWS(MacAddressFromStr("xy:22:33:44:55"));
|
||||
}
|
||||
|
||||
TEST_CASE("DiffractionExperiment_UDPAddress","[DiffractionExperiment]") {
|
||||
DiffractionExperiment x(DetectorGeometry(12));
|
||||
x.Mode(DetectorMode::Conversion).DataStreams(3);
|
||||
|
||||
REQUIRE(x.GetDestUDPPort(0, 0) % 64 == 0);
|
||||
REQUIRE(x.GetDestUDPPort(0, 2) % 64 == 0);
|
||||
REQUIRE(x.GetDestUDPPort(0, 4) % 64 == 0);
|
||||
|
||||
REQUIRE_THROWS(x.GetDestUDPPort(0, 8));
|
||||
|
||||
REQUIRE(x.GetDestUDPPort(2, 0) % 64 == 2);
|
||||
REQUIRE(x.GetDestUDPPort(2, 2) % 64 == 2);
|
||||
REQUIRE(x.GetDestUDPPort(2, 4) % 64 == 2);
|
||||
|
||||
REQUIRE_THROWS(x.GetDestUDPPort(3, 0));
|
||||
|
||||
REQUIRE_THROWS(x.BaseUDPPort(-1));
|
||||
REQUIRE_THROWS(x.BaseUDPPort(65536));
|
||||
REQUIRE_THROWS(x.BaseUDPPort(64*93+1));
|
||||
|
||||
REQUIRE_NOTHROW(x.BaseUDPPort(64*93));
|
||||
REQUIRE(x.GetDestUDPPort(0, 0) == 64*93);
|
||||
REQUIRE(x.GetDestUDPPort(2, 1) == 64*93 + 2);
|
||||
|
||||
}
|
||||
|
||||
TEST_CASE("DiffractionExperiment_DataStreams","[DiffractionExperiment]") {
|
||||
DiffractionExperiment x(DetectorGeometry(18)); // 9M
|
||||
|
||||
@@ -552,7 +508,7 @@ TEST_CASE("DiffractionExperiment_ExportProtobuf","[DiffractionExperiment]") {
|
||||
.PhotonEnergy_keV(16.0).BeamX_pxl(566).BeamY_pxl(1234).DetectorDistance_mm(145)
|
||||
.FrameTime(std::chrono::microseconds(765), std::chrono::microseconds(10))
|
||||
.PedestalG1G2FrameTime(std::chrono::milliseconds(10))
|
||||
.IPv4Subnet("2.2.2.0").BaseUDPPort(64 * 76).MaskModuleEdges(true);
|
||||
.IPv4BaseAddr("2.2.2.2").MaskModuleEdges(true);
|
||||
|
||||
JFJochProtoBuf::JungfraujochSettings settings_in_protobuf = x;
|
||||
REQUIRE_NOTHROW(y.Import(settings_in_protobuf));
|
||||
@@ -573,8 +529,8 @@ TEST_CASE("DiffractionExperiment_ExportProtobuf","[DiffractionExperiment]") {
|
||||
REQUIRE(x.GetFrameNum() == y.GetFrameNum());
|
||||
REQUIRE(x.GetImageTime() == y.GetImageTime());
|
||||
REQUIRE(y.GetFrameCountTime().count() == x.GetFrameCountTime().count());
|
||||
REQUIRE(y.GetDestUDPPort(0,0) == 64*76);
|
||||
REQUIRE(y.GetDestIPv4Address(0) == 0x01020202);
|
||||
|
||||
REQUIRE(y.GetSrcIPv4Address(0, 0) == 0x02020202);
|
||||
REQUIRE(y.GetPedestalG0Frames() == x.GetPedestalG0Frames());
|
||||
REQUIRE(y.GetMaskModuleEdges() == x.GetMaskModuleEdges());
|
||||
REQUIRE(y.GetMaskChipEdges() == x.GetMaskChipEdges());
|
||||
|
||||
@@ -112,7 +112,7 @@ TEST_CASE("JFJochBrokerParser_ParseFacilityConfiguration") {
|
||||
"count_time_us": "950 us",
|
||||
"spot_finding_period_us": " 2 ms",
|
||||
"preview_period_us": "1 s",
|
||||
"ipv4_subnet": "10.10.25.0"
|
||||
"detector_ipv4": "10.10.25.0"
|
||||
}
|
||||
}
|
||||
)"_json;
|
||||
|
||||
Reference in new issue
Block a user