WPILibC++  2019.1.1-beta-1-31-g81d10bc
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
SerialPort.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) 2016-2018 FIRST. All Rights Reserved. */
3 /* Open Source Software - may be modified and shared by FRC teams. The code */
4 /* must be accompanied by the FIRST BSD license file in the root directory of */
5 /* the project. */
6 /*----------------------------------------------------------------------------*/
7 
8 #pragma once
9 
10 #include <stdint.h>
11 
12 #include "hal/Types.h"
13 
20 // clang-format off
21 HAL_ENUM(HAL_SerialPort) {
22  HAL_SerialPort_Onboard = 0,
23  HAL_SerialPort_MXP = 1,
24  HAL_SerialPort_USB1 = 2,
25  HAL_SerialPort_USB2 = 3
26 };
27 // clang-format on
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
41 void HAL_InitializeSerialPort(HAL_SerialPort port, int32_t* status);
42 
52 void HAL_InitializeSerialPortDirect(HAL_SerialPort port, const char* portName,
53  int32_t* status);
54 
63 void HAL_SetSerialBaudRate(HAL_SerialPort port, int32_t baud, int32_t* status);
64 
73 void HAL_SetSerialDataBits(HAL_SerialPort port, int32_t bits, int32_t* status);
74 
88 void HAL_SetSerialParity(HAL_SerialPort port, int32_t parity, int32_t* status);
89 
101 void HAL_SetSerialStopBits(HAL_SerialPort port, int32_t stopBits,
102  int32_t* status);
103 
114 void HAL_SetSerialWriteMode(HAL_SerialPort port, int32_t mode, int32_t* status);
115 
128 void HAL_SetSerialFlowControl(HAL_SerialPort port, int32_t flow,
129  int32_t* status);
130 
137 void HAL_SetSerialTimeout(HAL_SerialPort port, double timeout, int32_t* status);
138 
147 void HAL_EnableSerialTermination(HAL_SerialPort port, char terminator,
148  int32_t* status);
149 
155 void HAL_DisableSerialTermination(HAL_SerialPort port, int32_t* status);
156 
163 void HAL_SetSerialReadBufferSize(HAL_SerialPort port, int32_t size,
164  int32_t* status);
165 
172 void HAL_SetSerialWriteBufferSize(HAL_SerialPort port, int32_t size,
173  int32_t* status);
174 
181 int32_t HAL_GetSerialBytesReceived(HAL_SerialPort port, int32_t* status);
182 
193 int32_t HAL_ReadSerial(HAL_SerialPort port, char* buffer, int32_t count,
194  int32_t* status);
195 
204 int32_t HAL_WriteSerial(HAL_SerialPort port, const char* buffer, int32_t count,
205  int32_t* status);
206 
212 void HAL_FlushSerial(HAL_SerialPort port, int32_t* status);
213 
219 void HAL_ClearSerial(HAL_SerialPort port, int32_t* status);
220 
226 void HAL_CloseSerial(HAL_SerialPort port, int32_t* status);
227 #ifdef __cplusplus
228 } // extern "C"
229 #endif
230 
void HAL_SetSerialBaudRate(HAL_SerialPort port, int32_t baud, int32_t *status)
Sets the baud rate of a serial port.
void HAL_SetSerialParity(HAL_SerialPort port, int32_t parity, int32_t *status)
Sets the number of parity bits on a serial port.
int32_t HAL_WriteSerial(HAL_SerialPort port, const char *buffer, int32_t count, int32_t *status)
Writes data to the serial port.
void HAL_InitializeSerialPortDirect(HAL_SerialPort port, const char *portName, int32_t *status)
Initializes a serial port with a direct name.
void HAL_SetSerialWriteMode(HAL_SerialPort port, int32_t mode, int32_t *status)
Sets the write mode on a serial port.
void HAL_InitializeSerialPort(HAL_SerialPort port, int32_t *status)
Initializes a serial port.
void HAL_EnableSerialTermination(HAL_SerialPort port, char terminator, int32_t *status)
Sets the termination character that terminates a read.
void HAL_SetSerialTimeout(HAL_SerialPort port, double timeout, int32_t *status)
Sets the minimum serial read timeout of a port.
int32_t HAL_GetSerialBytesReceived(HAL_SerialPort port, int32_t *status)
Gets the number of bytes currently in the read buffer.
void HAL_SetSerialFlowControl(HAL_SerialPort port, int32_t flow, int32_t *status)
Sets the flow control mode of a serial port.
void HAL_ClearSerial(HAL_SerialPort port, int32_t *status)
Clears the receive buffer of the serial port.
void HAL_SetSerialReadBufferSize(HAL_SerialPort port, int32_t size, int32_t *status)
Sets the size of the read buffer.
void HAL_DisableSerialTermination(HAL_SerialPort port, int32_t *status)
Disables a termination character for reads.
void HAL_SetSerialDataBits(HAL_SerialPort port, int32_t bits, int32_t *status)
Sets the number of data bits on a serial port.
void HAL_SetSerialWriteBufferSize(HAL_SerialPort port, int32_t size, int32_t *status)
Sets the size of the write buffer.
void HAL_FlushSerial(HAL_SerialPort port, int32_t *status)
Flushes the serial write buffer out to the port.
void HAL_CloseSerial(HAL_SerialPort port, int32_t *status)
Closes a serial port.
int32_t HAL_ReadSerial(HAL_SerialPort port, char *buffer, int32_t count, int32_t *status)
Reads data from the serial port.
void HAL_SetSerialStopBits(HAL_SerialPort port, int32_t stopBits, int32_t *status)
Sets the number of stop bits on a serial port.