Команда разработчиков проекта sigrok выпустила обновление его значимых компонентов: основной библиотеки, набора драйверов и модулей ввода-вывода libsigrok 0.5.1, набора потоковых декодеров различных протоколов libsigrokdecode 0.5.2 и основного GUI проекта, PulseView 0.4.1.
Целью проекта sigrok является создание модульного переносимого кроссплатформенного СПО для захвата и анализа сигналов, поддерживающего большое количество различных устройств (логических анализаторов, осциллографов, мультиметров и т. п.). Основная лицензия проекта — GPL версии 3 или выше.
В этом выпуске основную порцию улучшений получил PulseView, а изменения в библиотеках носят незначительный характер, не меняющий их программные и двоичные интерфейсы.
Далее представлен перечень нововведений в каждом из подпроектов.
PulseView
- Реализована одна из наиболее часто запрашиваемых функций: привязка курсора к фронтам сигналов. В текущей реализации курсор мыши привязывается к ближайшему фронту того канала, внутри которого находится в данный момент. При перемещении выделения вдоль сигнала его левая грань будет автоматически привязываться к ближайшему фронту, в то время как общая длина выделения будет неизменна. Такое поведение облегчает проведение измерений и сравнений.
- Появилась возможность преобразования аналоговых каналов в цифровые/логические каналы — либо через задание порогового значения, либо через триггер Шмитта. Эта функция позволит пропускать преобразованные каналы через декодеры протоколов, что было невозможно ранее.
- Добавлено несколько параметров командной строки (
--driver
,--dont-scan
), а также параметр--input-file
, определяющий способ загрузки указанного файла (как поток данных, либо как сохранённый ранее сеанс — подробности описаны в man-странице). Также теперь стало возможным открытие множества входных файлов при запуске PulseView, например,pulseview *.sr
. - PulseView обзавёлся поддержкой цветовых тем и поставляется с несколькими стандартными — «лёгкая» тема по умолчанию и два варианта для тёмных интерфейсов.
- Множество изменений в UI, таких как курсорные измерения во всплывающих подсказках, цветовое выделение высоких логических уровней для улучшения восприятия данных, удобная вертикальная линия наведения мыши, возможность включения/выключения множества каналов, и некоторые другие улучшения.
- Аннотации декодера протоколов теперь могут экспортироваться в произвольном формате — как все вместе, так и лишь для конкретного уровня протокола, либо только для выделенной области, и т. п.
- Улучшено поимённое согласование каналов со входами добавляемого декодера, так что степень ручного вмешательства в этот процесс должна уменьшиться.
Приложение PulseView теперь имеет собственное руководство (в форматах HTML и PDF). Приветствуются запросы и патчи на его расширение и дополнение!
Была проделана значительная работа по улучшению быстродействия и оптимизации потребления памяти. Например, значительно ускорена загрузка файлов, уменьшено время некоторых операций отрисовки, исправлены утечки и неэкономное расходование памяти, и т. д.
В этом выпуске исправлено существенное количество довольно раздражающих ошибок (например, подвисания UI при изменении параметров декодера или канала). Также были исправлены несколько ситуаций с аварийным завершением работы в различных ОС.
Более подробный список изменений предоставлен в файле NEWS, а также в истории коммитов.
libsigrok
Это минорный выпуск библиотеки, в нём отсутствуют изменения любых публичных интерфейсов.
Поддержка новых устройств в этой версии:
- Логические анализаторы: DreamSourceLab DSLogic Basic/Plus, Hantek 4032L, IPDBG (отладчик IP-ядер для FPGA, проект ipdbg.org), Meilhaus Logian-16L, Saleae Logic Pro 16, ZEROPLUS Logic Cube LAP-C (16128+) / LAP-16032U.
- Осциллографы: Agilent MSO7034A, Hantek DSO-2250, Rigol серии DS4000, Siglent серий SDS1000/SDS2000.
- Программируемые источники питания: GW Instek серии GPD, HP 6631B/66332A/6633B/6634B, Korad KD3005P, RDTech серии DPS/DPH, Rigol DP711/DP712, RND KA3005P, Tenma 72-2540.
- Электронные нагрузки: ZKETECH EBD-USB.
- Мультиметры: EEVblog 121GW, Fluke 45, HP 3478A, MASTECH MS8250D, Metex M-3860M, PeakTech 4390A, SparkFun 70C, модели Victor с разъёмом Mini-USB, Voltcraft VC-96.
Практически каждый существующий драйвер подвергся многочисленным исправлениям и улучшениям.
Реализовано несколько новых вызовов API, с подробностями можно ознакомиться в документации на программные интерфейсы проекта.
Подробности: файл NEWS, история коммитов.
libsigrokdecode
Это минорный выпуск библиотеки, в нём отсутствуют изменения любых публичных интерфейсов.
В текущей версии добавлено 11 новых декодеров протоколов:
-
mcs48
: протокол доступа ко внешней памяти Intel MCS-48. -
st7735
: протокол контроллера ЖК-дисплеев Sitronix ST7735. -
atsha204a
: устройство шифрования Microchip ATSHA204A CryptoAuthentication™. -
cfp
: протокол 100-гигабитных модулей CFP. -
jtag_ejtag
: протокол MIPS EJTAG. -
swim
: однопроводной интерфейс микроконтроллеров STM8. -
cec
: протокол HDMI Consumer Electronics Control. -
miller
: код Миллера. -
ook
: амплитудная манипуляция (on-off keying). -
ook_oregon
: протокол погодных станций Oregon Scientific. -
ook_vis
: различные варианты визуализации амплитудной манипуляции.
Общее количество декодеров для поддерживаемых протоколов доведено до 97. Если вы работаете над разбором других протоколов и реализацией декодера для них — смело направляйте проекту свои патчи.
Подробности: файл NEWS, история коммитов.
Проект постоянно стремится увеличивать количество поддерживаемых устройств, модулей ввода/вывода, декодеров протоколов. Ваш вклад всегда приветствуется!
Ознакомиться с перечнем поддерживаемых платформ, скачать стабильные версии, ночные сборки, исходные коды, дампы протоколов, прошивки и любые другие файлы проекта можно на странице загрузок.
>>> Подробности