RSeries astromech firmware
ServoDispatch.h
Go to the documentation of this file.
1 #ifndef ServoDispatch_h
2 #define ServoDispatch_h
3 
4 #include "ReelTwo.h"
5 #include "core/SetupEvent.h"
6 #include "core/AnimatedEvent.h"
7 #include "ServoEasing.h"
8 
9 //#define SERVO_DEBUG
10 
55 struct ServoSettings {
59  uint16_t pinNum;
63  uint16_t startPulse;
67  uint16_t endPulse;
71  uint32_t group;
72 };
73 
74 
75 
84 {
85 public:
86  virtual uint16_t getNumServos() = 0;
87  virtual uint8_t getPin(uint16_t num) = 0;
88  virtual uint16_t getStart(uint16_t num) = 0;
89  virtual uint16_t getEnd(uint16_t num) = 0;
90  virtual uint16_t getMinimum(uint16_t num) = 0;
91  virtual uint16_t getMaximum(uint16_t num) = 0;
92  virtual uint16_t getNeutral(uint16_t num) = 0;
93  virtual uint32_t getGroup(uint16_t num) = 0;
94  virtual uint16_t currentPos(uint16_t num) = 0;
95  virtual uint16_t scaleToPos(uint16_t num, float scale) = 0;
96  virtual bool isActive(uint16_t num) = 0;
97  virtual void disable(uint16_t num) = 0;
98  virtual void setPin(uint16_t num, uint16_t pin)
99  {
100  setServo(num, pin, getStart(num), getEnd(num), getNeutral(num), getGroup(num));
101  }
102  virtual void setNeutral(uint16_t num, uint16_t neutralPulse)
103  {
104  setServo(num, getPin(num), getStart(num), getEnd(num), neutralPulse, getGroup(num));
105  }
106  virtual void setStart(uint16_t num, uint16_t startPulse)
107  {
108  setServo(num, getPin(num), startPulse, getEnd(num), getNeutral(num), getGroup(num));
109  }
110  virtual void setEnd(uint16_t num, uint16_t endPulse)
111  {
112  setServo(num, getPin(num), getStart(num), endPulse, getNeutral(num), getGroup(num));
113  }
114  virtual void setGroup(uint16_t num, uint32_t group)
115  {
116  setServo(num, getPin(num), getStart(num), getEnd(num), getNeutral(num), group);
117  }
118  virtual void setServo(uint16_t num, uint8_t pin, uint16_t startPulse, uint16_t endPulse, uint16_t neutralPulse, uint32_t group) = 0;
119  virtual void setPWM(uint16_t num, uint16_t targetLength) = 0;
120 
121  // Stop all servo movement
122  virtual void stop() = 0;
123 
125  //
126  // Range functions
127  //
128  // Position is 0.0 - 1.0 as a scale for startPulse - endPulse
129  //
131 
132  void moveTo(uint16_t num, uint32_t startDelay, uint32_t moveTime, float pos)
133  {
134  _moveServoToPulse(num, startDelay, moveTime, currentPos(num), scaleToPos(num, pos));
135  }
136 
137  void moveTo(uint16_t num, uint32_t moveTime, float pos)
138  {
139  _moveServoToPulse(num, 0, moveTime, currentPos(num), scaleToPos(num, pos));
140  }
141 
142  void moveTo(uint16_t num, float pos)
143  {
144  _moveServoToPulse(num, 0, 0, currentPos(num), scaleToPos(num, pos));
145  }
146 
147  void moveTo(uint16_t num, uint32_t startDelay, uint32_t moveTime, float startPos, float pos)
148  {
149  _moveServoToPulse(num, startDelay, moveTime, scaleToPos(num, startPos), scaleToPos(num, pos));
150  }
151 
152  void moveServosTo(uint32_t servoGroupMask, float pos)
153  {
154  _moveServosTo(servoGroupMask, 0, 0, 0, pos);
155  }
156 
157  void moveServosTo(uint32_t servoGroupMask, uint32_t moveTime, float pos)
158  {
159  _moveServosTo(servoGroupMask, 0, moveTime, moveTime, pos);
160  }
161 
162  void moveServosTo(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTime, float pos)
163  {
164  _moveServosTo(servoGroupMask, startDelay, moveTime, moveTime, pos);
165  }
166 
167  void moveServosTo(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, float pos)
168  {
169  _moveServosTo(servoGroupMask, startDelay, moveTimeMin, moveTimeMax, pos);
170  }
171 
172  void moveServoSetTo(uint32_t servoGroupMask, uint32_t servoSetMask, float onPos, float offPos, float (*onEasingMethod)(float) = NULL, float (*offEasingMethod)(float) = NULL)
173  {
174  _moveServoSetTo(servoGroupMask, servoSetMask, 0, 0, 0, onPos, offPos, onEasingMethod, offEasingMethod);
175  }
176 
177  void moveServoSetTo(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t moveTime, float onPos, float offPos, float (*onEasingMethod)(float) = NULL, float (*offEasingMethod)(float) = NULL)
178  {
179  _moveServoSetTo(servoGroupMask, servoSetMask, 0, moveTime, moveTime, onPos, offPos, onEasingMethod, offEasingMethod);
180  }
181 
182  void moveServoSetTo(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTime, float onPos, float offPos, float (*onEasingMethod)(float) = NULL, float (*offEasingMethod)(float) = NULL)
183  {
184  _moveServoSetTo(servoGroupMask, servoSetMask, startDelay, moveTime, moveTime, onPos, offPos, onEasingMethod, offEasingMethod);
185  }
186 
187  void moveServoSetTo(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, float onPos, float offPos, float (*onEasingMethod)(float) = NULL, float (*offEasingMethod)(float) = NULL)
188  {
189  _moveServoSetTo(servoGroupMask, servoSetMask, startDelay, moveTimeMin, moveTimeMax, onPos, offPos, onEasingMethod, offEasingMethod);
190  }
191 
193  //
194  // Pulse value functions
195  //
197 
198  void moveToPulse(uint16_t num, uint32_t startDelay, uint32_t moveTime, uint16_t pos)
199  {
200  _moveServoToPulse(num, startDelay, moveTime, currentPos(num), pos);
201  }
202 
203  void moveToPulse(uint16_t num, uint32_t moveTime, uint16_t pos)
204  {
205  _moveServoToPulse(num, 0, moveTime, currentPos(num), pos);
206  }
207 
208  void moveToPulse(uint16_t num, uint16_t pos)
209  {
210  _moveServoToPulse(num, 0, 0, currentPos(num), pos);
211  }
212 
213  void moveToPulse(uint16_t num, uint32_t startDelay, uint32_t moveTime, uint16_t startPos, uint16_t pos)
214  {
215  _moveServoToPulse(num, startDelay, moveTime, startPos, pos);
216  }
217 
218  void moveByPulse(uint16_t num, uint32_t moveTime, int16_t pos)
219  {
220  uint16_t curpos = currentPos(num);
221  _moveServoToPulse(num, 0, moveTime, curpos, curpos + pos);
222  }
223 
224  void moveByPulse(uint16_t num, int16_t pos)
225  {
226  uint16_t curpos = currentPos(num);
227  _moveServoToPulse(num, 0, 0, curpos, curpos + pos);
228  }
229 
230  void moveByPulse(uint16_t num, uint32_t startDelay, uint32_t moveTime, int16_t pos)
231  {
232  uint16_t curpos = currentPos(num);
233  _moveServoToPulse(num, startDelay, moveTime, curpos, curpos + pos);
234  }
235 
237 
238  void moveServosToPulse(uint32_t servoGroupMask, uint16_t pos)
239  {
240  _moveServosToPulse(servoGroupMask, 0, 0, 0, pos);
241  }
242 
243  void moveServosToPulse(uint32_t servoGroupMask, uint32_t moveTime, uint16_t pos)
244  {
245  _moveServosToPulse(servoGroupMask, 0, moveTime, moveTime, pos);
246  }
247 
248  void moveServosToPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTime, uint16_t pos)
249  {
250  _moveServosToPulse(servoGroupMask, startDelay, moveTime, moveTime, pos);
251  }
252 
253  void moveServosToPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t pos)
254  {
255  _moveServosToPulse(servoGroupMask, startDelay, moveTimeMin, moveTimeMax, pos);
256  }
257 
258  void moveServosByPulse(uint32_t servoGroupMask, uint32_t moveTime, uint16_t pos)
259  {
260  _moveServosByPulse(servoGroupMask, 0, moveTime, moveTime, pos);
261  }
262 
263  void moveServosByPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTime, int16_t pos)
264  {
265  _moveServosByPulse(servoGroupMask, startDelay, moveTime, moveTime, pos);
266  }
267 
268  void moveServosByPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t pos)
269  {
270  _moveServosByPulse(servoGroupMask, startDelay, moveTimeMin, moveTimeMax, pos);
271  }
272 
274 
275  void moveServoSetToPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint16_t onPos, uint16_t offPos)
276  {
277  _moveServoSetToPulse(servoGroupMask, servoSetMask, 0, 0, 0, onPos, offPos);
278  }
279 
280  void moveServoSetToPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t moveTime, uint16_t onPos, uint16_t offPos)
281  {
282  _moveServoSetToPulse(servoGroupMask, servoSetMask, 0, moveTime, moveTime, onPos, offPos);
283  }
284 
285  void moveServoSetToPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTime, uint16_t onPos, uint16_t offPos)
286  {
287  _moveServoSetToPulse(servoGroupMask, servoSetMask, startDelay, moveTime, moveTime, onPos, offPos);
288  }
289 
290  void moveServoSetToPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t onPos, int16_t offPos)
291  {
292  _moveServoSetToPulse(servoGroupMask, servoSetMask, startDelay, moveTimeMin, moveTimeMax, onPos, offPos);
293  }
294 
295  void moveServoSetByPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t moveTime, int16_t onPos, int16_t offPos)
296  {
297  _moveServoSetByPulse(servoGroupMask, servoSetMask, 0, moveTime, moveTime, onPos, offPos);
298  }
299 
300  void moveServoSetByPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTime, int16_t onPos, int16_t offPos)
301  {
302  _moveServoSetByPulse(servoGroupMask, servoSetMask, startDelay, moveTime, moveTime, onPos, offPos);
303  }
304 
305  void moveServoSetByPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t onPos, int16_t offPos)
306  {
307  _moveServoSetByPulse(servoGroupMask, servoSetMask, startDelay, moveTimeMin, moveTimeMax, onPos, offPos);
308  }
309 
311 
312  void setServoEasingMethod(uint16_t num, float (*easingMethod)(float completion))
313  {
314  _setServoEasingMethod(num, easingMethod);
315  }
316 
317  void setServosEasingMethod(uint32_t servoGroupMask, float (*easingMethod)(float completion))
318  {
319  _setServosEasingMethod(servoGroupMask, easingMethod);
320  }
321 
322  void setEasingMethod(float (*easingMethod)(float completion))
323  {
324  _setEasingMethod(easingMethod);
325  }
326 
327 protected:
328  virtual void _moveServoToPulse(uint16_t num, uint32_t startDelay, uint32_t moveTime, uint16_t startPos, uint16_t pos) = 0;
329  virtual void _moveServosToPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, uint16_t pos) = 0;
330  virtual void _moveServosByPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t pos) = 0;
331  virtual void _moveServoSetToPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, uint16_t onPos, uint16_t offPos) = 0;
332  virtual void _moveServoSetByPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t onPos, int16_t offPos) = 0;
333  virtual void _moveServosTo(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, float pos) = 0;
334  virtual void _moveServoSetTo(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, float onPos, float offPos, float (*onEasingMethod)(float), float (*offEasingMethod)(float)) = 0;
335  virtual void _setServoEasingMethod(uint16_t num, float (*easingMethod)(float completion)) = 0;
336  virtual void _setServosEasingMethod(uint32_t servoGroupMask, float (*easingMethod)(float completion)) = 0;
337  virtual void _setEasingMethod(float (*easingMethod)(float completion)) = 0;
338 };
339 
340 #endif
ServoDispatch::currentPos
virtual uint16_t currentPos(uint16_t num)=0
ServoDispatch::moveServosByPulse
void moveServosByPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTime, int16_t pos)
Definition: ServoDispatch.h:263
ServoSettings::endPulse
uint16_t endPulse
End pulse value.
Definition: ServoDispatch.h:67
ServoDispatch::moveServosByPulse
void moveServosByPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t pos)
Definition: ServoDispatch.h:268
ServoDispatch::setPin
virtual void setPin(uint16_t num, uint16_t pin)
Definition: ServoDispatch.h:98
ServoDispatch::_moveServosTo
virtual void _moveServosTo(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, float pos)=0
ServoDispatch::moveServoSetToPulse
void moveServoSetToPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint16_t onPos, uint16_t offPos)
Definition: ServoDispatch.h:275
ServoDispatch::moveServosTo
void moveServosTo(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTime, float pos)
Definition: ServoDispatch.h:162
ServoSettings::startPulse
uint16_t startPulse
Start pulse value.
Definition: ServoDispatch.h:63
ReelTwo.h
SetupEvent.h
ServoDispatch::_moveServosToPulse
virtual void _moveServosToPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, uint16_t pos)=0
ServoDispatch::getEnd
virtual uint16_t getEnd(uint16_t num)=0
ServoDispatch::moveServosToPulse
void moveServosToPulse(uint32_t servoGroupMask, uint16_t pos)
Definition: ServoDispatch.h:238
AnimatedEvent.h
ServoDispatch::moveServosTo
void moveServosTo(uint32_t servoGroupMask, float pos)
Definition: ServoDispatch.h:152
ServoDispatch::moveServosToPulse
void moveServosToPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t pos)
Definition: ServoDispatch.h:253
ServoDispatch::setStart
virtual void setStart(uint16_t num, uint16_t startPulse)
Definition: ServoDispatch.h:106
ServoDispatch::setEasingMethod
void setEasingMethod(float(*easingMethod)(float completion))
Definition: ServoDispatch.h:322
ServoDispatch::moveServosByPulse
void moveServosByPulse(uint32_t servoGroupMask, uint32_t moveTime, uint16_t pos)
Definition: ServoDispatch.h:258
ServoDispatch::_setEasingMethod
virtual void _setEasingMethod(float(*easingMethod)(float completion))=0
ServoDispatch::_moveServoSetByPulse
virtual void _moveServoSetByPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t onPos, int16_t offPos)=0
ServoDispatch::getMaximum
virtual uint16_t getMaximum(uint16_t num)=0
ServoDispatch::moveServoSetByPulse
void moveServoSetByPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t moveTime, int16_t onPos, int16_t offPos)
Definition: ServoDispatch.h:295
ServoDispatch::getStart
virtual uint16_t getStart(uint16_t num)=0
ServoDispatch::moveServoSetByPulse
void moveServoSetByPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTime, int16_t onPos, int16_t offPos)
Definition: ServoDispatch.h:300
ServoDispatch::setServosEasingMethod
void setServosEasingMethod(uint32_t servoGroupMask, float(*easingMethod)(float completion))
Definition: ServoDispatch.h:317
ServoDispatch::moveServoSetToPulse
void moveServoSetToPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t moveTime, uint16_t onPos, uint16_t offPos)
Definition: ServoDispatch.h:280
ServoDispatch::moveToPulse
void moveToPulse(uint16_t num, uint32_t moveTime, uint16_t pos)
Definition: ServoDispatch.h:203
ServoDispatch::moveServoSetToPulse
void moveServoSetToPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t onPos, int16_t offPos)
Definition: ServoDispatch.h:290
ServoDispatch::moveToPulse
void moveToPulse(uint16_t num, uint16_t pos)
Definition: ServoDispatch.h:208
ServoDispatch::moveServoSetTo
void moveServoSetTo(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, float onPos, float offPos, float(*onEasingMethod)(float)=NULL, float(*offEasingMethod)(float)=NULL)
Definition: ServoDispatch.h:187
ServoDispatch::moveTo
void moveTo(uint16_t num, uint32_t startDelay, uint32_t moveTime, float pos)
Definition: ServoDispatch.h:132
ServoDispatch::setPWM
virtual void setPWM(uint16_t num, uint16_t targetLength)=0
ServoDispatch::moveToPulse
void moveToPulse(uint16_t num, uint32_t startDelay, uint32_t moveTime, uint16_t startPos, uint16_t pos)
Definition: ServoDispatch.h:213
ServoDispatch::_setServoEasingMethod
virtual void _setServoEasingMethod(uint16_t num, float(*easingMethod)(float completion))=0
ServoSettings::group
uint32_t group
Servo group mask.
Definition: ServoDispatch.h:71
ServoDispatch::disable
virtual void disable(uint16_t num)=0
ServoDispatch::moveByPulse
void moveByPulse(uint16_t num, int16_t pos)
Definition: ServoDispatch.h:224
ServoDispatch::_moveServosByPulse
virtual void _moveServosByPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t pos)=0
ServoDispatch::_moveServoToPulse
virtual void _moveServoToPulse(uint16_t num, uint32_t startDelay, uint32_t moveTime, uint16_t startPos, uint16_t pos)=0
ServoDispatch::moveServoSetByPulse
void moveServoSetByPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, int16_t onPos, int16_t offPos)
Definition: ServoDispatch.h:305
ServoDispatch::isActive
virtual bool isActive(uint16_t num)=0
ServoDispatch::getNumServos
virtual uint16_t getNumServos()=0
ServoDispatch::moveServosToPulse
void moveServosToPulse(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTime, uint16_t pos)
Definition: ServoDispatch.h:248
ServoDispatch::moveTo
void moveTo(uint16_t num, float pos)
Definition: ServoDispatch.h:142
ServoDispatch::moveServoSetTo
void moveServoSetTo(uint32_t servoGroupMask, uint32_t servoSetMask, float onPos, float offPos, float(*onEasingMethod)(float)=NULL, float(*offEasingMethod)(float)=NULL)
Definition: ServoDispatch.h:172
ServoDispatch::getNeutral
virtual uint16_t getNeutral(uint16_t num)=0
ServoDispatch::moveServosTo
void moveServosTo(uint32_t servoGroupMask, uint32_t moveTime, float pos)
Definition: ServoDispatch.h:157
ServoDispatch::getMinimum
virtual uint16_t getMinimum(uint16_t num)=0
ServoSettings
Settings for individual servos.
Definition: ServoDispatch.h:55
ServoDispatch::moveByPulse
void moveByPulse(uint16_t num, uint32_t moveTime, int16_t pos)
Definition: ServoDispatch.h:218
ServoDispatch
Servo interace implemented eitehr by ServoDispatchPCA9685 or ServoDispatchDirect.
Definition: ServoDispatch.h:83
ServoDispatch::moveServosTo
void moveServosTo(uint32_t servoGroupMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, float pos)
Definition: ServoDispatch.h:167
ServoDispatch::setServo
virtual void setServo(uint16_t num, uint8_t pin, uint16_t startPulse, uint16_t endPulse, uint16_t neutralPulse, uint32_t group)=0
ServoDispatch::getGroup
virtual uint32_t getGroup(uint16_t num)=0
ServoDispatch::_moveServoSetToPulse
virtual void _moveServoSetToPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, uint16_t onPos, uint16_t offPos)=0
ServoDispatch::moveServosToPulse
void moveServosToPulse(uint32_t servoGroupMask, uint32_t moveTime, uint16_t pos)
Definition: ServoDispatch.h:243
ServoDispatch::setEnd
virtual void setEnd(uint16_t num, uint16_t endPulse)
Definition: ServoDispatch.h:110
ServoDispatch::moveServoSetTo
void moveServoSetTo(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTime, float onPos, float offPos, float(*onEasingMethod)(float)=NULL, float(*offEasingMethod)(float)=NULL)
Definition: ServoDispatch.h:182
ServoDispatch::getPin
virtual uint8_t getPin(uint16_t num)=0
ServoDispatch::scaleToPos
virtual uint16_t scaleToPos(uint16_t num, float scale)=0
ServoDispatch::_setServosEasingMethod
virtual void _setServosEasingMethod(uint32_t servoGroupMask, float(*easingMethod)(float completion))=0
ServoDispatch::moveToPulse
void moveToPulse(uint16_t num, uint32_t startDelay, uint32_t moveTime, uint16_t pos)
Definition: ServoDispatch.h:198
ServoDispatch::moveTo
void moveTo(uint16_t num, uint32_t moveTime, float pos)
Definition: ServoDispatch.h:137
ServoDispatch::_moveServoSetTo
virtual void _moveServoSetTo(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTimeMin, uint32_t moveTimeMax, float onPos, float offPos, float(*onEasingMethod)(float), float(*offEasingMethod)(float))=0
ServoDispatch::setGroup
virtual void setGroup(uint16_t num, uint32_t group)
Definition: ServoDispatch.h:114
ServoDispatch::stop
virtual void stop()=0
ServoSettings::pinNum
uint16_t pinNum
Pin number.
Definition: ServoDispatch.h:59
ServoDispatch::moveByPulse
void moveByPulse(uint16_t num, uint32_t startDelay, uint32_t moveTime, int16_t pos)
Definition: ServoDispatch.h:230
ServoEasing.h
ServoDispatch::setNeutral
virtual void setNeutral(uint16_t num, uint16_t neutralPulse)
Definition: ServoDispatch.h:102
ServoDispatch::moveServoSetTo
void moveServoSetTo(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t moveTime, float onPos, float offPos, float(*onEasingMethod)(float)=NULL, float(*offEasingMethod)(float)=NULL)
Definition: ServoDispatch.h:177
ServoDispatch::moveServoSetToPulse
void moveServoSetToPulse(uint32_t servoGroupMask, uint32_t servoSetMask, uint32_t startDelay, uint32_t moveTime, uint16_t onPos, uint16_t offPos)
Definition: ServoDispatch.h:285
ServoDispatch::moveTo
void moveTo(uint16_t num, uint32_t startDelay, uint32_t moveTime, float startPos, float pos)
Definition: ServoDispatch.h:147
ServoDispatch::setServoEasingMethod
void setServoEasingMethod(uint16_t num, float(*easingMethod)(float completion))
Definition: ServoDispatch.h:312