CARMA C++
TrackerBoard.h
Go to the documentation of this file.
1 #ifndef TRACKERBOARD_H
2 #define TRACKERBOARD_H
3 
12 
13 namespace sza {
14  namespace antenna {
15  namespace control {
16 
17  class Atmosphere;
18  class AxisPositions;
19  class Model;
20  class PmacTarget;
21  class Pointing;
22  class Position;
23  class Site;
24  class SzaShare;
25  class TrackerOffset;
26 
32  class TrackerBoard : public Board {
33 
34  public:
35 
41  TrackerBoard(SzaShare* share, char* name);
42 
43  //------------------------------------------------------------
44  // Methods to archive data in the register database
45 
51  void archivePosition(AxisPositions *current, Position* commanded);
52 
58  void archivePointing(unsigned* archived_ptr,
59  Atmosphere* atmosphere,
60  Model* model,
61  PmacTarget *pmac,
62  Pointing* pointing,
63  Site* site,
64  TrackerOffset* offset);
65 
71  void archiveStatus(unsigned state, unsigned off_source,
72  unsigned lacking);
73 
77  unsigned char trackerStateToBit(int state);
78 
79  private:
80 
84  void packLst(unsigned* u_elements, double lst);
85 
89  void packUt1Utc(signed* s_elements, double ut1utc);
90 
94  void packEqnEqx(signed* s_elements, double eqneqx);
95 
101  RegMapBlock *lacking_;
102 
106  RegMapBlock *utc_;
110  RegMapBlock *lst_;
114  RegMapBlock *ut1utc_;
119  RegMapBlock *eqneqx_;
123  RegMapBlock *mode_;
127  RegMapBlock *deck_mode_;
131  RegMapBlock *refraction_;
135  RegMapBlock *encoder_off_;
139  RegMapBlock *encoder_mul_;
143  RegMapBlock *az_limits_;
147  RegMapBlock *el_limits_;
151  RegMapBlock *dk_limits_;
155  RegMapBlock *tilts_;
159  RegMapBlock *flexure_;
163  RegMapBlock *axis_;
167  RegMapBlock *collimation_;
171  RegMapBlock *siteActual_;
175  RegMapBlock *siteFiducial_;
179  RegMapBlock *location_;
180 
184  RegMapBlock *source_;
185 
189  RegMapBlock *equat_geoc_;
190 
194  RegMapBlock *equat_off_;
198  RegMapBlock *horiz_geoc_;
199 
203  RegMapBlock *horiz_topo_;
204 
208  RegMapBlock *horiz_mount_;
209 
213  RegMapBlock *horiz_off_;
214 
218  RegMapBlock *sky_xy_off_;
219 
223  RegMapBlock *counts_;
224 
228  RegMapBlock *rates_;
229 
233  RegMapBlock *actual_;
234 
238  RegMapBlock *expected_;
239 
244  RegMapBlock *errors_;
245 
249  RegMapBlock *state_;
250  RegMapBlock *stateMask_;
251 
255  RegMapBlock *off_source_;
256 
257  }; // End class TrackerBoard
258 
259  }; // End namespace control
260  }; // End namespace antenna
261 }; // End namespace sza
262 
263 #endif // End #ifndef
The following class is used to record the horizon coordinates of a source.
Definition: Position.h:31
The AxisPositions class is used by the Tracker class to record the positions of the telescope axes...
Definition: AxisPositions.h:31
Collect together the various offset types used by the Tracker class.
Definition: TrackerOffset.h:28
TrackerBoard(SzaShare *share, char *name)
Constructor for the Tracker board class.
void archivePosition(AxisPositions *current, Position *commanded)
Archive the currently requested position.
void archivePointing(unsigned *archived_ptr, Atmosphere *atmosphere, Model *model, PmacTarget *pmac, Pointing *pointing, Site *site, TrackerOffset *offset)
Archive the telescope pointing.
The registers of the virtual tracker board.
Definition: TrackerBoard.h:32
Class for managing antenna site-specific parameters.
Definition: Site.h:33
Encapsulate the pointing model parameters.
Definition: Model.h:27
A class which encapsulates resources of a board of the shared register map.
Definition: Board.h:24
Class to encapsulate any atmospheric (refraction) corrections to the antenna pointing model...
Definition: Atmosphere.h:23
A class used by Tracker to handle pointing.
Definition: Pointing.h:37
unsigned char trackerStateToBit(int state)
Convert from integer state to a bit mask.
Tagged: Thu Nov 13 16:53:34 UTC 2003.
An instance of this class is created by AntennaMaster and passed to the constructors of other tasks...
Definition: Share.h:38
void archiveStatus(unsigned state, unsigned off_source, unsigned lacking)
Archive some status information.