owon_psu.py upgrades (all backward-compatible): - SerialParams.from_config() and OwonPSU.from_config() factories that translate the YAML power_supply block (parity 'N', stopbits 1.0) into pyserial constants — eliminates the boilerplate every test was duplicating. - Parsed-numeric measurement helpers: measure_voltage_v(), measure_current_a(), output_is_on(). Tests can now assert on floats / bools instead of regex-ing strings. - safe_off_on_close=True (new ctor kwarg, default on) — close() sends 'output 0' before closing the port. Last-ditch protection against leaving the bench powered on after an aborted test. Keyword-only so the historical positional ctor signature is preserved. - Cross-platform port resolver: windows_com_to_linux, linux_serial_to_windows, candidate_ports, resolve_port. The resolver tries the configured port verbatim, then its cross-platform translation (COM7 ↔ /dev/ttyS6 on WSL1), then Linux USB-serial paths (/dev/ttyUSB*, /dev/ttyACM*), then a full scan_ports() with optional idn_substr filter. One bench config works on Windows, WSL1, WSL2 + usbipd-win, and native Linux. - try_idn_on_port refactored to use OwonPSU internally, removing ~25 lines of duplicated serial-port plumbing. ecu_framework/power/__init__.py re-exports the new helpers so tests can do `from ecu_framework.power import resolve_port, ...`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
31 lines
610 B
Python
31 lines
610 B
Python
"""Power control helpers for ECU tests.
|
|
|
|
Currently includes Owon PSU serial SCPI controller plus a cross-
|
|
platform port resolver so the same bench config works on Windows,
|
|
Linux, and WSL.
|
|
"""
|
|
|
|
from .owon_psu import (
|
|
SerialParams,
|
|
OwonPSU,
|
|
scan_ports,
|
|
auto_detect,
|
|
try_idn_on_port,
|
|
candidate_ports,
|
|
resolve_port,
|
|
windows_com_to_linux,
|
|
linux_serial_to_windows,
|
|
)
|
|
|
|
__all__ = [
|
|
"SerialParams",
|
|
"OwonPSU",
|
|
"scan_ports",
|
|
"auto_detect",
|
|
"try_idn_on_port",
|
|
"candidate_ports",
|
|
"resolve_port",
|
|
"windows_com_to_linux",
|
|
"linux_serial_to_windows",
|
|
]
|