def scan_arrive(self, result): try: self.current_pos = result.value except AttributeError: self.logger.error( "Scan arrive not returning attribute: {0}".format(result)) return False self.logger.info("Scan arrive at pos {0}".format(self.current_pos)) t = time.time() if t - self.status_update_time > self.status_update_interval: status = "Scanning from {0} to {1} with step size {2}\n" \ "Position: {3}".format(self.start_pos, self.stop_pos, self.step, self.current_pos) self.controller.set_status(status) self.status_update_time = t # After arriving, check the time against the last read spectrum. Wait for a time so that the next # spectrum frame should be there. self.scan_arrive_time = t try: wait_time = (self.scan_arrive_time - self.spectrum_time ) % self.controller.scan_params["spectrum_frametime"] except KeyError: wait_time = 0.1 # print("Waittime: {0}".format(wait_time)) d0 = defer_later(wait_time, self.meas_read) d0.addErrback(self.scan_error_cb) self.logger.debug("Scheduling read in {0} s".format(wait_time)) # d0 = self.controller.read_attribute(self.meas_attr, self.meas_dev) # d0.addCallback(test_cb2) # d0.addCallbacks(self.meas_scan, self.scan_error_cb) return True
def state_enter(self, prev_state): self.logger.info("Starting state {0}".format(self.name.upper())) self.controller.set_status("Waiting {0} s before trying to reconnect".format(self.wait_time)) self.start_time = time.time() df = defer_later(self.wait_time, self.check_requirements, [None]) self.deferred_list.append(df) df.addCallback(test_cb) self.running = True
def state_enter(self, prev_state=None): FrogState.state_enter(self, prev_state) t_delay = self.controller.idle_params["scan_interval"] paused = self.controller.idle_params["paused"] if paused is False: self.logger.debug("Waiting {0} s until starting next scan".format(t_delay)) self.controller.set_status("Idle. Scan time interval {0} s.".format(t_delay)) self.t0 = time.time() d = defer_later(t_delay, self.check_requirements, ["dummy"]) # d = defer.Deferred() else: self.logger.debug("Pausing next scan") self.controller.set_status("Idle. Scanning paused.") d = defer.Deferred() d.addErrback(self.state_error) self.deferred_list.append(d)