Commit 723af25db2bb44fcf28a95c21a824207e9633afc
Committed by
Thiago Franco de Moraes
1 parent
b8381c75
Exists in
master
and in
10 other branches
Remove tracker when InVesalius is closed (#75)
* remove tracker when invesalius is closed * Fix polhemus connection warning -added msg for statusbar when try to disconnect tracker * Standardization
Showing
4 changed files
with
15 additions
and
1 deletions
Show diff stats
invesalius/data/coordinates.py
| @@ -51,7 +51,7 @@ def GetCoordinates(trck_init, trck_id, ref_mode): | @@ -51,7 +51,7 @@ def GetCoordinates(trck_init, trck_id, ref_mode): | ||
| 51 | 51 | ||
| 52 | def ClaronCoord(trck_init, trck_id, ref_mode): | 52 | def ClaronCoord(trck_init, trck_id, ref_mode): |
| 53 | trck = trck_init[0] | 53 | trck = trck_init[0] |
| 54 | - scale = 10. * np.array([1., 1.0, -1.0]) | 54 | + scale = np.array([1.0, 1.0, -1.0]) |
| 55 | coord = None | 55 | coord = None |
| 56 | k = 0 | 56 | k = 0 |
| 57 | # TODO: try to replace while and use some Claron internal computation | 57 | # TODO: try to replace while and use some Claron internal computation |
invesalius/data/trackers.py
| @@ -123,6 +123,8 @@ def PlhWrapperConnection(): | @@ -123,6 +123,8 @@ def PlhWrapperConnection(): | ||
| 123 | if trck_check: | 123 | if trck_check: |
| 124 | # First run is necessary to discard the first coord collection | 124 | # First run is necessary to discard the first coord collection |
| 125 | trck_init.Run() | 125 | trck_init.Run() |
| 126 | + else: | ||
| 127 | + trck_init = trck_check | ||
| 126 | except: | 128 | except: |
| 127 | print 'Could not connect to Polhemus via wrapper.' | 129 | print 'Could not connect to Polhemus via wrapper.' |
| 128 | 130 | ||
| @@ -195,6 +197,8 @@ def DisconnectTracker(tracker_id): | @@ -195,6 +197,8 @@ def DisconnectTracker(tracker_id): | ||
| 195 | 197 | ||
| 196 | :param tracker_id: ID of tracking device. | 198 | :param tracker_id: ID of tracking device. |
| 197 | """ | 199 | """ |
| 200 | + from wx.lib.pubsub import pub as Publisher | ||
| 201 | + Publisher.sendMessage('Update status text in GUI', _("Disconnecting tracker ...")) | ||
| 198 | trck_init = None | 202 | trck_init = None |
| 199 | # TODO: create individual functions to disconnect each other device, e.g. Polhemus. | 203 | # TODO: create individual functions to disconnect each other device, e.g. Polhemus. |
| 200 | if tracker_id == 1: | 204 | if tracker_id == 1: |
| @@ -202,6 +206,7 @@ def DisconnectTracker(tracker_id): | @@ -202,6 +206,7 @@ def DisconnectTracker(tracker_id): | ||
| 202 | import pyclaron | 206 | import pyclaron |
| 203 | pyclaron.pyclaron().Close() | 207 | pyclaron.pyclaron().Close() |
| 204 | lib_mode = 'wrapper' | 208 | lib_mode = 'wrapper' |
| 209 | + print 'Claron tracker disconnected.' | ||
| 205 | except ImportError: | 210 | except ImportError: |
| 206 | lib_mode = 'error' | 211 | lib_mode = 'error' |
| 207 | print 'The ClaronTracker library is not installed.' | 212 | print 'The ClaronTracker library is not installed.' |
| @@ -211,6 +216,7 @@ def DisconnectTracker(tracker_id): | @@ -211,6 +216,7 @@ def DisconnectTracker(tracker_id): | ||
| 211 | import polhemus | 216 | import polhemus |
| 212 | polhemus.polhemus().Close() | 217 | polhemus.polhemus().Close() |
| 213 | lib_mode = 'wrapper' | 218 | lib_mode = 'wrapper' |
| 219 | + print 'Polhemus tracker disconnected.' | ||
| 214 | except ImportError: | 220 | except ImportError: |
| 215 | lib_mode = 'error' | 221 | lib_mode = 'error' |
| 216 | print 'The polhemus library is not installed.' | 222 | print 'The polhemus library is not installed.' |
| @@ -219,4 +225,6 @@ def DisconnectTracker(tracker_id): | @@ -219,4 +225,6 @@ def DisconnectTracker(tracker_id): | ||
| 219 | print 'Debug tracker disconnected.' | 225 | print 'Debug tracker disconnected.' |
| 220 | lib_mode = 'debug' | 226 | lib_mode = 'debug' |
| 221 | 227 | ||
| 228 | + Publisher.sendMessage('Update status text in GUI', _("Ready")) | ||
| 229 | + | ||
| 222 | return trck_init, lib_mode | 230 | return trck_init, lib_mode |
| 223 | \ No newline at end of file | 231 | \ No newline at end of file |
invesalius/gui/frame.py
| @@ -382,6 +382,7 @@ class Frame(wx.Frame): | @@ -382,6 +382,7 @@ class Frame(wx.Frame): | ||
| 382 | Close all project data. | 382 | Close all project data. |
| 383 | """ | 383 | """ |
| 384 | Publisher.sendMessage('Close Project') | 384 | Publisher.sendMessage('Close Project') |
| 385 | + Publisher.sendMessage('Disconnect tracker') | ||
| 385 | s = ses.Session() | 386 | s = ses.Session() |
| 386 | if not s.IsOpen() or not s.project_path: | 387 | if not s.IsOpen() or not s.project_path: |
| 387 | Publisher.sendMessage('Exit') | 388 | Publisher.sendMessage('Exit') |
invesalius/gui/task_navigator.py
| @@ -312,6 +312,7 @@ class NeuronavigationPanel(wx.Panel): | @@ -312,6 +312,7 @@ class NeuronavigationPanel(wx.Panel): | ||
| 312 | Publisher.subscribe(self.LoadImageFiducials, 'Load image fiducials') | 312 | Publisher.subscribe(self.LoadImageFiducials, 'Load image fiducials') |
| 313 | Publisher.subscribe(self.UpdateTriggerState, 'Update trigger state') | 313 | Publisher.subscribe(self.UpdateTriggerState, 'Update trigger state') |
| 314 | Publisher.subscribe(self.UpdateImageCoordinates, 'Set ball reference position') | 314 | Publisher.subscribe(self.UpdateImageCoordinates, 'Set ball reference position') |
| 315 | + Publisher.subscribe(self.OnDisconnectTracker, 'Disconnect tracker') | ||
| 315 | 316 | ||
| 316 | def LoadImageFiducials(self, pubsub_evt): | 317 | def LoadImageFiducials(self, pubsub_evt): |
| 317 | marker_id = pubsub_evt.data[0] | 318 | marker_id = pubsub_evt.data[0] |
| @@ -341,6 +342,10 @@ class NeuronavigationPanel(wx.Panel): | @@ -341,6 +342,10 @@ class NeuronavigationPanel(wx.Panel): | ||
| 341 | def UpdateTriggerState (self, pubsub_evt): | 342 | def UpdateTriggerState (self, pubsub_evt): |
| 342 | self.trigger_state = pubsub_evt.data | 343 | self.trigger_state = pubsub_evt.data |
| 343 | 344 | ||
| 345 | + def OnDisconnectTracker(self, pubsub_evt): | ||
| 346 | + if self.tracker_id: | ||
| 347 | + dt.TrackerConnection(self.tracker_id, 'disconnect') | ||
| 348 | + | ||
| 344 | def OnChoiceTracker(self, evt, ctrl): | 349 | def OnChoiceTracker(self, evt, ctrl): |
| 345 | Publisher.sendMessage('Update status text in GUI', _("Configuring tracker ...")) | 350 | Publisher.sendMessage('Update status text in GUI', _("Configuring tracker ...")) |
| 346 | if evt: | 351 | if evt: |