diff --git a/invesalius/data/coordinates.py b/invesalius/data/coordinates.py index 4635634..f9ab489 100644 --- a/invesalius/data/coordinates.py +++ b/invesalius/data/coordinates.py @@ -51,7 +51,7 @@ def GetCoordinates(trck_init, trck_id, ref_mode): def ClaronCoord(trck_init, trck_id, ref_mode): trck = trck_init[0] - scale = 10. * np.array([1., 1.0, -1.0]) + scale = np.array([1.0, 1.0, -1.0]) coord = None k = 0 # TODO: try to replace while and use some Claron internal computation diff --git a/invesalius/data/trackers.py b/invesalius/data/trackers.py index 2496ded..6cef8f0 100644 --- a/invesalius/data/trackers.py +++ b/invesalius/data/trackers.py @@ -123,6 +123,8 @@ def PlhWrapperConnection(): if trck_check: # First run is necessary to discard the first coord collection trck_init.Run() + else: + trck_init = trck_check except: print 'Could not connect to Polhemus via wrapper.' @@ -195,6 +197,8 @@ def DisconnectTracker(tracker_id): :param tracker_id: ID of tracking device. """ + from wx.lib.pubsub import pub as Publisher + Publisher.sendMessage('Update status text in GUI', _("Disconnecting tracker ...")) trck_init = None # TODO: create individual functions to disconnect each other device, e.g. Polhemus. if tracker_id == 1: @@ -202,6 +206,7 @@ def DisconnectTracker(tracker_id): import pyclaron pyclaron.pyclaron().Close() lib_mode = 'wrapper' + print 'Claron tracker disconnected.' except ImportError: lib_mode = 'error' print 'The ClaronTracker library is not installed.' @@ -211,6 +216,7 @@ def DisconnectTracker(tracker_id): import polhemus polhemus.polhemus().Close() lib_mode = 'wrapper' + print 'Polhemus tracker disconnected.' except ImportError: lib_mode = 'error' print 'The polhemus library is not installed.' @@ -219,4 +225,6 @@ def DisconnectTracker(tracker_id): print 'Debug tracker disconnected.' lib_mode = 'debug' + Publisher.sendMessage('Update status text in GUI', _("Ready")) + return trck_init, lib_mode \ No newline at end of file diff --git a/invesalius/gui/frame.py b/invesalius/gui/frame.py index 791971e..7f3e0b1 100644 --- a/invesalius/gui/frame.py +++ b/invesalius/gui/frame.py @@ -382,6 +382,7 @@ class Frame(wx.Frame): Close all project data. """ Publisher.sendMessage('Close Project') + Publisher.sendMessage('Disconnect tracker') s = ses.Session() if not s.IsOpen() or not s.project_path: Publisher.sendMessage('Exit') diff --git a/invesalius/gui/task_navigator.py b/invesalius/gui/task_navigator.py index d84c151..c0ca456 100644 --- a/invesalius/gui/task_navigator.py +++ b/invesalius/gui/task_navigator.py @@ -312,6 +312,7 @@ class NeuronavigationPanel(wx.Panel): Publisher.subscribe(self.LoadImageFiducials, 'Load image fiducials') Publisher.subscribe(self.UpdateTriggerState, 'Update trigger state') Publisher.subscribe(self.UpdateImageCoordinates, 'Set ball reference position') + Publisher.subscribe(self.OnDisconnectTracker, 'Disconnect tracker') def LoadImageFiducials(self, pubsub_evt): marker_id = pubsub_evt.data[0] @@ -341,6 +342,10 @@ class NeuronavigationPanel(wx.Panel): def UpdateTriggerState (self, pubsub_evt): self.trigger_state = pubsub_evt.data + def OnDisconnectTracker(self, pubsub_evt): + if self.tracker_id: + dt.TrackerConnection(self.tracker_id, 'disconnect') + def OnChoiceTracker(self, evt, ctrl): Publisher.sendMessage('Update status text in GUI', _("Configuring tracker ...")) if evt: -- libgit2 0.21.2