Extract reusable device protocols, ports and logic analyzers from SETGUI
This commit is contained in:
47
python/README.md
Normal file
47
python/README.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Общие 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:
|
||||
|
||||
```python
|
||||
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`.
|
||||
Reference in New Issue
Block a user