Files
templates/python

Общие Python-библиотеки SET

Исходники для всех приложений редактируются в репозитории templates. Потребитель подключает конкретный коммит как Git submodule либо устанавливает пакет из templates/python: pip install -e ./python.

Пакет Назначение
logic_analyzer.files CSV/SAL/DSL, цифровые каналы и массивы фронтов
logic_analyzer.analysis UART/CAN, измерения, интервалы и события
logic_analyzer.decoders SET UART/CAN, PM35, 1SP0635/1SD536F2
logic_analyzer.saleae Настройки, обнаружение и захват Saleae Logic 2
altera_logic C FFI Altera, SETCAN stream, модели и Qt-порты
set_devices Кодеки, каталоги, прошивки, EEPROM/DS18B20, TMS, UMP, CAN485, спектр, демо-модели
set_devices.qt_ports UART/mock, SLCAN, Candle/WinUSB, STM/TMS boot, STM settings, UMP CAN
protocan, setprotocol Существующие обёртки общего C99-ядра и SET v2

Импорт logic_analyzer / set_devices не загружает Qt и не зависит от GUI. Qt подключается только при импорте конкретного qt_ports (PySide6 или PySide2). Saleae SDK подключается при обращении к устройству: pip install -e './python[saleae]'. Qt-виджеты, пользовательские настройки и управление сессией находятся в приложении.

Пути к нативным библиотекам задаёт потребитель перед импортом: SETPROTOCOL_LIBRARY, при необходимости ALTERA_LOGIC_LIBRARY, CANDLE_LIBRARY. Порты не ищут DLL в каталогах SETGUI. C99-ядро собирается из c/set-protocol, Candle/WinUSB — из c/candle. Библиотеки не выполняют поиск соседних репозиториев.

Пример без GUI:

from logic_analyzer.files import read_capture
from logic_analyzer.analysis import analyze_capture

capture = read_capture('digital.csv')
result = analyze_capture(capture, dict(mode='UART', channel=0, baudrate=115200))
for event in result.events:
    print(event.start, event.text)

Тесты логанализаторов без Qt и Saleae: python -m unittest discover -s python/tests -p 'test_logic_analyzer_*.py'. Добавьте templates/python в PYTHONPATH либо установите пакет. test_shared_library_boundary.py проверяет отсутствие зависимости от приложения.

Декодеры перенесены из SETGUI; исходное происхождение: DSLogic_Logic_2/dslogic_script/dsview_decoders/{gate_driver_timing,set_uart,set_can,pm35_uart}. После переноса единственное место сопровождения этих ядер — templates/python/logic_analyzer.