pio device monitor |
![]() |
Добавил(а) microsin | ||||||||||||||||||||||||||||
pio (или platformio) это утилита командной строки, поставляемая вместе с плагином PlatformIO для VScode. Она предназначенная для отладки встраиваемых приложений с помощью анализа сообщений лога. По функционалу она аналогична Serial Monitor популярной среды разработки Arduino IDE, но обладает расширенными функциональными возможностями. Общий синтаксис использования: pio device monitor [OPTIONS] Примечание: существуют две команды, которые делают одно и то же: pio и platformio. Для того, чтобы утилита pio была доступна для прямого запуска без необходимости ввода полного пути, в переменную PATH необходимо добавить следующий путь (это автоматически делает VScode IDE для окон встроенного терминала, когда в ней установлен плагин PlatformIO, когда команда code . открывает корневой каталог проекта): $HOME/.platformio/penv/bin:$HOME/.platformio/penv:$HOME/.platformio/python3/bin:$HOME/.pyenv/bin Утилита pio это консольное приложение, реализующее небольшой терминал. Оно само основано на Miniterm, и не реализует любые специальные фичи терминала, такие как обеспечение совместимости VT102. Однако наследуются эти функции из терминала, поверх которого Miniterm работает. Например на GNU/Linux при запуске из xterm будут поддерживаться escape-последовательности, обрабатываемые xterm. На Windows стандартная консоль cmd очень тупая, и она не поддерживает какие-либо esc-коды. Когда загружен драйвер ANSI.sys, добавляется поддержка некоторых escape-последовательностей. Miniterm поддерживает RFC 2217 remote serial ports и raw sockets с помощью URL Handlers, таких как rfc2217://< host>:< port> соответственно socket://< host>:< port> в качестве аргумента port при своем запуске. Для управления monitor поддерживает следующие горячие клавиши: Ctrl+C: Quit Пример вывода экрана подсказки: --- pySerial (3.5) - miniterm - help --- --- Ctrl+C Exit program (alias Ctrl+T Q) --- Ctrl+T Menu escape key, followed by: --- Menu keys: --- Ctrl+T Send the menu character itself to remote --- Ctrl+C Send the exit character itself to remote --- Ctrl+I Show info --- Ctrl+U Upload file (prompt will be shown) --- Ctrl+A encoding --- Ctrl+F edit filters --- Toggles: --- Ctrl+R RTS Ctrl+D DTR Ctrl+B BREAK --- Ctrl+E echo Ctrl+L EOL --- --- Port settings (Ctrl+T followed by the following): --- p change port --- 7 8 set data bits --- N E O S M change parity (None, Even, Odd, Space, Mark) --- 1 2 3 set stop bits (1, 2, 1.5) --- b change baud rate --- x X disable/enable software flow control --- r R disable/enable hardware flow control Опции команды pio device monitor: -p, --port Возможные значения для этой опции такие же, как документированы для опции проекта monitor_port [2]. -b, --baud Установит скорость UART, по умолчанию используется скорость 9600 бод. Скорость можно настроить в platformio.ini (файл конфигурации проекта [3]) с помощью опции monitor_speed [2]). --parity Установит четность фрейма (None, Even, Odd, Space, Mark), один из вариантов [N, E, O, S, M], по умолчанию используется N (None, бит четности не используется). Этот параметр также можно настроить в файле platformio.ini опцией monitor_parity [2]. --rtscts Разрешает управление потоком (flow control) с помощью сигналов RTS/CTS. --xonxoff Разрешает программное управление потоком (software flow control). --rts Установит начальное состояние линии RTS (0 или 1). Этот параметр может быть настроен файлом platformio.ini проекта в опции monitor_rts [2]. --dtr Установит начальное состоянии линии DTR (0 или 1). Этот параметр может быть настроен файлом platformio.ini проекта в опции monitor_dtr [2]. --echo Разрешает локальное эхо вводимых в консоли терминала символов. Этот параметр может быть настроен файлом platformio.ini проекта в опции monitor_echo [2]. --encoding Установит кодировку для последовательного порта (например hexlify, Latin-1, UTF-8), по умолчанию используется UTF-8. Полный список поддерживаемых кодировок см. в Python Standard Encodings. Кодировка может быть настроена файлом platformio.ini в опции monitor_encoding [2]. -f, --filter Добавляет преобразование текста. См. описание доступных фильтров Filters (см. врезку). PlatformIO позволяет вам применить несколько фильтров к потокам INPUT & OUTPUT команды pio device monitor с помощью опции командной строки --filter, или опции monitor_filters [2] файла настроек проекта platformio.ini [3]. [Встроенные фильтры]
[Community Filters] Это сторонние фильтры, которые не входят в установку PlatformIO Core. Их вам надо устанавливать вручную. Как использовать, см. их официальную документацию.
[Пользовательские фильтры] PlatformIO Core (CLI) предоставляет API для расширения device monitor пользовательскими фильтрами (custom filters). Каждый фильтр это файл на Python, и его имя должно иметь префикс filter_. В коде Python, вам нужно расширить класс DeviceMonitorFilterBase, чтобы получить доступ к rx() и tx() методам / callback-ам. PlatformIO Core (CLI) ищет пользовательские фильтры в следующих местах: monitor_dir [2] проекта Пример базового API см. в файле filter_demo.py. from platformio.public import DeviceMonitorFilterBase Примеры: https://github.com/platformio/platformio-core/tree/develop/platformio/device/monitor/filters --eol Режим окончания строки (End of line mode: CR, LF или CRLF), по умолчанию CRLF. Может быть настроено файлом platformio.ini в опции monitor_eol [2]. --raw Отключает любые кодировки/преобразования. Может быть настроено файлом platformio.ini в опции monitor_raw [2]. --exit-char ASCII-код специального символа для выхода из приложения, по умолчанию 3 (десятичное значение, соответствует Ctrl+C). Например, чтобы использовать для той же цели горячую клавишу Ctrl+], запустите run pio device monitor --exit-char 29. --menu-char ASCII-код специального символа, который используется для управления miniterm (menu), по умолчанию 20 (десятичное значение). ---quiet Диагностические сообщения: подавлять сообщения, не относящиеся к ошибкам (non-error messages), по умолчанию Off (выключено). --no-reconnect Запрет автоматического переподключения, если установка соединения потерпела неудачу. -d, --project-dir Укажет путь до директории проекта (где находится файл настроек platformio.ini). По умолчанию аргумент --project-dir соответствует текущей рабочей директории (current working directory, CWD). -e, --environment Обработка указанных окружений. Вы также можете указать, какие окружения должны быть обработаны по умолчанию с помощью опции default_envs файла platformio.ini [3]. [Захват вывода в файл] Чтобы сохранить вывод device monitor в файл, вы можете использовать фильтр log2file из Filters (см. врезку). По умолчанию файл лога сохраняется в папку logs, находящейся в корневой директории проекта. $ pio device monitor -f default -f log2file Как вариант, можно использовать файл конфигурации platformio.ini и опцию monitor_filters [2]. [env:log_output_to_file] ... [Примеры использования device monitor] 1. Покажет список доступных опций: $ pio device monitor --help Usage: pio device monitor [OPTIONS] 2. Обмен данными с устройством через UART и печать подсказки внутри терминала (для выдачи подскажки надо нажать Ctrl+T и затем Ctrl+H, не отпуская Ctrl): $ pio device monitor [Ссылки] 1. pio device monitor site:docs.platformio.org. |