1.4 KiB
1.4 KiB
Hardware layer
1. LibreVNA
hardware_full/librevna_service.py: orchestration facade.hardware_full/librevna_backends.py:NativeLibreVnaBackendMockLibreVnaBackend
hardware_full/librevna_driver/*: низкоуровневый USB/protocol stack.
Native flow
LibreVnaService.open()configure(RadarSweepModel)acquire_s21()close()
Device limits
read_device_limits()возвращает min/max frequency, IFBW, power и max points.- GUI применяет лимиты для clamp/labels и live B-scan frequency bounds.
2. Switches
switch_service.py: выбор mock/native драйвера по конфигурации.switch_drivers/*:MockSwitchDriverH7992DriverHMC349ADrivergpio_uapi.py(Linux GPIO v2 wrapper)
Инварианты
- Позиции валидируются на уровне драйвера.
- Драйверы требуют
open()передswitch_to(). - Для native GPIO ошибки ОС конвертируются в Python
RuntimeErrorс контекстом.
3. Расширение hardware слоя
- Новый радар: добавить backend с тем же контрактом, подключить в service.
- Новый switch: реализовать
SwitchDriverProtocolи добавить ветку вSwitchService._build_driver().