vrpn 07.35
Virtual Reality Peripheral Network
Loading...
Searching...
No Matches
vrpn_Serial.C File Reference
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <termios.h>
#include <unistd.h>
#include "vrpn_Shared.h"
#include "vrpn_Serial.h"
Include dependency graph for vrpn_Serial.C:

Go to the source code of this file.

Macros

#define time_add(t1, t2, tr)
 
#define time_greater(t1, t2)
 

Functions

int vrpn_open_commport (const char *portname, long baud, int charsize, vrpn_SER_PARITY parity, bool rts_flow)
 Open a serial port, given its name and baud rate.
 
int vrpn_close_commport (int comm)
 
int vrpn_set_rts (int comm)
 
int vrpn_clear_rts (int comm)
 
int vrpn_flush_input_buffer (int comm)
 Throw out any characters within the input buffer.
 
int vrpn_flush_output_buffer (int comm)
 Throw out any characters (do not send) within the output buffer.
 
int vrpn_drain_output_buffer (int comm)
 Wait until all of the characters in the output buffer are sent, then return.
 
int vrpn_read_available_characters (int comm, unsigned char *buffer, size_t bytes)
 
int vrpn_read_available_characters (int comm, unsigned char *buffer, size_t bytes, struct timeval *timeout)
 Read until either you get the answer, you get an error, or timeout.
 
int vrpn_write_characters (int comm, const unsigned char *buffer, size_t bytes)
 Write the buffer to the serial port.
 
int vrpn_write_slowly (int comm, const unsigned char *buffer, size_t bytes, int millisec_delay)
 

Macro Definition Documentation

◆ time_add

#define time_add ( t1,
t2,
tr )
Value:
{ \
(tr).tv_sec = (t1).tv_sec + (t2).tv_sec; \
(tr).tv_usec = (t1).tv_usec + (t2).tv_usec; \
while ((tr).tv_usec >= 1000000L) { \
(tr).tv_sec++; \
(tr).tv_usec -= 1000000L; \
} \
}

Definition at line 35 of file vrpn_Serial.C.

Referenced by vrpn_read_available_characters().

◆ time_greater

#define time_greater ( t1,
t2 )
Value:
((t1.tv_sec > t2.tv_sec) || \
((t1.tv_sec == t2.tv_sec) && (t1.tv_usec > t2.tv_usec)))

Definition at line 44 of file vrpn_Serial.C.

Referenced by vrpn_read_available_characters().

Function Documentation

◆ vrpn_clear_rts()

◆ vrpn_close_commport()

◆ vrpn_drain_output_buffer()

◆ vrpn_flush_input_buffer()

◆ vrpn_flush_output_buffer()

int vrpn_flush_output_buffer ( int comm)

Throw out any characters (do not send) within the output buffer.

Returns
0 on success, tc err codes (whatever those are) on error.

Definition at line 465 of file vrpn_Serial.C.

Referenced by vrpn_SerialPort::flush_output_buffer(), vrpn_ADBox::mainloop(), vrpn_Tracker_Crossbow::reset(), vrpn_Poser_Tek4662::reset(), vrpn_Tracker_NDI_Polaris::sendCommand(), vrpn_Tracker_Flock::~vrpn_Tracker_Flock(), and vrpn_Tracker_Flock_Parallel_Slave::~vrpn_Tracker_Flock_Parallel_Slave().

◆ vrpn_open_commport()

◆ vrpn_read_available_characters() [1/2]

int vrpn_read_available_characters ( int comm,
unsigned char * buffer,
size_t bytes )

Definition at line 515 of file vrpn_Serial.C.

Referenced by vrpn_Tracker_Flock::checkError(), vrpn_raw_SGIBox::get_report(), vrpn_Tracker_Crossbow::get_report(), vrpn_Joystick::get_report(), vrpn_Tracker_3Space::get_report(), vrpn_5dt16::get_report(), vrpn_5dt::get_report(), vrpn_Radamec_SPI::get_report(), vrpn_BiosciencesTools::get_report(), vrpn_CerealBox::get_report(), vrpn_Tracker_Dyna::get_report(), vrpn_Tracker_Flock::get_report(), vrpn_GlobalHapticsOrb::get_report(), vrpn_IDEA::get_report(), vrpn_ImmersionBox::get_report(), vrpn_inertiamouse::get_report(), vrpn_Magellan::get_report(), vrpn_Nikon_Controls::get_report(), vrpn_Spaceball::get_report(), vrpn_Streaming_Arduino::get_report(), vrpn_Tng3::get_report(), vrpn_Tracker_3DMouse::get_report(), vrpn_Tracker_Fastrak::get_report(), vrpn_Tracker_GPS::get_report(), vrpn_Tracker_Isotrak::get_report(), vrpn_Tracker_Liberty::get_report(), vrpn_YEI_3Space_Sensor::get_report(), vrpn_YEI_3Space_Sensor_Wireless::get_report(), vrpn_Zaber::get_report(), vrpn_Tracker_Flock::getMeasurementRate(), vrpn_ADBox::mainloop(), vrpn_VPJoystick::mainloop(), vrpn_Wanda::mainloop(), vrpn_IDEA::move_until_done_or_error(), vrpn_Tracker_Crossbow::ping(), vrpn_Button_PinchGlove::read(), vrpn_Button_SerialMouse::read(), vrpn_SerialPort::read_available_characters(), vrpn_SerialPort::read_available_characters(), vrpn_Tracker_NDI_Polaris::readResponse(), vrpn_Tracker_Crossbow::recalibrate(), vrpn_YEI_3Space_Sensor::receive_LED_mode_response(), vrpn_YEI_3Space_Sensor_Wireless::receive_LED_mode_response(), vrpn_YEI_3Space_Sensor::receive_LED_values_response(), vrpn_YEI_3Space_Sensor_Wireless::receive_LED_values_response(), vrpn_Button_PinchGlove::report_no_timestamp(), vrpn_Tracker_3Space::reset(), vrpn_Tracker_Flock::reset(), vrpn_raw_SGIBox::reset(), vrpn_Streaming_Arduino::reset(), vrpn_Tracker_3DMouse::reset(), vrpn_Tracker_Crossbow::reset(), vrpn_Tracker_Fastrak::reset(), vrpn_Tracker_Isotrak::reset(), vrpn_Tracker_Liberty::reset(), vrpn_Joystick::reset(), vrpn_5dt16::reset(), vrpn_5dt::reset(), vrpn_CerealBox::reset(), vrpn_GlobalHapticsOrb::reset(), vrpn_IDEA::reset(), vrpn_ImmersionBox::reset(), vrpn_Magellan::reset(), vrpn_Nikon_Controls::reset(), vrpn_Poser_Tek4662::reset(), vrpn_Zaber::reset(), vrpn_Poser_Tek4662::run(), vrpn_YEI_3Space_Sensor_Wireless::send_ascii_command(), vrpn_YEI_3Space_Sensor_Wireless::send_binary_command(), vrpn_5dt::syncing(), and vrpn_read_available_characters().

