psddl_psana/include/camera.ddl.h

Go to the documentation of this file.
00001 #ifndef PSANA_CAMERA_DDL_H
00002 #define PSANA_CAMERA_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 Camera {
00013 
00014 /** @class FrameCoord
00015 
00016   Class representing the coordinates of pixels inside the camera frame.
00017 */
00018 
00019 
00020 class FrameCoord {
00021 public:
00022   FrameCoord(uint16_t arg__column, uint16_t arg__row)
00023     : _column(arg__column), _row(arg__row)
00024   {
00025   }
00026   FrameCoord() {}
00027   /** Column index (x value). */
00028   uint16_t column() const { return _column; }
00029   /** Row index (y value). */
00030   uint16_t row() const { return _row; }
00031   static uint32_t _sizeof() { return 4; }
00032 private:
00033   uint16_t      _column;        /**< Column index (x value). */
00034   uint16_t      _row;   /**< Row index (y value). */
00035 };
00036 
00037 /** @class FrameFccdConfigV1
00038 
00039   This class was never defined/implemented.
00040 */
00041 
00042 
00043 class FrameFccdConfigV1 {
00044 public:
00045   enum { TypeId = Pds::TypeId::Id_FrameFccdConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00046   enum { Version = 1 /**< XTC type version number */ };
00047   virtual ~FrameFccdConfigV1();
00048 };
00049 
00050 /** @class FrameFexConfigV1
00051 
00052   Class containing configuration data for online frame feature extraction process.
00053 */
00054 
00055 
00056 class FrameFexConfigV1 {
00057 public:
00058   enum { TypeId = Pds::TypeId::Id_FrameFexConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00059   enum { Version = 1 /**< XTC type version number */ };
00060   enum Forwarding {
00061     NoFrame,
00062     FullFrame,
00063     RegionOfInterest,
00064   };
00065   enum Processing {
00066     NoProcessing,
00067     GssFullFrame,
00068     GssRegionOfInterest,
00069     GssThreshold,
00070   };
00071   virtual ~FrameFexConfigV1();
00072   /** frame forwarding policy */
00073   virtual Camera::FrameFexConfigV1::Forwarding forwarding() const = 0;
00074   /** Prescale of events with forwarded frames */
00075   virtual uint32_t forward_prescale() const = 0;
00076   /** algorithm to apply to frames to produce processed output */
00077   virtual Camera::FrameFexConfigV1::Processing processing() const = 0;
00078   /** Coordinate of start of rectangular region of interest (inclusive). */
00079   virtual const Camera::FrameCoord& roiBegin() const = 0;
00080   /** Coordinate of finish of rectangular region of interest (exclusive). */
00081   virtual const Camera::FrameCoord& roiEnd() const = 0;
00082   /** Pixel data threshold value to apply in processing. */
00083   virtual uint32_t threshold() const = 0;
00084   /** Count of masked pixels to exclude from processing. */
00085   virtual uint32_t number_of_masked_pixels() const = 0;
00086   /** Location of masked pixel coordinates. */
00087   virtual ndarray<const Camera::FrameCoord, 1> masked_pixel_coordinates() const = 0;
00088 };
00089 std::ostream& operator<<(std::ostream& str, Camera::FrameFexConfigV1::Forwarding enval);
00090 std::ostream& operator<<(std::ostream& str, Camera::FrameFexConfigV1::Processing enval);
00091 
00092 /** @class FrameV1
00093 
00094   
00095 */
00096 
00097 
00098 class FrameV1 {
00099 public:
00100   enum { TypeId = Pds::TypeId::Id_Frame /**< XTC type ID value (from Pds::TypeId class) */ };
00101   enum { Version = 1 /**< XTC type version number */ };
00102   virtual ~FrameV1();
00103   /** Number of pixels in a row. */
00104   virtual uint32_t width() const = 0;
00105   /** Number of pixels in a column. */
00106   virtual uint32_t height() const = 0;
00107   /** Number of bits per pixel. */
00108   virtual uint32_t depth() const = 0;
00109   /** Fixed offset/pedestal value of pixel data. */
00110   virtual uint32_t offset() const = 0;
00111   /** Pixel data as array of bytes, method is for internal use only, use data8() or 
00112             data16() for access to the data. */
00113   virtual ndarray<const uint8_t, 1> _int_pixel_data() const = 0;
00114   /** Returns pixel data array when stored data type is 8-bit (depth() is less than 9).
00115                 If data type is 16-bit then empty array is returned, use data16() method in this case. */
00116   virtual ndarray<const uint8_t, 2> data8() const = 0;
00117   /** Returns pixel data array when stored data type is 16-bit (depth() is greater than 8).
00118                 If data type is 8-bit then empty array is returned, use data8() method in this case. */
00119   virtual ndarray<const uint16_t, 2> data16() const = 0;
00120   /** Number of bytes per pixel. */
00121   virtual uint32_t depth_bytes() const = 0;
00122 };
00123 
00124 /** @class TwoDGaussianV1
00125 
00126   
00127 */
00128 
00129 
00130 class TwoDGaussianV1 {
00131 public:
00132   enum { TypeId = Pds::TypeId::Id_TwoDGaussian /**< XTC type ID value (from Pds::TypeId class) */ };
00133   enum { Version = 1 /**< XTC type version number */ };
00134   virtual ~TwoDGaussianV1();
00135   virtual uint64_t integral() const = 0;
00136   virtual double xmean() const = 0;
00137   virtual double ymean() const = 0;
00138   virtual double major_axis_width() const = 0;
00139   virtual double minor_axis_width() const = 0;
00140   virtual double major_axis_tilt() const = 0;
00141 };
00142 
00143 /** @class ControlsCameraConfigV1
00144 
00145   Class containing configuration data for cameras recorded by the controls recorder.
00146 */
00147 
00148 
00149 class ControlsCameraConfigV1 {
00150 public:
00151   enum { TypeId = Pds::TypeId::Id_ControlsCameraConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00152   enum { Version = 1 /**< XTC type version number */ };
00153   enum { DESC_CHAR_MAX = 48 };
00154   enum ColorMode {
00155     Mono,
00156     Bayer,
00157     RGB1,
00158   };
00159   virtual ~ControlsCameraConfigV1();
00160   /** Number of pixels in a row. */
00161   virtual uint32_t width() const = 0;
00162   /** Number of pixels in a column. */
00163   virtual uint32_t height() const = 0;
00164   /** Number of bits per pixel. */
00165   virtual uint32_t depth() const = 0;
00166   /** The color mode of the camera. */
00167   virtual Camera::ControlsCameraConfigV1::ColorMode color_mode() const = 0;
00168   /** The configured exposure time of the camera in seconds. */
00169   virtual double exposure_time() const = 0;
00170   /** Camera gain value. */
00171   virtual double gain() const = 0;
00172   /** The manufacturer of the camera. */
00173   virtual const char* manufacturer() const = 0;
00174   /** The model name of the camera. */
00175   virtual const char* model() const = 0;
00176 };
00177 std::ostream& operator<<(std::ostream& str, Camera::ControlsCameraConfigV1::ColorMode enval);
00178 } // namespace Camera
00179 } // namespace Psana
00180 #endif // PSANA_CAMERA_DDL_H

Generated on 19 Dec 2016 for PSANAclasses by  doxygen 1.4.7