from pathlib import Path # ----------------------------------------------------------------------------- # Project paths # ----------------------------------------------------------------------------- BASE_DIR = Path(__file__).parent.parent # ----------------------------------------------------------------------------- # API / Server settings # ----------------------------------------------------------------------------- API_HOST = "0.0.0.0" API_PORT = 8000 # ----------------------------------------------------------------------------- # Logging settings (используются из main) # ----------------------------------------------------------------------------- LOG_LEVEL = "DEBUG" # {"DEBUG","INFO","WARNING","ERROR","CRITICAL"} LOG_DIR = BASE_DIR / "logs" # Directory for application logs LOG_APP_FILE = LOG_DIR / "vna_system.log" # Main application log file # ----------------------------------------------------------------------------- # Serial communication settings # ----------------------------------------------------------------------------- DEFAULT_BAUD_RATE = 115200 RX_TIMEOUT = 5.0 TX_CHUNK_SIZE = 64 * 1024 # ----------------------------------------------------------------------------- # VNA device identification # ----------------------------------------------------------------------------- VNA_VID = 0x0483 # STMicroelectronics VNA_PID = 0x5740 # STM32 Virtual ComPort # ----------------------------------------------------------------------------- # Sweep detection and parsing constants # ----------------------------------------------------------------------------- SWEEP_CMD_LEN = 515 SWEEP_CMD_PREFIX = bytes([0xAA, 0x00, 0xDA]) MEAS_HEADER_LEN = 21 MEAS_CMDS_PER_SWEEP = 17 EXPECTED_POINTS_PER_SWEEP = 1000 # ----------------------------------------------------------------------------- # Buffer settings # ----------------------------------------------------------------------------- SWEEP_BUFFER_MAX_SIZE = 100 # Maximum number of sweeps to store in circular buffer SERIAL_BUFFER_SIZE = 512 * 1024 # ----------------------------------------------------------------------------- # Binary log format constants # ----------------------------------------------------------------------------- MAGIC = b"VNALOG1\n" DIR_TO_DEV = 0x01 # '>' DIR_FROM_DEV = 0x00 # '<' # ----------------------------------------------------------------------------- # File I/O settings # ----------------------------------------------------------------------------- FILE_CHUNK_SIZE = 256 * 1024 SERIAL_PEEK_SIZE = 32 # ----------------------------------------------------------------------------- # Timeout settings # ----------------------------------------------------------------------------- SERIAL_IDLE_TIMEOUT = 0.5 SERIAL_DRAIN_DELAY = 0.05 SERIAL_DRAIN_CHECK_DELAY = 0.01 SERIAL_CONNECT_DELAY = 0.01 PROCESSORS_CONFIG_DIR_PATH = "vna_system/core/processors/configs" # ----------------------------------------------------------------------------- # Physical constants # ----------------------------------------------------------------------------- SPEED_OF_LIGHT_M_S = 299_700_000.0 # Speed of light in meters per second