This class will turn an analog device such as a joystick or a camera. More...
#include <vrpn_Tracker_AnalogFly.h>
Public Member Functions | |
vrpn_Tracker_AnalogFly (const char *name, vrpn_Connection *trackercon, vrpn_Tracker_AnalogFlyParam *params, float update_rate, bool absolute=vrpn_FALSE, bool reportChanges=VRPN_FALSE, bool worldFrame=VRPN_FALSE) | |
virtual | ~vrpn_Tracker_AnalogFly (void) |
virtual void | mainloop () |
Called once through each main loop iteration to handle updates. Remote object mainloop() should call client_mainloop() and then call d_connection->mainloop(). Server object mainloop() should service the device and then call server_mainloop(), but should not normally call d_connection->mainloop(). | |
![]() | |
vrpn_Tracker (const char *name, vrpn_Connection *c=NULL, const char *tracker_cfg_file_name=NULL) | |
virtual | ~vrpn_Tracker (void) |
int | read_config_file (FILE *config_file, const char *tracker_name) |
void | print_latest_report (void) |
int | register_server_handlers (void) |
void | get_local_t2r (vrpn_float64 *vec, vrpn_float64 *quat) |
void | get_local_u2s (vrpn_int32 sensor, vrpn_float64 *vec, vrpn_float64 *quat) |
![]() | |
vrpn_BaseClass (const char *name, vrpn_Connection *c=NULL) | |
Names the device and assigns or opens connection, calls registration methods. | |
virtual | ~vrpn_BaseClass () |
![]() | |
vrpn_BaseClassUnique () | |
virtual | ~vrpn_BaseClassUnique () |
Unregister all of the message handlers that were to be autodeleted. | |
vrpn_Connection * | connectionPtr () |
Returns a pointer to the connection this object is using. | |
Protected Member Functions | |
void | update_matrix_based_on_values (double time_interval) |
void | convert_matrix_to_tracker (void) |
bool | shouldReport (double elapsedInterval) const |
int | setup_channel (vrpn_TAF_fullaxis *full) |
int | teardown_channel (vrpn_TAF_fullaxis *full) |
virtual void | reset (void) |
Reset the current matrix to zero and store it into the tracker position/quaternion location. | |
![]() | |
bool | ensure_enough_unit2sensors (unsigned num) |
virtual int | register_types (void) |
Register the types of messages this device sends/receives. Return 0 on success, -1 on fail. | |
virtual int | encode_to (char *buf) |
virtual int | encode_vel_to (char *buf) |
virtual int | encode_acc_to (char *buf) |
virtual int | encode_tracker2room_to (char *buf) |
Encodes the "Tracker to Room" transformation into the buffer specified. | |
virtual int | encode_unit2sensor_to (char *buf) |
Encodes the "Unit to Sensor" transformation into the buffer specified. | |
virtual int | encode_workspace_to (char *buf) |
![]() | |
virtual int | init (void) |
Initialize things that the constructor can't. Returns 0 on success, -1 on failure. | |
virtual int | register_senders (void) |
Register the sender for this device (by default, the name of the device). Return 0 on success, -1 on fail. | |
![]() | |
int | register_autodeleted_handler (vrpn_int32 type, vrpn_MESSAGEHANDLER handler, void *userdata, vrpn_int32 sender=vrpn_ANY_SENDER) |
Registers a handler with the connection, and remembers to delete at destruction. | |
int | send_text_message (const char *msg, struct timeval timestamp, vrpn_TEXT_SEVERITY type=vrpn_TEXT_NORMAL, vrpn_uint32 level=0) |
Sends a NULL-terminated text message from the device d_sender_id. | |
SendTextMessageBoundCall | send_text_message (vrpn_TEXT_SEVERITY type=vrpn_TEXT_NORMAL) |
Returns an object you can stream into to send a text message from the device like send_text_message(vrpn_TEXT_WARNING) << "Value of i is: " << i; This use requires including vrpn_SendTextMessageStreamProxy.h. | |
void | server_mainloop (void) |
Handles functions that all servers should provide in their mainloop() (ping/pong, for example) Should be called by all servers in their mainloop() | |
void | client_mainloop (void) |
Handles functions that all clients should provide in their mainloop() (warning of no server, for example) Should be called by all clients in their mainloop() | |
Static Protected Member Functions | |
static void VRPN_CALLBACK | handle_analog_update (void *userdata, const vrpn_ANALOGCB info) |
static void VRPN_CALLBACK | handle_reset_press (void *userdata, const vrpn_BUTTONCB info) |
static void VRPN_CALLBACK | handle_clutch_press (void *userdata, const vrpn_BUTTONCB info) |
static int VRPN_CALLBACK | handle_newConnection (void *, vrpn_HANDLERPARAM) |
![]() | |
static int | encode_text_message_to_buffer (char *buf, vrpn_TEXT_SEVERITY severity, vrpn_uint32 level, const char *msg) |
Encodes the body of the text message into a buffer, preparing for sending. | |
static int | decode_text_message_from_buffer (char *msg, vrpn_TEXT_SEVERITY *severity, vrpn_uint32 *level, const char *buf) |
Decodes the body of the text message from a buffer from the connection. | |
Protected Attributes | |
double | d_update_interval |
struct timeval | d_prevtime |
bool | d_absolute |
bool | d_reportChanges |
bool | d_worldFrame |
vrpn_TAF_fullaxis | d_x |
vrpn_TAF_fullaxis | d_y |
vrpn_TAF_fullaxis | d_z |
vrpn_TAF_fullaxis | d_sx |
vrpn_TAF_fullaxis | d_sy |
vrpn_TAF_fullaxis | d_sz |
vrpn_Button_Remote * | d_reset_button |
int | d_which_button |
vrpn_Button_Remote * | d_clutch_button |
int | d_clutch_which |
bool | d_clutch_engaged |
bool | d_clutch_was_off |
q_matrix_type | d_initMatrix |
q_matrix_type | d_currentMatrix |
q_matrix_type | d_clutchMatrix |
![]() | |
vrpn_int32 | position_m_id |
vrpn_int32 | velocity_m_id |
vrpn_int32 | accel_m_id |
vrpn_int32 | tracker2room_m_id |
vrpn_int32 | unit2sensor_m_id |
vrpn_int32 | request_t2r_m_id |
vrpn_int32 | request_u2s_m_id |
vrpn_int32 | request_workspace_m_id |
vrpn_int32 | workspace_m_id |
vrpn_int32 | update_rate_id |
vrpn_int32 | connection_dropped_m_id |
vrpn_int32 | reset_origin_m_id |
vrpn_int32 | d_sensor |
vrpn_float64 | pos [3] |
vrpn_float64 | d_quat [4] |
vrpn_float64 | vel [3] |
vrpn_float64 | vel_quat [4] |
vrpn_float64 | vel_quat_dt |
vrpn_float64 | acc [3] |
vrpn_float64 | acc_quat [4] |
vrpn_float64 | acc_quat_dt |
struct timeval | timestamp |
vrpn_int32 | frame_count |
struct timeval | watchdog_timestamp |
vrpn_float64 | tracker2room [3] |
vrpn_float64 | tracker2room_quat [4] |
vrpn_int32 | num_sensors |
vrpn_Tracker_Pos * | unit2sensor |
vrpn_Tracker_Quat * | unit2sensor_quat |
unsigned | num_unit2sensors |
vrpn_float64 | workspace_min [3] |
vrpn_float64 | workspace_max [3] |
int | status |
![]() | |
vrpn_Connection * | d_connection |
Connection that this object talks to. | |
char * | d_servicename |
Name of this device, not including the connection part. | |
vrpn_int32 | d_sender_id |
Sender ID registered with the connection. | |
vrpn_int32 | d_text_message_id |
ID for text messages. | |
vrpn_int32 | d_ping_message_id |
Ask the server if they are there. | |
vrpn_int32 | d_pong_message_id |
Server telling that it is there. | |
Additional Inherited Members | |
![]() | |
static int VRPN_CALLBACK | handle_t2r_request (void *userdata, vrpn_HANDLERPARAM p) |
static int VRPN_CALLBACK | handle_u2s_request (void *userdata, vrpn_HANDLERPARAM p) |
static int VRPN_CALLBACK | handle_workspace_request (void *userdata, vrpn_HANDLERPARAM p) |
![]() | |
bool | shutup |
This class will turn an analog device such as a joystick or a camera.
Definition at line 105 of file vrpn_Tracker_AnalogFly.h.
vrpn_Tracker_AnalogFly::vrpn_Tracker_AnalogFly | ( | const char * | name, |
vrpn_Connection * | trackercon, | ||
vrpn_Tracker_AnalogFlyParam * | params, | ||
float | update_rate, | ||
bool | absolute = vrpn_FALSE, | ||
bool | reportChanges = VRPN_FALSE, | ||
bool | worldFrame = VRPN_FALSE ) |
Definition at line 9 of file vrpn_Tracker_AnalogFly.C.
References vrpn_Tracker_AnalogFlyParam::clutch_name, convert_matrix_to_tracker(), d_absolute, d_clutch_button, d_clutch_engaged, d_clutch_was_off, d_clutch_which, d_clutchMatrix, vrpn_BaseClassUnique::d_connection, d_currentMatrix, d_initMatrix, d_prevtime, d_reportChanges, d_reset_button, d_sx, d_sy, d_sz, d_update_interval, d_which_button, d_worldFrame, d_x, d_y, d_z, handle_clutch_press(), handle_newConnection(), handle_reset_press(), vrpn_BaseClassUnique::register_autodeleted_handler(), reset(), vrpn_Tracker_AnalogFlyParam::reset_name, setup_channel(), vrpn_Tracker_AnalogFlyParam::sx, vrpn_Tracker_AnalogFlyParam::sy, vrpn_Tracker_AnalogFlyParam::sz, vrpn_Tracker::timestamp, vrpn_Connection, vrpn_gettimeofday, vrpn_got_first_connection, vrpn_Tracker::vrpn_Tracker(), vrpn_Tracker_AnalogFlyParam::x, vrpn_Tracker_AnalogFlyParam::y, and vrpn_Tracker_AnalogFlyParam::z.
Referenced by handle_clutch_press(), handle_newConnection(), and handle_reset_press().
|
virtual |
Definition at line 168 of file vrpn_Tracker_AnalogFly.C.
References d_clutch_button, d_reset_button, d_sx, d_sy, d_sz, d_x, d_y, d_z, handle_clutch_press(), handle_reset_press(), and teardown_channel().
|
protected |
Definition at line 533 of file vrpn_Tracker_AnalogFly.C.
References d_currentMatrix, vrpn_Tracker::d_quat, and vrpn_Tracker::pos.
Referenced by reset(), update_matrix_based_on_values(), and vrpn_Tracker_AnalogFly().
|
staticprotected |
Definition at line 208 of file vrpn_Tracker_AnalogFly.C.
References vrpn_TAF_fullaxis::af, vrpn_TAF_fullaxis::axis, vrpn_ANALOGCB::channel, vrpn_TAF_axis::channel, d_absolute, vrpn_ANALOGCB::msg_time, vrpn_TAF_axis::offset, vrpn_TAF_axis::power, vrpn_TAF_axis::scale, vrpn_BaseClassUnique::userdata, vrpn_TAF_fullaxis::value, and VRPN_CALLBACK.
Referenced by setup_channel(), and teardown_channel().
|
staticprotected |
Definition at line 253 of file vrpn_Tracker_AnalogFly.C.
References vrpn_BUTTONCB::button, d_clutch_engaged, d_clutch_which, vrpn_BUTTONCB::state, vrpn_BaseClassUnique::userdata, VRPN_CALLBACK, and vrpn_Tracker_AnalogFly().
Referenced by vrpn_Tracker_AnalogFly(), and ~vrpn_Tracker_AnalogFly().
|
staticprotected |
Definition at line 336 of file vrpn_Tracker_AnalogFly.C.
References vrpn_BaseClassUnique::userdata, VRPN_CALLBACK, and vrpn_Tracker_AnalogFly().
Referenced by vrpn_Tracker_AnalogFly().
|
staticprotected |
Definition at line 239 of file vrpn_Tracker_AnalogFly.C.
References vrpn_BUTTONCB::button, d_which_button, reset(), vrpn_BUTTONCB::state, vrpn_BaseClassUnique::userdata, VRPN_CALLBACK, and vrpn_Tracker_AnalogFly().
Referenced by vrpn_Tracker_AnalogFly(), and ~vrpn_Tracker_AnalogFly().
|
virtual |
Called once through each main loop iteration to handle updates. Remote object mainloop() should call client_mainloop() and then call d_connection->mainloop(). Server object mainloop() should service the device and then call server_mainloop(), but should not normally call d_connection->mainloop().
Implements vrpn_BaseClass.
Definition at line 369 of file vrpn_Tracker_AnalogFly.C.
References d_absolute, d_clutch_button, vrpn_BaseClassUnique::d_connection, d_prevtime, d_reset_button, vrpn_BaseClassUnique::d_sender_id, d_sx, d_sy, d_sz, d_update_interval, d_x, d_y, d_z, vrpn_Tracker::encode_to(), vrpn_Tracker::position_m_id, vrpn_BaseClassUnique::server_mainloop(), shouldReport(), vrpn_Tracker::timestamp, update_matrix_based_on_values(), vrpn_CONNECTION_LOW_LATENCY, vrpn_gettimeofday, and vrpn_TimevalDurationSeconds().
|
protectedvirtual |
Reset the current matrix to zero and store it into the tracker position/quaternion location.
This is is not done for an absolute tracker, whose position and orientation are locked to the reports from the analog device.
Definition at line 355 of file vrpn_Tracker_AnalogFly.C.
References convert_matrix_to_tracker(), d_clutchMatrix, d_currentMatrix, d_initMatrix, d_prevtime, and vrpn_gettimeofday.
Referenced by handle_reset_press(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 273 of file vrpn_Tracker_AnalogFly.C.
References vrpn_TAF_fullaxis::ana, vrpn_TAF_fullaxis::axis, vrpn_BaseClassUnique::d_connection, handle_analog_update(), vrpn_TAF_axis::name, and vrpn_Analog_Remote::register_change_handler().
Referenced by vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 548 of file vrpn_Tracker_AnalogFly.C.
References d_reportChanges, d_sx, d_sy, d_sz, d_update_interval, d_x, d_y, and d_z.
Referenced by mainloop().
|
protected |
Definition at line 313 of file vrpn_Tracker_AnalogFly.C.
References vrpn_TAF_fullaxis::ana, handle_analog_update(), and vrpn_Analog_Remote::unregister_change_handler().
Referenced by ~vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 445 of file vrpn_Tracker_AnalogFly.C.
References convert_matrix_to_tracker(), d_absolute, d_clutch_engaged, d_clutch_was_off, d_clutchMatrix, d_currentMatrix, d_sx, d_sy, d_sz, d_worldFrame, d_x, d_y, d_z, and VRPN_PI.
Referenced by mainloop().
|
protected |
Definition at line 119 of file vrpn_Tracker_AnalogFly.h.
Referenced by handle_analog_update(), mainloop(), update_matrix_based_on_values(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 127 of file vrpn_Tracker_AnalogFly.h.
Referenced by mainloop(), vrpn_Tracker_AnalogFly(), and ~vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 129 of file vrpn_Tracker_AnalogFly.h.
Referenced by handle_clutch_press(), update_matrix_based_on_values(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 130 of file vrpn_Tracker_AnalogFly.h.
Referenced by update_matrix_based_on_values(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 128 of file vrpn_Tracker_AnalogFly.h.
Referenced by handle_clutch_press(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 132 of file vrpn_Tracker_AnalogFly.h.
Referenced by reset(), update_matrix_based_on_values(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 132 of file vrpn_Tracker_AnalogFly.h.
Referenced by convert_matrix_to_tracker(), reset(), update_matrix_based_on_values(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 132 of file vrpn_Tracker_AnalogFly.h.
Referenced by reset(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 118 of file vrpn_Tracker_AnalogFly.h.
Referenced by mainloop(), reset(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 120 of file vrpn_Tracker_AnalogFly.h.
Referenced by shouldReport(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 124 of file vrpn_Tracker_AnalogFly.h.
Referenced by mainloop(), vrpn_Tracker_AnalogFly(), and ~vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 123 of file vrpn_Tracker_AnalogFly.h.
Referenced by mainloop(), shouldReport(), update_matrix_based_on_values(), vrpn_Tracker_AnalogFly(), and ~vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 123 of file vrpn_Tracker_AnalogFly.h.
Referenced by mainloop(), shouldReport(), update_matrix_based_on_values(), vrpn_Tracker_AnalogFly(), and ~vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 123 of file vrpn_Tracker_AnalogFly.h.
Referenced by mainloop(), shouldReport(), update_matrix_based_on_values(), vrpn_Tracker_AnalogFly(), and ~vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 117 of file vrpn_Tracker_AnalogFly.h.
Referenced by mainloop(), shouldReport(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 125 of file vrpn_Tracker_AnalogFly.h.
Referenced by handle_reset_press(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 121 of file vrpn_Tracker_AnalogFly.h.
Referenced by update_matrix_based_on_values(), and vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 123 of file vrpn_Tracker_AnalogFly.h.
Referenced by mainloop(), shouldReport(), update_matrix_based_on_values(), vrpn_Tracker_AnalogFly(), and ~vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 123 of file vrpn_Tracker_AnalogFly.h.
Referenced by mainloop(), shouldReport(), update_matrix_based_on_values(), vrpn_Tracker_AnalogFly(), and ~vrpn_Tracker_AnalogFly().
|
protected |
Definition at line 123 of file vrpn_Tracker_AnalogFly.h.
Referenced by mainloop(), shouldReport(), update_matrix_based_on_values(), vrpn_Tracker_AnalogFly(), and ~vrpn_Tracker_AnalogFly().