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_tbufsize)¶ 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_tcount)¶ 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_tcount, 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
countbytesParameters
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_tcount, 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 whencountbytes 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_ttsrb¶ isrpipe thread safe ringbuffer
-