00001
00002
00003
00004 #include "psddl_pds2psana/camera.ddl.h"
00005
00006 #include <cstddef>
00007
00008 #include <stdexcept>
00009
00010 namespace psddl_pds2psana {
00011 namespace Camera {
00012 Psana::Camera::FrameCoord pds_to_psana(Pds::Camera::FrameCoord pds)
00013 {
00014 return Psana::Camera::FrameCoord(pds.column(), pds.row());
00015 }
00016
00017 FrameFccdConfigV1::FrameFccdConfigV1(const boost::shared_ptr<const XtcType>& xtcPtr)
00018 : Psana::Camera::FrameFccdConfigV1()
00019 , m_xtcObj(xtcPtr)
00020 {
00021 }
00022 FrameFccdConfigV1::~FrameFccdConfigV1()
00023 {
00024 }
00025
00026 Psana::Camera::FrameFexConfigV1::Forwarding pds_to_psana(Pds::Camera::FrameFexConfigV1::Forwarding e)
00027 {
00028 return Psana::Camera::FrameFexConfigV1::Forwarding(e);
00029 }
00030
00031 Psana::Camera::FrameFexConfigV1::Processing pds_to_psana(Pds::Camera::FrameFexConfigV1::Processing e)
00032 {
00033 return Psana::Camera::FrameFexConfigV1::Processing(e);
00034 }
00035
00036 FrameFexConfigV1::FrameFexConfigV1(const boost::shared_ptr<const XtcType>& xtcPtr)
00037 : Psana::Camera::FrameFexConfigV1()
00038 , m_xtcObj(xtcPtr)
00039 , _roiBegin(psddl_pds2psana::Camera::pds_to_psana(xtcPtr->roiBegin()))
00040 , _roiEnd(psddl_pds2psana::Camera::pds_to_psana(xtcPtr->roiEnd()))
00041 {
00042 {
00043 typedef ndarray<Psana::Camera::FrameCoord, 1> NDArray;
00044 typedef ndarray<const Pds::Camera::FrameCoord, 1> XtcNDArray;
00045 const XtcNDArray& xtc_ndarr = xtcPtr->masked_pixel_coordinates();
00046 _masked_pixel_coordinates_ndarray_storage_ = NDArray(xtc_ndarr.shape());
00047 NDArray::iterator out = _masked_pixel_coordinates_ndarray_storage_.begin();
00048 for (XtcNDArray::iterator it = xtc_ndarr.begin(); it != xtc_ndarr.end(); ++ it, ++ out) {
00049 *out = psddl_pds2psana::Camera::pds_to_psana(*it);
00050 }
00051 }
00052 }
00053 FrameFexConfigV1::~FrameFexConfigV1()
00054 {
00055 }
00056
00057
00058 Psana::Camera::FrameFexConfigV1::Forwarding FrameFexConfigV1::forwarding() const {
00059 return pds_to_psana(m_xtcObj->forwarding());
00060 }
00061
00062
00063 uint32_t FrameFexConfigV1::forward_prescale() const {
00064 return m_xtcObj->forward_prescale();
00065 }
00066
00067
00068 Psana::Camera::FrameFexConfigV1::Processing FrameFexConfigV1::processing() const {
00069 return pds_to_psana(m_xtcObj->processing());
00070 }
00071
00072 const Psana::Camera::FrameCoord& FrameFexConfigV1::roiBegin() const { return _roiBegin; }
00073 const Psana::Camera::FrameCoord& FrameFexConfigV1::roiEnd() const { return _roiEnd; }
00074
00075 uint32_t FrameFexConfigV1::threshold() const {
00076 return m_xtcObj->threshold();
00077 }
00078
00079
00080 uint32_t FrameFexConfigV1::number_of_masked_pixels() const {
00081 return m_xtcObj->number_of_masked_pixels();
00082 }
00083
00084 ndarray<const Psana::Camera::FrameCoord, 1> FrameFexConfigV1::masked_pixel_coordinates() const { return _masked_pixel_coordinates_ndarray_storage_; }
00085 FrameV1::FrameV1(const boost::shared_ptr<const XtcType>& xtcPtr)
00086 : Psana::Camera::FrameV1()
00087 , m_xtcObj(xtcPtr)
00088 {
00089 }
00090 FrameV1::~FrameV1()
00091 {
00092 }
00093
00094
00095 uint32_t FrameV1::width() const {
00096 return m_xtcObj->width();
00097 }
00098
00099
00100 uint32_t FrameV1::height() const {
00101 return m_xtcObj->height();
00102 }
00103
00104
00105 uint32_t FrameV1::depth() const {
00106 return m_xtcObj->depth();
00107 }
00108
00109
00110 uint32_t FrameV1::offset() const {
00111 return m_xtcObj->offset();
00112 }
00113
00114
00115 ndarray<const uint8_t, 1> FrameV1::_int_pixel_data() const {
00116 return m_xtcObj->_int_pixel_data(m_xtcObj);
00117 }
00118
00119
00120 ndarray<const uint8_t, 2> FrameV1::data8() const {
00121 return m_xtcObj->data8();
00122 }
00123
00124
00125 ndarray<const uint16_t, 2> FrameV1::data16() const {
00126 return m_xtcObj->data16();
00127 }
00128
00129
00130 uint32_t FrameV1::depth_bytes() const {
00131 return m_xtcObj->depth_bytes();
00132 }
00133
00134 TwoDGaussianV1::TwoDGaussianV1(const boost::shared_ptr<const XtcType>& xtcPtr)
00135 : Psana::Camera::TwoDGaussianV1()
00136 , m_xtcObj(xtcPtr)
00137 {
00138 }
00139 TwoDGaussianV1::~TwoDGaussianV1()
00140 {
00141 }
00142
00143
00144 uint64_t TwoDGaussianV1::integral() const {
00145 return m_xtcObj->integral();
00146 }
00147
00148
00149 double TwoDGaussianV1::xmean() const {
00150 return m_xtcObj->xmean();
00151 }
00152
00153
00154 double TwoDGaussianV1::ymean() const {
00155 return m_xtcObj->ymean();
00156 }
00157
00158
00159 double TwoDGaussianV1::major_axis_width() const {
00160 return m_xtcObj->major_axis_width();
00161 }
00162
00163
00164 double TwoDGaussianV1::minor_axis_width() const {
00165 return m_xtcObj->minor_axis_width();
00166 }
00167
00168
00169 double TwoDGaussianV1::major_axis_tilt() const {
00170 return m_xtcObj->major_axis_tilt();
00171 }
00172
00173 Psana::Camera::ControlsCameraConfigV1::ColorMode pds_to_psana(Pds::Camera::ControlsCameraConfigV1::ColorMode e)
00174 {
00175 return Psana::Camera::ControlsCameraConfigV1::ColorMode(e);
00176 }
00177
00178 ControlsCameraConfigV1::ControlsCameraConfigV1(const boost::shared_ptr<const XtcType>& xtcPtr)
00179 : Psana::Camera::ControlsCameraConfigV1()
00180 , m_xtcObj(xtcPtr)
00181 {
00182 }
00183 ControlsCameraConfigV1::~ControlsCameraConfigV1()
00184 {
00185 }
00186
00187
00188 uint32_t ControlsCameraConfigV1::width() const {
00189 return m_xtcObj->width();
00190 }
00191
00192
00193 uint32_t ControlsCameraConfigV1::height() const {
00194 return m_xtcObj->height();
00195 }
00196
00197
00198 uint32_t ControlsCameraConfigV1::depth() const {
00199 return m_xtcObj->depth();
00200 }
00201
00202
00203 Psana::Camera::ControlsCameraConfigV1::ColorMode ControlsCameraConfigV1::color_mode() const {
00204 return pds_to_psana(m_xtcObj->color_mode());
00205 }
00206
00207
00208 double ControlsCameraConfigV1::exposure_time() const {
00209 return m_xtcObj->exposure_time();
00210 }
00211
00212
00213 double ControlsCameraConfigV1::gain() const {
00214 return m_xtcObj->gain();
00215 }
00216
00217
00218 const char* ControlsCameraConfigV1::manufacturer() const {
00219 return m_xtcObj->manufacturer();
00220 }
00221
00222
00223 const char* ControlsCameraConfigV1::model() const {
00224 return m_xtcObj->model();
00225 }
00226
00227 }
00228 }