БЛОКИ ДЛЯ РАБОТЫ С КОНСОЛЬЮ
Потратили некоторое время на доработку библиотеки и блоков для работы с консолью. Для нас тема важная, так как при отладке мы активно используем вывод в UART. Стандартный блок "Отправка в UART" хорош, но есть некоторые сложности:
1. Для контроллеров с Native USB портом (Leonardo, Esplora, Zero, Due MKR Family, STM32) готовность консоли появляется только после подключения к ней физического устройства (например: компьютер, клавиатура, мышь и т.п.) и потому есть некоторые трудности в использовании на этих контроллерах.
2.На входе стандартного блока ожидается переменная String, а это значит, что появление только одного такого блока без вывода на него "тормозит" работу - для NANO около 200мкс.
Кроме того есть дополнительные желания:
1.Добавление перед выводом переменной заголовка.
2.Добавление после вывода переменной дополнительного символа. Удобно, когда переменные выводятся в одну строку- можно разделить их пробелом или подчеркиванием или т.п.
3.Упростить использования имеющихся возможностей - использование разных форматов вывода DEC,HEX,BIN,FLOAT,CHAR,STRING, Time (добавляется впереди 0, если значение <10), управление ПЕРЕВОДОМ СТРОКИ (есть/нет), одноразовый вывод, вывод по изменению, вывод по внешнему событию.
------------------------------------
Сам проект:
Дополненная библиотека:
------------------------------------
Сравнение быстродействия работы на разных контроллерах:
Nano - 103mcs, ESP8266 - 35mcs, ESP32 - 7mcs, STM32F103C -35mcs(как у ESP8266)