mirror of
git://sigrok.org/libserialport
synced 2023-08-10 21:13:24 +03:00
Rename timeout to timeout_ms for clarity in a few places.
This commit is contained in:
parent
025c264448
commit
1b91c6eadb
@ -1026,7 +1026,7 @@ enum sp_return sp_set_flowcontrol(struct sp_port *port, enum sp_flowcontrol flow
|
|||||||
* @param[in] port Pointer to a port structure. Must not be NULL.
|
* @param[in] port Pointer to a port structure. Must not be NULL.
|
||||||
* @param[out] buf Buffer in which to store the bytes read. Must not be NULL.
|
* @param[out] buf Buffer in which to store the bytes read. Must not be NULL.
|
||||||
* @param[in] count Requested number of bytes to read.
|
* @param[in] count Requested number of bytes to read.
|
||||||
* @param[in] timeout Timeout in milliseconds, or zero to wait indefinitely.
|
* @param[in] timeout_ms Timeout in milliseconds, or zero to wait indefinitely.
|
||||||
*
|
*
|
||||||
* @return The number of bytes read on success, or a negative error code. If
|
* @return The number of bytes read on success, or a negative error code. If
|
||||||
* the number of bytes returned is less than that requested, the
|
* the number of bytes returned is less than that requested, the
|
||||||
@ -1036,7 +1036,7 @@ enum sp_return sp_set_flowcontrol(struct sp_port *port, enum sp_flowcontrol flow
|
|||||||
*
|
*
|
||||||
* @since 0.1.0
|
* @since 0.1.0
|
||||||
*/
|
*/
|
||||||
enum sp_return sp_blocking_read(struct sp_port *port, void *buf, size_t count, unsigned int timeout);
|
enum sp_return sp_blocking_read(struct sp_port *port, void *buf, size_t count, unsigned int timeout_ms);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read bytes from the specified serial port, without blocking.
|
* Read bytes from the specified serial port, without blocking.
|
||||||
@ -1075,7 +1075,7 @@ enum sp_return sp_nonblocking_read(struct sp_port *port, void *buf, size_t count
|
|||||||
* @param[in] port Pointer to a port structure. Must not be NULL.
|
* @param[in] port Pointer to a port structure. Must not be NULL.
|
||||||
* @param[in] buf Buffer containing the bytes to write. Must not be NULL.
|
* @param[in] buf Buffer containing the bytes to write. Must not be NULL.
|
||||||
* @param[in] count Requested number of bytes to write.
|
* @param[in] count Requested number of bytes to write.
|
||||||
* @param[in] timeout Timeout in milliseconds, or zero to wait indefinitely.
|
* @param[in] timeout_ms Timeout in milliseconds, or zero to wait indefinitely.
|
||||||
*
|
*
|
||||||
* @return The number of bytes written on success, or a negative error code.
|
* @return The number of bytes written on success, or a negative error code.
|
||||||
* If the number of bytes returned is less than that requested, the
|
* If the number of bytes returned is less than that requested, the
|
||||||
@ -1087,7 +1087,7 @@ enum sp_return sp_nonblocking_read(struct sp_port *port, void *buf, size_t count
|
|||||||
*
|
*
|
||||||
* @since 0.1.0
|
* @since 0.1.0
|
||||||
*/
|
*/
|
||||||
enum sp_return sp_blocking_write(struct sp_port *port, const void *buf, size_t count, unsigned int timeout);
|
enum sp_return sp_blocking_write(struct sp_port *port, const void *buf, size_t count, unsigned int timeout_ms);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write bytes to the specified serial port, without blocking.
|
* Write bytes to the specified serial port, without blocking.
|
||||||
@ -1214,13 +1214,13 @@ enum sp_return sp_add_port_events(struct sp_event_set *event_set,
|
|||||||
* Wait for any of a set of events to occur.
|
* Wait for any of a set of events to occur.
|
||||||
*
|
*
|
||||||
* @param[in] event_set Event set to wait on. Must not be NULL.
|
* @param[in] event_set Event set to wait on. Must not be NULL.
|
||||||
* @param[in] timeout Timeout in milliseconds, or zero to wait indefinitely.
|
* @param[in] timeout_ms Timeout in milliseconds, or zero to wait indefinitely.
|
||||||
*
|
*
|
||||||
* @return SP_OK upon success, a negative error code otherwise.
|
* @return SP_OK upon success, a negative error code otherwise.
|
||||||
*
|
*
|
||||||
* @since 0.1.0
|
* @since 0.1.0
|
||||||
*/
|
*/
|
||||||
enum sp_return sp_wait(struct sp_event_set *event_set, unsigned int timeout);
|
enum sp_return sp_wait(struct sp_event_set *event_set, unsigned int timeout_ms);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Free a structure allocated by sp_new_event_set().
|
* Free a structure allocated by sp_new_event_set().
|
||||||
|
60
serialport.c
60
serialport.c
@ -713,18 +713,18 @@ SP_API enum sp_return sp_drain(struct sp_port *port)
|
|||||||
}
|
}
|
||||||
|
|
||||||
SP_API enum sp_return sp_blocking_write(struct sp_port *port, const void *buf,
|
SP_API enum sp_return sp_blocking_write(struct sp_port *port, const void *buf,
|
||||||
size_t count, unsigned int timeout)
|
size_t count, unsigned int timeout_ms)
|
||||||
{
|
{
|
||||||
TRACE("%p, %p, %d, %d", port, buf, count, timeout);
|
TRACE("%p, %p, %d, %d", port, buf, count, timeout_ms);
|
||||||
|
|
||||||
CHECK_OPEN_PORT();
|
CHECK_OPEN_PORT();
|
||||||
|
|
||||||
if (!buf)
|
if (!buf)
|
||||||
RETURN_ERROR(SP_ERR_ARG, "Null buffer");
|
RETURN_ERROR(SP_ERR_ARG, "Null buffer");
|
||||||
|
|
||||||
if (timeout)
|
if (timeout_ms)
|
||||||
DEBUG_FMT("Writing %d bytes to port %s, timeout %d ms",
|
DEBUG_FMT("Writing %d bytes to port %s, timeout %d ms",
|
||||||
count, port->name, timeout);
|
count, port->name, timeout_ms);
|
||||||
else
|
else
|
||||||
DEBUG_FMT("Writing %d bytes to port %s, no timeout",
|
DEBUG_FMT("Writing %d bytes to port %s, no timeout",
|
||||||
count, port->name);
|
count, port->name);
|
||||||
@ -747,7 +747,7 @@ SP_API enum sp_return sp_blocking_write(struct sp_port *port, const void *buf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Set timeout. */
|
/* Set timeout. */
|
||||||
port->timeouts.WriteTotalTimeoutConstant = timeout;
|
port->timeouts.WriteTotalTimeoutConstant = timeout_ms;
|
||||||
if (SetCommTimeouts(port->hdl, &port->timeouts) == 0)
|
if (SetCommTimeouts(port->hdl, &port->timeouts) == 0)
|
||||||
RETURN_FAIL("SetCommTimeouts() failed");
|
RETURN_FAIL("SetCommTimeouts() failed");
|
||||||
|
|
||||||
@ -772,12 +772,12 @@ SP_API enum sp_return sp_blocking_write(struct sp_port *port, const void *buf,
|
|||||||
fd_set fds;
|
fd_set fds;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
if (timeout) {
|
if (timeout_ms) {
|
||||||
/* Get time at start of operation. */
|
/* Get time at start of operation. */
|
||||||
gettimeofday(&start, NULL);
|
gettimeofday(&start, NULL);
|
||||||
/* Define duration of timeout. */
|
/* Define duration of timeout. */
|
||||||
delta.tv_sec = timeout / 1000;
|
delta.tv_sec = timeout_ms / 1000;
|
||||||
delta.tv_usec = (timeout % 1000) * 1000;
|
delta.tv_usec = (timeout_ms % 1000) * 1000;
|
||||||
/* Calculate time at which we should give up. */
|
/* Calculate time at which we should give up. */
|
||||||
timeradd(&start, &delta, &end);
|
timeradd(&start, &delta, &end);
|
||||||
}
|
}
|
||||||
@ -787,7 +787,7 @@ SP_API enum sp_return sp_blocking_write(struct sp_port *port, const void *buf,
|
|||||||
/* Wait until space is available. */
|
/* Wait until space is available. */
|
||||||
FD_ZERO(&fds);
|
FD_ZERO(&fds);
|
||||||
FD_SET(port->fd, &fds);
|
FD_SET(port->fd, &fds);
|
||||||
if (timeout) {
|
if (timeout_ms) {
|
||||||
gettimeofday(&now, NULL);
|
gettimeofday(&now, NULL);
|
||||||
if (timercmp(&now, &end, >)) {
|
if (timercmp(&now, &end, >)) {
|
||||||
DEBUG("Write timed out");
|
DEBUG("Write timed out");
|
||||||
@ -795,7 +795,7 @@ SP_API enum sp_return sp_blocking_write(struct sp_port *port, const void *buf,
|
|||||||
}
|
}
|
||||||
timersub(&end, &now, &delta);
|
timersub(&end, &now, &delta);
|
||||||
}
|
}
|
||||||
result = select(port->fd + 1, NULL, &fds, NULL, timeout ? &delta : NULL);
|
result = select(port->fd + 1, NULL, &fds, NULL, timeout_ms ? &delta : NULL);
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
if (errno == EINTR) {
|
if (errno == EINTR) {
|
||||||
DEBUG("select() call was interrupted, repeating");
|
DEBUG("select() call was interrupted, repeating");
|
||||||
@ -910,18 +910,18 @@ SP_API enum sp_return sp_nonblocking_write(struct sp_port *port,
|
|||||||
}
|
}
|
||||||
|
|
||||||
SP_API enum sp_return sp_blocking_read(struct sp_port *port, void *buf,
|
SP_API enum sp_return sp_blocking_read(struct sp_port *port, void *buf,
|
||||||
size_t count, unsigned int timeout)
|
size_t count, unsigned int timeout_ms)
|
||||||
{
|
{
|
||||||
TRACE("%p, %p, %d, %d", port, buf, count, timeout);
|
TRACE("%p, %p, %d, %d", port, buf, count, timeout_ms);
|
||||||
|
|
||||||
CHECK_OPEN_PORT();
|
CHECK_OPEN_PORT();
|
||||||
|
|
||||||
if (!buf)
|
if (!buf)
|
||||||
RETURN_ERROR(SP_ERR_ARG, "Null buffer");
|
RETURN_ERROR(SP_ERR_ARG, "Null buffer");
|
||||||
|
|
||||||
if (timeout)
|
if (timeout_ms)
|
||||||
DEBUG_FMT("Reading %d bytes from port %s, timeout %d ms",
|
DEBUG_FMT("Reading %d bytes from port %s, timeout %d ms",
|
||||||
count, port->name, timeout);
|
count, port->name, timeout_ms);
|
||||||
else
|
else
|
||||||
DEBUG_FMT("Reading %d bytes from port %s, no timeout",
|
DEBUG_FMT("Reading %d bytes from port %s, no timeout",
|
||||||
count, port->name);
|
count, port->name);
|
||||||
@ -936,7 +936,7 @@ SP_API enum sp_return sp_blocking_read(struct sp_port *port, void *buf,
|
|||||||
|
|
||||||
/* Set timeout. */
|
/* Set timeout. */
|
||||||
port->timeouts.ReadIntervalTimeout = 0;
|
port->timeouts.ReadIntervalTimeout = 0;
|
||||||
port->timeouts.ReadTotalTimeoutConstant = timeout;
|
port->timeouts.ReadTotalTimeoutConstant = timeout_ms;
|
||||||
if (SetCommTimeouts(port->hdl, &port->timeouts) == 0)
|
if (SetCommTimeouts(port->hdl, &port->timeouts) == 0)
|
||||||
RETURN_FAIL("SetCommTimeouts() failed");
|
RETURN_FAIL("SetCommTimeouts() failed");
|
||||||
|
|
||||||
@ -974,12 +974,12 @@ SP_API enum sp_return sp_blocking_read(struct sp_port *port, void *buf,
|
|||||||
fd_set fds;
|
fd_set fds;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
if (timeout) {
|
if (timeout_ms) {
|
||||||
/* Get time at start of operation. */
|
/* Get time at start of operation. */
|
||||||
gettimeofday(&start, NULL);
|
gettimeofday(&start, NULL);
|
||||||
/* Define duration of timeout. */
|
/* Define duration of timeout. */
|
||||||
delta.tv_sec = timeout / 1000;
|
delta.tv_sec = timeout_ms / 1000;
|
||||||
delta.tv_usec = (timeout % 1000) * 1000;
|
delta.tv_usec = (timeout_ms % 1000) * 1000;
|
||||||
/* Calculate time at which we should give up. */
|
/* Calculate time at which we should give up. */
|
||||||
timeradd(&start, &delta, &end);
|
timeradd(&start, &delta, &end);
|
||||||
}
|
}
|
||||||
@ -989,14 +989,14 @@ SP_API enum sp_return sp_blocking_read(struct sp_port *port, void *buf,
|
|||||||
/* Wait until data is available. */
|
/* Wait until data is available. */
|
||||||
FD_ZERO(&fds);
|
FD_ZERO(&fds);
|
||||||
FD_SET(port->fd, &fds);
|
FD_SET(port->fd, &fds);
|
||||||
if (timeout) {
|
if (timeout_ms) {
|
||||||
gettimeofday(&now, NULL);
|
gettimeofday(&now, NULL);
|
||||||
if (timercmp(&now, &end, >))
|
if (timercmp(&now, &end, >))
|
||||||
/* Timeout has expired. */
|
/* Timeout has expired. */
|
||||||
RETURN_INT(bytes_read);
|
RETURN_INT(bytes_read);
|
||||||
timersub(&end, &now, &delta);
|
timersub(&end, &now, &delta);
|
||||||
}
|
}
|
||||||
result = select(port->fd + 1, &fds, NULL, NULL, timeout ? &delta : NULL);
|
result = select(port->fd + 1, &fds, NULL, NULL, timeout_ms ? &delta : NULL);
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
if (errno == EINTR) {
|
if (errno == EINTR) {
|
||||||
DEBUG("select() call was interrupted, repeating");
|
DEBUG("select() call was interrupted, repeating");
|
||||||
@ -1235,22 +1235,22 @@ SP_API void sp_free_event_set(struct sp_event_set *event_set)
|
|||||||
}
|
}
|
||||||
|
|
||||||
SP_API enum sp_return sp_wait(struct sp_event_set *event_set,
|
SP_API enum sp_return sp_wait(struct sp_event_set *event_set,
|
||||||
unsigned int timeout)
|
unsigned int timeout_ms)
|
||||||
{
|
{
|
||||||
TRACE("%p, %d", event_set, timeout);
|
TRACE("%p, %d", event_set, timeout_ms);
|
||||||
|
|
||||||
if (!event_set)
|
if (!event_set)
|
||||||
RETURN_ERROR(SP_ERR_ARG, "Null event set");
|
RETURN_ERROR(SP_ERR_ARG, "Null event set");
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if (WaitForMultipleObjects(event_set->count, event_set->handles, FALSE,
|
if (WaitForMultipleObjects(event_set->count, event_set->handles, FALSE,
|
||||||
timeout ? timeout : INFINITE) == WAIT_FAILED)
|
timeout_ms ? timeout_ms : INFINITE) == WAIT_FAILED)
|
||||||
RETURN_FAIL("WaitForMultipleObjects() failed");
|
RETURN_FAIL("WaitForMultipleObjects() failed");
|
||||||
|
|
||||||
RETURN_OK();
|
RETURN_OK();
|
||||||
#else
|
#else
|
||||||
struct timeval start, delta, now, end = {0, 0};
|
struct timeval start, delta, now, end = {0, 0};
|
||||||
int result, timeout_remaining;
|
int result, timeout_remaining_ms;
|
||||||
struct pollfd *pollfds;
|
struct pollfd *pollfds;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
@ -1269,29 +1269,29 @@ SP_API enum sp_return sp_wait(struct sp_event_set *event_set,
|
|||||||
pollfds[i].events |= POLLERR;
|
pollfds[i].events |= POLLERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timeout) {
|
if (timeout_ms) {
|
||||||
/* Get time at start of operation. */
|
/* Get time at start of operation. */
|
||||||
gettimeofday(&start, NULL);
|
gettimeofday(&start, NULL);
|
||||||
/* Define duration of timeout. */
|
/* Define duration of timeout. */
|
||||||
delta.tv_sec = timeout / 1000;
|
delta.tv_sec = timeout_ms / 1000;
|
||||||
delta.tv_usec = (timeout % 1000) * 1000;
|
delta.tv_usec = (timeout_ms % 1000) * 1000;
|
||||||
/* Calculate time at which we should give up. */
|
/* Calculate time at which we should give up. */
|
||||||
timeradd(&start, &delta, &end);
|
timeradd(&start, &delta, &end);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Loop until an event occurs. */
|
/* Loop until an event occurs. */
|
||||||
while (1) {
|
while (1) {
|
||||||
if (timeout) {
|
if (timeout_ms) {
|
||||||
gettimeofday(&now, NULL);
|
gettimeofday(&now, NULL);
|
||||||
if (timercmp(&now, &end, >)) {
|
if (timercmp(&now, &end, >)) {
|
||||||
DEBUG("Wait timed out");
|
DEBUG("Wait timed out");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
timersub(&end, &now, &delta);
|
timersub(&end, &now, &delta);
|
||||||
timeout_remaining = delta.tv_sec * 1000 + delta.tv_usec / 1000;
|
timeout_remaining_ms = delta.tv_sec * 1000 + delta.tv_usec / 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = poll(pollfds, event_set->count, timeout ? timeout_remaining : -1);
|
result = poll(pollfds, event_set->count, timeout_ms ? timeout_remaining_ms : -1);
|
||||||
|
|
||||||
if (result < 0) {
|
if (result < 0) {
|
||||||
if (errno == EINTR) {
|
if (errno == EINTR) {
|
||||||
|
Loading…
Reference in New Issue
Block a user