Exemple #1
0
    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
Exemple #2
0
 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
Exemple #3
0
 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)