Ejemplo n.º 1
0
    def OnChoiceTracker(self, evt, ctrl):
        Publisher.sendMessage('Update status text in GUI',
                              _("Configuring tracker ..."))
        if evt:
            choice = evt.GetSelection()
        else:
            choice = self.tracker_id

        if self.trk_init:
            trck = self.trk_init[0]
        else:
            trck = None

        # Conditions check if click was on current selection and if any other tracker
        # has been initialized before
        if trck and choice != 6:
            self.ResetTrackerFiducials()
            self.trk_init = dt.TrackerConnection(self.tracker_id, 'disconnect')
            self.tracker_id = choice
            if not self.trk_init[0]:
                self.trk_init = dt.TrackerConnection(self.tracker_id,
                                                     'connect')
                if not self.trk_init[0]:
                    dlg.NavigationTrackerWarning(self.tracker_id,
                                                 self.trk_init[1])
                    ctrl.SetSelection(0)
                    print "Tracker not connected!"
                else:
                    ctrl.SetSelection(self.tracker_id)
                    print "Tracker connected!"
        elif choice == 6:
            if trck:
                self.trk_init = dt.TrackerConnection(self.tracker_id,
                                                     'disconnect')
                if not self.trk_init[0]:
                    dlg.NavigationTrackerWarning(self.tracker_id, 'disconnect')
                    self.tracker_id = 0
                    ctrl.SetSelection(self.tracker_id)
                    print "Tracker disconnected!"
                else:
                    print "Tracker still connected!"
            else:
                ctrl.SetSelection(self.tracker_id)

        else:
            # If trk_init is None try to connect. If doesn't succeed show dialog.
            if choice:
                self.tracker_id = choice
                self.trk_init = dt.TrackerConnection(self.tracker_id,
                                                     'connect')
                if not self.trk_init[0]:
                    dlg.NavigationTrackerWarning(self.tracker_id,
                                                 self.trk_init[1])
                    self.tracker_id = 0
                    ctrl.SetSelection(self.tracker_id)
        Publisher.sendMessage('Update status text in GUI', _("Ready"))
Ejemplo n.º 2
0
    def DisconnectTracker(self):
        if self.tracker_connected:
            self.ResetTrackerFiducials()
            Publisher.sendMessage('Update status text in GUI',
                                  label=_("Disconnecting tracker ..."))
            Publisher.sendMessage('Remove sensors ID')
            Publisher.sendMessage('Remove object data')
            Publisher.sendMessage('Robot navigation mode', robot_mode=False)
            self.trk_init = dt.TrackerConnection(self.tracker_id,
                                                 self.trk_init[0],
                                                 'disconnect')
            if not self.trk_init[0]:
                self.tracker_connected = False
                self.tracker_id = 0

                if self.thread_coord:
                    self.event_coord.set()
                    self.thread_coord.join()
                    self.event_coord.clear()

                Publisher.sendMessage('Update status text in GUI',
                                      label=_("Tracker disconnected"))
                print("Tracker disconnected!")
            else:
                Publisher.sendMessage('Update status text in GUI',
                                      label=_("Tracker still connected"))
                print("Tracker still connected!")
Ejemplo n.º 3
0
    def SetTracker(self, new_tracker):
        if new_tracker:
            self.DisconnectTracker()

            self.trk_init = dt.TrackerConnection(new_tracker, None, 'connect')
            if not all(list(self.trk_init)):
                dlg.ShowNavigationTrackerWarning(self.tracker_id,
                                                 self.trk_init[1])

                self.tracker_id = 0
                self.tracker_connected = False
            else:
                self.tracker_id = new_tracker
                self.tracker_connected = True
                self.thread_coord = dco.ReceiveCoordinates(
                    self.trk_init, self.tracker_id, self.TrackerCoordinates,
                    self.event_coord)
                self.thread_coord.start()
Ejemplo n.º 4
0
 def OnDisconnectTracker(self, pubsub_evt):
     if self.tracker_id:
         dt.TrackerConnection(self.tracker_id, 'disconnect')