00001 #ifndef PSANA_ANDOR3D_DDL_H 00002 #define PSANA_ANDOR3D_DDL_H 1 00003 00004 // *** Do not edit this file, it is auto-generated *** 00005 00006 #include <vector> 00007 #include <iosfwd> 00008 #include <cstring> 00009 #include "ndarray/ndarray.h" 00010 #include "pdsdata/xtc/TypeId.hh" 00011 namespace Psana { 00012 namespace Andor3d { 00013 00014 /** @class ConfigV1 00015 00016 00017 */ 00018 00019 00020 class ConfigV1 { 00021 public: 00022 enum { TypeId = Pds::TypeId::Id_Andor3dConfig /**< XTC type ID value (from Pds::TypeId class) */ }; 00023 enum { Version = 1 /**< XTC type version number */ }; 00024 enum EnumFanMode { 00025 ENUM_FAN_FULL = 0, 00026 ENUM_FAN_LOW = 1, 00027 ENUM_FAN_OFF = 2, 00028 ENUM_FAN_ACQOFF = 3, 00029 ENUM_FAN_NUM = 4, 00030 }; 00031 virtual ~ConfigV1(); 00032 virtual uint32_t width() const = 0; 00033 virtual uint32_t height() const = 0; 00034 virtual uint32_t numSensors() const = 0; 00035 virtual uint32_t orgX() const = 0; 00036 virtual uint32_t orgY() const = 0; 00037 virtual uint32_t binX() const = 0; 00038 virtual uint32_t binY() const = 0; 00039 virtual float exposureTime() const = 0; 00040 virtual float coolingTemp() const = 0; 00041 virtual Andor3d::ConfigV1::EnumFanMode fanMode() const = 0; 00042 virtual uint8_t baselineClamp() const = 0; 00043 virtual uint8_t highCapacity() const = 0; 00044 virtual uint8_t gainIndex() const = 0; 00045 virtual uint16_t readoutSpeedIndex() const = 0; 00046 virtual uint16_t exposureEventCode() const = 0; 00047 virtual uint32_t exposureStartDelay() const = 0; 00048 virtual uint32_t numDelayShots() const = 0; 00049 /** Total size in bytes of the Frame object */ 00050 virtual uint32_t frameSize() const = 0; 00051 /** calculate frame X size in pixels per sensor based on the current ROI and binning settings */ 00052 virtual uint32_t numPixelsX() const = 0; 00053 /** calculate frame Y size in pixels per sensor based on the current ROI and binning settings */ 00054 virtual uint32_t numPixelsY() const = 0; 00055 /** calculate total frame size in pixels per sensor based on the current ROI and binning settings */ 00056 virtual uint32_t numPixelsPerSensor() const = 0; 00057 /** calculate total frame size in pixels based on the current ROI and binning settings */ 00058 virtual uint32_t numPixels() const = 0; 00059 }; 00060 std::ostream& operator<<(std::ostream& str, Andor3d::ConfigV1::EnumFanMode enval); 00061 00062 /** @class FrameV1 00063 00064 00065 */ 00066 00067 class ConfigV1; 00068 00069 class FrameV1 { 00070 public: 00071 enum { TypeId = Pds::TypeId::Id_Andor3dFrame /**< XTC type ID value (from Pds::TypeId class) */ }; 00072 enum { Version = 1 /**< XTC type version number */ }; 00073 virtual ~FrameV1(); 00074 virtual uint32_t shotIdStart() const = 0; 00075 virtual float readoutTime() const = 0; 00076 virtual ndarray<const float, 1> temperature() const = 0; 00077 virtual ndarray<const uint16_t, 3> data() const = 0; 00078 }; 00079 } // namespace Andor3d 00080 } // namespace Psana 00081 #endif // PSANA_ANDOR3D_DDL_H