◆ vrpn_read_available_characters() [2/2]

int vrpn_read_available_characters ( int comm,
unsigned char * buffer,
size_t bytes,
struct timeval * timeout )

Read until either you get the answer, you get an error, or timeout.

Definition at line 600 of file vrpn_Serial.C.

References time_add, time_greater, vrpn_gettimeofday, and vrpn_read_available_characters().

Here is the call graph for this function:

◆ vrpn_set_rts()

◆ vrpn_write_characters()

int vrpn_write_characters ( int comm,
const unsigned char * buffer,
size_t bytes )

Write the buffer to the serial port.

Definition at line 651 of file vrpn_Serial.C.

Referenced by vrpn_Tracker_Flock::checkError(), vrpn_Tracker_Crossbow::get_report(), vrpn_CerealBox::get_report(), vrpn_Tracker_3DMouse::get_report(), vrpn_Tracker_Flock::getMeasurementRate(), vrpn_ADBox::mainloop(), vrpn_GlobalHapticsOrb::mainloop(), vrpn_Nikon_Controls::mainloop(), vrpn_Tracker_Crossbow::ping(), vrpn_Tracker_Crossbow::recalibrate(), vrpn_Button_PinchGlove::report_no_timestamp(), vrpn_BiosciencesTools::request_temperature(), vrpn_Tracker_3Space::reset(), vrpn_Tracker_Dyna::reset(), vrpn_Tracker_Flock::reset(), vrpn_Tracker_Flock_Parallel_Slave::reset(), vrpn_Streaming_Arduino::reset(), vrpn_Tracker_3DMouse::reset(), vrpn_Tracker_Crossbow::reset(), vrpn_Tracker_Fastrak::reset(), vrpn_Tracker_Isotrak::reset(), vrpn_Tracker_Liberty::reset(), vrpn_Joystick::reset(), vrpn_CerealBox::reset(), vrpn_GlobalHapticsOrb::reset(), vrpn_ImmersionBox::reset(), vrpn_Nikon_Controls::reset(), vrpn_Poser_Tek4662::reset(), vrpn_Poser_Tek4662::run(), vrpn_YEI_3Space_Sensor::send_ascii_command(), vrpn_YEI_3Space_Sensor_Wireless::send_ascii_command(), vrpn_YEI_3Space_Sensor::send_binary_command(), vrpn_YEI_3Space_Sensor_Wireless::send_binary_command(), vrpn_YEI_3Space_Sensor_Wireless::send_binary_command_to_dongle(), vrpn_IDEA::send_command(), vrpn_5dt::send_command(), vrpn_Radamec_SPI::send_command(), vrpn_Zaber::send_command(), vrpn_Zaber::send_command(), vrpn_Tracker_NDI_Polaris::sendCommand(), vrpn_Nikon_Controls::set_channel(), vrpn_BiosciencesTools::set_control_status(), vrpn_Tracker_3DMouse::set_filtering_count(), vrpn_BiosciencesTools::set_reference_temperature(), vrpn_Tracker_Fastrak::set_sensor_output_format(), vrpn_Tracker_Isotrak::set_sensor_output_format(), vrpn_Tracker_Liberty::set_sensor_output_format(), vrpn_write_slowly(), vrpn_SerialPort::write(), vrpn_Tracker_Flock::~vrpn_Tracker_Flock(), and vrpn_Tracker_Flock_Parallel_Slave::~vrpn_Tracker_Flock_Parallel_Slave().

◆ vrpn_write_slowly()

int vrpn_write_slowly ( int comm,
const unsigned char * buffer,
size_t bytes,
int millisec_delay )

Definition at line 678 of file vrpn_Serial.C.

References vrpn_SleepMsecs(), and vrpn_write_characters().

Referenced by vrpn_raw_SGIBox::reset(), vrpn_Magellan::reset(), vrpn_Spaceball::reset(), and vrpn_raw_SGIBox::send_light_command().

Here is the call graph for this function: