vrpn 07.35
Virtual Reality Peripheral Network
|
#include <vrpn_Tracker_NDI_Polaris.h>
Public Member Functions | |
vrpn_Tracker_NDI_Polaris (const char *name, vrpn_Connection *c, const char *port, int numOfRigidBodies, const char **rigidBodyNDIRomFileNames) | |
The constructor is given the name of the tracker (the name of the sender it should use), the connection on which it is to send its messages, the name of the serial port it is to open. The final two parameters are the number of rigid bodies to track, and a pointer to an array of strings containing the filenames of the the .rom file for each rigid body. | |
~vrpn_Tracker_NDI_Polaris () | |
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 () |
virtual void | mainloop ()=0 |
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_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 Types | |
enum | { NDI_ROMFILE_CHUNK_SIZE =64 } |
enum | { MAX_NDI_ROM_FILE_SIZE_IN_BYTES =1024 } |
enum | { MAX_NDI_RESPONSE_LENGTH =300 } |
enum | { VRPN_MSGBUFSIZE =1024 } |
Protected Member Functions | |
virtual int | get_report (void) |
virtual void | send_report (void) |
void | sendCommand (const char *commandString) |
int | readResponse () |
int | convertBinaryFileToAsciiEncodedHex (const char *filename, char *asciiEncodedHexStr) |
unsigned int | parse2CharIntFromNDIResponse (unsigned char *str, int *strIndexPtr=NULL) |
float | parse6CharFloatFromNDIResponse (unsigned char *str, int *strIndexPtr) |
float | parse7CharFloatFromNDIResponse (unsigned char *str, int *strIndexPtr) |
int | setupOneTool (const char *NDIToolRomFilename) |
void | switchToHigherBaudRate (const char *port) |
![]() | |
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. | |
virtual int | register_types (void)=0 |
Register the types of messages this device sends/receives. 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() | |
Protected Attributes | |
int | serialFd |
int | numOfRigidBodies |
unsigned char | latestResponseStr [MAX_NDI_RESPONSE_LENGTH] |
![]() | |
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 |
vrpn_MESSAGEHANDLER | handler |
vrpn_int32 | sender |
vrpn_int32 | type |
void * | userdata |
![]() | |
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. | |
Definition at line 77 of file vrpn_Tracker_NDI_Polaris.h.
|
protected |
Enumerator | |
---|---|
NDI_ROMFILE_CHUNK_SIZE |
Definition at line 101 of file vrpn_Tracker_NDI_Polaris.h.
|
protected |
Enumerator | |
---|---|
MAX_NDI_ROM_FILE_SIZE_IN_BYTES |
Definition at line 102 of file vrpn_Tracker_NDI_Polaris.h.
|
protected |
Enumerator | |
---|---|
MAX_NDI_RESPONSE_LENGTH |
Definition at line 103 of file vrpn_Tracker_NDI_Polaris.h.
|
protected |
Enumerator | |
---|---|
VRPN_MSGBUFSIZE |
Definition at line 104 of file vrpn_Tracker_NDI_Polaris.h.
vrpn_Tracker_NDI_Polaris::vrpn_Tracker_NDI_Polaris | ( | const char * | name, |
vrpn_Connection * | c, | ||
const char * | port, | ||
int | numOfRigidBodies, | ||
const char ** | rigidBodyNDIRomFileNames | ||
) |
The constructor is given the name of the tracker (the name of the sender it should use), the connection on which it is to send its messages, the name of the serial port it is to open. The final two parameters are the number of rigid bodies to track, and a pointer to an array of strings containing the filenames of the the .rom file for each rigid body.
Definition at line 12 of file vrpn_Tracker_NDI_Polaris.C.
References latestResponseStr, numOfRigidBodies, readResponse(), sendCommand(), serialFd, setupOneTool(), switchToHigherBaudRate(), vrpn_clear_rts(), vrpn_flush_input_buffer(), vrpn_open_commport(), vrpn_set_rts(), and vrpn_SleepMsecs().
vrpn_Tracker_NDI_Polaris::~vrpn_Tracker_NDI_Polaris | ( | ) |
Definition at line 91 of file vrpn_Tracker_NDI_Polaris.C.
References serialFd, and vrpn_close_commport().
|
protected |
Definition at line 221 of file vrpn_Tracker_NDI_Polaris.C.
References MAX_NDI_ROM_FILE_SIZE_IN_BYTES, and NDI_ROMFILE_CHUNK_SIZE.
Referenced by setupOneTool().
|
protectedvirtual |
Definition at line 106 of file vrpn_Tracker_NDI_Polaris.C.
References vrpn_Tracker::d_quat, vrpn_Tracker::d_sensor, latestResponseStr, numOfRigidBodies, parse6CharFloatFromNDIResponse(), parse7CharFloatFromNDIResponse(), vrpn_Tracker::pos, readResponse(), send_report(), sendCommand(), vrpn_Tracker::timestamp, and vrpn_gettimeofday.
Referenced by mainloop().
|
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 96 of file vrpn_Tracker_NDI_Polaris.C.
References get_report(), and vrpn_BaseClassUnique::server_mainloop().
|
protected |
Definition at line 305 of file vrpn_Tracker_NDI_Polaris.C.
Referenced by setupOneTool().
|
protected |
Definition at line 323 of file vrpn_Tracker_NDI_Polaris.C.
Referenced by get_report().
|
protected |
Definition at line 336 of file vrpn_Tracker_NDI_Polaris.C.
Referenced by get_report().
|
protected |
Definition at line 191 of file vrpn_Tracker_NDI_Polaris.C.
References latestResponseStr, serialFd, and vrpn_read_available_characters().
Referenced by get_report(), setupOneTool(), switchToHigherBaudRate(), and vrpn_Tracker_NDI_Polaris().
|
protectedvirtual |
Definition at line 152 of file vrpn_Tracker_NDI_Polaris.C.
References vrpn_BaseClassUnique::d_connection, vrpn_BaseClassUnique::d_sender_id, vrpn_Tracker::encode_to(), vrpn_Connection::pack_message(), vrpn_Tracker::position_m_id, vrpn_Tracker::timestamp, vrpn_CONNECTION_LOW_LATENCY, and VRPN_MSGBUFSIZE.
Referenced by get_report().
|
protected |
Definition at line 177 of file vrpn_Tracker_NDI_Polaris.C.
References serialFd, vrpn_flush_output_buffer(), and vrpn_write_characters().
Referenced by get_report(), setupOneTool(), switchToHigherBaudRate(), and vrpn_Tracker_NDI_Polaris().
|
protected |
Definition at line 343 of file vrpn_Tracker_NDI_Polaris.C.
References convertBinaryFileToAsciiEncodedHex(), latestResponseStr, MAX_NDI_RESPONSE_LENGTH, MAX_NDI_ROM_FILE_SIZE_IN_BYTES, NDI_ROMFILE_CHUNK_SIZE, parse2CharIntFromNDIResponse(), readResponse(), sendCommand(), and vrpn_strcpy().
Referenced by vrpn_Tracker_NDI_Polaris().
|
protected |
Definition at line 408 of file vrpn_Tracker_NDI_Polaris.C.
References latestResponseStr, readResponse(), sendCommand(), serialFd, vrpn_close_commport(), vrpn_open_commport(), and vrpn_SleepMsecs().
Referenced by vrpn_Tracker_NDI_Polaris().
|
protected |
Definition at line 109 of file vrpn_Tracker_NDI_Polaris.h.
Referenced by get_report(), readResponse(), setupOneTool(), switchToHigherBaudRate(), and vrpn_Tracker_NDI_Polaris().
|
protected |
Definition at line 108 of file vrpn_Tracker_NDI_Polaris.h.
Referenced by get_report(), and vrpn_Tracker_NDI_Polaris().
|
protected |
Definition at line 107 of file vrpn_Tracker_NDI_Polaris.h.
Referenced by readResponse(), sendCommand(), switchToHigherBaudRate(), vrpn_Tracker_NDI_Polaris(), and ~vrpn_Tracker_NDI_Polaris().