X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=libserialport.h.in;h=a4f0b0ff76d1d8786c13e010b649c404abb75170;hb=a93fb468885de8775f1d200625dac114d3050b1d;hp=43d16a11103eee1deb7849cd2d03e62e96d5d309;hpb=6c4b27a8b88f032939294346e8e04eca5fb4d0e9;p=libserialport.git diff --git a/libserialport.h.in b/libserialport.h.in index 43d16a1..a4f0b0f 100644 --- a/libserialport.h.in +++ b/libserialport.h.in @@ -229,6 +229,16 @@ enum sp_signal { SP_SIG_RI = 8, }; +/** Transport types. */ +enum sp_transport { + /** Native platform serial port. */ + SP_TRANSPORT_NATIVE, + /** USB serial port adapter. */ + SP_TRANSPORT_USB, + /** Bluetooh serial port adapter. */ + SP_TRANSPORT_BLUETOOTH, +}; + /** * @struct sp_port * An opaque structure representing a serial port. @@ -271,11 +281,15 @@ struct sp_event_set { * to NULL. Otherwise, it will be set to point to the newly allocated port. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_port_by_name(const char *portname, struct sp_port **port_ptr); /** * Free a port structure obtained from sp_get_port_by_name() or sp_copy_port(). + * + * @since 0.1.0 */ void sp_free_port(struct sp_port *port); @@ -294,6 +308,8 @@ void sp_free_port(struct sp_port *port); * to NULL. Otherwise, it will be set to point to the newly allocated array. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_list_ports(struct sp_port ***list_ptr); @@ -309,6 +325,8 @@ enum sp_return sp_list_ports(struct sp_port ***list_ptr); * to NULL. Otherwise, it will be set to point to the newly allocated copy. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_copy_port(const struct sp_port *port, struct sp_port **copy_ptr); @@ -317,6 +335,8 @@ enum sp_return sp_copy_port(const struct sp_port *port, struct sp_port **copy_pt * * This will also free all the sp_port structures referred to from the list; * any that are to be retained must be copied first using sp_copy_port(). + * + * @since 0.1.0 */ void sp_free_port_list(struct sp_port **ports); @@ -333,6 +353,8 @@ void sp_free_port_list(struct sp_port **ports); * @param flags Flags to use when opening the serial port. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_open(struct sp_port *port, enum sp_mode flags); @@ -340,6 +362,8 @@ enum sp_return sp_open(struct sp_port *port, enum sp_mode flags); * Close the specified serial port. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_close(struct sp_port *port); @@ -355,9 +379,114 @@ enum sp_return sp_close(struct sp_port *port); * @return The port name, or NULL if an invalid port is passed. The name * string is part of the port structure and may not be used after the * port structure has been freed. + * + * @since 0.1.0 */ char *sp_get_port_name(const struct sp_port *port); +/** + * Get a description for a port, to present to end user. + * + * @param port Pointer to port structure. + * + * @return The port description, or NULL if an invalid port is passed. + * 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 + */ +char *sp_get_port_description(struct sp_port *port); + +/** + * Get the transport type used by a port. + * + * @param port Pointer to port structure. + * + * @return The port transport type. + * + * @since 0.2.0 + */ +enum sp_transport sp_get_port_transport(struct sp_port *port); + +/** + * Get the USB bus number and address on bus of a USB serial adapter port. + * + * @param port Pointer to port structure. + * @param usb_bus Pointer to variable to store USB bus. + * @param usb_address Pointer to variable to store USB address + * + * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.2.0 + */ +enum sp_return sp_get_port_usb_bus_address(const struct sp_port *port, + int *usb_bus, int *usb_address); + +/** + * Get the USB Vendor ID and Product ID of a USB serial adapter port. + * + * @param port Pointer to port structure. + * @param usb_vid Pointer to variable to store USB VID. + * @param usb_pid Pointer to variable to store USB PID + * + * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.2.0 + */ +enum sp_return sp_get_port_usb_vid_pid(const struct sp_port *port, int *usb_vid, int *usb_pid); + +/** + * Get the USB manufacturer string of a USB serial adapter port. + * + * @param port Pointer to port structure. + * + * @return The port manufacturer string, or NULL if an invalid port is passed. + * 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 + */ +char *sp_get_port_usb_manufacturer(const struct sp_port *port); + +/** + * Get the USB product string of a USB serial adapter port. + * + * @param port Pointer to port structure. + * + * @return The port product string, or NULL if an invalid port is passed. + * 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 + */ +char *sp_get_port_usb_product(const struct sp_port *port); + +/** + * Get the USB serial number string of a USB serial adapter port. + * + * @param port Pointer to port structure. + * + * @return The port serial number, or NULL if an invalid port is passed. + * 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 + */ +char *sp_get_port_usb_serial(const struct sp_port *port); + +/** + * Get the bluetooth address of a bluetooth serial adapter port. + * + * @param port Pointer to port structure. + * + * @return The port bluetooth address, or NULL if an invalid port is passed. + * The bluetooth address string is part of the port structure and may not be used + * after the port structure has been freed. + * + * @since 0.2.0 + */ +char *sp_get_port_bluetooth_address(const struct sp_port *port); + /** * Get the operating system handle for a port. * @@ -379,6 +508,8 @@ char *sp_get_port_name(const struct sp_port *port); * library's own usage of the port. Be careful. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_port_handle(const struct sp_port *port, void *result_ptr); @@ -404,6 +535,8 @@ enum sp_return sp_get_port_handle(const struct sp_port *port, void *result_ptr); * @param config_ptr Pointer to variable to receive result. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_new_config(struct sp_port_config **config_ptr); @@ -411,6 +544,8 @@ enum sp_return sp_new_config(struct sp_port_config **config_ptr); * Free a port configuration structure. * * @param config Pointer to configuration structure. + * + * @since 0.1.0 */ void sp_free_config(struct sp_port_config *config); @@ -426,6 +561,8 @@ void sp_free_config(struct sp_port_config *config); * ignored by sp_set_config(). * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_config(struct sp_port *port, struct sp_port_config *config); @@ -437,6 +574,8 @@ enum sp_return sp_get_config(struct sp_port *port, struct sp_port_config *config * and the corresponding setting left unchanged on the port. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_config(struct sp_port *port, const struct sp_port_config *config); @@ -447,6 +586,8 @@ enum sp_return sp_set_config(struct sp_port *port, const struct sp_port_config * * @param baudrate Baud rate in bits per second. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_baudrate(struct sp_port *port, int baudrate); @@ -460,6 +601,8 @@ enum sp_return sp_set_baudrate(struct sp_port *port, int baudrate); * @param baudrate_ptr Pointer to variable to store result. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_config_baudrate(const struct sp_port_config *config, int *baudrate_ptr); @@ -470,6 +613,8 @@ enum sp_return sp_get_config_baudrate(const struct sp_port_config *config, int * * @param baudrate Baud rate in bits per second, or -1 to retain current setting. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_config_baudrate(struct sp_port_config *config, int baudrate); @@ -480,6 +625,8 @@ enum sp_return sp_set_config_baudrate(struct sp_port_config *config, int baudrat * @param bits Number of data bits. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_bits(struct sp_port *port, int bits); @@ -493,6 +640,8 @@ enum sp_return sp_set_bits(struct sp_port *port, int bits); * @param bits_ptr Pointer to variable to store result. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_config_bits(const struct sp_port_config *config, int *bits_ptr); @@ -503,6 +652,8 @@ enum sp_return sp_get_config_bits(const struct sp_port_config *config, int *bits * @param bits Number of data bits, or -1 to retain current setting. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_config_bits(struct sp_port_config *config, int bits); @@ -513,6 +664,8 @@ enum sp_return sp_set_config_bits(struct sp_port_config *config, int bits); * @param parity Parity setting. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_parity(struct sp_port *port, enum sp_parity parity); @@ -526,6 +679,8 @@ enum sp_return sp_set_parity(struct sp_port *port, enum sp_parity parity); * @param parity_ptr Pointer to variable to store result. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_config_parity(const struct sp_port_config *config, enum sp_parity *parity_ptr); @@ -536,6 +691,8 @@ enum sp_return sp_get_config_parity(const struct sp_port_config *config, enum sp * @param parity Parity setting, or -1 to retain current setting. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_config_parity(struct sp_port_config *config, enum sp_parity parity); @@ -546,6 +703,8 @@ enum sp_return sp_set_config_parity(struct sp_port_config *config, enum sp_parit * @param stopbits Number of stop bits. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_stopbits(struct sp_port *port, int stopbits); @@ -559,6 +718,8 @@ enum sp_return sp_set_stopbits(struct sp_port *port, int stopbits); * @param stopbits_ptr Pointer to variable to store result. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_config_stopbits(const struct sp_port_config *config, int *stopbits_ptr); @@ -569,6 +730,8 @@ enum sp_return sp_get_config_stopbits(const struct sp_port_config *config, int * * @param stopbits Number of stop bits, or -1 to retain current setting. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_config_stopbits(struct sp_port_config *config, int stopbits); @@ -579,6 +742,8 @@ enum sp_return sp_set_config_stopbits(struct sp_port_config *config, int stopbit * @param rts RTS pin mode. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_rts(struct sp_port *port, enum sp_rts rts); @@ -592,6 +757,8 @@ enum sp_return sp_set_rts(struct sp_port *port, enum sp_rts rts); * @param rts_ptr Pointer to variable to store result. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_config_rts(const struct sp_port_config *config, enum sp_rts *rts_ptr); @@ -602,6 +769,8 @@ enum sp_return sp_get_config_rts(const struct sp_port_config *config, enum sp_rt * @param rts RTS pin mode, or -1 to retain current setting. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_config_rts(struct sp_port_config *config, enum sp_rts rts); @@ -612,6 +781,8 @@ enum sp_return sp_set_config_rts(struct sp_port_config *config, enum sp_rts rts) * @param cts CTS pin mode. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_cts(struct sp_port *port, enum sp_cts cts); @@ -625,6 +796,8 @@ enum sp_return sp_set_cts(struct sp_port *port, enum sp_cts cts); * @param cts_ptr Pointer to variable to store result. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_config_cts(const struct sp_port_config *config, enum sp_cts *cts_ptr); @@ -635,6 +808,8 @@ enum sp_return sp_get_config_cts(const struct sp_port_config *config, enum sp_ct * @param cts CTS pin mode, or -1 to retain current setting. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_config_cts(struct sp_port_config *config, enum sp_cts cts); @@ -645,6 +820,8 @@ enum sp_return sp_set_config_cts(struct sp_port_config *config, enum sp_cts cts) * @param dtr DTR pin mode. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_dtr(struct sp_port *port, enum sp_dtr dtr); @@ -658,6 +835,8 @@ enum sp_return sp_set_dtr(struct sp_port *port, enum sp_dtr dtr); * @param dtr_ptr Pointer to variable to store result. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_config_dtr(const struct sp_port_config *config, enum sp_dtr *dtr_ptr); @@ -668,6 +847,8 @@ enum sp_return sp_get_config_dtr(const struct sp_port_config *config, enum sp_dt * @param dtr DTR pin mode, or -1 to retain current setting. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_config_dtr(struct sp_port_config *config, enum sp_dtr dtr); @@ -678,6 +859,8 @@ enum sp_return sp_set_config_dtr(struct sp_port_config *config, enum sp_dtr dtr) * @param dsr DSR pin mode. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_dsr(struct sp_port *port, enum sp_dsr dsr); @@ -691,6 +874,8 @@ enum sp_return sp_set_dsr(struct sp_port *port, enum sp_dsr dsr); * @param dsr_ptr Pointer to variable to store result. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_config_dsr(const struct sp_port_config *config, enum sp_dsr *dsr_ptr); @@ -701,6 +886,8 @@ enum sp_return sp_get_config_dsr(const struct sp_port_config *config, enum sp_ds * @param dsr DSR pin mode, or -1 to retain current setting. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_config_dsr(struct sp_port_config *config, enum sp_dsr dsr); @@ -711,6 +898,8 @@ enum sp_return sp_set_config_dsr(struct sp_port_config *config, enum sp_dsr dsr) * @param xon_xoff XON/XOFF mode. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_xon_xoff(struct sp_port *port, enum sp_xonxoff xon_xoff); @@ -724,6 +913,8 @@ enum sp_return sp_set_xon_xoff(struct sp_port *port, enum sp_xonxoff xon_xoff); * @param xon_xoff_ptr Pointer to variable to store result. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_get_config_xon_xoff(const struct sp_port_config *config, enum sp_xonxoff *xon_xoff_ptr); @@ -734,6 +925,8 @@ enum sp_return sp_get_config_xon_xoff(const struct sp_port_config *config, enum * @param xon_xoff XON/XOFF mode, or -1 to retain current setting. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_config_xon_xoff(struct sp_port_config *config, enum sp_xonxoff xon_xoff); @@ -749,6 +942,8 @@ enum sp_return sp_set_config_xon_xoff(struct sp_port_config *config, enum sp_xon * @param flowcontrol Flow control setting to use. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_config_flowcontrol(struct sp_port_config *config, enum sp_flowcontrol flowcontrol); @@ -764,6 +959,8 @@ enum sp_return sp_set_config_flowcontrol(struct sp_port_config *config, enum sp_ * @param flowcontrol Flow control setting to use. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_set_flowcontrol(struct sp_port *port, enum sp_flowcontrol flowcontrol); @@ -796,6 +993,8 @@ enum sp_return sp_set_flowcontrol(struct sp_port *port, enum sp_flowcontrol flow * timeout was reached before the requested number of bytes was * available. If timeout is zero, the function will always return * either the requested number of bytes or a negative error code. + * + * @since 0.1.0 */ enum sp_return sp_blocking_read(struct sp_port *port, void *buf, size_t count, unsigned int timeout); @@ -809,6 +1008,8 @@ enum sp_return sp_blocking_read(struct sp_port *port, void *buf, size_t count, u * @return The number of bytes read on success, or a negative error code. The * number of bytes returned may be any number from zero to the maximum * that was requested. + * + * @since 0.1.0 */ enum sp_return sp_nonblocking_read(struct sp_port *port, void *buf, size_t count); @@ -843,6 +1044,8 @@ enum sp_return sp_nonblocking_read(struct sp_port *port, void *buf, size_t count * 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. + * + * @since 0.1.0 */ enum sp_return sp_blocking_write(struct sp_port *port, const void *buf, size_t count, unsigned int timeout); @@ -862,6 +1065,8 @@ enum sp_return sp_blocking_write(struct sp_port *port, const void *buf, size_t c * @return The number of bytes written on success, or a negative error code. * The number of bytes returned may be any number from zero to the * maximum that was requested. + * + * @since 0.1.0 */ enum sp_return sp_nonblocking_write(struct sp_port *port, const void *buf, size_t count); @@ -871,6 +1076,8 @@ enum sp_return sp_nonblocking_write(struct sp_port *port, const void *buf, size_ * @param port Pointer to port structure. * * @return Number of bytes waiting on success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_input_waiting(struct sp_port *port); @@ -880,6 +1087,8 @@ enum sp_return sp_input_waiting(struct sp_port *port); * @param port Pointer to port structure. * * @return Number of bytes waiting on success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_output_waiting(struct sp_port *port); @@ -890,6 +1099,8 @@ enum sp_return sp_output_waiting(struct sp_port *port); * @param buffers Which buffer(s) to flush. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_flush(struct sp_port *port, enum sp_buffer buffers); @@ -906,6 +1117,8 @@ enum sp_return sp_flush(struct sp_port *port, enum sp_buffer buffers); * @param port Pointer to port structure. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_drain(struct sp_port *port); @@ -924,6 +1137,8 @@ enum sp_return sp_drain(struct sp_port *port); * The result should be freed after use by calling sp_free_event_set(). * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_new_event_set(struct sp_event_set **result_ptr); @@ -941,6 +1156,8 @@ enum sp_return sp_new_event_set(struct sp_event_set **result_ptr); * @param mask Bitmask of events to be waited for. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_add_port_events(struct sp_event_set *event_set, const struct sp_port *port, enum sp_event mask); @@ -952,11 +1169,15 @@ enum sp_return sp_add_port_events(struct sp_event_set *event_set, * @param timeout Timeout in milliseconds, or zero to wait indefinitely. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_wait(struct sp_event_set *event_set, unsigned int timeout); /** * Free a structure allocated by sp_new_event_set(). + * + * @since 0.1.0 */ void sp_free_event_set(struct sp_event_set *event_set); @@ -978,6 +1199,8 @@ void sp_free_event_set(struct sp_event_set *event_set); * @param signals 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); @@ -987,6 +1210,8 @@ enum sp_return sp_get_signals(struct sp_port *port, enum sp_signal *signals); * @param port Pointer to port structure. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_start_break(struct sp_port *port); @@ -996,6 +1221,8 @@ enum sp_return sp_start_break(struct sp_port *port); * @param port Pointer to port structure. * * @return SP_OK upon success, a negative error code otherwise. + * + * @since 0.1.0 */ enum sp_return sp_end_break(struct sp_port *port); @@ -1013,6 +1240,8 @@ enum sp_return sp_end_break(struct sp_port *port); * * @return The system's numeric code for the error that caused the last * operation to fail. + * + * @since 0.1.0 */ int sp_last_error_code(void); @@ -1025,11 +1254,15 @@ int sp_last_error_code(void); * @return The system's message for the error that caused the last * operation to fail. This string may be allocated by the function, * and should be freed after use by calling sp_free_error_message(). + * + * @since 0.1.0 */ char *sp_last_error_message(void); /** * Free an error message returned by sp_last_error_message(). + * + * @since 0.1.0 */ void sp_free_error_message(char *message); @@ -1044,6 +1277,8 @@ void sp_free_error_message(char *message); * argument list, in the same manner as e.g. printf(). * * The default handler is sp_default_debug_handler(). + * + * @since 0.1.0 */ void sp_set_debug_handler(void (*handler)(const char *format, ...)); @@ -1053,6 +1288,8 @@ void sp_set_debug_handler(void (*handler)(const char *format, ...)); * This function prints debug messages to the standard error stream if the * environment variable LIBSERIALPORT_DEBUG is set. Otherwise, they are * ignored. + * + * @since 0.1.0 */ void sp_default_debug_handler(const char *format, ...);