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"))
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!")
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()
def OnDisconnectTracker(self, pubsub_evt): if self.tracker_id: dt.TrackerConnection(self.tracker_id, 'disconnect')