24 #ifndef __PLUGINS_PANTILT_DIRPERC_DP_PTU_H_ 25 #define __PLUGINS_PANTILT_DIRPERC_DP_PTU_H_ 27 #define DPPTU_MAX_OBUFFER_SIZE 20 28 #define DPPTU_MAX_IBUFFER_SIZE 255 40 virtual void get_limits(
float &pan_min,
float &pan_max,
41 float &tilt_min,
float &tilt_max);
61 void send(
const char *command,
int value);
62 void send(
const char *command);
63 void write(
const char *buffer);
64 bool read(
char *buffer,
unsigned int buffer_size);
66 bool data_available();
67 int query_int(
const char *query_command);
68 int pan_rad2ticks(
float r);
69 int tilt_rad2ticks(
float r);
70 float pan_ticks2rad(
int ticks);
71 float tilt_ticks2rad(
int ticks);
76 static const char * DPPTU_PAN_ABSPOS;
77 static const char * DPPTU_TILT_ABSPOS;
78 static const char * DPPTU_PAN_RELPOS;
79 static const char * DPPTU_TILT_RELPOS;
80 static const char * DPPTU_PAN_RESOLUTION;
81 static const char * DPPTU_TILT_RESOLUTION;
82 static const char * DPPTU_PAN_MIN;
83 static const char * DPPTU_PAN_MAX;
84 static const char * DPPTU_TILT_MIN;
85 static const char * DPPTU_TILT_MAX;
86 static const char * DPPTU_LIMITENFORCE_QUERY;
87 static const char * DPPTU_LIMITENFORCE_ENABLE;
88 static const char * DPPTU_LIMITENFORCE_DISABLE;
89 static const char * DPPTU_IMMEDIATE_EXECUTION;
90 static const char * DPPTU_SLAVED_EXECUTION;
91 static const char * DPPTU_AWAIT_COMPLETION;
92 static const char * DPPTU_HALT_ALL;
93 static const char * DPPTU_HALT_PAN;
94 static const char * DPPTU_HALT_TILT;
95 static const char * DPPTU_PAN_SPEED;
96 static const char * DPPTU_TILT_SPEED;
97 static const char * DPPTU_PAN_ACCEL;
98 static const char * DPPTU_TILT_ACCEL;
99 static const char * DPPTU_PAN_BASESPEED;
100 static const char * DPPTU_TILT_BASESPEED;
101 static const char * DPPTU_PAN_UPPER_SPEED_LIMIT;
102 static const char * DPPTU_PAN_LOWER_SPEED_LIMIT;
103 static const char * DPPTU_TILT_UPPER_SPEED_LIMIT;
104 static const char * DPPTU_TILT_LOWER_SPEED_LIMIT;
105 static const char * DPPTU_RESET;
106 static const char * DPPTU_STORE;
107 static const char * DPPTU_RESTORE;
108 static const char * DPPTU_FACTORY_RESET;
109 static const char * DPPTU_ECHO_QUERY;
110 static const char * DPPTU_ECHO_ENABLE;
111 static const char * DPPTU_ECHO_DISABLE;
112 static const char * DPPTU_ASCII_VERBOSE;
113 static const char * DPPTU_ASCII_TERSE;
114 static const char * DPPTU_ASCII_QUERY;
115 static const char * DPPTU_VERSION;
120 unsigned int __timeout_ms;
122 char __obuffer[DPPTU_MAX_OBUFFER_SIZE];
123 char __ibuffer[DPPTU_MAX_IBUFFER_SIZE];
125 int __pan_resolution;
126 int __tilt_resolution;
127 int __pan_upper_limit;
128 int __pan_lower_limit;
129 int __tilt_lower_limit;
130 int __tilt_upper_limit;
virtual void set_pan_tilt(int pan, int tilt)
Set pan and tilt in motor ticks.
virtual int get_pan()
Get current pan in motor ticks.
virtual void set_pan(int pan)
Set pan in motor ticks.
virtual ~DirectedPerceptionPTU()
Destructor.
DirectedPerception PTU implementation.
virtual void get_pan_tilt_rad(float &pan, float &tilt)
Get pan/tilt in radians.
virtual void set_tilt(int tilt)
Set tilt in motor ticks.
virtual void get_limits(float &pan_min, float &pan_max, float &tilt_min, float &tilt_max)
Get position limits in radians.
virtual void set_pan_tilt_rad(float pan, float tilt)
Set pan and tilt in radians.
virtual void stop_motion()
Stop currently running motion.
virtual void reset()
Reset the PTU.
virtual int max_tilt()
Get maximum tilt in motor ticks.
virtual void get_pan_tilt(int &pan, int &tilt)
Get current position in motor ticks.
virtual int min_tilt()
Get minimum tilt in motor ticks.
virtual int min_pan()
Get minimum pan in motor ticks.
virtual int max_pan()
Get maximum pan in motor ticks.
DirectedPerceptionPTU(const char *device_file, unsigned int timeout_ms=10)
Constructor.
virtual int get_tilt()
Get current tilt in motor ticks.