Files
2026-10-02 12:23:58 -04:00

43 lines
1.2 KiB
Python

"""Briefly drive both eyes through the existing shared UART gaze link."""
from __future__ import annotations
import argparse
import time
from gaze_link import GazeLink, open_pi_uart
def send_state(link: GazeLink, x: int, y: int, valid: bool, duration: float) -> None:
deadline = time.monotonic() + duration
while time.monotonic() < deadline:
link.send(x, y, valid)
time.sleep(0.1) # The eye receiver returns to idle after 750 ms without a frame.
def main() -> None:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--device", default="/dev/serial0", help="Pi GPIO UART device")
args = parser.parse_args()
link = open_pi_uart(args.device)
try:
for label, x, valid in (
("left/red", 200, True),
("center/red", 500, True),
("right/red", 800, True),
("idle/blue", 500, False),
):
print(label, flush=True)
send_state(link, x, 500, valid, 2.0)
finally:
# Leave the eyes blue even if the test is interrupted.
for _ in range(3):
link.send(500, 500, False)
time.sleep(0.1)
link.stream.close()
if __name__ == "__main__":
main()