run 12
This commit is contained in:
@@ -8,6 +8,7 @@ This helper can:
|
||||
3. Optionally transmit response frames when CAM POWER or CALL is observed.
|
||||
4. Optionally mirror CALL high/low events with matching host responses.
|
||||
5. Optionally transmit follow-up frames when a watched response frame appears.
|
||||
6. Optionally transmit startup frames without waiting for a button event.
|
||||
|
||||
Known RCP-origin button frames:
|
||||
|
||||
@@ -175,6 +176,19 @@ def parse_args() -> argparse.Namespace:
|
||||
help="hex frame to send after a watched frame appears; can be repeated",
|
||||
)
|
||||
parser.add_argument("--followup-delay", type=float, default=0.05)
|
||||
parser.add_argument(
|
||||
"--startup-frame",
|
||||
type=parse_hex_bytes,
|
||||
action="append",
|
||||
help="hex frame to send after listening starts, without waiting for a button event",
|
||||
)
|
||||
parser.add_argument("--startup-delay", type=float, default=0.5)
|
||||
parser.add_argument(
|
||||
"--startup-frame-interval",
|
||||
type=float,
|
||||
default=0.05,
|
||||
help="delay between multiple startup frames",
|
||||
)
|
||||
parser.add_argument("--response-delay", type=float, default=0.05)
|
||||
parser.add_argument(
|
||||
"--response-frame-interval",
|
||||
@@ -238,7 +252,10 @@ def main() -> int:
|
||||
emit_known_counts(emit, "LATCH QUERY", read_window(ser, args.after_latch))
|
||||
|
||||
if args.prompt:
|
||||
input("Ready to listen. Press Enter, then press CAM POWER/CALL on the RCP: ")
|
||||
if args.startup_frame:
|
||||
input("Ready to listen. Press Enter; startup frames will be sent automatically: ")
|
||||
else:
|
||||
input("Ready to listen. Press Enter, then press CAM POWER/CALL on the RCP: ")
|
||||
ser.reset_input_buffer()
|
||||
|
||||
emit(
|
||||
@@ -249,6 +266,13 @@ def main() -> int:
|
||||
)
|
||||
stop_at = time.monotonic() + args.duration
|
||||
buffer = bytearray()
|
||||
if args.startup_frame:
|
||||
time.sleep(args.startup_delay)
|
||||
for frame_index, frame in enumerate(args.startup_frame):
|
||||
if frame_index:
|
||||
time.sleep(args.startup_frame_interval)
|
||||
send_frame(ser, emit, "startup", frame)
|
||||
|
||||
while time.monotonic() < stop_at:
|
||||
data = ser.read(args.chunk_size)
|
||||
if not data:
|
||||
|
||||
Reference in New Issue
Block a user