psddl_psana/include/encoder.ddl.h

Go to the documentation of this file.
00001 #ifndef PSANA_ENCODER_DDL_H
00002 #define PSANA_ENCODER_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 Encoder {
00013 
00014 /** @class ConfigV1
00015 
00016   
00017 */
00018 
00019 
00020 class ConfigV1 {
00021 public:
00022   enum { TypeId = Pds::TypeId::Id_EncoderConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00023   enum { Version = 1 /**< XTC type version number */ };
00024   enum count_mode_type {
00025     WRAP_FULL,
00026     LIMIT,
00027     HALT,
00028     WRAP_PRESET,
00029     COUNT_END,
00030   };
00031   enum quad_mode {
00032     CLOCK_DIR,
00033     X1,
00034     X2,
00035     X4,
00036     QUAD_END,
00037   };
00038   virtual ~ConfigV1();
00039   virtual uint32_t chan_num() const = 0;
00040   virtual Encoder::ConfigV1::count_mode_type count_mode() const = 0;
00041   virtual Encoder::ConfigV1::quad_mode quadrature_mode() const = 0;
00042   virtual uint32_t input_num() const = 0;
00043   virtual uint32_t input_rising() const = 0;
00044   virtual uint32_t ticks_per_sec() const = 0;
00045 };
00046 std::ostream& operator<<(std::ostream& str, Encoder::ConfigV1::count_mode_type enval);
00047 std::ostream& operator<<(std::ostream& str, Encoder::ConfigV1::quad_mode enval);
00048 
00049 /** @class ConfigV2
00050 
00051   
00052 */
00053 
00054 
00055 class ConfigV2 {
00056 public:
00057   enum { TypeId = Pds::TypeId::Id_EncoderConfig /**< XTC type ID value (from Pds::TypeId class) */ };
00058   enum { Version = 2 /**< XTC type version number */ };
00059   enum count_mode_type {
00060     WRAP_FULL,
00061     LIMIT,
00062     HALT,
00063     WRAP_PRESET,
00064     COUNT_END,
00065   };
00066   enum quad_mode {
00067     CLOCK_DIR,
00068     X1,
00069     X2,
00070     X4,
00071     QUAD_END,
00072   };
00073   virtual ~ConfigV2();
00074   virtual uint32_t chan_mask() const = 0;
00075   virtual Encoder::ConfigV2::count_mode_type count_mode() const = 0;
00076   virtual Encoder::ConfigV2::quad_mode quadrature_mode() const = 0;
00077   virtual uint32_t input_num() const = 0;
00078   virtual uint32_t input_rising() const = 0;
00079   virtual uint32_t ticks_per_sec() const = 0;
00080 };
00081 std::ostream& operator<<(std::ostream& str, Encoder::ConfigV2::count_mode_type enval);
00082 std::ostream& operator<<(std::ostream& str, Encoder::ConfigV2::quad_mode enval);
00083 
00084 /** @class DataV1
00085 
00086   
00087 */
00088 
00089 
00090 class DataV1 {
00091 public:
00092   enum { TypeId = Pds::TypeId::Id_EncoderData /**< XTC type ID value (from Pds::TypeId class) */ };
00093   enum { Version = 1 /**< XTC type version number */ };
00094   virtual ~DataV1();
00095   virtual uint32_t timestamp() const = 0;
00096   virtual uint32_t encoder_count() const = 0;
00097   /** Lower 24 bits of encoder_count as signed integer value. */
00098   virtual int32_t value() const = 0;
00099 };
00100 
00101 /** @class DataV2
00102 
00103   
00104 */
00105 
00106 
00107 class DataV2 {
00108 public:
00109   enum { TypeId = Pds::TypeId::Id_EncoderData /**< XTC type ID value (from Pds::TypeId class) */ };
00110   enum { Version = 2 /**< XTC type version number */ };
00111   enum { NEncoders = 3 /**< Number of encoders. */ };
00112   virtual ~DataV2();
00113   virtual uint32_t timestamp() const = 0;
00114   virtual ndarray<const uint32_t, 1> encoder_count() const = 0;
00115   /** Lower 24 bits of encoder_count as signed integer value. */
00116   virtual int32_t value(uint32_t i) const = 0;
00117 };
00118 } // namespace Encoder
00119 } // namespace Psana
00120 #endif // PSANA_ENCODER_DDL_H

Generated on 19 Dec 2016 for PSANAclasses by  doxygen 1.4.7