serial: Serial Communications

Data types

serial_t

Container for a configured serial port.

serial_config_t

Container for all serial port configuration settings.

serial_transport_t

Serial transport type.

SERIAL_TRANSPORT_INVALID = 0x00
SERIAL_TRANSPORT_NATIVE = 0x01
SERIAL_TRANSPORT_USB = 0x02
SERIAL_TRANSPORT_BLUETOOTH = 0x04
serial_parity_t

Data parity behaviour.

SERIAL_PARITY_INVALID = -1
SERIAL_PARITY_NONE = 0
SERIAL_PARITY_ODD = 1
SERIAL_PARITY_EVEN = 2
SERIAL_PARITY_MARK = 3
SERIAL_PARITY_SPACE = 4
serial_rts_t

RTS pin behaviour.

SERIAL_RTS_INVALID = -1
SERIAL_RTS_OFF = 0
SERIAL_RTS_ON = 1
SERIAL_RTS_FLOW_CONTROL = 2
serial_cts_t

CTS pin behaviour.

SERIAL_CTS_INVALID = -1
SERIAL_CTS_IGNORE = 0
SERIAL_CTS_FLOW_CONTROL = 1
serial_dtr_t

DTR pin behaviour.

SERIAL_DTR_INVALID = -1
SERIAL_DTR_OFF = 0
SERIAL_DTR_ON = 1
SERIAL_DTR_FLOW_CONTROL = 2
serial_dsr_t

DSR pin behaviour.

SERIAL_DSR_INVALID = -1
SERIAL_DSR_IGNORE = 0
SERIAL_DSR_FLOW_CONTROL = 1
serial_xon_xoff_t

XON/XOFF flow control behaviour.

SERIAL_XON_XOFF_INVALID = -1
SERIAL_XON_XOFF_DISABLED = 0
SERIAL_XON_XOFF_IN = 1
SERIAL_XON_XOFF_OUT = 2
SERIAL_XON_XOFF_INOUT = 3
serial_flowcontrol_t

Standard flow control combinations.

SERIAL_FLOWCONTROL_NONE = 0
SERIAL_FLOWCONTROL_XONXOFF = 1
SERIAL_FLOWCONTROL_RTSCTS = 2
SERIAL_FLOWCONTROL_DTRDSR = 3
serial_buffers_t

Serial buffer types.

SERIAL_BUFFER_NONE = 0x00
SERIAL_BUFFER_INPUT = 0x01
SERIAL_BUFFER_OUTPUT = 0x02
SERIAL_BUFFER_BOTH = 0x03
serial_data_t

Public members

int serial_config_t.baudrate
int serial_config_t.bits
serial_parity_t serial_config_t.parity
int serial_config_t.stopbits
serial_rts_t serial_config_t.rts
serial_cts_t serial_config_t.cts
serial_dtr_t serial_config_t.dtr
serial_dsr_t serial_config_t.dsr
serial_xon_xoff_t serial_config_t.xon_xoff
char *serial_t.name
serial_t_transport_t serial.transport
int serial_t.usb_bus
int serial_t.usb_address
int serial_t.usb_vid
int serial_t.usb_pid
char *serial_t.usb_manufacturer
char *serial_t.usb_product
char *serial_t.usb_serial
char *serial_t.bluetooth_address

API

