Commit 110416af82c99ebc09f4d070e2c50213fbb4c397

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

PLH stylus button can be used in PCs without serial ports (#113)

* PLH stylus button can be used in PCs without serial ports

* Message box for communication error
Showing 1 changed file with 18 additions and 16 deletions   Show diff stats
invesalius/data/trigger.py
... ... @@ -33,20 +33,21 @@ class Trigger(threading.Thread):
33 33 threading.Thread.__init__(self)
34 34 self.trigger_init = None
35 35 self.stylusplh = False
  36 + self.COM = False
  37 + self.nav_id = nav_id
36 38 self.__bind_events()
37 39 try:
38 40 import serial
39 41  
40 42 self.trigger_init = serial.Serial('COM1', baudrate=9600, timeout=0)
41   - self.nav_id = nav_id
42   - self._pause_ = False
43   - self.start()
  43 + self.COM = True
44 44  
45   - except ImportError:
46   - print 'PySerial library not installed. Please install to use Trigger option.'
  45 + except:
  46 + wx.MessageBox(_('Connection with port COM1 failed'), _('Communication error'), wx.OK | wx.ICON_ERROR)
  47 + self.COM = False
47 48  
48   - except serial.serialutil.SerialException:
49   - print 'Connection with port COM1 failed.'
  49 + self._pause_ = False
  50 + self.start()
50 51  
51 52 def __bind_events(self):
52 53 Publisher.subscribe(self.OnStylusPLH, 'PLH Stylus Button On')
... ... @@ -59,15 +60,16 @@ class Trigger(threading.Thread):
59 60  
60 61 def run(self):
61 62 while self.nav_id:
62   - self.trigger_init.write('0')
63   - sleep(0.3)
64   - lines = self.trigger_init.readlines()
65   - # Following lines can simulate a trigger in 3 sec repetitions
66   - # sleep(3)
67   - # lines = True
68   - if lines:
69   - wx.CallAfter(Publisher.sendMessage, 'Create marker')
70   - sleep(0.5)
  63 + if self.COM:
  64 + self.trigger_init.write('0')
  65 + sleep(0.3)
  66 + lines = self.trigger_init.readlines()
  67 + # Following lines can simulate a trigger in 3 sec repetitions
  68 + # sleep(3)
  69 + # lines = True
  70 + if lines:
  71 + wx.CallAfter(Publisher.sendMessage, 'Create marker')
  72 + sleep(0.5)
71 73  
72 74 if self.stylusplh:
73 75 wx.CallAfter(Publisher.sendMessage, 'Create marker')
... ...