20 #include <sutra_centroider_bpcog.h>
35 template <
typename Tin,
typename T,
typename Tout>
45 float scale,
bool filter_TT,
long device,
49 float scale,
bool filter_TT,
long device,
80 int nactu,
int nslope_buffers = 0,
int nstates = 0,
int nstate_buffers = 0,
81 int nmodes = 0,
int niir_in = 0,
int niir_out = 0,
bool polc =
false,
82 bool is_modal =
false,
SutraDms *dms =
nullptr,
int *idx_dms =
nullptr,
83 int ndm = 0,
int *idx_centro =
nullptr,
int ncentro = 0,
int Nphi = 0,
84 bool wfs_direction =
false);
94 T *pushAmpl,
int kernconv);
115 template <
typename Q = T>
116 typename std::enable_if<std::is_same<Q, float>::value,
int>::type
117 do_imat_impl(
int ncntrl,
SutraDms *ydm,
int kernconv, std::true_type);
118 int do_imat_impl(
int ncntrl,
SutraDms *ydm,
int kernconv, std::false_type);
120 template <
typename Q = T>
121 typename std::enable_if<std::is_same<Q, float>::value,
int>::type
122 do_imat_basis_impl(
int ncntrl,
SutraDms *ydm,
int nModes, T *m2v,
123 T *pushAmpl,
int kernconv, std::true_type);
124 int do_imat_basis_impl(
int ncntrl,
SutraDms *ydm,
int nModes, T *m2v,
125 T *pushAmpl,
int kernconv, std::false_type);
126 template <
typename Q = T>
127 typename std::enable_if<std::is_same<Q, float>::value,
int>::type
128 do_imat_geom_impl(
int ncntrl,
SutraDms *ydm,
int type, std::true_type);
129 int do_imat_geom_impl(
int ncntrl,
SutraDms *ydm,
int type, std::false_type);
131 template <
typename Q = T>
132 typename std::enable_if<std::is_same<Q, float>::value,
int>::type
133 do_centroids_geom_impl(
int ncntrl,
int type, std::true_type);
134 int do_centroids_geom_impl(
int ncntrl,
int type, std::false_type);
136 template <
typename Q = T>
137 typename std::enable_if<!std::is_same<Q, half>::value,
int>::type
138 add_centroider_impl(
CarmaContext *context,
long nvalid,
float offset,
139 float scale,
bool filter_TT,
long device,
140 std::string typec,
SutraWfs *wfs, std::false_type);
141 int add_centroider_impl(
CarmaContext *context,
long nvalid,
float offset,
142 float scale,
bool filter_TT,
long device,
143 std::string typec,
SutraWfs *wfs, std::true_type);
145 template <
typename Q = T>
146 typename std::enable_if<!std::is_same<Q, half>::value,
int>::type
149 std::string typec,
long device,
float delay,
int nslope,
int nactu,
150 int nslope_buffers,
int nstates,
int nstate_buffers,
int nmodes,
151 int niir_in,
int niir_out,
bool polc,
bool is_modal,
152 SutraDms *dms,
int *idx_dms,
int ndm,
int *idx_centro,
int ncentro,
153 int Nphi,
bool wfs_direction,
160 std::string typec,
long device,
float delay,
int nslope,
int nactu,
161 int nslope_buffers,
int nstates,
int nstate_buffers,
int nmodes,
162 int niir_in,
int niir_out,
bool polc,
bool is_modal,
163 SutraDms *dms,
int *idx_dms,
int ndm,
int *idx_centro,
int ncentro,
164 int Nphi,
bool wfs_direction,
this class provides the context in which CarmaObj are created
this class provides the rtc features to COMPASS
int comp_images_imat(SutraDms *ydm, int kernconv)
int add_centroider(CarmaContext *context, long nvalid, float offset, float scale, bool filter_TT, long device, std::string typec)
int do_imat(int ncntrl, SutraDms *ydms, int kernconv)
int do_clipping(int ncntrl)
vector< SutraController< T, Tout > * > d_control
int do_centroids(int ncntrl, bool noise)
int do_centroids_geom(int ncntrl, int type=0)
int do_imat_geom(int ncntrl, SutraDms *ydm, int type)
int add_centroider(CarmaContext *context, long nvalid, float offset, float scale, bool filter_TT, long device, std::string typec, SutraWfs *wfs)
int comp_voltage(int ncntrl)
vector< SutraCentroider< Tin, T > * > d_centro
int add_controller(CarmaContext *context, std::string typec, long device, float delay, int nslope, int nactu, int nslope_buffers=0, int nstates=0, int nstate_buffers=0, int nmodes=0, int niir_in=0, int niir_out=0, bool polc=false, bool is_modal=false, SutraDms *dms=nullptr, int *idx_dms=nullptr, int ndm=0, int *idx_centro=nullptr, int ncentro=0, int Nphi=0, bool wfs_direction=false)
Add a SutraController object in the RTC.
int remove_centroider(int ncentro)
int remove_controller(int ncontrol)
int do_control(int ncntrl)
int do_calibrate_img(int ncntrl)
int apply_control(int ncntrl, bool compVoltage=true)
int remove_ref(int ncntrl)
int set_centroids_ref(float *centroids_ref)
int do_centroids(int ncntrl)
int do_imat_basis(int ncntrl, SutraDms *ydm, int nModes, T *m2v, T *pushAmpl, int kernconv)
int do_centroids_ref(int ncntrl)
this class provides the wfs features to COMPASS