psddl_psana/include/oceanoptics.ddl.h

Go to the documentation of this file.
00001 #ifndef PSANA_OCEANOPTICS_DDL_H
00002 #define PSANA_OCEANOPTICS_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 OceanOptics {
00013 
00014 /** @class ConfigV1
00015 
00016   
00017 */
00018 
00019 
00020 class ConfigV1 {
00021 public:
00022   enum { TypeId = Pds::TypeId::Id_OceanOpticsConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00023   enum { Version = 1 /**< XTC type version number */ };
00024   virtual ~ConfigV1();
00025   virtual float exposureTime() const = 0;
00026   virtual ndarray<const double, 1> waveLenCalib() const = 0;
00027   virtual ndarray<const double, 1> nonlinCorrect() const = 0;
00028   virtual double strayLightConstant() const = 0;
00029 };
00030 
00031 /** @class ConfigV2
00032 
00033   
00034 */
00035 
00036 
00037 class ConfigV2 {
00038 public:
00039   enum { TypeId = Pds::TypeId::Id_OceanOpticsConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00040   enum { Version = 2 /**< XTC type version number */ };
00041   virtual ~ConfigV2();
00042   virtual float exposureTime() const = 0;
00043   virtual int32_t deviceType() const = 0;
00044   virtual ndarray<const double, 1> waveLenCalib() const = 0;
00045   virtual ndarray<const double, 1> nonlinCorrect() const = 0;
00046   virtual double strayLightConstant() const = 0;
00047 };
00048 
00049 /** @class timespec64
00050 
00051   
00052 */
00053 
00054 
00055 class timespec64 {
00056 public:
00057   timespec64(uint64_t arg__tv_sec, uint64_t arg__tv_nsec)
00058     : _tv_sec(arg__tv_sec), _tv_nsec(arg__tv_nsec)
00059   {
00060   }
00061   timespec64() {}
00062   uint64_t tv_sec() const { return _tv_sec; }
00063   uint64_t tv_nsec() const { return _tv_nsec; }
00064   static uint32_t _sizeof() { return 16; }
00065 private:
00066   uint64_t      _tv_sec;
00067   uint64_t      _tv_nsec;
00068 };
00069 
00070 /** @class DataV1
00071 
00072   
00073 */
00074 
00075 class ConfigV1;
00076 class ConfigV2;
00077 
00078 class DataV1 {
00079 public:
00080   enum { TypeId = Pds::TypeId::Id_OceanOpticsData /**< XTC type ID value (from Pds::TypeId class) */ };
00081   enum { Version = 1 /**< XTC type version number */ };
00082   enum { iDataReadSize = 8192 };
00083   enum { iNumPixels = 3840 };
00084   enum { iActivePixelIndex = 22 };
00085   virtual ~DataV1();
00086   virtual ndarray<const uint16_t, 1> data() const = 0;
00087   virtual uint64_t frameCounter() const = 0;
00088   virtual uint64_t numDelayedFrames() const = 0;
00089   virtual uint64_t numDiscardFrames() const = 0;
00090   virtual const OceanOptics::timespec64& timeFrameStart() const = 0;
00091   virtual const OceanOptics::timespec64& timeFrameFirstData() const = 0;
00092   virtual const OceanOptics::timespec64& timeFrameEnd() const = 0;
00093   virtual int8_t numSpectraInData() const = 0;
00094   virtual int8_t numSpectraInQueue() const = 0;
00095   virtual int8_t numSpectraUnused() const = 0;
00096   virtual double durationOfFrame() const = 0;
00097   virtual double nonlinerCorrected(uint32_t iPixel) const = 0;
00098 };
00099 
00100 /** @class DataV2
00101 
00102   
00103 */
00104 
00105 class ConfigV2;
00106 
00107 class DataV2 {
00108 public:
00109   enum { TypeId = Pds::TypeId::Id_OceanOpticsData /**< XTC type ID value (from Pds::TypeId class) */ };
00110   enum { Version = 2 /**< XTC type version number */ };
00111   enum { iDataReadSize = 4608 };
00112   enum { iNumPixels = 2048 };
00113   enum { iActivePixelIndex = 0 };
00114   virtual ~DataV2();
00115   virtual ndarray<const uint16_t, 1> data() const = 0;
00116   virtual uint64_t frameCounter() const = 0;
00117   virtual uint64_t numDelayedFrames() const = 0;
00118   virtual uint64_t numDiscardFrames() const = 0;
00119   virtual const OceanOptics::timespec64& timeFrameStart() const = 0;
00120   virtual const OceanOptics::timespec64& timeFrameFirstData() const = 0;
00121   virtual const OceanOptics::timespec64& timeFrameEnd() const = 0;
00122   virtual int8_t numSpectraInData() const = 0;
00123   virtual int8_t numSpectraInQueue() const = 0;
00124   virtual int8_t numSpectraUnused() const = 0;
00125   virtual double durationOfFrame() const = 0;
00126   virtual double nonlinerCorrected(uint32_t iPixel) const = 0;
00127 };
00128 
00129 /** @class DataV3
00130 
00131   
00132 */
00133 
00134 class ConfigV2;
00135 
00136 class DataV3 {
00137 public:
00138   enum { TypeId = Pds::TypeId::Id_OceanOpticsData /**< XTC type ID value (from Pds::TypeId class) */ };
00139   enum { Version = 3 /**< XTC type version number */ };
00140   enum { iDataReadSize = 8192 };
00141   enum { iNumPixels = 3840 };
00142   enum { iActivePixelIndex = 22 };
00143   virtual ~DataV3();
00144   virtual ndarray<const uint16_t, 1> data() const = 0;
00145   virtual uint64_t frameCounter() const = 0;
00146   virtual uint64_t numDelayedFrames() const = 0;
00147   virtual uint64_t numDiscardFrames() const = 0;
00148   virtual const OceanOptics::timespec64& timeFrameStart() const = 0;
00149   virtual const OceanOptics::timespec64& timeFrameFirstData() const = 0;
00150   virtual const OceanOptics::timespec64& timeFrameEnd() const = 0;
00151   virtual int8_t numSpectraInData() const = 0;
00152   virtual int8_t numSpectraInQueue() const = 0;
00153   virtual int8_t numSpectraUnused() const = 0;
00154   virtual double durationOfFrame() const = 0;
00155   virtual double nonlinerCorrected(uint32_t iPixel) const = 0;
00156 };
00157 } // namespace OceanOptics
00158 } // namespace Psana
00159 #endif // PSANA_OCEANOPTICS_DDL_H

Generated on 19 Dec 2016 for PSANAclasses by  doxygen 1.4.7