Files
radar_system/python_app/hardware_full/librevna_driver/enums.py
T
2026-03-05 14:42:33 +03:00

88 lines
1.7 KiB
Python

"""Enumerations used by the LibreVNA direct-USB driver."""
from __future__ import annotations
from enum import Enum, IntEnum
class PacketType(IntEnum):
"""Packet identifiers defined by LibreVNA protocol v14."""
NONE = 0
SWEEP_SETTINGS = 2
MANUAL_STATUS = 3
MANUAL_CONTROL = 4
DEVICE_INFO = 5
FIRMWARE_PACKET = 6
ACK = 7
CLEAR_FLASH = 8
PERFORM_FIRMWARE_UPDATE = 9
NACK = 10
REFERENCE = 11
GENERATOR = 12
SPECTRUM_ANALYZER_SETTINGS = 13
SPECTRUM_ANALYZER_RESULT = 14
REQUEST_DEVICE_INFO = 15
REQUEST_SOURCE_CAL = 16
REQUEST_RECEIVER_CAL = 17
SOURCE_CAL_POINT = 18
RECEIVER_CAL_POINT = 19
SET_IDLE = 20
REQUEST_FREQUENCY_CORRECTION = 21
FREQUENCY_CORRECTION = 22
REQUEST_DEVICE_CONFIGURATION = 23
DEVICE_CONFIGURATION = 24
DEVICE_STATUS = 25
REQUEST_DEVICE_STATUS = 26
VNA_DATAPOINT = 27
SET_TRIGGER = 28
CLEAR_TRIGGER = 29
STOP_STATUS_UPDATES = 30
START_STATUS_UPDATES = 31
INITIATE_SWEEP = 32
PERFORM_ACTION = 33
RESET_DEVICE_CONFIGURATION = 34
class SyncMode(IntEnum):
"""Synchronization mode encoded in sweep settings."""
DISABLED = 0
USB = 1
EXTERNAL_REFERENCE = 2
EXTERNAL_TRIGGER = 3
class HardwareFamily(IntEnum):
"""Known LibreVNA hardware families."""
V1 = 0x01
VD0 = 0xD0
VE0 = 0xE0
VFE = 0xFE
VFF = 0xFF
UNKNOWN = 0x00
class SweepKind(str, Enum):
"""Logical VNA sweep mode."""
FREQUENCY = "frequency"
POWER = "power"
class SweepScale(str, Enum):
"""Frequency axis spacing."""
LIN = "lin"
LOG = "log"
class SParameter(str, Enum):
"""Canonical 2-port S-parameters."""
S11 = "S11"
S12 = "S12"
S21 = "S21"
S22 = "S22"