optimize serial communication

This commit is contained in:
Pavol Rusnak 2011-03-30 04:14:17 +02:00
parent e70b9fbca1
commit 333079d8a7
2 changed files with 22 additions and 25 deletions

6
README
View file

@ -6,8 +6,12 @@ http://brmlab.cz/
Authors Authors
------- -------
Tomislav "sargon" Arnaudov Tomislav "sargon" Arnaudov
Karel "b00lean" Kyovsky
Milan "biiter" Rossa
Pavol "stick" Rusnak Pavol "stick" Rusnak
Software Software
-------- --------
- required packages: python-qt4-devel - required packages:
* python-qt4-devel
* python-serial

View file

@ -18,11 +18,11 @@ class Device:
self.sdata.close() self.sdata.close()
self.sctrl.close() self.sctrl.close()
def cmd(self, *args): def cmd(self, buf):
if not self.sctrl.isOpen(): if not self.sctrl.isOpen():
return None return None
self.sctrl.write(' '.join(args) + '\n') self.sctrl.write(buf+'\n')
return self.sctrl.readline().strip().split(' ') return self.sctrl.readline().strip()
def send(self, buf): def send(self, buf):
if not self.sdata.isOpen(): if not self.sdata.isOpen():
@ -42,7 +42,7 @@ class Device:
E> PONG E> PONG
""" """
def ping(self): def ping(self):
return self.cmd('PING') == ['PONG'] return self.cmd('PING') == 'PONG'
""" """
Read version Read version
@ -52,8 +52,8 @@ class Device:
""" """
def version(self): def version(self):
r = self.cmd('VERSION') r = self.cmd('VERSION')
if r and r[0] == 'VERSION' and r[1] == 'EDUBRM': if r and r.startswith('VERSION EDUBRM '):
return r[2] return r[15:]
return None return None
# TODO: ANALOG PINS # TODO: ANALOG PINS
@ -76,8 +76,8 @@ class Device:
""" """
def cfgio(self): def cfgio(self):
r = self.cmd('CFGIO') r = self.cmd('CFGIO')
if r and r[0] == 'CFGIO': if r and r.startswith('CFGIO '):
return r[1] return r[6:]
return None return None
""" """
@ -87,8 +87,7 @@ class Device:
E> CFGIO OK E> CFGIO OK
""" """
def cfgio(self, state): def cfgio(self, state):
r = self.cmd('CFGIO', state) return self.cmd('CFGIO ' + state) == 'CFGIO OK'
return r == ['CFGIO', 'OK']
""" """
Read all inputs Read all inputs
@ -98,8 +97,8 @@ class Device:
""" """
def getio(self): def getio(self):
r = self.cmd('GETIO') r = self.cmd('GETIO')
if r and r[0] == 'GETIO': if r and r.startswith('GETIO '):
return r[1] return r[6:]
return None return None
""" """
@ -109,8 +108,7 @@ class Device:
E> SETIO OK E> SETIO OK
""" """
def setio(self, state): def setio(self, state):
r = self.cmd('SETIO', state) return self.cmd('SETIO ' + state) == 'SETIO OK'
return r == ['SETIO', 'OK']
""" """
Set all outputs to logical 0 Set all outputs to logical 0
@ -119,8 +117,7 @@ class Device:
E> CLRIO OK E> CLRIO OK
""" """
def clrio(self, state): def clrio(self, state):
r = self.cmd('CLRIO', state) return self.cmd('CLRIO ' + state) == 'CLRIO OK'
return r == ['CLRIO', 'OK']
""" """
Set oposite state on specified pin for specified duration Set oposite state on specified pin for specified duration
@ -129,8 +126,7 @@ class Device:
E> PULSE OK E> PULSE OK
""" """
def pulse(self, pin, duration): def pulse(self, pin, duration):
r = self.cmd('PULSE', pin, duration) return self.cmd('PULSE ' + str(pin) + ' ' + str(duration)) == 'PULSE OK'
return r == ['PULSE', 'OK']
""" """
Set data transmission (from PC to mainboard) Set data transmission (from PC to mainboard)
@ -139,8 +135,7 @@ class Device:
E> DATAUP OK E> DATAUP OK
""" """
def dataup(self, state): def dataup(self, state):
r = self.cmd('DATAUP', state) return self.cmd('DATAUP ' + state) == 'DATAUP OK'
return r == ['DATAUP', 'OK']
""" """
Set data transmission (from mainboard to PC) Set data transmission (from mainboard to PC)
@ -149,8 +144,7 @@ class Device:
E> DATADOWN OK E> DATADOWN OK
""" """
def datadown(self, state): def datadown(self, state):
r = self.cmd('DATADOWN', state) return self.cmd('DATADOWN ' + state) == 'DATADOWN OK'
return r == ['DATADOWN', 'OK']
""" """
Stop data transmission in both directions Stop data transmission in both directions
@ -159,5 +153,4 @@ class Device:
E> DATASTOP OK E> DATASTOP OK
""" """
def datastop(self): def datastop(self):
r = self.cmd('DATASTOP') return self.cmd('DATASTOP') == 'DATASTOP OK'
return r == ['DATASTOP', 'OK']