def _createMoveFuture(self, ref=False): """ ref: if true, will use a different canceller Return (CancellableFuture): a future that can be used to manage a move """ f = CancellableFuture() f._moving_lock = threading.Lock() # taken while moving f._must_stop = threading.Event( ) # cancel of the current future requested f._was_stopped = False # if cancel was successful if not ref: f.task_canceller = self._cancelCurrentMove else: f.task_canceller = self._cancelReference return f
def _createFuture(self): """ Return (CancellableFuture): a future that can be used to manage a move """ f = CancellableFuture() f._moving_lock = threading.Lock() # taken while moving f._must_stop = threading.Event() # cancel of the current future requested f._was_stopped = False # if cancel was successful f.task_canceller = self._cancelCurrentMove return f
def turnOnLight(bl, ccd): """ Turn on a light and wait until it detects a signal change on the ccd bl (Light): the light, which should initially be turned off. ccd (DigitalCamera): detector to use to check for the signal returns (CancellableFuture): a future that will finish when a significant signal increase is detected. Can also be used to stop the procedure. """ f = CancellableFuture() f.task_canceller = _cancelTurnOnLight f._task_state = RUNNING f._task_lock = threading.Lock() f._was_stopped = False # if cancel was successful # Run in separate thread executeAsyncTask(f, _doTurnOnLight, args=(f, bl, ccd)) return f