Source code for hal.simulation.mockhooks

import time
import typing as T

from ._simulation import getNextNotifierTimeout, getProgramStarted


[docs] def waitForProgramStart( timeout: T.Optional[float] = None, delta: float = 0.001, waitForFirstNotifier: bool = True, ): """ Polls robot program and returns when it has reported that it started :param timeout: Amount of time to wait :param delta: Amount of time to sleep between checks :param waitForFirstNotifier: Wait for the first notifier alarm to be armed """ # This is basically the same thing that the C version of this function # does. Implemented in python so that CTRL-C works. until = None if timeout and timeout > 0: until = time.monotonic() + timeout while not getProgramStarted() or ( waitForFirstNotifier and getNextNotifierTimeout() == 0xFFFFFFFFFFFFFFFF ): if until is not None and time.monotonic() > until: raise TimeoutError("Program did not start") time.sleep(delta)