SFMonitor - программа для визуализации потоков данных из последовательного порта. Первоначальная идея программы была заимствована у хорошего человека Eli Bendersky. 1. Установка1.1. Windows 1.2. Linux Исходные коды: https://github.com/makeitlab/software_tools.git SFMonitor реализован на языке python и для своей работы требует предварительной установки следующих пакетов:
Запуск приложения осуществляется с помощью скрипта "sfmonitor.pyw". 2. Интерфейс пользователя2.1. МенюФайл
Данные
Помощь
2.2. Форма
2.3. ГрафикГрафик поддерживает логарифмический режим, масштабирование и смешение при помощи мыши, формирование среднего, и т.п. 3. Форматы данныхSFMonitor имеет три формата данных: Простой (Simple), Функция y(t) (Complex v(t)), Функция y(x) (Complex y(x)). 3.1. ПростойВ режиме "Простой", монитор принимает поток одно-байтовых величин. При этом, из полученного каждый момент пачки байт отбирается только последний. В связи с этим, следует внимательно отнестись к скорости передачи данных. 3.2. ComplexРежимы Функция подразумевают передачу пакетов определенного формата. Формат пакета имеет вид: 0x12,0xA1,0x00,0x10,0x01,0xFF,0x13 Здесь: 0x12 и 0x13 - границы пакета; 0x10 - разделитель чисел; 0x00,0xA1 и 0x01, 0xFF - передаваемые числа в диапазоне от 0 до 65535 (или 0..255 в случае однобайтовых значений); 0x7D - экранирующий символ. В режиме Функция v(t) монитор берет только одно значение из каждого пакета. При этом, строится график v(t), где t - время получения пакета. Пакет Complex v(t) может содержать до трех значений, которые будут соответствовать трем графикам разных цветов. В режиме Функция y(x) для построения оси абсцисс используется второе значение пакета. Этот режим полезен, в случае, если важно отобразить не время приема данных, а реальное время их отправки, зафиксированное на приемнике. Для упрощения работы с вышеуказанным протоколом, была специально разработана библиотека SerialFlow для Arduino и Mbed. Скачать её можно тут: https://github.com/oevsegneev/arduino-dev/tree/master/libs/SerialFlow Пример программы для Arduino с использованием библиотеки SerialFlow, осуществляющей отправку показаний акселерометра. В данном случае, в мониторе следует выбрать режим Complex v(t). 4. Виды графика4.1. ГрафикПодходит для всех форматов данных. Отображает привычный всем график функции y(x). Если координата x превышает размер страницы (задается в меню Данные), то график переключается на следующую страницу. При переключении между страницами, старые данные стираются для увеличения производительности. 4.2. ВекторВ каждый момент времени отображает вектор значений в виде графика функции y(x), где x - номер ячейки вектора. 4.3. ПозицияВместо графика отображается прямоугольник с координатами {x, y}, которые берутся из 0-го потока. |
Программы >