Arduino:Библиотеки/Streaming
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Библиотека Streaming[1]
Новички иногда задаются вопросом, почему в «языке Arduino» нет операторов для конкатенации, к которым многие привыкли, к примеру, в языках Java, VB, C#, C++ и т.д.
// на Arduino такое не сработает; очень жаль:
lcd.print("The button was pressed " + counter + " times");
// "кнопка была нажата " + counter + " раз"
Тем временем, опытные программисты обходят эту проблему, синтезируя потоки при помощи громоздкого повторяющегося кода вроде того, что показан ниже:
lcd.print("GPS #");
lcd.print(gpsno);
lcd.print(" date: "); // " дата: "
lcd.print(day);
lcd.print("-");
lcd.print(month);
lcd.print("-");
lcd.println(year); // брр!
Библиотека Streaming позволяет ужать такие фрагменты до строчек, напоминающих операцию конкатенации:
lcd << "GPS #" << gpsno << " date: " <<
day << "-" << month << "-" << year << endl;
Библиотека работает с любым классом, наследующим у Print:
Serial << "Counter: " << counter;
// Serial << "Счетчик: " << counter;
lcd << "Temp: " << t.get_temperature() << " degrees";
// lcd << "Температура: " << t.get_temperature() << " градусов";
my_pstring << "Hi Mom!" << endl;
// my_pstring << "Привет, мам!" << endl;
Кроме того, при помощи Streaming можно выполнять форматирование:
Serial << "Byte value: " << _HEX(b) << endl;
// Serial << "Значение байта: " << _HEX(b) << endl;
lcd << "The key pressed was " << _BYTE(c) << endl;
// lcd << "Нажатая клавиша: " << _BYTE(c) << endl;
Этот синтаксис знаком многим, его легко прочитать и ему легко научиться, но, что важнее всего, библиотека Streaming не потребляет абсолютно никаких ресурсов. Дело в том, что функции этого оператора являются, по сути, строковыми аналогами для функций print(), в результате чего размер скетча не увеличивается и не потребляет больше RAM-памяти.
Надеюсь, когда-нибудь это маленькое нововведение, позволяющее совмещать несколько печатаемых значений, станет частью официальной библиотеки Arduino.
Загрузка
Чтобы загрузить библиотеку, кликните по этой ссылке. Когда ZIP-файл скачается, распакуйте его. Обязательно проверьте эту папку на наличие файла «Streaming.h».
Установка
Чтобы использовать библиотеку, поместите распакованный ZIP-файл в папку для библиотек IDE Arduino. Чтобы узнать, где находится эта папка на PC, откройте IDE Arduino, кликните на Файл > Настройки (File > Preferences) – адрес папки будет указан в самом верху, в поле «Размещение папки скетчей» (Sketchbook location). Затем перезапустите IDE Arduino. Если папки «libraries» нет, ее нужно создать.
Версия
Узнать текущую версию библиотеки можно, найдя в файле «Streaming.h» фрагмент с STREAMING_LIBRARY_VERSION. Стояще справа число и будет текущей версией библиотеки.
Примеры
- streaming example - Пример для библиотеки Streaming
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |