CARMA C++
DriveCommand.h
Go to the documentation of this file.
1 
12 #ifndef CARMA_BIMA_DRIVECOMMAND_H
13 #define CARMA_BIMA_DRIVECOMMAND_H
14 
15 #include <vector>
16 
17 #define DRIVESIPQ "drives.ipq"
18 
19 #define ATTRIB(T,N) \
20  private: T _ ## N ; \
21  public: void set_ ## N (T v) { _ ## N = v; } \
22  public: T get_ ## N () { return _ ## N ; }
23 
24 // TODO Put in bounds checking to ensure (0 <= i < C)
25 #define ATTRIBA(T,N,C) \
26  private: T _ ## N [ C ] ; \
27  public: static const unsigned int N ## Count = C ; \
28  public: void set_ ## N (unsigned int i, T v) { _ ## N [ i ] = v; } \
29  public: T get_ ## N (unsigned int i) { return _ ## N [ i ]; }
30 
31 #define DCSET(P,N,V) P -> set_ ## N ( V )
32 #define DCGET(P,N) P -> get_ ## N ( )
33 #define DCSETA(P,N,I,V) P -> set_ ## N ( I , V )
34 #define DCGETA(P,N,I) P -> get_ ## N ( I )
35 
36 namespace carma
37 {
38  namespace antenna
39  {
40  namespace bima
41  {
42  class DriveCommand
43  {
44 
45  public:
46  typedef enum {
47  NOOP,
48  STOW,
49  STOP,
50  SNOW,
51  SET_ANTENNA_LOCATION,
52  SET_NEXT_SEQ_NO,
53  SET_WRAP,
54  SET_AZ,
55  SET_EL,
56  SET_MAX_AZ_RATE,
57  SET_MAX_EL_RATE,
58  SET_RA_DEC,
59  UPDATE_WEATHER,
60  SET_AZ_MOUNT_OFFSET,
61  SET_EL_MOUNT_OFFSET,
62  SET_AZ_OFFSET,
63  SET_EL_OFFSET,
64  SET_OFFSET_PATH,
65  SET_APERTURE_POINTING_CONSTANTS,
66  SELECT_APERTURE,
67  SET_POINTING_MODEL_COEFS,
68  SET_TOLERANCE,
69  SET_SAFE_RANGE,
70  } CommandType;
71 
72  typedef enum {
73  OPTICAL,
74  RADIO1MM,
75  RADIO3MM,
76  RADIO1CM,
77  } ApertureType;
78 
79  typedef enum {
80  ZENITH,
81  SERVICE,
82  SAFE,
83  UNSAFE,
84  } PositionType;
85 
86  typedef enum {
87  ZERO,
88  ADD,
89  SUB,
90  } AzWrapModeType;
91 
92  ATTRIB(CommandType,command);
93  ATTRIB(PositionType,stowPosition);
94  ATTRIB(double,longitude);
95  ATTRIB(double,latitude);
96  ATTRIB(double,altitude);
97  ATTRIB(unsigned long,seq);
98  ATTRIB(AzWrapModeType,azWrapMode)
99  ATTRIB(bool,overTheTop)
100  ATTRIB(double,az);
101  ATTRIB(double,el);
102  ATTRIB(double,mjd);
103  ATTRIB(double,ra);
104  ATTRIB(double,dec);
105  ATTRIB(bool,discontinuity);
106  ATTRIB(float,ambientTemp);
107  ATTRIB(float,barometricPressure);
108  ATTRIB(float,relativeHumidity);
109  ATTRIB(float,dewpointTemp);
110  ATTRIB(float,windSpeed);
111  ATTRIB(float,windDirection);
112  ATTRIB(ApertureType,aperture);
113  ATTRIB(double,apertureOffsetAz);
114  ATTRIB(double,apertureOffsetEl);
115  ATTRIB(double,azOffset);
116  ATTRIB(double,elOffset);
117  ATTRIB(double,azOffsetMount);
118  ATTRIB(double,elOffsetMount);
119  ATTRIB(double,maxRateAz);
120  ATTRIB(double,maxRateEl);
121  ATTRIB(double,sag);
122  ATTRIBA(double,dazCoefs,10);
123  ATTRIBA(double,delCoefs,10);
124  ATTRIB(double,tolerance);
125  ATTRIB(float,azLow);
126  ATTRIB(float,azHigh);
127  ATTRIB(float,elLow);
128  ATTRIB(float,elHigh);
129 
130  };
131  }
132  }
133 }
134 
135 
136 
137 #endif // CARMA_BIMA_DRIVECOMMAND_H
138 
139 // vim: set expandtab sw=2 ts=2 cindent :
Subtract a turn.
Definition: AzWrapMode.idl:14
Add a turn.
Definition: AzWrapMode.idl:13
Don&#39;t add or subtract.
Definition: AzWrapMode.idl:15