int serial_open(serial_t *port, char mode)
int serial_find(const char *identifier, char **found)
int serial_close(serial_t *port)
int serial_config_new(serial_config_t **config_ptr)
void serial_config_free(serial_config_t *config)
int serial_config_get(serial_t *port, serial_config_t *config)
int serial_config(serial_t *port, serial_config_t *config)
int serial_baudrate(serial_t *port, int baudrate)
int serial_parity(serial_t *port, serial_parity_t parity)
int serial_bits(serial_t *port, int bits)
int serial_stopbits(serial_t *port, int stopbits)
int serial_rts(serial_t *port, serial_rts_t rts)
int serial_cts(serial_t *port, serial_cts_t cts)
int serial_dtr(serial_t *port, serial_dtr_t dtr)
int serial_dsr(serial_t *port, serial_dsr_t dsr)
int serial_xon_xoff(serial_t *port, serial_xon_xoff_t xon_xoff)
int serial_flowcontrol(serial_t *port, serial_flowcontrol_t flowcontrol)
int serial_read(serial_t *port, void *buf, size_t len, unsigned int timeout_ms)
int serial_read_next(serial_t *port, void *buf, size_t len, unsigned int timeout_ms)
int serial_read_nonblock(serial_t *port, void *buf, size_t len)
int serial_read_waiting(serial_t *port)
int serial_write(serial_t *port, const void *buf, size_t len, unsigned int timeout_ms)
int serial_write_nonblock(serial_t *port, const void *buf, size_t len)
int serial_write_waiting(serial_t *port)
int serial_flush(serial_t *port, serial_buffers_t buffers)
int serial_drain(serial_t *port)
void serial_free(serial_t *port)
int serial_details(serial_t *port)
int serial_by_name(const char *portname, serial_t **port_ptr)
char *serial_name(const serial_t *port)
serial_transport_t serial_transport(const serial_t *port)
int serial_list(serial_t ***list)
serial_t **serial_list_append(serial_t **list, const char *portname)
void serial_list_free(serial_t **list)
char *serial_bluetooth_address(const serial_t *port)
int serial_usb_bus_address(const serial_t *port, int *usb_bus, int *usb_address)
int serial_usb_vid_pid(const serial_t *port, int *usb_vid, int *usb_pid)
char *serial_usb_manufacturer(const serial_t *port)
char *serial_usb_product(const serial_t *port)
char *serial_usb_serial(const serial_t *port)
int serial_flowcontrol(serial_t *port, serial_flowcontrol_t flowcontrol)
int serial_config_flowcontrol(serial_config_t *config, serial_flowcontrol_t flowcontrol)
int serial_baudrate(serial_t *port, int baudrate)
int serial_config_baudrate(serial_config_t *config, int baudrate)
int serial_config_get_baudrate(serial_config_t *config, int *baudrate)
int serial_bits(serial_t *port, int bits)
int serial_config_bits(serial_config_t *config, int bits)
int serial_config_get_bits(serial_config_t *config, int *bits)
int serial_parity(serial_t *port, serial_parity_t parity)
int serial_config_parity(serial_config_t *config, serial_parity_t parity)
int serial_config_get_parity(serial_config_t *config, serial_parity_t *parity)
int serial_stopbits(serial_t *port, int stopbits)
int serial_config_stopbits(serial_config_t *config, int stopbits)
int serial_config_get_stopbits(serial_config_t *config, int *stopbits)
int serial_rts(serial_t *port, serial_rts_t rts)
int serial_config_rts(serial_config_t *config, serial_rts_t rts)
int serial_config_get_rts(serial_config_t *config, serial_rts_t *rts)
int serial_cts(serial_t *port, serial_cts_t cts)
int serial_config_cts(serial_config_t *config, serial_cts_t cts)
int serial_config_get_cts(serial_config_t *config, serial_cts_t *cts)
int serial_dtr(serial_t *port, serial_dtr_t dtr)
int serial_config_dtr(serial_config_t *config, serial_dtr_t dtr)
int serial_config_get_dtr(serial_config_t *config, serial_dtr_t *dtr)
int serial_dsr(serial_t *port, serial_dsr_t dsr)
int serial_config_dsr(serial_config_t *config, serial_dsr_t dsr)
int serial_config_get_dsr(serial_config_t *config, serial_dsr_t *dsr)
int serial_xon_xoff(serial_t *port, serial_xon_xoff_t xon_xoff)
int serial_config_xon_xoff(serial_config_t *config, serial_xon_xoff_t xon_xoff)
int serial_config_get_xon_xoff(serial_config_t *config, serial_xon_xoff_t *xon_xoff)