Ich habe einen Thread gestartet der wie folgt aussieht:
Code: Alles auswählen
class SerialThread(threading.Thread):
def __init__(self, Prm):
self.Prm = Prm
self.SerialOK = threading.Event()
self.halt = threading.Event()
threading.Thread.__init__(self)
def run(self):
self.client = serial.Serial( port = self.Prm['port'],
baudrate = self.Prm['baudrate'],
bytesize = self.Prm['bytesize'],
parity = self.Prm['parity'],
stopbits = self.Prm['stopbits'],
timeout = 60)
buffer = ''
i = 0
if self.Prm['boot'] == 'true':
boot = False
while not boot:
buffer = buffer + self.client.read(self.client.inWaiting())
if buffer.count('\n') > i:
lines = buffer.split('\n')
if self.Prm['print'] == 'true':
print lines[i]
i = i + 1
if buffer.rsplit('\n', 1)[-1].strip() == self.Prm['Prompt01']:
self.client.write(self.Prm['Login'])
print buffer.rsplit('\n', 1)[-1].strip()
buffer = buffer + '\n'
boot = True
self.SerialOK.set()
def stop(self):
self.halt.set()
self.client.close()
Code: Alles auswählen
class GSM_ATA_Thread(threading.Thread):
def __init__(self, Prm, client):
self.Prm = Prm
self.client = client
self.Connected = threading.Event()
self.halt = threading.Event()
threading.Thread.__init__(self)
def run(self):
i = 0
connected = False
buffer = ''
print "waiting for Call"
while not connected:
buffer = buffer + self.client.read(self.client.inWaiting())
if buffer.rsplit('\n', 1)[-1].strip() == self.Prm['Prompt02']:
self.client.write(self.Prm['SerialClient'])
buffer = buffer + '\n'
if buffer.count('\n') > i:
print '--------> ' + str(buffer.count('\n'))
print '--------> ' + str(i)
lines = buffer.split('\n')
print lines[i]
if lines[i].strip().upper() == self.Prm['A']:
self.client.write(self.Prm['C'])
buffer = buffer + '\n'
print 'accepted!'
if lines[i].strip().upper() == self.Prm['B']:
self.client.write(self.Prm['D'])
buffer = buffer + '\n'
print 'aborted!'
i = i + 1
print "GSM_ATA_Thread terminated"
sollte ich das anders machen?
Danke