Esempio n. 1
0
 def run(self):
     log.debug('WaitForStartStep started')
     self.event = Event()
     self.context.ui_interface.register_start_once(self.set_event)
     log.info('Waiting for start callback')
     self.event.wait()
     if not self.is_canceled:
         log.info('Start callback received')
Esempio n. 2
0
 def _unload_plain_interrupt(self, x_centroid, y_centroid):
     log.debug('_unload_plain_interrupt called')
     self.context.abs_x_offset = self.context.position_calculation\
         .calc_abs_x_offset_from_centroid(self.context.x_position_abs, x_centroid)
     self.context.target_recognition.unregister_callback(
         self._unload_plain_interrupt)
     self.event.set()
     log.debug('_unload_plain_interrupt event set')
     self.context.target_recognition.stop()
 def run(self):
     log.debug('WaitForBackToOriginStep started')
     self.event = Event()
     self.context.ui_interface.register_back_to_origin_once(self.event.set)
     log.info('Waiting for BackToOriginStep callback')
     self.event.wait()
     if not self.is_canceled:
         log.info('BackToOriginStep callback received')
         self.context.ic_interface.drive_jog(50, Direction.Backward)
Esempio n. 4
0
    def run(self):
        log.debug('UpdatePositionStep started')
        self.context.register_position_callback(
            self.__position_update_received)

        #prevent step from end
        self.event = Event()
        self.event.wait()
        log.debug('UpdatePositionStep done')
Esempio n. 5
0
 def run(self):
     log.debug('DriveXToLoadPickup run called')
     self.event = Event()
     self.context.ic_interface.drive_distance_async(
         Config().x_distance_to_load_pickup,
         Config().x_speed_to_load_pickup, Direction.Forward,
         lambda: self.event.set())
     self.event.wait()
     log.debug('DriveXToLoadPickup done')
Esempio n. 6
0
 def run(self):
     log.debug('DriveZToEndPosition run called')
     # drive tele
     self.event = Event()
     self.context.ic_interface.move_tele_async(self.context.z_position_rel,
                                               DirectionTele.Retract,
                                               lambda: self.event.set())
     self.event.wait()
     log.debug('DriveZToEndPosition done')
Esempio n. 7
0
 def run(self):
     self.lock.acquire(True)
     self.steps_done += 1
     log.debug('SyncStep run called: steps_done ' + str(self.steps_done))
     if self.steps_done < self.step_count_to_wait_for:
         self.lock.release()
         return StepResult.SYNC
     self.steps_done = 0
     self.lock.release()
     log.debug('SyncStep done')
Esempio n. 8
0
    def run(self):
        log.debug('EnforceMagnetStep run called')
        # wait until magnet is near enough
        self.event = Event()
        self.context.register_position_callback(
            self.__position_update_received)
        self.event.wait()

        log.debug('EnforceMagnetStep start enforce magnet')
        #enable magnet
        self.context.ic_interface.enable_magnet(MagnetDirection.Enforce)
        log.debug('EnforceMagnetStep done')
Esempio n. 9
0
    def run(self):
        log.debug('DriveToEnd run called')
        # wait until tele is high enough
        self.event = Event()
        self.context.register_position_callback(self._position_update_received)
        self.event.wait()

        log.debug('DriveToEnd start drive')
        # drive to end
        self.event = Event()
        remaining_distance = self.context.position_calculation.calc_x_rel(
            self.context.x_position_abs,
            Config().x_end_position_abs - self.context.x_position_abs)
        log.debug('remaining distance: {}'.format(str(remaining_distance)))
        self.context.ic_interface.drive_to_end_async(
            remaining_distance,
            Config().drive_to_end_speed, Direction.Forward,
            lambda: self.event.set())
        self.event.wait()
        self.context.ic_interface.disable_magnet()
        self.context.ui_interface.send_end()
        log.debug('DriveToEnd done')
Esempio n. 10
0
    def run(self):
        log.debug('DriveZToLoadPickup run called')
        #wait to start of move tele
        self.event = Event()
        self.context.register_position_callback(
            self.__position_update_received)
        self.event.wait()

        log.debug('DriveZToLoadPickup start move tele')
        #drive tele
        self.event = Event()
        self.context.ic_interface.move_tele_async(
            Config().z_distance_to_load_pickup, DirectionTele.Extend,
            lambda: self.event.set())
        self.event.wait()
        self.context.load_present = True
        log.debug('DriveZToLoadPickup done')
Esempio n. 11
0
    def run(self):
        log.debug('DriveZToUnloadPosition run called')
        # register image recognition callback and wait until plain is near enough
        #self.event = Event()
        #self.context.target_recognition.register_callback(self._unload_plain_interrupt)
        #self.event.wait()

        log.debug(
            'DriveZToUnloadPosition move tele started: z_position_on_target {}'
            .format(self.context.z_position_on_target))
        #drive tele
        self.event = Event()
        self.context.ic_interface.move_tele_async(
            self.context.z_position_on_target, DirectionTele.Extend,
            lambda: self.event.set())
        self.event.wait()
        log.debug('DriveZToUnloadPosition done')
Esempio n. 12
0
    def run(self):
        log.debug('DriveToUnloadPlainInterrupt run called')
        #wait until tele is high enough
        self.event = Event()
        self.context.register_position_callback(self._position_update_received)
        self.event.wait()

        log.debug('DriveToUnloadPlainInterrupt start drive')
        #drive jog
        self.context.ic_interface.drive_jog(Config().travel_speed,
                                            Direction.Forward)

        # register image recognition callback and wait
        self.event = Event()
        self.context.target_recognition.register_callback(
            self._unload_plain_interrupt)
        self.context.target_recognition.start()
        self.event.wait()

        log.debug('DriveToUnloadPlainInterrupt done')
Esempio n. 13
0
    def run(self):
        log.debug('AdjustXPosition run called')
        # register image recognition callback
        #self.context.target_recognition.register_callback(self._unload_plain_interrupt)

        #while abs(self.context.abs_x_offset) > Config().max_adjust_offset:
        log.debug(
            'AdjustXPosition offset procedure started with offset adjustment of '
            'abs_x_offset: {} and rel_x_offset: {}'.format(
                self.context.abs_x_offset, self.context.rel_x_offset))
        self.event = Event()
        direction = Direction.Forward if self.context.rel_x_offset > 0 else Direction.Backward
        self.context.ic_interface.drive_distance_async(
            abs(self.context.rel_x_offset),
            Config().adjust_speed, direction, lambda: self.event.set())
        self.event.wait()

        #self.context.target_recognition.unregister_callback(self._unload_plain_interrupt)
        #self.context.target_recognition.stop()

        log.debug('AdjustXPosition done')
Esempio n. 14
0
 def run(self):
     log.debug('ReleaseMagnet run called')
     self.context.ic_interface.enable_magnet(MagnetDirection.Release)
     self.context.load_present = False
     log.debug('ReleaseMagnet done')
 def run(self):
     log.debug('Init Tele started')
     self.context.ic_interface.init_tele()
     self.context.ui_interface.send_end_init()
     self.context.reset_position()
     log.debug('Init Tele end')
Esempio n. 16
0
 def run(self):
     log.debug('DisableMagnet run called')
     self.context.ic_interface.disable_magnet()
     log.debug('DisableMagnet done')
Esempio n. 17
0
 def run(self):
     log.debug('CancelStep run called: step_to_cancel_count ' +
               str(len(self.steps_to_cancel)))
     for step in self.steps_to_cancel:
         step.cancel()