DiffractionExperiment: Add option to save calibration
This commit is contained in:
1 parent
0904e1f198
commit
831c93104d
6 files changed
+239
-121
No files matched your search
@@ -52,6 +52,7 @@ DiffractionExperiment::DiffractionExperiment(const DetectorSetup& det_setup) {
|
||||
|
||||
dataset.set_rad_int_polarization_corr(false);
|
||||
dataset.set_rad_int_solid_angle_corr(false);
|
||||
dataset.set_save_calibration(false);
|
||||
|
||||
internal.set_ndatastreams(1);
|
||||
|
||||
@@ -1230,3 +1231,12 @@ void DiffractionExperiment::SetupROIFilter(ROIFilter &filter) {
|
||||
filter.SetRectangle(i.x0(), i.y0(), i.width(), i.height());
|
||||
}
|
||||
|
||||
DiffractionExperiment &DiffractionExperiment::SaveCalibration(bool input) {
|
||||
dataset.set_save_calibration(input);
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool DiffractionExperiment::GetSaveCalibration() const {
|
||||
return dataset.save_calibration();
|
||||
}
|
||||
|
||||
@@ -228,6 +228,9 @@ public:
|
||||
DiffractionExperiment& ClearROI();
|
||||
bool GetApplyROI() const;
|
||||
void SetupROIFilter(ROIFilter& filter);
|
||||
|
||||
DiffractionExperiment& SaveCalibration(bool input);
|
||||
bool GetSaveCalibration() const;
|
||||
};
|
||||
|
||||
inline int64_t CalculateStride(const std::chrono::microseconds &frame_time, const std::chrono::microseconds &preview_time) {
|
||||
|
||||
@@ -111,6 +111,8 @@ message DatasetSettings {
|
||||
bool rad_int_solid_angle_corr = 18;
|
||||
bool rad_int_polarization_corr = 19;
|
||||
float rad_int_polarization_factor = 20;
|
||||
|
||||
bool save_calibration = 21;
|
||||
}
|
||||
|
||||
message DetectorSettings {
|
||||
|
||||
+104
-104
@@ -13,25 +13,25 @@ _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\"E\n\x0cROIRectangle\x12\n\n\x02x0\x18\x01 \x01(\x05\x12\n\n\x02y0\x18\x02 \x01(\x05\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05\"\x8f\x05\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\x12 \n\x18rad_int_solid_angle_corr\x18\x12 \x01(\x08\x12!\n\x19rad_int_polarization_corr\x18\x13 \x01(\x08\x12#\n\x1brad_int_polarization_factor\x18\x14 \x01(\x02\x42\x08\n\x06timingB\x0c\n\n_unit_cellB\x14\n\x12_scattering_vector\"\xf7\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\x1a\n\x12storage_cell_count\x18\x03 \x01(\x03\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\"\xa9\x06\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\x12\x33\n\rroi_rectangle\x18$ \x03(\x0b\x32\x1c.JFJochProtoBuf.ROIRectangle\x12\x11\n\troi_apply\x18% \x01(\x08\"|\n\x14JungfraujochSettings\x12\x30\n\x07\x64\x61taset\x18\x01 \x01(\x0b\x32\x1f.JFJochProtoBufLine 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\"E\n\x0cROIRectangle\x12\n\n\x02x0\x18\x01 \x01(\x05\x12\n\n\x02y0\x18\x02 \x01(\x05\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0e\n\x06height\x18\x04 \x01(\x05\"\xa9\x05\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\x12 \n\x18rad_int_solid_angle_corr\x18\x12 \x01(\x08\x12!\n\x19rad_int_polarization_corr\x18\x13 \x01(\x08\x12#\n\x1brad_int_polarization_factor\x18\x14 \x01(\x02\x12\x18\n\x10save_calibration\x18\x15 \x01(\x08\x42\x08\n\x06timingB\x0c\n\n_unit_cellB\x14\n\x12_scattering_vector\"\xf7\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\x1a\n\x12storage_cell_count\x18\x03 \x01(\x03\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\"\xa9\x06\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\x12\x33\n\rroi_rectangle\x18$ \x03(\x0b\x32\x1c.JFJochProtoBuf.ROIRectangle\x12\x11\n\troi_apply\x18% \x01(\x08\"|\n\x14JungfraujochSettings\x12\x30\n\x07\x64\xLine truncated
|
||||
|
||||
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
|
||||
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'jfjoch_pb2', globals())
|
||||
if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
|
||||
DESCRIPTOR._options = None
|
||||
_COMPRESSION._serialized_start=9005
|
||||
_COMPRESSION._serialized_end=9089
|
||||
_DETECTORTYPE._serialized_start=9091
|
||||
_DETECTORTYPE._serialized_end=9130
|
||||
_DETECTORMODE._serialized_start=9132
|
||||
_DETECTORMODE._serialized_end=9222
|
||||
_FPGAFIFOSTATUSENUM._serialized_start=9224
|
||||
_FPGAFIFOSTATUSENUM._serialized_end=9278
|
||||
_STATE._serialized_start=9280
|
||||
_STATE._serialized_end=9374
|
||||
_PLOTTYPE._serialized_start=9376
|
||||
_PLOTTYPE._serialized_end=9480
|
||||
_COMPRESSION._serialized_start=9031
|
||||
_COMPRESSION._serialized_end=9115
|
||||
_DETECTORTYPE._serialized_start=9117
|
||||
_DETECTORTYPE._serialized_end=9156
|
||||
_DETECTORMODE._serialized_start=9158
|
||||
_DETECTORMODE._serialized_end=9248
|
||||
_FPGAFIFOSTATUSENUM._serialized_start=9250
|
||||
_FPGAFIFOSTATUSENUM._serialized_end=9304
|
||||
_STATE._serialized_start=9306
|
||||
_STATE._serialized_end=9400
|
||||
_PLOTTYPE._serialized_start=9402
|
||||
_PLOTTYPE._serialized_end=9506
|
||||
_EMPTY._serialized_start=32
|
||||
_EMPTY._serialized_end=39
|
||||
_UNITCELL._serialized_start=41
|
||||
@@ -45,95 +45,95 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
||||
_ROIRECTANGLE._serialized_start=329
|
||||
_ROIRECTANGLE._serialized_end=398
|
||||
_DATASETSETTINGS._serialized_start=401
|
||||
_DATASETSETTINGS._serialized_end=1056
|
||||
_DETECTORSETTINGS._serialized_start=1059
|
||||
_DETECTORSETTINGS._serialized_end=1434
|
||||
_DETECTORMODULEGEOMETRY._serialized_start=1436
|
||||
_DETECTORMODULEGEOMETRY._serialized_end=1534
|
||||
_DETECTORGEOMETRY._serialized_start=1536
|
||||
_DETECTORGEOMETRY._serialized_end=1658
|
||||
_DETECTOR._serialized_start=1661
|
||||
_DETECTOR._serialized_end=1854
|
||||
_INTERNALSETTINGS._serialized_start=1857
|
||||
_INTERNALSETTINGS._serialized_end=2666
|
||||
_JUNGFRAUJOCHSETTINGS._serialized_start=2668
|
||||
_JUNGFRAUJOCHSETTINGS._serialized_end=2792
|
||||
_JFPEDESTAL._serialized_start=2794
|
||||
_JFPEDESTAL._serialized_end=2824
|
||||
_JFGAINCALIBRATION._serialized_start=2826
|
||||
_JFGAINCALIBRATION._serialized_end=2871
|
||||
_JFCALIBRATION._serialized_start=2874
|
||||
_JFCALIBRATION._serialized_end=3052
|
||||
_JFCALIBRATIONSTATISTICS._serialized_start=3054
|
||||
_JFCALIBRATIONSTATISTICS._serialized_end=3140
|
||||
_ACQUISITIONDEVICESTATISTICS._serialized_start=3143
|
||||
_ACQUISITIONDEVICESTATISTICS._serialized_end=3416
|
||||
_RECEIVERINPUT._serialized_start=3419
|
||||
_RECEIVERINPUT._serialized_end=3555
|
||||
_RECEIVEROUTPUT._serialized_start=3558
|
||||
_RECEIVEROUTPUT._serialized_end=4028
|
||||
_RECEIVERNETWORKCONFIGDEVICE._serialized_start=4030
|
||||
_RECEIVERNETWORKCONFIGDEVICE._serialized_end=4114
|
||||
_RECEIVERNETWORKCONFIG._serialized_start=4116
|
||||
_RECEIVERNETWORKCONFIG._serialized_end=4200
|
||||
_RECEIVERSTATUS._serialized_start=4203
|
||||
_RECEIVERSTATUS._serialized_end=4406
|
||||
_PLOTREQUEST._serialized_start=4408
|
||||
_PLOTREQUEST._serialized_end=4478
|
||||
_RADIALINTEGRATIONPROFILE._serialized_start=4480
|
||||
_RADIALINTEGRATIONPROFILE._serialized_end=4557
|
||||
_RADIALINTEGRATIONPROFILES._serialized_start=4559
|
||||
_RADIALINTEGRATIONPROFILES._serialized_end=4646
|
||||
_WRITERINPUT._serialized_start=4648
|
||||
_WRITERINPUT._serialized_end=4710
|
||||
_DATAFILESTATISTICS._serialized_start=4712
|
||||
_DATAFILESTATISTICS._serialized_end=4763
|
||||
_WRITEROUTPUT._serialized_start=4766
|
||||
_WRITEROUTPUT._serialized_end=4907
|
||||
_DETECTORMODULECONFIG._serialized_start=4910
|
||||
_DETECTORMODULECONFIG._serialized_end=5168
|
||||
_DETECTORCONFIG._serialized_start=5170
|
||||
_DETECTORCONFIG._serialized_end=5266
|
||||
_DETECTORINPUT._serialized_start=5269
|
||||
_DETECTORINPUT._serialized_end=5518
|
||||
_DETECTOROUTPUT._serialized_start=5520
|
||||
_DETECTOROUTPUT._serialized_end=5536
|
||||
_DETECTORSTATUS._serialized_start=5538
|
||||
_DETECTORSTATUS._serialized_end=5636
|
||||
_FPGAFIFOSTATUS._serialized_start=5638
|
||||
_FPGAFIFOSTATUS._serialized_end=5719
|
||||
_FPGASTATUS._serialized_start=5722
|
||||
_FPGASTATUS._serialized_end=6683
|
||||
_DATAPROCESSINGSETTINGS._serialized_start=6686
|
||||
_DATAPROCESSINGSETTINGS._serialized_end=7032
|
||||
_PREVIEWFRAMESPOT._serialized_start=7034
|
||||
_PREVIEWFRAMESPOT._serialized_end=7091
|
||||
_PREVIEWFRAME._serialized_start=7094
|
||||
_PREVIEWFRAME._serialized_end=7412
|
||||
_MODULESTATISTICS._serialized_start=7415
|
||||
_MODULESTATISTICS._serialized_end=7652
|
||||
_IMAGE._serialized_start=7654
|
||||
_IMAGE._serialized_end=7727
|
||||
_MASKTOLOAD._serialized_start=7729
|
||||
_MASKTOLOAD._serialized_end=7775
|
||||
_MEASUREMENTSTATISTICS._serialized_start=7778
|
||||
_MEASUREMENTSTATISTICS._serialized_end=8391
|
||||
_BROKERSTATUS._serialized_start=8394
|
||||
_BROKERSTATUS._serialized_end=8609
|
||||
_BROKERFULLSTATUS._serialized_start=8612
|
||||
_BROKERFULLSTATUS._serialized_end=8776
|
||||
_DETECTORLISTELEMENT._serialized_start=8778
|
||||
_DETECTORLISTELEMENT._serialized_end=8850
|
||||
_DETECTORLIST._serialized_start=8852
|
||||
_DETECTORLIST._serialized_end=8970
|
||||
_DETECTORSELECTION._serialized_start=8972
|
||||
_DETECTORSELECTION._serialized_end=9003
|
||||
_GRPC_JFJOCHRECEIVER._serialized_start=9483
|
||||
_GRPC_JFJOCHRECEIVER._serialized_end=10250
|
||||
_GRPC_JFJOCHWRITER._serialized_start=10253
|
||||
_GRPC_JFJOCHWRITER._serialized_end=10455
|
||||
_GRPC_JFJOCHDETECTOR._serialized_start=10458
|
||||
_GRPC_JFJOCHDETECTOR._serialized_end=10844
|
||||
_GRPC_JFJOCHBROKER._serialized_start=10847
|
||||
_GRPC_JFJOCHBROKER._serialized_end=12536
|
||||
_DATASETSETTINGS._serialized_end=1082
|
||||
_DETECTORSETTINGS._serialized_start=1085
|
||||
_DETECTORSETTINGS._serialized_end=1460
|
||||
_DETECTORMODULEGEOMETRY._serialized_start=1462
|
||||
_DETECTORMODULEGEOMETRY._serialized_end=1560
|
||||
_DETECTORGEOMETRY._serialized_start=1562
|
||||
_DETECTORGEOMETRY._serialized_end=1684
|
||||
_DETECTOR._serialized_start=1687
|
||||
_DETECTOR._serialized_end=1880
|
||||
_INTERNALSETTINGS._serialized_start=1883
|
||||
_INTERNALSETTINGS._serialized_end=2692
|
||||
_JUNGFRAUJOCHSETTINGS._serialized_start=2694
|
||||
_JUNGFRAUJOCHSETTINGS._serialized_end=2818
|
||||
_JFPEDESTAL._serialized_start=2820
|
||||
_JFPEDESTAL._serialized_end=2850
|
||||
_JFGAINCALIBRATION._serialized_start=2852
|
||||
_JFGAINCALIBRATION._serialized_end=2897
|
||||
_JFCALIBRATION._serialized_start=2900
|
||||
_JFCALIBRATION._serialized_end=3078
|
||||
_JFCALIBRATIONSTATISTICS._serialized_start=3080
|
||||
_JFCALIBRATIONSTATISTICS._serialized_end=3166
|
||||
_ACQUISITIONDEVICESTATISTICS._serialized_start=3169
|
||||
_ACQUISITIONDEVICESTATISTICS._serialized_end=3442
|
||||
_RECEIVERINPUT._serialized_start=3445
|
||||
_RECEIVERINPUT._serialized_end=3581
|
||||
_RECEIVEROUTPUT._serialized_start=3584
|
||||
_RECEIVEROUTPUT._serialized_end=4054
|
||||
_RECEIVERNETWORKCONFIGDEVICE._serialized_start=4056
|
||||
_RECEIVERNETWORKCONFIGDEVICE._serialized_end=4140
|
||||
_RECEIVERNETWORKCONFIG._serialized_start=4142
|
||||
_RECEIVERNETWORKCONFIG._serialized_end=4226
|
||||
_RECEIVERSTATUS._serialized_start=4229
|
||||
_RECEIVERSTATUS._serialized_end=4432
|
||||
_PLOTREQUEST._serialized_start=4434
|
||||
_PLOTREQUEST._serialized_end=4504
|
||||
_RADIALINTEGRATIONPROFILE._serialized_start=4506
|
||||
_RADIALINTEGRATIONPROFILE._serialized_end=4583
|
||||
_RADIALINTEGRATIONPROFILES._serialized_start=4585
|
||||
_RADIALINTEGRATIONPROFILES._serialized_end=4672
|
||||
_WRITERINPUT._serialized_start=4674
|
||||
_WRITERINPUT._serialized_end=4736
|
||||
_DATAFILESTATISTICS._serialized_start=4738
|
||||
_DATAFILESTATISTICS._serialized_end=4789
|
||||
_WRITEROUTPUT._serialized_start=4792
|
||||
_WRITEROUTPUT._serialized_end=4933
|
||||
_DETECTORMODULECONFIG._serialized_start=4936
|
||||
_DETECTORMODULECONFIG._serialized_end=5194
|
||||
_DETECTORCONFIG._serialized_start=5196
|
||||
_DETECTORCONFIG._serialized_end=5292
|
||||
_DETECTORINPUT._serialized_start=5295
|
||||
_DETECTORINPUT._serialized_end=5544
|
||||
_DETECTOROUTPUT._serialized_start=5546
|
||||
_DETECTOROUTPUT._serialized_end=5562
|
||||
_DETECTORSTATUS._serialized_start=5564
|
||||
_DETECTORSTATUS._serialized_end=5662
|
||||
_FPGAFIFOSTATUS._serialized_start=5664
|
||||
_FPGAFIFOSTATUS._serialized_end=5745
|
||||
_FPGASTATUS._serialized_start=5748
|
||||
_FPGASTATUS._serialized_end=6709
|
||||
_DATAPROCESSINGSETTINGS._serialized_start=6712
|
||||
_DATAPROCESSINGSETTINGS._serialized_end=7058
|
||||
_PREVIEWFRAMESPOT._serialized_start=7060
|
||||
_PREVIEWFRAMESPOT._serialized_end=7117
|
||||
_PREVIEWFRAME._serialized_start=7120
|
||||
_PREVIEWFRAME._serialized_end=7438
|
||||
_MODULESTATISTICS._serialized_start=7441
|
||||
_MODULESTATISTICS._serialized_end=7678
|
||||
_IMAGE._serialized_start=7680
|
||||
_IMAGE._serialized_end=7753
|
||||
_MASKTOLOAD._serialized_start=7755
|
||||
_MASKTOLOAD._serialized_end=7801
|
||||
_MEASUREMENTSTATISTICS._serialized_start=7804
|
||||
_MEASUREMENTSTATISTICS._serialized_end=8417
|
||||
_BROKERSTATUS._serialized_start=8420
|
||||
_BROKERSTATUS._serialized_end=8635
|
||||
_BROKERFULLSTATUS._serialized_start=8638
|
||||
_BROKERFULLSTATUS._serialized_end=8802
|
||||
_DETECTORLISTELEMENT._serialized_start=8804
|
||||
_DETECTORLISTELEMENT._serialized_end=8876
|
||||
_DETECTORLIST._serialized_start=8878
|
||||
_DETECTORLIST._serialized_end=8996
|
||||
_DETECTORSELECTION._serialized_start=8998
|
||||
_DETECTORSELECTION._serialized_end=9029
|
||||
_GRPC_JFJOCHRECEIVER._serialized_start=9509
|
||||
_GRPC_JFJOCHRECEIVER._serialized_end=10276
|
||||
_GRPC_JFJOCHWRITER._serialized_start=10279
|
||||
_GRPC_JFJOCHWRITER._serialized_end=10481
|
||||
_GRPC_JFJOCHDETECTOR._serialized_start=10484
|
||||
_GRPC_JFJOCHDETECTOR._serialized_end=10870
|
||||
_GRPC_JFJOCHBROKER._serialized_start=10873
|
||||
_GRPC_JFJOCHBROKER._serialized_end=12562
|
||||
# @@protoc_insertion_point(module_scope)
|
||||
+23
-17
@@ -173,24 +173,30 @@ JFJochReceiver::JFJochReceiver(const JFJochProtoBuf::ReceiverInput &settings,
|
||||
.algorithm = CompressionAlgorithm::BSHUF_LZ4,
|
||||
.channel = "sc0"
|
||||
});
|
||||
for (int sc = 0; sc < experiment.GetStorageCellNumber(); sc++) {
|
||||
for (int gain = 0; gain < 3; gain++) {
|
||||
auto tmp = compressor.Compress(calib->GetPedestal(gain, sc));
|
||||
pedestal.emplace_back(tmp);
|
||||
std::string channel = "pedestal_G" + std::to_string(gain)+ "_sc" + std::to_string(sc);
|
||||
if (experiment.GetSaveCalibration()) {
|
||||
for (int sc = 0; sc < experiment.GetStorageCellNumber(); sc++) {
|
||||
for (int gain = 0; gain < 3; gain++) {
|
||||
auto tmp = compressor.Compress(calib->GetPedestal(gain, sc));
|
||||
pedestal.emplace_back(tmp);
|
||||
std::string channel = "pedestal_G" + std::to_string(gain);
|
||||
|
||||
CBORImage image{
|
||||
.data = pedestal.at(pedestal.size()-1).data(),
|
||||
.size = pedestal.at(pedestal.size()-1).size(),
|
||||
.xpixel = (size_t) xpixel,
|
||||
.ypixel = (size_t) ypixel,
|
||||
.pixel_depth_bytes = 2,
|
||||
.pixel_is_signed = false,
|
||||
.pixel_is_float = false,
|
||||
.algorithm = CompressionAlgorithm::BSHUF_LZ4,
|
||||
.channel = channel
|
||||
};
|
||||
message.AddCalibration(image);
|
||||
if (experiment.GetStorageCellNumber() > 1)
|
||||
channel += "_sc" + std::to_string(sc);
|
||||
|
||||
CBORImage image{
|
||||
.data = pedestal.at(pedestal.size() - 1).data(),
|
||||
.size = pedestal.at(pedestal.size() - 1).size(),
|
||||
.xpixel = (size_t) xpixel,
|
||||
.ypixel = (size_t) ypixel,
|
||||
.pixel_depth_bytes = 2,
|
||||
.pixel_is_signed = false,
|
||||
.pixel_is_float = false,
|
||||
.algorithm = CompressionAlgorithm::BSHUF_LZ4,
|
||||
.channel = channel
|
||||
};
|
||||
|
||||
message.AddCalibration(image);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,6 +110,103 @@ TEST_CASE("JFJochIntegrationTest_ZMQ", "[JFJochReceiver]") {
|
||||
writer_server->Shutdown();
|
||||
}
|
||||
|
||||
|
||||
TEST_CASE("JFJochIntegrationTest_ZMQ_save_calibration", "[JFJochReceiver]") {
|
||||
Logger logger("JFJochIntegrationTest_ZMQ_save_calibration");
|
||||
ZMQContext zmq_context;
|
||||
|
||||
RegisterHDF5Filter();
|
||||
|
||||
int64_t nimages = 5;
|
||||
int64_t ndatastream = 2;
|
||||
int64_t nmodules = 4;
|
||||
|
||||
JFJochServices services(logger);
|
||||
JFJochStateMachine state_machine(services, logger);
|
||||
|
||||
REQUIRE(!state_machine.GetMeasurementStatistics().has_value());
|
||||
state_machine.AddDetectorSetup(DetectorGeometry(ndatastream * nmodules, 2, 8, 36));
|
||||
|
||||
state_machine.NotThreadSafe_Experiment().DataStreams(ndatastream);
|
||||
state_machine.NotThreadSafe_Experiment().PedestalG0Frames(0).PedestalG1Frames(0).PedestalG2Frames(0);
|
||||
services.Writer("unix:writer_test", "inproc://#1").Receiver("unix:fpga_receiver_test");
|
||||
|
||||
logger.Verbose(true);
|
||||
|
||||
std::vector<uint16_t> image(RAW_MODULE_SIZE);
|
||||
|
||||
std::vector<std::unique_ptr<MockAcquisitionDevice>> aq_devices;
|
||||
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
auto *test = new MockAcquisitionDevice(i, 256);
|
||||
aq_devices.emplace_back(test);
|
||||
}
|
||||
|
||||
std::vector<AcquisitionDevice *> tmp_devices;
|
||||
for (const auto &i: aq_devices)
|
||||
tmp_devices.emplace_back(i.get());
|
||||
|
||||
ZMQImagePusher pusher(zmq_context, {"inproc://#1"});
|
||||
JFJochReceiverService fpga_receiver(tmp_devices, logger, pusher);
|
||||
|
||||
JFJochWriterService writer(zmq_context, logger);
|
||||
|
||||
auto fpga_receiver_server = gRPCServer("unix:fpga_receiver_test", fpga_receiver);
|
||||
auto writer_server = gRPCServer("unix:writer_test", writer);
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Initialize());
|
||||
logger.Info("Initialized");
|
||||
|
||||
JFJochProtoBuf::DatasetSettings setup;
|
||||
setup.set_ntrigger(1);
|
||||
setup.set_images_per_trigger(5);
|
||||
setup.set_detector_distance_mm(100);
|
||||
setup.set_file_prefix("integration_test_with_calibration");
|
||||
setup.set_photon_energy_kev(12.4);
|
||||
setup.set_data_file_count(2);
|
||||
setup.set_summation(1);
|
||||
setup.set_save_calibration(true);
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Start(setup));
|
||||
logger.Info("Started measurement");
|
||||
|
||||
JFJochProtoBuf::BrokerStatus status;
|
||||
status = state_machine.GetStatus();
|
||||
REQUIRE(status.progress() == Approx(0.0));
|
||||
REQUIRE(status.broker_state() == JFJochProtoBuf::DATA_COLLECTION);
|
||||
|
||||
for (int i = 0; i < ndatastream; i++) {
|
||||
for (int m = 0; m < state_machine.NotThreadSafe_Experiment().GetModulesNum(i); m++) {
|
||||
for (int image_num = 1; image_num <= nimages; image_num++)
|
||||
aq_devices[i]->AddModule(image_num, m, image.data());
|
||||
}
|
||||
aq_devices[i]->Terminate();
|
||||
}
|
||||
|
||||
REQUIRE_NOTHROW(state_machine.Stop());
|
||||
logger.Info("Stopped measurement");
|
||||
|
||||
status = state_machine.GetStatus();
|
||||
REQUIRE(status.broker_state() == JFJochProtoBuf::IDLE);
|
||||
|
||||
auto tmp = state_machine.GetMeasurementStatistics();
|
||||
REQUIRE(tmp.has_value());
|
||||
auto statistics = tmp.value();
|
||||
|
||||
REQUIRE(statistics.collection_efficiency() == 1.0);
|
||||
REQUIRE(statistics.images_collected() == 5);
|
||||
REQUIRE(statistics.images_written() == 5);
|
||||
REQUIRE(statistics.max_image_number_sent() == 4);
|
||||
REQUIRE(!statistics.cancelled());
|
||||
REQUIRE(statistics.file_prefix() == "integration_test_with_calibration");
|
||||
REQUIRE(statistics.detector_width() == 2068);
|
||||
REQUIRE(statistics.detector_height() == 2164);
|
||||
REQUIRE(statistics.detector_pixel_depth() == 2);
|
||||
REQUIRE(statistics.file_statistics_size() == 2);
|
||||
fpga_receiver_server->Shutdown();
|
||||
writer_server->Shutdown();
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochIntegrationTest_ZMQ_2DataStreams_4Devices", "[JFJochReceiver]") {
|
||||
Logger logger("JFJochIntegrationTest_ZMQ_2DataStreams_4Devices");
|
||||
ZMQContext zmq_context;
|
||||
|
||||
Reference in new issue
Block a user