CARMA C++
Model.h
Go to the documentation of this file.
1 #ifndef MODEL_H
2 #define MODEL_H
3 
11 #include "carma/szautil/Axis.h"
15 #include "carma/antenna/sza/antenna/control/Encoder.h"
17 #include "carma/szautil/PointingMode.h"
18 
19 namespace sza {
20  namespace antenna {
21  namespace control {
22 
23 
27  class Model {
28 
29  public:
30 
34  Model();
35 
39  ~Model();
40 
44  void reset();
45 
53 
59 
64 
70  sza::antenna::control::Flexure*
72 
78 
82  sza::antenna::control::Flexure* currentFlexure();
83 
91 
95  void updateMountLimits();
96 
100  void setFlexure(double flexure);
101 
109 
116  bool isCurrent(sza::antenna::control::Flexure* flexure);
117 
125 
132 
140 
144  void packEncoderZeros(signed* s_elements);
145 
149  void packEncoderMultipliers(signed* s_elements);
150 
154  void packTilts(signed* s_elements);
155 
159  void packFlexure(signed* s_elements);
160 
164  void packCollimationMode(unsigned* u_elements);
165 
169  void packCollimation(signed* s_elements);
170 
171  private:
172 
185 
189  AzTilt azt_;
190 
194  ElTilt elt_;
195 
196  //------------------------------------------------------------
197  // Collimation terms
198  //------------------------------------------------------------
199 
200  // The collimation model for optical pointing
201 
202  sza::antenna::control::Collimation opticalCollimation_;
203 
204  // The collimation model for radio pointing
205 
206  sza::antenna::control::Collimation radioCollimation_;
207 
208  // A pointer to the currently selected radio or or optical
209  // collimation model
210 
211  sza::antenna::control::Collimation* currentCollimation_;
212 
213  //------------------------------------------------------------
214  // Flexure terms
215  //------------------------------------------------------------
216 
217  // The flexure model for optical pointing
218 
219  sza::antenna::control::Flexure opticalFlexure_;
220 
221  // The flexure model for radio pointing
222 
223  sza::antenna::control::Flexure radioFlexure_;
224 
225  // A pointer to the currently selected radio or or optical
226  // flexure model
227 
228  sza::antenna::control::Flexure* currentFlexure_;
229 
230  }; // End class Model
231 
232  }; // End namespace control
233  }; // End namespace antenna
234 }; // End namespace sza
235 
236 #endif // End #ifndef
void packTilts(signed *s_elements)
Pack the tilts managed by this object.
void setFlexure(double flexure)
Set the flexure term.
A base class for managing tilts.
Definition: AxisTilt.h:26
void setCurrentCollimation(sza::util::PointingMode::Type mode)
Set which pointing mode (optical or radio) is the current collimation mode)
void reset()
Reset internal data members.
Tagged: Thu Nov 13 16:53:35 UTC 2003.
Define a class for handling Elevation tilts.
Definition: ElTilt.h:22
Type
Enumerate possible pointing modes.
Definition: PointingMode.h:25
Encapsulate the pointing model parameters.
Definition: Model.h:27
Objects of the following type are used to aggregate the encoder calibration parameters of each axis...
Definition: Encoder.h:24
Objects of the following type contain the collimation components of the pointing model.
Definition: Collimation.h:25
While computing pointing corrections, an object of the following type is used to communicate accumula...
void setCurrentFlexure(sza::util::PointingMode::Type mode)
Set which pointing mode (optical or radio) is the current flexure mode)
Type
An enumerator to identify a valid axis.
Definition: Axis.h:24
sza::antenna::control::Flexure * currentFlexure()
Return a pointer to the current flexure model.
sza::antenna::control::Encoder * Encoder(sza::util::Axis::Type axis)
Return a pointer to the requested encoder model.
Tagged: Thu Nov 13 16:53:37 UTC 2003.
sza::antenna::control::Collimation * Collimation(sza::util::PointingMode::Type mode)
Return a pointer to the requested collimation model.
sza::antenna::control::AxisTilt * AxisTilt(sza::util::Axis::Type axis)
Return a pointer to the requested collimation container.
void packEncoderZeros(signed *s_elements)
Pack the zero points for encoders managed by this object.
void packFlexure(signed *s_elements)
Pack the flexure term managed by this object.
void applyCollimation(PointingCorrections *f)
Correct the collimation of the telescope.
Tagged: Wed Dec 15 14:16:24 CST 2004.
void applyFlexure(PointingCorrections *f)
Adjust the elevation to account for telescope flexure.
void updateMountLimits()
Compute and store the new mount limits as angles on the sky.
bool isCurrent(sza::antenna::control::Collimation *collim)
Return true if the passed collimation container is the current one.
void packCollimationMode(unsigned *u_elements)
Pack which collimation mode is the current one.
void packCollimation(signed *s_elements)
Pack the current collimation correction.
sza::antenna::control::Flexure * Flexure(sza::util::PointingMode::Type mode)
Return a pointer to the requested flexure model.
Tagged: Thu Nov 13 16:53:34 UTC 2003.
sza::antenna::control::Collimation * currentCollimation()
Return a pointer to the current collimation model.
Define a class for handling AZ tilts.
Definition: AzTilt.h:22
void packEncoderMultipliers(signed *s_elements)
Pack the multipliers for encoders managed by this object.