WPILibC++  2020.2.2-33-g65eab93
Serial Port Functions

Functions

 HAL_ENUM (HAL_SerialPort)
 
HAL_SerialPortHandle HAL_InitializeSerialPort (HAL_SerialPort port, int32_t *status)
 Initializes a serial port. More...
 
HAL_SerialPortHandle HAL_InitializeSerialPortDirect (HAL_SerialPort port, const char *portName, int32_t *status)
 Initializes a serial port with a direct name. More...
 
int HAL_GetSerialFD (HAL_SerialPortHandle handle, int32_t *status)
 Gets the raw serial port file descriptor from a handle. More...
 
void HAL_SetSerialBaudRate (HAL_SerialPortHandle handle, int32_t baud, int32_t *status)
 Sets the baud rate of a serial port. More...
 
void HAL_SetSerialDataBits (HAL_SerialPortHandle handle, int32_t bits, int32_t *status)
 Sets the number of data bits on a serial port. More...
 
void HAL_SetSerialParity (HAL_SerialPortHandle handle, int32_t parity, int32_t *status)
 Sets the number of parity bits on a serial port. More...
 
void HAL_SetSerialStopBits (HAL_SerialPortHandle handle, int32_t stopBits, int32_t *status)
 Sets the number of stop bits on a serial port. More...
 
void HAL_SetSerialWriteMode (HAL_SerialPortHandle handle, int32_t mode, int32_t *status)
 Sets the write mode on a serial port. More...
 
void HAL_SetSerialFlowControl (HAL_SerialPortHandle handle, int32_t flow, int32_t *status)
 Sets the flow control mode of a serial port. More...
 
void HAL_SetSerialTimeout (HAL_SerialPortHandle handle, double timeout, int32_t *status)
 Sets the minimum serial read timeout of a port. More...
 
void HAL_EnableSerialTermination (HAL_SerialPortHandle handle, char terminator, int32_t *status)
 Sets the termination character that terminates a read. More...
 
void HAL_DisableSerialTermination (HAL_SerialPortHandle handle, int32_t *status)
 Disables a termination character for reads. More...
 
void HAL_SetSerialReadBufferSize (HAL_SerialPortHandle handle, int32_t size, int32_t *status)
 Sets the size of the read buffer. More...
 
void HAL_SetSerialWriteBufferSize (HAL_SerialPortHandle handle, int32_t size, int32_t *status)
 Sets the size of the write buffer. More...
 
int32_t HAL_GetSerialBytesReceived (HAL_SerialPortHandle handle, int32_t *status)
 Gets the number of bytes currently in the read buffer. More...
 
int32_t HAL_ReadSerial (HAL_SerialPortHandle handle, char *buffer, int32_t count, int32_t *status)
 Reads data from the serial port. More...
 
int32_t HAL_WriteSerial (HAL_SerialPortHandle handle, const char *buffer, int32_t count, int32_t *status)
 Writes data to the serial port. More...
 
void HAL_FlushSerial (HAL_SerialPortHandle handle, int32_t *status)
 Flushes the serial write buffer out to the port. More...
 
void HAL_ClearSerial (HAL_SerialPortHandle handle, int32_t *status)
 Clears the receive buffer of the serial port. More...
 
void HAL_CloseSerial (HAL_SerialPortHandle handle, int32_t *status)
 Closes a serial port. More...
 

Detailed Description

Function Documentation

◆ HAL_ClearSerial()

void HAL_ClearSerial ( HAL_SerialPortHandle  handle,
int32_t *  status 
)

Clears the receive buffer of the serial port.

Parameters
handlethe serial port handle

◆ HAL_CloseSerial()

void HAL_CloseSerial ( HAL_SerialPortHandle  handle,
int32_t *  status 
)

Closes a serial port.

Parameters
handlethe serial port handle to close

◆ HAL_DisableSerialTermination()

void HAL_DisableSerialTermination ( HAL_SerialPortHandle  handle,
int32_t *  status 
)

Disables a termination character for reads.

Parameters
handlethe serial port handle

◆ HAL_EnableSerialTermination()

void HAL_EnableSerialTermination ( HAL_SerialPortHandle  handle,
char  terminator,
int32_t *  status 
)

Sets the termination character that terminates a read.

By default this is disabled.

Parameters
handlethe serial port handle
terminatorthe termination character to set

◆ HAL_FlushSerial()

void HAL_FlushSerial ( HAL_SerialPortHandle  handle,
int32_t *  status 
)

Flushes the serial write buffer out to the port.

Parameters
handlethe serial port handle

◆ HAL_GetSerialBytesReceived()

int32_t HAL_GetSerialBytesReceived ( HAL_SerialPortHandle  handle,
int32_t *  status 
)

Gets the number of bytes currently in the read buffer.

Parameters
handlethe serial port handle
Returns
the number of bytes in the read buffer

◆ HAL_GetSerialFD()

