ChibiOS/HAL 9.0.0
|
This module define an abstract interface for generic data streams. Note that no code is present, just abstract interfaces-like structures, you should look at the system as to a set of abstract C++ classes (even if written in C). This system has then advantage to make the access to data streams independent from the implementation logic.
The stream interface can be used as base class for high level object types such as files, sockets, serial ports, pipes etc.
Streams return codes | |
#define | STM_OK MSG_OK |
#define | STM_TIMEOUT MSG_TIMEOUT |
#define | STM_RESET MSG_RESET |
Macro Functions (BaseSequentialStream) | |
#define | streamWrite(ip, bp, n) |
Sequential Stream write. | |
#define | streamRead(ip, bp, n) |
Sequential Stream read. | |
#define | streamPut(ip, b) |
Sequential Stream blocking byte write. | |
#define | streamGet(ip) |
Sequential Stream blocking byte read. |
Macro Functions (BaseBufferedStream) | |
#define | streamUnget(ip, b) |
Buffered Stream unget. |
Data Structures | |
struct | BaseSequentialStreamVMT |
BaseSequentialStream virtual methods table. More... | |
struct | BaseSequentialStream |
Base stream class. More... | |
struct | BaseBufferedStreamVMT |
BaseBufferedStream virtual methods table. More... | |
struct | BaseBufferedStream |
Buffered stream class. More... |
Macros | |
#define | _base_sequential_stream_methods |
BaseSequentialStream specific methods. | |
#define | _base_sequential_stream_data _base_object_data |
BaseSequentialStream specific data. | |
#define | _base_buffered_stream_methods |
BaseBufferedStream specific methods. | |
#define | _base_buffered_stream_data _base_sequential_stream_data |
BaseBufferedStream specific data. |
#define STM_OK MSG_OK |
Definition at line 49 of file hal_streams.h.
#define STM_TIMEOUT MSG_TIMEOUT |
Definition at line 50 of file hal_streams.h.
#define STM_RESET MSG_RESET |
Definition at line 51 of file hal_streams.h.
Referenced by _unget(), bsaObjectInit(), and chvscanf().
#define _base_sequential_stream_methods |
BaseSequentialStream specific methods.
Definition at line 57 of file hal_streams.h.
#define _base_sequential_stream_data _base_object_data |
BaseSequentialStream
specific data.
BaseSequentialStream
is only an interface without implementation. Definition at line 73 of file hal_streams.h.
#define streamWrite | ( | ip, | |
bp, | |||
n ) |
Sequential Stream write.
The function writes data from a buffer to a stream.
[in] | ip | pointer to a BaseSequentialStream or derived class |
[in] | bp | pointer to the data buffer |
[in] | n | the maximum amount of data to be transferred |
Definition at line 113 of file hal_streams.h.
#define streamRead | ( | ip, | |
bp, | |||
n ) |
Sequential Stream read.
The function reads data from a stream into a buffer.
[in] | ip | pointer to a BaseSequentialStream or derived class |
[out] | bp | pointer to the data buffer |
[in] | n | the maximum amount of data to be transferred |
Definition at line 128 of file hal_streams.h.
#define streamPut | ( | ip, | |
b ) |
Sequential Stream blocking byte write.
This function writes a byte value to a channel. If the channel is not ready to accept data then the calling thread is suspended.
[in] | ip | pointer to a BaseChannel or derived class |
[in] | b | the byte value to be written to the channel |
STM_OK | if the operation succeeded. |
STM_RESET | if an end-of-file condition has been met. |
Definition at line 144 of file hal_streams.h.
Referenced by chvprintf().
#define streamGet | ( | ip | ) |
Sequential Stream blocking byte read.
This function reads a byte value from a channel. If the data is not available then the calling thread is suspended.
[in] | ip | pointer to a BaseChannel or derived class |
STM_RESET | if an end-of-file condition has been met. |
Definition at line 158 of file hal_streams.h.
Referenced by chvscanf().
#define _base_buffered_stream_methods |
BaseBufferedStream
specific methods.
Definition at line 164 of file hal_streams.h.
#define _base_buffered_stream_data _base_sequential_stream_data |
BaseBufferedStream
specific data.
BaseBufferedStream
is only an interface without implementation. Definition at line 174 of file hal_streams.h.
#define streamUnget | ( | ip, | |
b ) |
Buffered Stream unget.
This function replaces a byte value to a stream. streamUnget only guarantees a single byte can be replaced, and multiple calls without intervening calls to streamGet or streamRead may fail
[in] | ip | pointer to a BaseBufferedStream or derived class |
[in] | b | the byte value to be written to the channel |
STM_OK | if the operation succeeded. |
STM_RESET | if the operation failed |
Definition at line 220 of file hal_streams.h.
Referenced by chvscanf().