SmartPipe. Первое включение.
SmartPipe — это USB-Serial адаптер, но с одной важной фичей, девайс может мониторить все строки, которые он получает по UART/USB и фильтровать/редактировать их с помощью набора простых правил.
То есть например если интересны вызовы функции «get_more_info» в потоке лога, написав простое правило, можно «раскрасить» лог этой функции в красный цвет для заметности. Аналогичным образом для любой строки из лога в любой момент вы можете:
На сайте устройства (fibell.com.ua) описано как включить и что установить, чтобы SmartPipe заработал (подробнее см. на сайте Первое включение). Но вкратце все просто. Подключили SmartPipe к компьютеру через USB, компьютер опознает девайс как два виртуальных порта и MassStorage, установили, если надо, драйвера (их можно найти на MassStorage устройстве или на сайте) и все — девайс уже работает… но только как обычный USB-Serial адаптер, где:
И так мы получили обычный USB-UART адаптер, теперь настроим SmartPipe для обработки логов, и для примера возьмем вот такие логи:
Чтобы паралельно с написанием статьи не создавать «на коленях» своего «терминатора серии 800, модель 101» для генерации лога, воспользуемся конфигурацией каналов SmartPipe — test. Конфигурация каналов — это описание того как данные «движуться» между Serial портами устройства. SmartPipe имеет несколько Serial портов для работы: два виртуальных COM порта(USB-COMx) для связи с компьютером и один UART порт (RXD/TXD/GND). Все эти порты можно конфигурировать между собой в каналы обмена данных. В девайсе уже сконфигурированы три канала по умолчанию: direct, test, filter. Канал test это соединение двух виртуальных портов USB-COM1 <-> USB-COM2, что очень удобно для тестирования — в одной консоли пишеш данные от «терминатора» в другой смотрим лог. Более подробную информацию о каналах и о всем остальном можно узнать на сайте.
И так настравиваем SmartPipe:
1. Начальные условия.
9. Теперь нам надо выйти из COMMAND MODE.
11. Берем наш лог для примера и копируем в USB-COM2 терминал. Данные «пройдут» по каналу test и будут обработаны в соответствии с нашими правилами. В USB-COM1 терминале должен появиться примерно такой лог: (примерно, потому что многое зависит от терминала который вы используете, если он не понимает ESС-последовательности то «покрасить» лог не получиться)
Для настройки работы с реальным устройством через UART, шаги аналогичные, только необходимо выбрать конфигурацию filter в шаге 3. И помнить что для работы UART порта его надо правильно сконфигурирвать (baudrate/stiopbits и тд.). Это делается через настройки терминальной программы на USB-COM1/USB-VCOM2 портах, которые автоматически применяются к UART порту SmartPipe.
То есть например если интересны вызовы функции «get_more_info» в потоке лога, написав простое правило, можно «раскрасить» лог этой функции в красный цвет для заметности. Аналогичным образом для любой строки из лога в любой момент вы можете:
- добавить символы/пробелы;
- изменить фон/цвет символов;
- добавить дамп времени;
- пропустить не нужные строки лога;
- получить циклограмму работы программы (вместе с OLS Logic Sniffer client);
- построить графики изменения переменных (вместе с gnuplot);
- и тд;
На сайте устройства (fibell.com.ua) описано как включить и что установить, чтобы SmartPipe заработал (подробнее см. на сайте Первое включение). Но вкратце все просто. Подключили SmartPipe к компьютеру через USB, компьютер опознает девайс как два виртуальных порта и MassStorage, установили, если надо, драйвера (их можно найти на MassStorage устройстве или на сайте) и все — девайс уже работает… но только как обычный USB-Serial адаптер, где:
- Serial — это урезанный UART порт RXD/TXD/GND сигналами ,
- USB — это первый виртуальный порт девайса USB-COM1, номер которого в Windows можно узнать в Device Manager(Диспечер устройств) (ищем SmartPipe USB-COM1 Port в описании устройства)
И так мы получили обычный USB-UART адаптер, теперь настроим SmartPipe для обработки логов, и для примера возьмем вот такие логи:
main.c line:12 Start device.
main.c line:38 Init.
msg.code:38
dev.c line:118
create dev 1
msg.code:12
msg.code:54
msg.code:38
dev.c line:118
create dev 2
Чтобы паралельно с написанием статьи не создавать «на коленях» своего «терминатора серии 800, модель 101» для генерации лога, воспользуемся конфигурацией каналов SmartPipe — test. Конфигурация каналов — это описание того как данные «движуться» между Serial портами устройства. SmartPipe имеет несколько Serial портов для работы: два виртуальных COM порта(USB-COMx) для связи с компьютером и один UART порт (RXD/TXD/GND). Все эти порты можно конфигурировать между собой в каналы обмена данных. В девайсе уже сконфигурированы три канала по умолчанию: direct, test, filter. Канал test это соединение двух виртуальных портов USB-COM1 <-> USB-COM2, что очень удобно для тестирования — в одной консоли пишеш данные от «терминатора» в другой смотрим лог. Более подробную информацию о каналах и о всем остальном можно узнать на сайте.
И так настравиваем SmartPipe:
1. Начальные условия.
- Мы включили девайс и настроили терминальную программу, например TeraTerm (см. на сайте Первое включение) для работы с USB-COM1 (настройки самого порта baudrate/stiopbits и тд. которые вы выставляете при настройки терминальной программы применяются к UART порту SmartPipe и для нашего примера значения не имеют, кроме двух важных параметров для настройки TeraTerm это: Setup/Serial port.../Flow control = none; Setup/Terminal.../Transmit = CR+LF ).
- Для этого нажимаем комбинацию клавиш CTRL-Q/CTRL-S/ENTER.
- Видим приглашение для ввода «sLog#
- Если это не первое включение и вы уже добавляли правила, то можно их удалить вызвав команду eraseall
- Выполняем команду: add :;;test;
- O правилах подробнее можно узнать на сайте, скажу только что „магическая“ последовательность »:;;" означает, что это правило будет выполнять только один раз при начале работы с правилами.
- Выполняем команду: add :;;resettime;
- Выполняем команду: add :*msg.code:*;;format =====> Signal: @;
- Выполняем команду: add :*.c*;;ltime;
- Выполняем команду: add :*line*;;lcolor red;
- Выполняем команду: list
- После всех этих шагов мы должны получить список правил для работы устройства.
9. Теперь нам надо выйти из COMMAND MODE.
- Вызываем команду:exit
11. Берем наш лог для примера и копируем в USB-COM2 терминал. Данные «пройдут» по каналу test и будут обработаны в соответствии с нашими правилами. В USB-COM1 терминале должен появиться примерно такой лог: (примерно, потому что многое зависит от терминала который вы используете, если он не понимает ESС-последовательности то «покрасить» лог не получиться)
Для настройки работы с реальным устройством через UART, шаги аналогичные, только необходимо выбрать конфигурацию filter в шаге 3. И помнить что для работы UART порта его надо правильно сконфигурирвать (baudrate/stiopbits и тд.). Это делается через настройки терминальной программы на USB-COM1/USB-VCOM2 портах, которые автоматически применяются к UART порту SmartPipe.
0 комментариев