int HAL_GetSerialFD ( HAL_SerialPortHandle  handle,
int32_t *  status 
)

Gets the raw serial port file descriptor from a handle.

Parameters
handlethe serial port handle
Returns
the raw port descriptor

◆ HAL_InitializeSerialPort()

HAL_SerialPortHandle HAL_InitializeSerialPort ( HAL_SerialPort  port,
int32_t *  status 
)

Initializes a serial port.

The channels are either the onboard RS232, the mxp uart, or 2 USB ports. The top port is USB1, the bottom port is USB2.

Parameters
portthe serial port to initialize

◆ HAL_InitializeSerialPortDirect()

HAL_SerialPortHandle HAL_InitializeSerialPortDirect ( HAL_SerialPort  port,
const char *  portName,
int32_t *  status 
)

Initializes a serial port with a direct name.

This name is the /dev name for a specific port. Note these are not always consistent between roboRIO reboots.

Parameters
portthe serial port to initialize
portNamethe dev port name

◆ HAL_ReadSerial()

int32_t HAL_ReadSerial ( HAL_SerialPortHandle  handle,
char *  buffer,
int32_t  count,
int32_t *  status 
)

Reads data from the serial port.

Will wait for either timeout (if set), the termination char (if set), or the count to be full. Whichever one comes first.

Parameters
handlethe serial port handle
countthe number of bytes maximum to read
Returns
the number of bytes actually read

◆ HAL_SetSerialBaudRate()

void HAL_SetSerialBaudRate ( HAL_SerialPortHandle  handle,
int32_t  baud,
int32_t *  status 
)

Sets the baud rate of a serial port.

Any value between 0 and 0xFFFFFFFF may be used. Default is 9600.

Parameters
handlethe serial port handle
baudthe baud rate to set

◆ HAL_SetSerialDataBits()

void HAL_SetSerialDataBits ( HAL_SerialPortHandle  handle,
int32_t  bits,
int32_t *  status 
)

Sets the number of data bits on a serial port.

Defaults to 8.

Parameters
handlethe serial port handle
bitsthe number of data bits (5-8)

◆ HAL_SetSerialFlowControl()

void HAL_SetSerialFlowControl ( HAL_SerialPortHandle  handle,
int32_t  flow,
int32_t *  status 
)

Sets the flow control mode of a serial port.

Valid values are: 0: None (default) 1: XON-XOFF 2: RTS-CTS 3: DTR-DSR

Parameters
handlethe serial port handle
flowthe mode to set (see remarks for valid values)

◆ HAL_SetSerialParity()

void HAL_SetSerialParity ( HAL_SerialPortHandle  handle,
int32_t  parity,
int32_t *  status 
)

Sets the number of parity bits on a serial port.

Valid values are: 0: None (default) 1: Odd 2: Even 3: Mark - Means exists and always 1 4: Space - Means exists and always 0

Parameters
handlethe serial port handle
paritythe parity bit mode (see remarks for valid values)

◆ HAL_SetSerialReadBufferSize()

void HAL_SetSerialReadBufferSize ( HAL_SerialPortHandle  handle,
int32_t  size,
int32_t *  status 
)

Sets the size of the read buffer.

Parameters
handlethe serial port handle
sizethe read buffer size

◆ HAL_SetSerialStopBits()

void HAL_SetSerialStopBits ( HAL_SerialPortHandle  handle,
int32_t  stopBits,
int32_t *  status 
)

Sets the number of stop bits on a serial port.

Valid values are: 10: One stop bit (default) 15: One and a half stop bits 20: Two stop bits

Parameters
handlethe serial port handle
stopBitsthe stop bit value (see remarks for valid values)

◆ HAL_SetSerialTimeout()

void HAL_SetSerialTimeout ( HAL_SerialPortHandle  handle,
double  timeout,
int32_t *  status 
)

Sets the minimum serial read timeout of a port.

Parameters
handlethe serial port handle
timeoutthe timeout in milliseconds

◆ HAL_SetSerialWriteBufferSize()

void HAL_SetSerialWriteBufferSize ( HAL_SerialPortHandle  handle,
int32_t  size,
int32_t *  status 
)

Sets the size of the write buffer.

Parameters
handlethe serial port handle
sizethe write buffer size

◆ HAL_SetSerialWriteMode()

void HAL_SetSerialWriteMode ( HAL_SerialPortHandle  handle,
int32_t  mode,
int32_t *  status 
)

Sets the write mode on a serial port.

Valid values are: 1: Flush on access 2: Flush when full (default)

Parameters
handlethe serial port handle
modethe mode to set (see remarks for valid values)

◆ HAL_WriteSerial()

int32_t HAL_WriteSerial ( HAL_SerialPortHandle  handle,
const char *  buffer,
int32_t  count,
int32_t *  status 
)

Writes data to the serial port.

Parameters
handlethe serial port handle
bufferthe buffer to write
countthe number of bytes to write from the buffer
Returns
the number of bytes actually written