Fawkes API  Fawkes Development Version
motor_control_thread.h
1 
2 /***************************************************************************
3  * motor_control_thread.h - Katana direct motor encoder/value control thread
4  *
5  * Created: Sun Mar 13 14:44:24 2011
6  * Copyright 2011 Bahram Maleki-Fard
7  *
8  ****************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Library General Public License for more details.
19  *
20  * Read the full text in the LICENSE.GPL file in the doc directory.
21  */
22 
23 #ifndef __PLUGINS_KATANA_MOTOR_CONTROL_THREAD_H_
24 #define __PLUGINS_KATANA_MOTOR_CONTROL_THREAD_H_
25 
26 #include "motion_thread.h"
27 
29 {
30  public:
32  unsigned int poll_interval_ms);
33 
34  virtual void set_encoder(unsigned int nr, int value, bool inc=false);
35  virtual void set_angle(unsigned int nr, float value, bool inc=false);
36 
37  virtual void once();
38 
39  /** Stub to see name in backtrace for easier debugging. @see Thread::run() */
40  protected:
41  virtual void run() { Thread::run(); }
42 
43  private:
44  unsigned int __nr;
45  int __encoder;
46  float __angle;
47 
48  bool __is_encoder, __is_inc;
49  unsigned int __poll_interval_usec;
50 };
51 
52 
53 #endif
virtual void once()
Execute an action exactly once.
Katana motor control thread.
Katana motion thread base class.
Definition: motion_thread.h:35
KatanaMotorControlThread(fawkes::RefPtr< fawkes::KatanaController > katana, fawkes::Logger *logger, unsigned int poll_interval_ms)
Constructor.
virtual void run()
Stub to see name in backtrace for easier debugging.
virtual void set_angle(unsigned int nr, float value, bool inc=false)
Set target angle value.
virtual void set_encoder(unsigned int nr, int value, bool inc=false)
Set target encoder value.
Interface for logging.
Definition: logger.h:34