Files
Jungfraujoch/frame_serialize/StartMessage.h
Filip Leonarski 25359f0d60 CBOR: Adjust for DECTRIS stream2 compatibility:
* date/time tag
* initial tag self-described CBOR
* series ID
* fixes to typed array header in case of compression
2023-04-19 12:58:29 +02:00

83 lines
1.9 KiB
C++

// Copyright (2019-2022) Paul Scherrer Institute
// SPDX-License-Identifier: GPL-3.0-or-later
#ifndef JUNGFRAUJOCH_STARTMESSAGE_H
#define JUNGFRAUJOCH_STARTMESSAGE_H
#include <string>
#include <cstdint>
#include <map>
#include <vector>
#include "../compression/CompressionAlgorithmEnum.h"
struct GoniometerAxis {
float increment;
float start;
};
struct StartMessage {
uint64_t data_file_count; // user data
float detector_distance;
float beam_center_x;
float beam_center_y;
uint64_t number_of_images;
uint64_t image_size_x;
uint64_t image_size_y;
uint64_t pixel_bit_depth; // user data
bool pixel_signed; // user data
float incident_energy;
float incident_wavelength;
float frame_time;
float count_time;
int64_t saturation_value;
int64_t min_value; // user data
float pixel_size_x;
float pixel_size_y;
float sensor_thickness;
std::string sensor_material;
CompressionAlgorithm compression_algorithm; // user data
uint64_t compression_block_size; // user data
float unit_cell[6]; // user data
uint64_t space_group_number; // user data
uint64_t max_spot_count; // user data
uint64_t storage_cell_number; // user data
std::map<std::string, std::vector<uint32_t>> pixel_mask;
bool pixel_mask_enabled;
std::string arm_date;
std::string sample_name; // user data
std::string file_prefix; // user data
std::vector<std::string> channels;
std::string detector_description;
std::string detector_serial_number;
std::string series_unique_id;
uint64_t series_id;
std::map<std::string, GoniometerAxis> goniometer;
float detector_translation[3];
std::string source_name;
std::string source_name_short;
std::string instrument_name;
std::string instrument_name_short;
uint64_t rad_int_bin_number;
uint64_t summation;
};
#endif //JUNGFRAUJOCH_STARTMESSAGE_H