#endif
#include <stddef.h>
-#ifdef _WIN32
-#include <windows.h>
-#endif
/** Return values. */
enum sp_return {
SP_OK = 0,
/** Invalid arguments were passed to the function. */
SP_ERR_ARG = -1,
- /** A system error occured while executing the operation. */
+ /** A system error occurred while executing the operation. */
SP_ERR_FAIL = -2,
/** A memory allocation failed while executing the operation. */
SP_ERR_MEM = -3,
/** The requested operation is not supported by this system or device. */
- SP_ERR_SUPP = -4,
+ SP_ERR_SUPP = -4
};
/** Port access modes. */
SP_MODE_READ = 1,
/** Open port for write access. */
SP_MODE_WRITE = 2,
+ /** Open port for read and write access. @since 0.1.1 */
+ SP_MODE_READ_WRITE = 3
};
/** Port events. */
enum sp_event {
- /* Data received and ready to read. */
+ /** Data received and ready to read. */
SP_EVENT_RX_READY = 1,
- /* Ready to transmit new data. */
+ /** Ready to transmit new data. */
SP_EVENT_TX_READY = 2,
- /* Error occured. */
- SP_EVENT_ERROR = 4,
+ /** Error occurred. */
+ SP_EVENT_ERROR = 4
};
/** Buffer selection. */
/** Output buffer. */
SP_BUF_OUTPUT = 2,
/** Both buffers. */
- SP_BUF_BOTH = 3,
+ SP_BUF_BOTH = 3
};
/** Parity settings. */
/** Mark parity. */
SP_PARITY_MARK = 3,
/** Space parity. */
- SP_PARITY_SPACE = 4,
+ SP_PARITY_SPACE = 4
};
/** RTS pin behaviour. */
/** RTS on. */
SP_RTS_ON = 1,
/** RTS used for flow control. */
- SP_RTS_FLOW_CONTROL = 2,
+ SP_RTS_FLOW_CONTROL = 2
};
/** CTS pin behaviour. */
/** CTS ignored. */
SP_CTS_IGNORE = 0,
/** CTS used for flow control. */
- SP_CTS_FLOW_CONTROL = 1,
+ SP_CTS_FLOW_CONTROL = 1
};
/** DTR pin behaviour. */
/** DTR on. */
SP_DTR_ON = 1,
/** DTR used for flow control. */
- SP_DTR_FLOW_CONTROL = 2,
+ SP_DTR_FLOW_CONTROL = 2
};
/** DSR pin behaviour. */
/** DSR ignored. */
SP_DSR_IGNORE = 0,
/** DSR used for flow control. */
- SP_DSR_FLOW_CONTROL = 1,
+ SP_DSR_FLOW_CONTROL = 1
};
/** XON/XOFF flow control behaviour. */
/** XON/XOFF enabled for output only. */
SP_XONXOFF_OUT = 2,
/** XON/XOFF enabled for input and output. */
- SP_XONXOFF_INOUT = 3,
+ SP_XONXOFF_INOUT = 3
};
/** Standard flow control combinations. */
/** Hardware flow control using RTS/CTS signals. */
SP_FLOWCONTROL_RTSCTS = 2,
/** Hardware flow control using DTR/DSR signals. */
- SP_FLOWCONTROL_DTRDSR = 3,
+ SP_FLOWCONTROL_DTRDSR = 3
};
/** Input signals. */
/** Data carrier detect. */
SP_SIG_DCD = 4,
/** Ring indicator. */
- SP_SIG_RI = 8,
+ SP_SIG_RI = 8
};
-/** Transport types. */
+/**
+ * Transport types.
+ *
+ * @since 0.1.1
+ */
enum sp_transport {
- /** Native platform serial port. */
+ /** Native platform serial port. @since 0.1.1 */
SP_TRANSPORT_NATIVE,
- /** USB serial port adapter. */
+ /** USB serial port adapter. @since 0.1.1 */
SP_TRANSPORT_USB,
- /** Bluetooh serial port adapter. */
- SP_TRANSPORT_BLUETOOTH,
+ /** Bluetooth serial port adapter. @since 0.1.1 */
+ SP_TRANSPORT_BLUETOOTH
};
/**
};
/**
-@defgroup Enumeration Port enumeration
-@{
-*/
+ * @defgroup Enumeration Port enumeration
+ *
+ * Enumerating the serial ports of a system.
+ *
+ * @{
+ */
/**
* Obtain a pointer to a new sp_port structure representing the named port.
/**
* @}
- * @defgroup Ports Opening, closing and querying ports
+ * @defgroup Ports Port handling
+ *
+ * Opening, closing and querying ports.
+ *
* @{
*/
* The description string is part of the port structure and may not be used
* after the port structure has been freed.
*
- * @since 0.2.0
+ * @since 0.1.1
*/
char *sp_get_port_description(struct sp_port *port);
*
* @return The port transport type.
*
- * @since 0.2.0
+ * @since 0.1.1
*/
enum sp_transport sp_get_port_transport(struct sp_port *port);
*
* @return SP_OK upon success, a negative error code otherwise.
*
- * @since 0.2.0
+ * @since 0.1.1
*/
enum sp_return sp_get_port_usb_bus_address(const struct sp_port *port,
int *usb_bus, int *usb_address);
*
* @return SP_OK upon success, a negative error code otherwise.
*
- * @since 0.2.0
+ * @since 0.1.1
*/
enum sp_return sp_get_port_usb_vid_pid(const struct sp_port *port, int *usb_vid, int *usb_pid);
* The manufacturer string is part of the port structure and may not be used
* after the port structure has been freed.
*
- * @since 0.2.0
+ * @since 0.1.1
*/
char *sp_get_port_usb_manufacturer(const struct sp_port *port);
* The product string is part of the port structure and may not be used
* after the port structure has been freed.
*
- * @since 0.2.0
+ * @since 0.1.1
*/
char *sp_get_port_usb_product(const struct sp_port *port);
* The serial number string is part of the port structure and may not be used
* after the port structure has been freed.
*
- * @since 0.2.0
+ * @since 0.1.1
*/
char *sp_get_port_usb_serial(const struct sp_port *port);
* The MAC address string is part of the port structure and may not be used
* after the port structure has been freed.
*
- * @since 0.2.0
+ * @since 0.1.1
*/
char *sp_get_port_bluetooth_address(const struct sp_port *port);
/**
* @}
- * @defgroup Configuration Setting port parameters
+ *
+ * @defgroup Configuration Configuration
+ *
+ * Setting and querying serial port parameters.
* @{
*/
/**
* @}
- * @defgroup Data Reading, writing, and flushing data
+ *
+ * @defgroup Data Data handling
+ *
+ * Reading, writing, and flushing data.
+ *
* @{
-*/
+ */
/**
* Read bytes from the specified serial port, blocking until complete.
* written. If timeout is zero, the function will always return
* either the requested number of bytes or a negative error code. In
* the event of an error there is no way to determine how many bytes
- * were sent before the error occured.
+ * were sent before the error occurred.
*
* @since 0.1.0
*/
/**
* @}
- * @defgroup Waiting Waiting for events
+ *
+ * @defgroup Waiting Waiting
+ *
+ * Waiting for events and timeout handling.
+ *
* @{
*/
/**
* @}
- * @defgroup Signals Port signalling operations
+ *
+ * @defgroup Signals Signals
+ *
+ * Port signalling operations.
+ *
* @{
*/
* the sp_signal enum.
*
* @param port Pointer to port structure.
- * @param signals Pointer to variable to receive result.
+ * @param signal_mask Pointer to variable to receive result.
*
* @return SP_OK upon success, a negative error code otherwise.
*
* @since 0.1.0
*/
-enum sp_return sp_get_signals(struct sp_port *port, enum sp_signal *signals);
+enum sp_return sp_get_signals(struct sp_port *port, enum sp_signal *signal_mask);
/**
* Put the port transmit line into the break state.
/**
* @}
- * @defgroup Errors Obtaining error information
+ *
+ * @defgroup Errors Errors
+ *
+ * Obtaining error information.
+ *
* @{
-*/
+ */
/**
* Get the error code for a failed operation.
/** @} */
/**
- * @defgroup Versions Version number querying functions, definitions, and macros
+ * @defgroup Versions Versions
+ *
+ * Version number querying functions, definitions, and macros.
*
* This set of API calls returns two different version numbers related
* to libserialport. The "package version" is the release version number of the