From d2b69c976a0b9d0eb55549420cc670c9d14366c5 Mon Sep 17 00:00:00 2001 From: Renan Date: Tue, 4 Jul 2017 15:57:10 -0300 Subject: [PATCH] Support fastrak (#104) --- invesalius/data/coordinates.py | 6 ++---- invesalius/data/trackers.py | 30 +++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/invesalius/data/coordinates.py b/invesalius/data/coordinates.py index d4eff39..5d7f32e 100644 --- a/invesalius/data/coordinates.py +++ b/invesalius/data/coordinates.py @@ -102,10 +102,8 @@ def PolhemusCoord(trck, trck_id, ref_mode): def PolhemusWrapperCoord(trck, trck_id, ref_mode): - if trck_id == 2: - scale = 10. * np.array([1., 1.0, -1.0]) - else: - scale = 25.4 * np.array([1., 1.0, -1.0]) + + scale = 25.4 * np.array([1., 1.0, -1.0]) coord = None if ref_mode: diff --git a/invesalius/data/trackers.py b/invesalius/data/trackers.py index 89914e0..f866fe2 100644 --- a/invesalius/data/trackers.py +++ b/invesalius/data/trackers.py @@ -32,7 +32,7 @@ def TrackerConnection(tracker_id, action): if action == 'connect': trck_fcn = {1: ClaronTracker, - 2: PolhemusTracker, # FASTRAK + 2: PolhemusTrackerFT, # FASTRAK 3: PolhemusTracker, # ISOTRAK 4: PolhemusTracker, # PATRIOT 5: DebugTracker} @@ -87,6 +87,24 @@ def ClaronTracker(tracker_id): return trck_init, lib_mode +def PolhemusTrackerFT(tracker_id): + trck_init = None + lib_mode = 'wrapper' + try: + import polhemusFT + + trck_init = polhemusFT.polhemusFT() + trck_check = trck_init.Initialize() + + 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.' + + return trck_init, lib_mode def PolhemusTracker(tracker_id): trck_init = None @@ -213,6 +231,16 @@ def DisconnectTracker(tracker_id): lib_mode = 'error' print 'The ClaronTracker library is not installed.' + elif tracker_id == 2: + try: + import polhemusFT + polhemusFT.polhemusFT().Close() + lib_mode = 'wrapper' + print 'Polhemus tracker disconnected.' + except ImportError: + lib_mode = 'error' + print 'The polhemus library is not installed.' + elif tracker_id == 4: try: import polhemus -- libgit2 0.21.2