精度実験用スクリプトに回頭時間を追加
This commit is contained in:
1 parent
76334e5a7c
commit
737044eeb7
1 file changed
+7
-4
@@ -205,13 +205,13 @@ class SessionRunner:
|
|||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, plan: Sequence[PlanRow], trials_path: Path, session_id: str, *, baseline_sec: float = 3.0,
|
self, plan: Sequence[PlanRow], trials_path: Path, session_id: str, *, baseline_sec: float = 3.0,
|
||||||
hold_sec: float = 5.0, auto_interval: float = 0.0, block_interval: float = 0.0, input_fn: Callable[[str], str] = input,
|
hold_sec: float = 5.0, turn_grace_sec: float = 3.0, auto_interval: float = 0.0, block_interval: float = 0.0, input_fn: Callable[[str], str] = input,
|
||||||
out: Callable[[str], object] = print, sleep: Callable[[float], object] = time.sleep,
|
out: Callable[[str], object] = print, sleep: Callable[[float], object] = time.sleep,
|
||||||
clock: Callable[[], str] = _now_iso, beep: Callable[[str], object] = _beep,
|
clock: Callable[[], str] = _now_iso, beep: Callable[[str], object] = _beep,
|
||||||
interval_audio: IntervalAudioPlayer | None = None,
|
interval_audio: IntervalAudioPlayer | None = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
self.plan, self.trials_path, self.session_id = list(plan), trials_path, session_id
|
self.plan, self.trials_path, self.session_id = list(plan), trials_path, session_id
|
||||||
self.baseline_sec, self.hold_sec = baseline_sec, hold_sec
|
self.baseline_sec, self.hold_sec, self.turn_grace_sec = baseline_sec, hold_sec, turn_grace_sec
|
||||||
self.auto_interval, self.block_interval = auto_interval, block_interval
|
self.auto_interval, self.block_interval = auto_interval, block_interval
|
||||||
self.input_fn, self.out, self.sleep, self.clock, self.beep = input_fn, out, sleep, clock, beep
|
self.input_fn, self.out, self.sleep, self.clock, self.beep = input_fn, out, sleep, clock, beep
|
||||||
self.interval_audio = interval_audio or IntervalAudioPlayer()
|
self.interval_audio = interval_audio or IntervalAudioPlayer()
|
||||||
@@ -321,7 +321,9 @@ class SessionRunner:
|
|||||||
self.sleep(self.baseline_sec)
|
self.sleep(self.baseline_sec)
|
||||||
t_cue = self.clock()
|
t_cue = self.clock()
|
||||||
self.beep("turn")
|
self.beep("turn")
|
||||||
self.out(f" TURN to {_sign(row.true_yaw_deg)} deg (head only) and hold {self.hold_sec:g} s")
|
self.out(f" TURN to {_sign(row.true_yaw_deg)} deg (head only) — you have {self.turn_grace_sec:g} s to turn")
|
||||||
|
self.sleep(self.turn_grace_sec)
|
||||||
|
self.out(f" HOLD {self.hold_sec:g} s")
|
||||||
self.sleep(self.hold_sec)
|
self.sleep(self.hold_sec)
|
||||||
t_end = self.clock()
|
t_end = self.clock()
|
||||||
self.beep("end")
|
self.beep("end")
|
||||||
@@ -348,6 +350,7 @@ def _build_parser() -> argparse.ArgumentParser:
|
|||||||
run.add_argument("--session-id", default=None)
|
run.add_argument("--session-id", default=None)
|
||||||
run.add_argument("--baseline-sec", type=float, default=3.0)
|
run.add_argument("--baseline-sec", type=float, default=3.0)
|
||||||
run.add_argument("--hold-sec", type=float, default=5.0)
|
run.add_argument("--hold-sec", type=float, default=5.0)
|
||||||
|
run.add_argument("--turn-grace-sec", type=float, default=3.0, help="seconds allowed to complete the head turn after the turn cue")
|
||||||
run.add_argument("--auto-interval", type=float, default=0.0, help="seconds between trials within a block; 0 = wait for Enter")
|
run.add_argument("--auto-interval", type=float, default=0.0, help="seconds between trials within a block; 0 = wait for Enter")
|
||||||
run.add_argument("--block-interval", type=float, default=0.0, help="seconds to allow moving after Enter at a block change; 0 = no extra wait")
|
run.add_argument("--block-interval", type=float, default=0.0, help="seconds to allow moving after Enter at a block change; 0 = no extra wait")
|
||||||
run.add_argument("--resume", action="store_true")
|
run.add_argument("--resume", action="store_true")
|
||||||
@@ -373,7 +376,7 @@ def main(argv: Sequence[str] | None = None, out: Callable[[str], object] = print
|
|||||||
print("--resume needs --trials <existing file>", file=sys.stderr)
|
print("--resume needs --trials <existing file>", file=sys.stderr)
|
||||||
return 2
|
return 2
|
||||||
runner = SessionRunner(read_plan(args.plan), trials, session_id, baseline_sec=args.baseline_sec,
|
runner = SessionRunner(read_plan(args.plan), trials, session_id, baseline_sec=args.baseline_sec,
|
||||||
hold_sec=args.hold_sec, auto_interval=args.auto_interval,
|
hold_sec=args.hold_sec, turn_grace_sec=args.turn_grace_sec, auto_interval=args.auto_interval,
|
||||||
block_interval=args.block_interval)
|
block_interval=args.block_interval)
|
||||||
return runner.run(resume=args.resume)
|
return runner.run(resume=args.resume)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user