#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"
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) |
#define time_add | ( | t1, | |
t2, | |||
tr ) |
Definition at line 35 of file vrpn_Serial.C.
Referenced by vrpn_read_available_characters().
#define time_greater | ( | t1, | |
t2 ) |
Definition at line 44 of file vrpn_Serial.C.
Referenced by vrpn_read_available_characters().
int vrpn_clear_rts | ( | int | comm | ) |
Definition at line 402 of file vrpn_Serial.C.
Referenced by vrpn_SerialPort::clear_rts(), vrpn_Tracker_Crossbow::reset(), vrpn_Tracker_Flock::reset(), and vrpn_Tracker_NDI_Polaris::vrpn_Tracker_NDI_Polaris().
int vrpn_close_commport | ( | int | comm | ) |
Definition at line 348 of file vrpn_Serial.C.
Referenced by vrpn_SerialPort::close(), vrpn_Tracker_3DMouse::mainloop(), vrpn_Tracker_Flock_Parallel::mainloop(), vrpn_Tracker_Serial::mainloop(), vrpn_Tracker_Crossbow::reset(), vrpn_Tracker_NDI_Polaris::switchToHigherBaudRate(), vrpn_YEI_3Space_Sensor_Wireless::vrpn_YEI_3Space_Sensor_Wireless(), vrpn_ADBox::~vrpn_ADBox(), vrpn_Atmel::~vrpn_Atmel(), vrpn_Button_Serial::~vrpn_Button_Serial(), vrpn_Poser_Tek4662::~vrpn_Poser_Tek4662(), vrpn_Serial_Analog::~vrpn_Serial_Analog(), vrpn_Tracker_GPS::~vrpn_Tracker_GPS(), vrpn_Tracker_NDI_Polaris::~vrpn_Tracker_NDI_Polaris(), vrpn_Tracker_Serial::~vrpn_Tracker_Serial(), vrpn_VPJoystick::~vrpn_VPJoystick(), vrpn_YEI_3Space_Sensor::~vrpn_YEI_3Space_Sensor(), and vrpn_YEI_3Space_Sensor_Wireless::~vrpn_YEI_3Space_Sensor_Wireless().
int vrpn_drain_output_buffer | ( | int | comm | ) |
Wait until all of the characters in the output buffer are sent, then return.
Definition at line 488 of file vrpn_Serial.C.
Referenced by vrpn_Tracker_Flock::checkError(), vrpn_SerialPort::drain_output_buffer(), vrpn_Tracker_Flock::getMeasurementRate(), vrpn_Tracker_Crossbow::recalibrate(), vrpn_Button_PinchGlove::report_no_timestamp(), vrpn_Poser_Tek4662::reset(), vrpn_Tracker_Crossbow::reset(), vrpn_Tracker_Fastrak::reset(), vrpn_Tracker_Flock::reset(), vrpn_Tracker_Flock_Parallel_Slave::reset(), vrpn_Tracker_Liberty::reset(), vrpn_Nikon_Controls::set_channel(), vrpn_Tracker_Flock::~vrpn_Tracker_Flock(), and vrpn_Tracker_Flock_Parallel_Slave::~vrpn_Tracker_Flock_Parallel_Slave().
int vrpn_flush_input_buffer | ( | int | comm | ) |
Throw out any characters within the input buffer.
Definition at line 438 of file vrpn_Serial.C.
Referenced by vrpn_Tracker_Flock::checkError(), vrpn_YEI_3Space_Sensor::flush_input(), vrpn_YEI_3Space_Sensor_Wireless::flush_input(), vrpn_SerialPort::flush_input_buffer(), vrpn_IDEA::get_report(), vrpn_Tracker_Crossbow::get_report(), vrpn_Tracker_Fastrak::get_report(), vrpn_Tracker_GPS::get_report(), vrpn_Tracker_Isotrak::get_report(), vrpn_Tracker_Liberty::get_report(), vrpn_Zaber::get_report(), vrpn_ADBox::mainloop(), vrpn_Tracker_Crossbow::recalibrate(), vrpn_Button_PinchGlove::report_no_timestamp(), vrpn_5dt::reset(), vrpn_BiosciencesTools::reset(), vrpn_CerealBox::reset(), vrpn_GlobalHapticsOrb::reset(), vrpn_IDEA::reset(), vrpn_ImmersionBox::reset(), vrpn_inertiamouse::reset(), vrpn_Magellan::reset(), vrpn_Nikon_Controls::reset(), vrpn_Poser_Tek4662::reset(), vrpn_Radamec_SPI::reset(), vrpn_raw_SGIBox::reset(), vrpn_Spaceball::reset(), vrpn_Streaming_Arduino::reset(), vrpn_Tracker_3DMouse::reset(), vrpn_Tracker_3Space::reset(), vrpn_Tracker_Crossbow::reset(), vrpn_Tracker_Fastrak::reset(), vrpn_Tracker_Flock::reset(), vrpn_Tracker_Flock_Parallel_Slave::reset(), vrpn_Tracker_Isotrak::reset(), vrpn_Tracker_Liberty::reset(), vrpn_Zaber::reset(), and vrpn_Tracker_NDI_Polaris::vrpn_Tracker_NDI_Polaris().
int vrpn_flush_output_buffer | ( | int | comm | ) |
Throw out any characters (do not send) within the output buffer.
Definition at line 465 of file vrpn_Serial.C.
Referenced by vrpn_SerialPort::flush_output_buffer(), vrpn_ADBox::mainloop(), vrpn_Poser_Tek4662::reset(), vrpn_Tracker_Crossbow::reset(), vrpn_Tracker_NDI_Polaris::sendCommand(), vrpn_Tracker_Flock::~vrpn_Tracker_Flock(), and vrpn_Tracker_Flock_Parallel_Slave::~vrpn_Tracker_Flock_Parallel_Slave().
int vrpn_open_commport | ( | const char * | portname, |
long | baud, | ||
int | charsize = 8, | ||
vrpn_SER_PARITY | parity = vrpn_SER_PARITY_NONE, | ||
bool | rts_flow = false ) |
Open a serial port, given its name and baud rate.
Default Settings are 8 bits, no parity, 1 start and stop bits with no RTS (hardware) flow control. Also, set the port so that it will return immediately if there are no characters or less than the number of characters requested.
Definition at line 54 of file vrpn_Serial.C.
References vrpn_SER_PARITY_EVEN, vrpn_SER_PARITY_MARK, vrpn_SER_PARITY_NONE, vrpn_SER_PARITY_ODD, and vrpn_SER_PARITY_SPACE.
Referenced by vrpn_Atmel::Create(), vrpn_Tracker_3DMouse::mainloop(), vrpn_Tracker_Flock_Parallel::mainloop(), vrpn_Tracker_Serial::mainloop(), vrpn_SerialPort::open(), vrpn_Tracker_Crossbow::reset(), vrpn_Tracker_NDI_Polaris::switchToHigherBaudRate(), vrpn_ADBox::vrpn_ADBox(), vrpn_Button_Serial::vrpn_Button_Serial(), vrpn_Button_SerialMouse::vrpn_Button_SerialMouse(), vrpn_Poser_Tek4662::vrpn_Poser_Tek4662(), vrpn_raw_SGIBox::vrpn_raw_SGIBox(), vrpn_Serial_Analog::vrpn_Serial_Analog(), vrpn_SerialPort::vrpn_SerialPort(), vrpn_Tracker_NDI_Polaris::vrpn_Tracker_NDI_Polaris(), vrpn_Tracker_Serial::vrpn_Tracker_Serial(), vrpn_VPJoystick::vrpn_VPJoystick(), vrpn_YEI_3Space_Sensor::vrpn_YEI_3Space_Sensor(), and vrpn_YEI_3Space_Sensor_Wireless::vrpn_YEI_3Space_Sensor_Wireless().
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_5dt16::get_report(), vrpn_5dt::get_report(), vrpn_BiosciencesTools::get_report(), vrpn_CerealBox::get_report(), vrpn_GlobalHapticsOrb::get_report(), vrpn_IDEA::get_report(), vrpn_ImmersionBox::get_report(), vrpn_inertiamouse::get_report(), vrpn_Joystick::get_report(), vrpn_Magellan::get_report(), vrpn_Nikon_Controls::get_report(), vrpn_Radamec_SPI::get_report(), vrpn_raw_SGIBox::get_report(), vrpn_Spaceball::get_report(), vrpn_Streaming_Arduino::get_report(), vrpn_Tng3::get_report(), vrpn_Tracker_3DMouse::get_report(), vrpn_Tracker_3Space::get_report(), vrpn_Tracker_Crossbow::get_report(), vrpn_Tracker_Dyna::get_report(), vrpn_Tracker_Fastrak::get_report(), vrpn_Tracker_Flock::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_5dt16::reset(), vrpn_5dt::reset(), vrpn_CerealBox::reset(), vrpn_GlobalHapticsOrb::reset(), vrpn_IDEA::reset(), vrpn_ImmersionBox::reset(), vrpn_Joystick::reset(), vrpn_Magellan::reset(), vrpn_Nikon_Controls::reset(), vrpn_Poser_Tek4662::reset(), vrpn_raw_SGIBox::reset(), vrpn_Streaming_Arduino::reset(), vrpn_Tracker_3DMouse::reset(), vrpn_Tracker_3Space::reset(), vrpn_Tracker_Crossbow::reset(), vrpn_Tracker_Fastrak::reset(), vrpn_Tracker_Flock::reset(), vrpn_Tracker_Isotrak::reset(), vrpn_Tracker_Liberty::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().
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().
int vrpn_set_rts | ( | int | comm | ) |
Definition at line 368 of file vrpn_Serial.C.
Referenced by vrpn_Tracker_Crossbow::reset(), vrpn_Tracker_Flock::reset(), vrpn_Tracker_GPS::reset(), vrpn_SerialPort::set_rts(), vrpn_Tracker_GPS::vrpn_Tracker_GPS(), and vrpn_Tracker_NDI_Polaris::vrpn_Tracker_NDI_Polaris().
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_CerealBox::get_report(), vrpn_Tracker_3DMouse::get_report(), vrpn_Tracker_Crossbow::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_CerealBox::reset(), vrpn_GlobalHapticsOrb::reset(), vrpn_ImmersionBox::reset(), vrpn_Joystick::reset(), vrpn_Nikon_Controls::reset(), vrpn_Poser_Tek4662::reset(), vrpn_Streaming_Arduino::reset(), vrpn_Tracker_3DMouse::reset(), vrpn_Tracker_3Space::reset(), vrpn_Tracker_Crossbow::reset(), vrpn_Tracker_Dyna::reset(), vrpn_Tracker_Fastrak::reset(), vrpn_Tracker_Flock::reset(), vrpn_Tracker_Flock_Parallel_Slave::reset(), vrpn_Tracker_Isotrak::reset(), vrpn_Tracker_Liberty::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_5dt::send_command(), vrpn_IDEA::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().
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_Magellan::reset(), vrpn_raw_SGIBox::reset(), vrpn_Spaceball::reset(), and vrpn_raw_SGIBox::send_light_command().