Subversion Repositories HomeAutomation

Rev

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.1)
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):