Commit d2b69c976a0b9d0eb55549420cc670c9d14366c5

Authored by Renan
Committed by Thiago Franco de Moraes
1 parent 5ad7deb8
Exists in master

Support fastrak (#104)

* Supported polhemus fastrak

* Fixed scale for fastrak
invesalius/data/coordinates.py
... ... @@ -102,10 +102,8 @@ def PolhemusCoord(trck, trck_id, ref_mode):
102 102  
103 103  
104 104 def PolhemusWrapperCoord(trck, trck_id, ref_mode):
105   - if trck_id == 2:
106   - scale = 10. * np.array([1., 1.0, -1.0])
107   - else:
108   - scale = 25.4 * np.array([1., 1.0, -1.0])
  105 +
  106 + scale = 25.4 * np.array([1., 1.0, -1.0])
109 107 coord = None
110 108  
111 109 if ref_mode:
... ...
invesalius/data/trackers.py
... ... @@ -32,7 +32,7 @@ def TrackerConnection(tracker_id, action):
32 32  
33 33 if action == 'connect':
34 34 trck_fcn = {1: ClaronTracker,
35   - 2: PolhemusTracker, # FASTRAK
  35 + 2: PolhemusTrackerFT, # FASTRAK
36 36 3: PolhemusTracker, # ISOTRAK
37 37 4: PolhemusTracker, # PATRIOT
38 38 5: DebugTracker}
... ... @@ -87,6 +87,24 @@ def ClaronTracker(tracker_id):
87 87  
88 88 return trck_init, lib_mode
89 89  
  90 +def PolhemusTrackerFT(tracker_id):
  91 + trck_init = None
  92 + lib_mode = 'wrapper'
  93 + try:
  94 + import polhemusFT
  95 +
  96 + trck_init = polhemusFT.polhemusFT()
  97 + trck_check = trck_init.Initialize()
  98 +
  99 + if trck_check:
  100 + # First run is necessary to discard the first coord collection
  101 + trck_init.Run()
  102 + else:
  103 + trck_init = trck_check
  104 + except:
  105 + print 'Could not connect to Polhemus via wrapper.'
  106 +
  107 + return trck_init, lib_mode
90 108  
91 109 def PolhemusTracker(tracker_id):
92 110 trck_init = None
... ... @@ -213,6 +231,16 @@ def DisconnectTracker(tracker_id):
213 231 lib_mode = 'error'
214 232 print 'The ClaronTracker library is not installed.'
215 233  
  234 + elif tracker_id == 2:
  235 + try:
  236 + import polhemusFT
  237 + polhemusFT.polhemusFT().Close()
  238 + lib_mode = 'wrapper'
  239 + print 'Polhemus tracker disconnected.'
  240 + except ImportError:
  241 + lib_mode = 'error'
  242 + print 'The polhemus library is not installed.'
  243 +
216 244 elif tracker_id == 4:
217 245 try:
218 246 import polhemus
... ...