updates
This commit is contained in:
@@ -20,6 +20,8 @@ from h8536.bench_connect_lcd import (
|
||||
|
||||
from .controller import CcuConfig, CcuEmulator
|
||||
from .frames import ACTIVE_SEED_COMMAND0, CONNECT_CADENCE_SEQUENCE, NEUTRAL_ACK_FRAME, format_frame, parse_frame
|
||||
from .iris_mblack_link import IrisMblackLinkModule
|
||||
from .modules import CcuModule
|
||||
from .policy import AckPolicy
|
||||
from .refresh import PeriodicRefresh
|
||||
from .serial_link import SerialLink
|
||||
@@ -64,6 +66,18 @@ def build_arg_parser() -> argparse.ArgumentParser:
|
||||
parser.add_argument("--refresh-interval", type=float, default=0.0, help="seconds between optional refresh frames")
|
||||
parser.add_argument("--loop-poll", type=float, default=0.001, help="sleep between service loop iterations")
|
||||
|
||||
parser.add_argument(
|
||||
"--iris-mblack-link",
|
||||
action="store_true",
|
||||
help="enable the selector 0x0013 IRIS/M.BLACK LINK ACK-and-mirror module",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--iris-mblack-link-mirror-delay",
|
||||
type=float,
|
||||
default=0.050,
|
||||
help="seconds between the selector 0x0013 ACK and command-0 mirror",
|
||||
)
|
||||
|
||||
parser.add_argument("--power-cycle", action="store_true", help="power-cycle DUT through relay before starting")
|
||||
parser.add_argument("--relay-port", default="COM6", help="Pico relay serial port")
|
||||
parser.add_argument("--relay-baud", type=int, default=115200, help="Pico relay serial baud rate")
|
||||
@@ -80,10 +94,11 @@ def main(argv: list[str] | None = None, *, stdout: TextIO = sys.stdout) -> int:
|
||||
args = build_arg_parser().parse_args(argv)
|
||||
seed_frames = _seed_frames(args)
|
||||
refresh_frames = _refresh_frames(args)
|
||||
modules = _modules(args)
|
||||
log_path = args.log or _default_log_path()
|
||||
|
||||
if args.dry_run:
|
||||
_print_dry_run(args, seed_frames, refresh_frames, log_path, stdout)
|
||||
_print_dry_run(args, seed_frames, refresh_frames, modules, log_path, stdout)
|
||||
return 0
|
||||
|
||||
serial = _import_serial()
|
||||
@@ -100,6 +115,8 @@ def main(argv: list[str] | None = None, *, stdout: TextIO = sys.stdout) -> int:
|
||||
f"refresh_interval={args.refresh_interval:.3f}s frames="
|
||||
+ " | ".join(format_frame(frame) for frame in refresh_frames)
|
||||
)
|
||||
if modules:
|
||||
logger.emit("modules=" + " | ".join(module.name for module in modules))
|
||||
|
||||
with open_device_serial(serial, args) as device:
|
||||
if args.power_cycle:
|
||||
@@ -128,7 +145,9 @@ def main(argv: list[str] | None = None, *, stdout: TextIO = sys.stdout) -> int:
|
||||
ack_unlabeled_checksum_frames=not args.no_ack_unlabeled,
|
||||
)
|
||||
refresh = PeriodicRefresh(frames=refresh_frames, interval=args.refresh_interval)
|
||||
CcuEmulator(link, logger, config=config, ack_policy=policy, refresh=refresh).run(args.duration)
|
||||
CcuEmulator(link, logger, config=config, ack_policy=policy, refresh=refresh, modules=modules).run(
|
||||
args.duration
|
||||
)
|
||||
return 0
|
||||
finally:
|
||||
if relay is not None:
|
||||
@@ -153,10 +172,18 @@ def _refresh_frames(args: argparse.Namespace) -> list[bytes]:
|
||||
return frames
|
||||
|
||||
|
||||
def _modules(args: argparse.Namespace) -> tuple[CcuModule, ...]:
|
||||
modules: list[CcuModule] = []
|
||||
if args.iris_mblack_link:
|
||||
modules.append(IrisMblackLinkModule(mirror_delay=max(0.0, args.iris_mblack_link_mirror_delay)))
|
||||
return tuple(modules)
|
||||
|
||||
|
||||
def _print_dry_run(
|
||||
args: argparse.Namespace,
|
||||
seed_frames: list[bytes],
|
||||
refresh_frames: list[bytes],
|
||||
modules: tuple[CcuModule, ...],
|
||||
log_path: Path,
|
||||
stdout: TextIO,
|
||||
) -> None:
|
||||
@@ -170,6 +197,7 @@ def _print_dry_run(
|
||||
+ (" | ".join(format_frame(frame) for frame in refresh_frames) or "none"),
|
||||
file=stdout,
|
||||
)
|
||||
print("modules=" + (" | ".join(module.name for module in modules) or "none"), file=stdout)
|
||||
|
||||
|
||||
def _default_log_path() -> Path:
|
||||
|
||||
Reference in New Issue
Block a user