Большое обновление в проекте sigrok
Команда разработчиков sigrok рада представить очередное крупное обновление всех компонентов проекта: libsigrok 0.5.0, libsigrokdecode 0.5.0, sigrok-firmware-fx2lafw 0.1.5, sigrok-cli 0.7.0 и PulseView 0.4.0.
Целью проекта sigrok является создание модульного переносимого кросс-платформенного СПО для захвата и анализа сигналов, поддерживающего большое количество различных устройств (логических анализаторов, осциллографов, мультиметров и т. п.). Основная лицензия проекта — GPL версии 3 или выше.
Релиз включает в себя множество обновлений, связанных с поддержкой новых устройств, новых декодеров различных протоколов, значительные усовершенствования графического интерфейса и большое количество других улучшений и исправлений.
libsigrok
Поддержка новых устройств в этом выпуске библиотеки:
- Логические анализаторы: CWAV USBee ZX, DreamSourceLab DSLogic and DSLogic Pro, FTDI LA (простой, базовый логический анализатор с использованием чипов FTDI напрямую).
- Осциллографы: Hameg HMO3524, Hantek 6022BE, LeCroy серии X-Stream, Rigol DS1074Z Plus, Rigol DS1104Z Plus, Rigol серии MSO2000A, Rocktech BM102, Rohde&Schwarz HMO 1002, Sainsmart DDS120.
- Логические анализаторы / Осциллографы (но не MSO): Hantek 6022BL.
- Программируемые источники питания: Agilent N5763A, HP 6633A, Rohde&Schwarz HMC8043.
- Электронные нагрузки: Arachnid Labs Re: load Pro.
- Мультиметры: Agilent U1241C/U1242C, Fluke 289, HP 3457A, Keysight U1281/U1282, Metrix MX56C, PeakTech 3330.
- Шумомеры: PCE PCE-322A.
- LCR-метры: PeakTech 2170.
- Генераторы сигналов: серия Rohde&Schwarz SME0x.
Практически каждый существующий драйвер подвергся многочисленным исправлениям и улучшениям.
Формат файла сессии sigrok (.sr
) теперь сохраняет аналоговые данные, в дополнение к цифровым. Также он обзавёлся зарегистрированным в IANA официальным MIME-типом: application/vnd.sigrok.session
.
Осуществлено исправление множества багов, касающихся переносимости, правок документации, улучшений в системе сборки и так далее.
Значительные изменения в API, подробности можете узнать в соотв. документации.
Более подробный список изменений предоставлен в файле NEWS, а также в истории коммитов.
libsigrokdecode
В этом выпуске добавлено 17 новых декодеров протоколов:
ade77xx
: протокол микросхемы для многофазного измерения и учёта электроэнергии.adf435x
: широкополосный синтезатор с встроенным управляемым осциллятором (VCO).aud
: протокол Renesas/Hitachi Advanced User Debugger (AUD).avr_pdi
: проприетарный интерфейс Atmel для микроконтроллеров ATxmega.dali
: протокол управления освещением DALI.dsi
: протокол управления освещением DSI.dmx512
: протокол управления освещением.eeprom93xx
: протокол Microwire для EEPROM серии 93xx.em4305
: протокол RFID EM4205/EM4305 100–150кГц.gpib
: протокол IEEE-488 GPIB / HPIB.iec
: протокол управления шиной Commodore serial IEEE-488 (IEC).microwire
: трёхпроводная синхронная последовательная шина с полудуплексом.ps2
: интерфейс подключение компьютерных мышей и клавиатур PS/2.rgb_led_ws281x
: протокол светодиодных RGB-лент (WS281x).ssi32
протокол Synchronous Serial Interface (32bit).t55xx
протокол T55xx 100–150kHz RFID.wiegand
интерфейс Wiegand для систем контроля доступа.
Таким образом, общее количество декодеров для поддерживаемых протоколов доведено до 77. Ещё несколько находятся в разработке в данный момент, их появление ожидается в следующих выпусках. Проект имеет стабильный приток декодеров от сторонних разработчиков, что не может не радовать. Если вы работаете над разбором других протоколов и реализацией декодера для них — смело направляйте проекту свои патчи.
Этот выпуск добавляет поддержку нового API декодеров протоколов (PD v3), основанного на запросах. Среди его особенностей:
- Повышение читаемости исходных текстов декодеров.
- Значительный прирост производительности. В отдельных случаях было зафиксировано десятикратное ускорение работы основанных на нём декодеров (зависит от специфики протокола, объёма данных, количества фронтов в сигналах, оверсемплинга).
- Поддержка указания (предполагаемого) начального состояния канала перед тем, как был декодирован первый отсчёт. Допустимые значения уровней: 0/низкий, 1/высокий, либо «использовать значение первого отсчёта». Это очень полезно для декодеров, ожидающих смену фронта.
Большинство декодеров уже переписано на PD API v3. На данный момент реализована совместная поддержка обеих версий API (2 и 3); она сохранится до полного переписывания всех декодеров на новую версию интерфейса, после чего поддержка PD API v2 будет прекращена.
Подробности: файл NEWS, история коммитов.
sigrok-firmware-fx2lafw
В данном выпуске представлена открытая FX2-прошивка для USB-осциллографа/анализатора Hantek 6022BL (подобная, но не совсем совместимая с той, которая применяется для Hantek 6022BE).
Подробности: файл NEWS, история коммитов.
sigrok-cli
Утилита командной строки также получила порцию улучшений, среди которых:
- Новый параметр
-L|--list-supported
для отображения перечня поддерживаемых драйверов, модулей ввода/вывода и декодеров (ранее эта информация отображалась в-V|--version
). - При захвате появилась поддержка одновременного запуска нескольких декодеров разных уровней, с помощью параметра
-P|--protocol-decoders
, указанного несколько раз; старая опция-S
более не требуется и была удалена.
Подробности: файл NEWS, история коммитов.
PulseView
Огромное количество изменений коснулось и основного графического интерфейса проекта — PulseView (Qt5).
Например, появилась возможность работы с несколькими сеансами и областями просмотра одновременно (скриншот):
- Сеансы являют собою отдельные экземпляры файлов или устройств. Каждый сеанс представлен в виде вкладки в главном окне PulseView.
- Области просмотра — отдельные представления данных в рамках текущего сеанса. Например, разные области просмотра в текущем сеансе могут иметь разные уровни увеличения, могут перемещаться на различные позиции и т. п. Каждая область просмотра представляет собой стыкуемое окно в рамках вкладки своего сеанса.
- Стыкуемые области просмотра данных могут перемещаться, изменять размер и извлекаться в отдельные окна.
- Сеансы и области просмотра частично сохраняются и восстанавливаются при выходе/запуске PulseView. На данный момент сохраняется не вся информация (например, про декодеры).
Добавлены и/или усовершенствованы различные возможности:
- Поддержка сохранения аналоговых данных в файлы
.sr
. - Поддержка отображения точек выборки на диаграммах.
- Различные усовершенствования в интерфейсе и эргономике.
- Усовершенствования в отображении аналоговых диаграмм.
- Появилось меню глобальных настроек с различными опциями поведения PulseView.
Подробности: файл NEWS, история коммитов.
Как можно заметить, список TODO
неиссякаем; проект постоянно стремится увеличивать количество поддерживаемых устройств, модулей ввода/вывода, декодеров протоколов и т. д. Ваш вклад всегда приветствуется!
Не обошлось и без некоторого количества регрессий, известных багов и недостающего функционала. Команда проекта уже работает над следующим выпуском, устраняющим ошибки. Если вы обнаружите ошибку, о которой ещё никто не сообщил — пожалуйста, зарегистрируйте её в Bugzilla.
Команда проекта выражает огромную благодарность всем, кто внёс свой вклад в развитие проекта sigrok. Этот релиз не состоялся бы без помощи и поддержки большого числа сторонних разработчиков.
>>> Подробности