My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
Encoder.h
Go to the documentation of this file.
1 #ifndef ENCODER_H
2 #define ENCODER_H
3 
11 #include "gcp/util/common/Axis.h"
12 #include "gcp/util/common/Angle.h"
13 
14 namespace gcp {
15  namespace antenna {
16  namespace control {
17 
18  class PmacAxis;
19 
24  class Encoder {
25 
26  public:
27 
32 
36  void reset();
37 
41  void setZero(double zero);
42 
46  void setSlewRate(long rate);
47 
51  void setCountsPerTurn(int per_turn);
52 
56  void setCountsPerRadian(double countsPerRadian);
57 
61  void setLimits(long min, long max);
63 
68 
72  void convertMountToEncoder(double angle, double rate,
73  PmacAxis* axis, int current);
74 
78  void applyLimits(double angle, double rate,
79  PmacAxis* axis, double current);
83  void updateMountLimits();
84 
88  double getMountMin();
89 
93  double getMountMax();
94 
98  signed getSlewRate();
99 
103  double convertCountsToSky(int count);
104 
105  double convertAngleToSky(gcp::util::Angle& angle);
106 
107  gcp::util::Angle convertSkyToAngle(gcp::util::Angle sky);
108 
113  void packZero(signed* s_elements);
114 
119  void packCountsPerTurn(signed* s_elements);
120 
125  void packLimits(signed* s_elements);
126 
127  private:
128 
132  gcp::util::Axis::Type axis_;
133 
137  double zero_;
138 
142  double countsPerRadian_;
143 
147  int countsPerTurn_;
148 
152  int min_;
153 
157  int max_;
158 
159  /*
160  * The minimum angle limit
161  */
162  gcp::util::Angle minLim_;
163 
167  gcp::util::Angle maxLim_;
168 
172  double mountMin_;
173 
177  double mountMax_;
178 
182  signed slewRate_;
183 
184  }; // End class Encoder
185 
186  }; // End namespace control
187  }; // End namespace antenna
188 } // End namespace gcp
189 
190 #endif // End #ifndef
void setZero(double zero)
Definition: Encoder.cc:47
double getMountMax()
Definition: Encoder.cc:172
void applyLimits(double angle, double rate, PmacAxis *axis, double current)
Definition: Encoder.cc:296
gcp::util::Axis::Type getAxis()
Definition: Encoder.cc:162
void packCountsPerTurn(signed *s_elements)
Definition: Encoder.cc:362
void setCountsPerRadian(double countsPerRadian)
Definition: Encoder.cc:81
void setSlewRate(long rate)
Definition: Encoder.cc:55
void packLimits(signed *s_elements)
Definition: Encoder.cc:345
Definition: PmacAxis.h:28
double convertCountsToSky(int count)
Definition: Encoder.cc:63
Encoder(gcp::util::Axis::Type axis)
Definition: Encoder.cc:23
double getMountMin()
Definition: Encoder.cc:167
void packZero(signed *s_elements)
Definition: Encoder.cc:354
void updateMountLimits()
Definition: Encoder.cc:97
void setLimits(long min, long max)
Definition: Encoder.cc:125
void reset()
Definition: Encoder.cc:32
Definition: Angle.h:20
signed getSlewRate()
Definition: Encoder.cc:177
void convertMountToEncoder(double angle, double rate, PmacAxis *axis, int current)
Definition: Encoder.cc:186
Type
Definition: Axis.h:24
Definition: Encoder.h:24
void setCountsPerTurn(int per_turn)
Definition: Encoder.cc:89