FPGA: remove limit of modules for frame_generator

This commit is contained in:
2023-11-01 14:20:43 +01:00
parent 8f2b01be80
commit 112a62fc7f
10 changed files with 62 additions and 39 deletions
+7 -6
View File
@@ -35,13 +35,14 @@ void MockAcquisitionDevice::Cancel() {
MockAcquisitionDevice::MockAcquisitionDevice(uint16_t data_stream, size_t in_frame_buffer_size_modules,
int16_t in_numa_node)
: AcquisitionDevice(data_stream), internal_pkt_gen_frame(FRAME_GENERATOR_MODULES * RAW_MODULE_SIZE),
internal_pkt_gen_frame_conv(FRAME_GENERATOR_MODULES * RAW_MODULE_SIZE) {
max_modules = 16;
: AcquisitionDevice(data_stream) {
max_modules = MAX_MODULES_FPGA;
internal_pkt_gen_frame.resize(max_modules * RAW_MODULE_SIZE);
internal_pkt_gen_frame_conv.resize(max_modules * RAW_MODULE_SIZE);
MapBuffersStandard(in_frame_buffer_size_modules, 1, in_numa_node);
max_handle = in_frame_buffer_size_modules;
for (int i = 0; i < FRAME_GENERATOR_MODULES * RAW_MODULE_SIZE; i++) {
for (int i = 0; i < max_modules * RAW_MODULE_SIZE; i++) {
internal_pkt_gen_frame[i] = i % 65536;
internal_pkt_gen_frame_conv[i] = i % 65536;
}
@@ -153,7 +154,7 @@ void MockAcquisitionDevice::SetCustomInternalGeneratorFrame(const std::vector<ui
if (v.size() != RAW_MODULE_SIZE)
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Error in size of custom internal generator frame");
for (int m = 0; m < FRAME_GENERATOR_MODULES ; m++) {
for (int m = 0; m < max_modules ; m++) {
memcpy(internal_pkt_gen_frame.data() + RAW_MODULE_SIZE * m,
v.data(),
RAW_MODULE_SIZE);
@@ -164,7 +165,7 @@ void MockAcquisitionDevice::SetCustomInternalGeneratorFrame(const std::vector<ui
}
void MockAcquisitionDevice::InitializeCalibration(const DiffractionExperiment &experiment, const JFCalibration &calib) {
for (int m = 0; (m < experiment.GetModulesNum(data_stream)) && (m < FRAME_GENERATOR_MODULES); m++) {
for (int m = 0; (m < experiment.GetModulesNum(data_stream)) && (m < max_modules); m++) {
JFConversionFloatingPoint conv;
conv.Setup(calib.GainCalibration(experiment.GetFirstModuleOfDataStream(data_stream) + m),
calib.Pedestal(experiment.GetFirstModuleOfDataStream(data_stream) + m,0),