Использование Streaming.h
вместо
Serial.print("Var 1:");Serial.println(var1);
Serial.print(" Var 2:");Serial.println(var2);
Serial.print(" Var 3:");Serial.println(var3);
можно написать
Serial << "Var 1:" << var1) << " Var 2:" << var2 << " Var 3:" << var3 << endl;
Определение <<
в Streaming.h
фактически переводит , что в серию обычных Serial.print()
вызовов. То есть <<
является синтаксическим сахаром, реализованным без увеличения размера кода.
Если вы не Streaming.h
установили, получите Streaming5.zip
от arduiniana.org . Разархивируйте его в директорию вашей библиотеки, например в ~/sketchbook/libraries
. Добавьте линию #include <Streaming.h>
в эскизы, где вы используете <<
в качестве оператора потока.
Предоставляются спецификаторы преобразования базы _HEX, _DEC, _OCT и _BIN, а также функция _FLOAT (с количеством десятичных знаков) и endl
. Например, чтобы вывести значения широты и долготы в форме типа «Ваши координаты -23.123, 135.4567», можно написать:
Serial << "Your coordinates are " << _FLOAT(latitude,3) << ", " << _FLOAT(longitude,4) << endl;
Это также может быть написано как
Serial << F("Your coordinates are ") << _FLOAT(latitude,3) << ", " << _FLOAT(longitude,4) << endl;
который будет хранить более длинную строку в PROGMEM вместо того, чтобы переносить ее в RAM.
Обратите внимание, Streaming.h
что не создает никаких строк как таковых; он просто доставляет текст своих <<
аргументов в поток. Класс PString в arduiniana может построить строки из потока входов, если строки вместо поточного вывода желательны и необходимы.