244 lines
8.1 KiB
C++
244 lines
8.1 KiB
C++
/**
|
|
* Jungfraujoch
|
|
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
|
|
*
|
|
* The version of the OpenAPI document: 1.0.0-rc.58
|
|
* Contact: filip.leonarski@psi.ch
|
|
*
|
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
* https://openapi-generator.tech
|
|
* Do not edit the class manually.
|
|
*/
|
|
/*
|
|
* Detector.h
|
|
*
|
|
*
|
|
*/
|
|
|
|
#ifndef Detector_H_
|
|
#define Detector_H_
|
|
|
|
|
|
#include "Detector_type.h"
|
|
#include <string>
|
|
#include <vector>
|
|
#include "Standard_detector_geometry.h"
|
|
#include "Detector_module.h"
|
|
#include <nlohmann/json.hpp>
|
|
|
|
namespace org::openapitools::server::model
|
|
{
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
class Detector
|
|
{
|
|
public:
|
|
Detector();
|
|
virtual ~Detector() = default;
|
|
|
|
|
|
/// <summary>
|
|
/// Validate the current data in the model. Throws a ValidationException on failure.
|
|
/// </summary>
|
|
void validate() const;
|
|
|
|
/// <summary>
|
|
/// Validate the current data in the model. Returns false on error and writes an error
|
|
/// message into the given stringstream.
|
|
/// </summary>
|
|
bool validate(std::stringstream& msg) const;
|
|
|
|
/// <summary>
|
|
/// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
|
/// Not meant to be called outside that case.
|
|
/// </summary>
|
|
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
|
|
|
bool operator==(const Detector& rhs) const;
|
|
bool operator!=(const Detector& rhs) const;
|
|
|
|
/////////////////////////////////////////////
|
|
/// Detector members
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
std::string getDescription() const;
|
|
void setDescription(std::string const& value);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
std::string getSerialNumber() const;
|
|
void setSerialNumber(std::string const& value);
|
|
bool serialNumberIsSet() const;
|
|
void unsetSerial_number();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
org::openapitools::server::model::Detector_type getType() const;
|
|
void setType(org::openapitools::server::model::Detector_type const& value);
|
|
bool typeIsSet() const;
|
|
void unsetType();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
int64_t getHighVoltageV() const;
|
|
void setHighVoltageV(int64_t const value);
|
|
bool highVoltageVIsSet() const;
|
|
void unsetHigh_voltage_V();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
int64_t getUdpInterfaceCount() const;
|
|
void setUdpInterfaceCount(int64_t const value);
|
|
bool udpInterfaceCountIsSet() const;
|
|
void unsetUdp_interface_count();
|
|
/// <summary>
|
|
/// Use module 0 as master for timing. Only applies to JUNGFRAU detector (this cannot be turned off for EIGER).
|
|
/// </summary>
|
|
bool isModuleSync() const;
|
|
void setModuleSync(bool const value);
|
|
bool moduleSyncIsSet() const;
|
|
void unsetModule_sync();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
float getSensorThicknessUm() const;
|
|
void setSensorThicknessUm(float const value);
|
|
bool sensorThicknessUmIsSet() const;
|
|
void unsetSensor_thickness_um();
|
|
/// <summary>
|
|
/// Minimum difference between frame time and count time in microseconds Defaults are 3 us for EIGER and 20 us for JUNGFRAU
|
|
/// </summary>
|
|
int64_t getReadoutTimeUs() const;
|
|
void setReadoutTimeUs(int64_t const value);
|
|
bool readoutTimeUsIsSet() const;
|
|
void unsetReadout_time_us();
|
|
/// <summary>
|
|
/// Minimum count time available for the detector.
|
|
/// </summary>
|
|
int64_t getMinimumCountTimeUs() const;
|
|
void setMinimumCountTimeUs(int64_t const value);
|
|
bool minimumCountTimeUsIsSet() const;
|
|
void unsetMinimum_count_time_us();
|
|
/// <summary>
|
|
/// Minimum frame time available for the detector.
|
|
/// </summary>
|
|
int64_t getMinimumFrameTimeUs() const;
|
|
void setMinimumFrameTimeUs(int64_t const value);
|
|
bool minimumFrameTimeUsIsSet() const;
|
|
void unsetMinimum_frame_time_us();
|
|
/// <summary>
|
|
/// Can be empty for all detectors - default calibration used. For JUNGFRAU: list of gain files, one entry per module. For EIGER: one directory (with detector settings) or list of trim bit files, one entry per half-module.
|
|
/// </summary>
|
|
std::vector<std::string> getCalibrationFile() const;
|
|
void setCalibrationFile(std::vector<std::string> const& value);
|
|
bool calibrationFileIsSet() const;
|
|
void unsetCalibration_file();
|
|
/// <summary>
|
|
/// Hostname for detector module. One entry per module One entry per module. Either empty or number of module entries.
|
|
/// </summary>
|
|
std::vector<std::string> getHostname() const;
|
|
void setHostname(std::vector<std::string> const& value);
|
|
bool hostnameIsSet() const;
|
|
void unsetHostname();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
std::string getSensorMaterial() const;
|
|
void setSensorMaterial(std::string const& value);
|
|
bool sensorMaterialIsSet() const;
|
|
void unsetSensor_material();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
std::vector<int64_t> getTxDelay() const;
|
|
void setTxDelay(std::vector<int64_t> const value);
|
|
bool txDelayIsSet() const;
|
|
void unsetTx_delay();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
std::string getBaseDataIpv4Address() const;
|
|
void setBaseDataIpv4Address(std::string const& value);
|
|
bool baseDataIpv4AddressIsSet() const;
|
|
void unsetBase_data_ipv4_address();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
org::openapitools::server::model::Standard_detector_geometry getStandardGeometry() const;
|
|
void setStandardGeometry(org::openapitools::server::model::Standard_detector_geometry const& value);
|
|
bool standardGeometryIsSet() const;
|
|
void unsetStandard_geometry();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
std::vector<org::openapitools::server::model::Detector_module> getCustomGeometry() const;
|
|
void setCustomGeometry(std::vector<org::openapitools::server::model::Detector_module> const& value);
|
|
bool customGeometryIsSet() const;
|
|
void unsetCustom_geometry();
|
|
/// <summary>
|
|
/// ROI setting for DECTRIS detectors
|
|
/// </summary>
|
|
std::string getRoiMode() const;
|
|
void setRoiMode(std::string const& value);
|
|
bool roiModeIsSet() const;
|
|
void unsetRoi_mode();
|
|
/// <summary>
|
|
/// Mirror detector in Y direction to account for MX convention of (0,0) point in top left corner
|
|
/// </summary>
|
|
bool isMirrorY() const;
|
|
void setMirrorY(bool const value);
|
|
bool mirrorYIsSet() const;
|
|
void unsetMirror_y();
|
|
|
|
friend void to_json(nlohmann::json& j, const Detector& o);
|
|
friend void from_json(const nlohmann::json& j, Detector& o);
|
|
protected:
|
|
std::string m_Description;
|
|
|
|
std::string m_Serial_number;
|
|
bool m_Serial_numberIsSet;
|
|
org::openapitools::server::model::Detector_type m_Type;
|
|
bool m_TypeIsSet;
|
|
int64_t m_High_voltage_V;
|
|
bool m_High_voltage_VIsSet;
|
|
int64_t m_Udp_interface_count;
|
|
bool m_Udp_interface_countIsSet;
|
|
bool m_Module_sync;
|
|
bool m_Module_syncIsSet;
|
|
float m_Sensor_thickness_um;
|
|
bool m_Sensor_thickness_umIsSet;
|
|
int64_t m_Readout_time_us;
|
|
bool m_Readout_time_usIsSet;
|
|
int64_t m_Minimum_count_time_us;
|
|
bool m_Minimum_count_time_usIsSet;
|
|
int64_t m_Minimum_frame_time_us;
|
|
bool m_Minimum_frame_time_usIsSet;
|
|
std::vector<std::string> m_Calibration_file;
|
|
bool m_Calibration_fileIsSet;
|
|
std::vector<std::string> m_Hostname;
|
|
bool m_HostnameIsSet;
|
|
std::string m_Sensor_material;
|
|
bool m_Sensor_materialIsSet;
|
|
std::vector<int64_t> m_Tx_delay;
|
|
bool m_Tx_delayIsSet;
|
|
std::string m_Base_data_ipv4_address;
|
|
bool m_Base_data_ipv4_addressIsSet;
|
|
org::openapitools::server::model::Standard_detector_geometry m_Standard_geometry;
|
|
bool m_Standard_geometryIsSet;
|
|
std::vector<org::openapitools::server::model::Detector_module> m_Custom_geometry;
|
|
bool m_Custom_geometryIsSet;
|
|
std::string m_Roi_mode;
|
|
bool m_Roi_modeIsSet;
|
|
bool m_Mirror_y;
|
|
bool m_Mirror_yIsSet;
|
|
|
|
};
|
|
|
|
} // namespace org::openapitools::server::model
|
|
|
|
#endif /* Detector_H_ */
|