std: Add std_serial_dev_open().

This commit is contained in:
Bert Vermeulen 2013-12-07 20:26:15 +01:00
parent d43b090816
commit 23dc666166
2 changed files with 27 additions and 0 deletions

View File

@ -181,6 +181,7 @@ typedef void (*std_dev_clear_t)(void *priv);
SR_PRIV int std_init(struct sr_context *sr_ctx, struct sr_dev_driver *di, SR_PRIV int std_init(struct sr_context *sr_ctx, struct sr_dev_driver *di,
const char *prefix); const char *prefix);
#ifdef HAVE_LIBSERIALPORT #ifdef HAVE_LIBSERIALPORT
SR_PRIV int std_serial_dev_open(struct sr_dev_inst *sdi);
SR_PRIV int std_serial_dev_acquisition_stop(struct sr_dev_inst *sdi, SR_PRIV int std_serial_dev_acquisition_stop(struct sr_dev_inst *sdi,
void *cb_data, dev_close_t dev_close_fn, void *cb_data, dev_close_t dev_close_fn,
struct sr_serial_dev_inst *serial, const char *prefix); struct sr_serial_dev_inst *serial, const char *prefix);

26
std.c
View File

@ -103,6 +103,32 @@ SR_PRIV int std_session_send_df_header(const struct sr_dev_inst *sdi,
#ifdef HAVE_LIBSERIALPORT #ifdef HAVE_LIBSERIALPORT
/*
* Standard serial driver dev_open() helper.
*
* This function can be used to implement the dev_open() driver API
* callback in drivers that use a serial port. The port is opened
* with the SERIAL_RDWR and SERIAL_NONBLOCK flags.
*
* If the open succeeded, the status field of the given sdi is set
* to SR_ST_ACTIVE.
*
* @retval SR_OK Success.
* @retval SR_ERR Serial port open failed.
*/
SR_PRIV int std_serial_dev_open(struct sr_dev_inst *sdi)
{
struct sr_serial_dev_inst *serial;
serial = sdi->conn;
if (serial_open(serial, SERIAL_RDWR | SERIAL_NONBLOCK) != SR_OK)
return SR_ERR;
sdi->status = SR_ST_ACTIVE;
return SR_OK;
}
/* /*
* Standard sr_session_stop() API helper. * Standard sr_session_stop() API helper.
* *