isrpipe.h¶
isrpipe Interface
-
ISRPIPE_INIT
( tsrb_buf)¶ Static initializer for irspipe.
1
{ .mutex = MUTEX_INIT, .tsrb = TSRB_INIT(tsrb_buf) }
-
void
isrpipe_init
(isrpipe_t * isrpipe, char * buf,msp430_types.h::size_t
bufsize)¶ Initialisation function for isrpipe.
Parameters
isrpipe: isrpipe object to initialize buf: buffer to use as ringbuffer (must be power of two sized!) bufsize: size of buf
-
int
isrpipe_write_one
(isrpipe_t * isrpipe, char c)¶ Put one character into the isrpipe’s buffer.
Parameters
isrpipe: isrpipe object to initialize c: character to add to isrpipe buffer Return values
- 0 if character could be added
- -1 if buffer was full
-
int
isrpipe_read
(isrpipe_t * isrpipe, char * buf,msp430_types.h::size_t
count)¶ Read data from isrpipe (blocking)
Parameters
isrpipe: isrpipe object to operate on buf: buffer to write to count: number of bytes to read Return values
- number of bytes read
-
int
isrpipe_read_timeout
(isrpipe_t * isrpipe, char * buf,msp430_types.h::size_t
count, uint32_t timeout)¶ Read data from isrpipe (with timeout, blocking)
Currently, the timeout parameter is applied on every underlying read, which might be per single byte.
Note
This function might return less than
count
bytesParameters
isrpipe: isrpipe object to operate on buf: buffer to write to count: number of bytes to read timeout: timeout in microseconds Return values
- number of bytes read
- -ETIMEDOUT on timeout
-
int
isrpipe_read_all_timeout
(isrpipe_t * isrpipe, char * buf,msp430_types.h::size_t
count, uint32_t timeout)¶ Read data from isrpipe (with timeout, blocking, wait until all read)
This function is like
isrpipe.h::isrpipe_read_timeout()
, but will only return on timeout or whencount
bytes have been received.Parameters
isrpipe: isrpipe object to operate on buf: buffer to write to count: number of bytes to read timeout: timeout in microseconds Return values
- number of bytes read
- -ETIMEDOUT on timeout
-
struct
isrpipe_t
¶ Context structure for isrpipe.
-
tsrb.h::tsrb_t
tsrb
¶ isrpipe thread safe ringbuffer
-