Оглавление
Stream - интерфейс для работы с потоковыми данными (отправка и чтение). Наследует класс Print
Виртуальные #
Из Print #
virtual size_t write(uint8_t) = 0
virtual size_t write(const uint8_t *buffer, size_t size)
available #
virtual int available() = 0
Возвращает количество доступных для чтения байт в очереди
read #
virtual int read() = 0
Прочитать байт и убрать его из очереди. Вернёт
-1
, если доступных данных нетpeek #
virtual int peek() = 0
Прочитать байт, не убирая его из очереди. Вернёт
-1
, если доступных данных нетСистема #
setTimeout #
void setTimeout(unsigned long timeout)
Установить таймаут для чтения и парсинга в мс (по умолч. 1000 мс)
getTimeout #
unsigned long getTimeout(void)
Прочитать текущий таймаут
Чтение #
readString #
String readString()
Прочитать весь поток в строку до выхода таймаута
readStringUntil #
String readStringUntil(char terminator)
Прочитать весь поток в строку до выхода таймаута или до символа
terminator
. Сам терминатор не включается в строку, но удаляется из очереди.readBytes #
size_t readBytes(char *buffer, size_t length)
size_t readBytes(uint8_t *buffer, size_t length)
Прочитать данные из потока в буфер
buffer
длиной length
. Остановка чтения по таймауту или заполнению буфера. Вернёт количество записанных байт.readBytesUntil #
size_t readBytesUntil(char terminator, char *buffer, size_t length)
size_t readBytesUntil(char terminator, uint8_t *buffer, size_t length)
Прочитать данные из потока в буфер
buffer
длиной length
. Остановка чтения по таймауту, заполнению буфера или достижению символа terminator
. Сам терминатор не включается в строку, но удаляется из очереди. Вернёт количество записанных байт.Поиск #
find #
bool find(char target)
bool find(char *target)
bool find(uint8_t *target)
bool find(char *target, size_t length)
bool find(uint8_t *target, size_t length)
Читать данные, пока не встретится указанный символ, строка или набор данных указанной длины. Вернёт
true
при успехе, false
при выходе таймаута.find #
bool findUntil(char *target, char *terminator)
bool findUntil(uint8_t *target, char *terminator)
bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen)
bool findUntil(uint8_t *target, size_t targetLen, char *terminate, size_t termLen)
Читать данные, пока не встретится указанный символ, строка или набор данных указанной длины. Вернёт
true
при успехе, false
при выходе таймаута или при достижении строки-терминатора. Сам терминатор не включается в строку, но удаляется из очереди.Парсинг #
parseInt #
long parseInt(LookaheadMode lookahead = SKIP_ALL, char ignore = NO_IGNORE_CHAR)
Прочитать и вернуть целое число из потока. Будет читать байты, пока не встретит численный символ или минус
-
. Продолжит читать и преобразовывать в число до выхода таймаута или достижения отличного от числа символа:
lookahead
- режим пропуска символов при поиске числа:SKIP_ALL
- пропуск всех отличных от числа и знака минус-
SKIP_NONE
- ничего не пропускать (останутся непрочитанными)SKIP_WHITESPACE
- пропускать только пробельные символы
ignore
- символ, который можно пропустить без остановки парсинга, например разделитель тысяч
parseFloat #
float parseFloat(LookaheadMode lookahead = SKIP_ALL, char ignore = NO_IGNORE_CHAR)
Прочитать и вернуть число с плавающей точкой из потока. Будет читать байты, пока не встретит численный символ или минус
-
. Продолжит читать и преобразовывать в число до выхода таймаута или достижения отличного от числа символа:
lookahead
- режим пропуска символов при поиске числа:SKIP_ALL
- пропуск всех отличных от числа, знака минус-
и точки.
SKIP_NONE
- ничего не пропускать (останутся непрочитанными)SKIP_WHITESPACE
- пропускать только пробельные символы
ignore
- символ, который можно пропустить без остановки парсинга, например разделитель тысяч