Rev 737 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 737 | Rev 738 | ||
|---|---|---|---|
| Line 8... | Line 8... | ||
| 8 | from NodeIfBase import NodeIfBase |
8 | from NodeIfBase import NodeIfBase |
| 9 | from threading import Thread |
9 | from threading import Thread |
| 10 | import serial |
10 | import serial |
| 11 | import sys |
11 | import sys |
| 12 | import time |
12 | import time |
| 13 | - | ||
| 14 | UART_START_BYTE = 253 |
- | |
| 15 | UART_END_BYTE = 250 |
- | |
| 16 | PACKET_LENGTH = 17 |
- | |
| 17 | readBufferSize = 8192 |
- | |
| 18 | UART_CONN_BYTE = 252 |
- | |
| 19 | 13 | ||
| 20 | class SerialThread(Thread): |
14 | class SerialThread(Thread): |
| 21 | 15 | ||
| 22 | terminated = False |
16 | terminated = False |
| 23 | port = None |
17 | port = None |
| 24 | pktHandler = None |
18 | pktHandler = None |
| 25 | 19 | ||
| 26 | def __init__ (self, pktHandler, port): |
20 | def __init__ (self, pktHandler, port): |
| 27 | Thread.__init__(self) |
21 | Thread.__init__(self) |
| 28 | self.pktHandler = pktHandler |
22 | self.pktHandler = pktHandler |
| 29 | self.port = port |
23 | self.port = port |
| 30 | 24 | ||
| Line 41... | Line 35... | ||
| 41 | #print 'Incoming:', msg |
35 | #print 'Incoming:', msg |
| 42 | self.pktHandler.input(msg) |
36 | self.pktHandler.input(msg) |
| 43 | else: |
37 | else: |
| 44 | readBuffer.append(inByte) |
38 | readBuffer.append(inByte) |
| 45 | 39 | ||
| 46 | time.sleep(0. |
40 | time.sleep(0.001) |
| - | 41 | ||
| 47 | self.port.close() |
42 | self.port.close() |
| - | 43 | self.ownerNotifier.notify(self.ownerNotifier.TERMINATE) |
|
| - | 44 | ||
| 48 | except: # sys.excepthook does not work in threads |
45 | except: # sys.excepthook does not work in threads |
| 49 | import traceback |
46 | import traceback |
| 50 | traceback.print_exc() |
47 | traceback.print_exc() |
| 51 | self.terminate() |
48 | self.terminate() |
| 52 | self.port.close() |
49 | self.port.close() |
| Line 96... | Line 93... | ||
| 96 | self.serialThread = SerialThread(self.pktHandler, port) |
93 | self.serialThread = SerialThread(self.pktHandler, port) |
| 97 | self.serialThread.start() |
94 | self.serialThread.start() |
| 98 | return True |
95 | return True |
| 99 | 96 | ||
| 100 | def stop(self): |
97 | def stop(self): |
| 101 | if self.serialThread is not None: |
98 | if self.serialThread is not None and not self.stimThread.terminated: |
| 102 | self.serialThread.terminate() |
99 | self.serialThread.terminate() |
| 103 | else: |
100 | else: |
| 104 | log.debug('Serial interface not started, or already stopped') |
101 | log.debug('Serial interface not started, or already stopped') |
| 105 | 102 | ||
| 106 | def running(self): |
103 | def running(self): |