mirror of
https://github.com/DeeJanuz/frametop.git
synced 2026-10-06 05:00:08 +02:00
Gaze: say why gaze mode can't work yet, and open the calibration whenever it's missing
Turning gaze mode on without a calibration opened Calibrate only on the off-to-on change, and only if it could open right then. With the headset off, the eye tracker silent, or the panel not built, or with gaze mode already on when the gaze service started, nothing opened and nothing said why: the pointer just stayed a mouse. - The gaze service now checks every second: gaze mode on, no calibration for the tracker in use, eyes seen -> the full calibration opens. One that closes unfinished opens again only after the headset comes off and on, gaze mode off and on, or Calibrate, so it doesn't loop. A start that fails retries every 10 s. - Its status says why gaze mode can't work yet (checks.problem): not calibrated and opening, open, closed unfinished, or can't open and why. - Input Settings shows that under the Gaze pointer switch, along with the gaze service not installed or not running and our tracker missing its frame grabber. - ft-gazectl on notes a missing calibration. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ac142f6e4a
commit
a7f9a8dd80
5 files changed
+82
-17
No files matched your search
+10
-1
@@ -36,8 +36,17 @@ def main():
|
||||
if r is None:
|
||||
sys.exit("the pointer helper isn't running")
|
||||
print(f"gaze mode {r.removeprefix('ok ')}" if r else "no answer (an older pointer helper without gaze mode?)")
|
||||
if ask("ft_gazed", "status", 0.3) is None:
|
||||
st = ask("ft_gazed", "status", 0.3)
|
||||
if st is None:
|
||||
print("note: the gaze service (ft-gazed) isn't running, so the pointer has no gaze to follow")
|
||||
elif r == "ok on":
|
||||
try:
|
||||
calibrated = (json.loads(st).get("checks") or {}).get("calibrated")
|
||||
except ValueError:
|
||||
calibrated = None
|
||||
if calibrated is False:
|
||||
print("note: no calibration for this eye tracker yet; it opens in the headset "
|
||||
"(if it can't, ft-gazectl status says why: checks.problem)")
|
||||
elif cmd in ("status", "forget", "reload"):
|
||||
r = ask("ft_gazed", cmd)
|
||||
if r is None:
|
||||
|
||||
Reference in new issue
Block a user