Skip to content
Snippets Groups Projects
Commit 8edb697f authored by jkerdreu's avatar jkerdreu
Browse files

Add support for device state at boot


git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2739 b32b6428-25c9-4566-ad07-03861ab6144f
parent 5613a9b4
No related branches found
No related tags found
No related merge requests found
......@@ -65,6 +65,7 @@ class GW(gevent.Greenlet):
emb = gw.new_attribute('embedded',[])
emb.value = [io.dev.address for io in self.in_out]
self.engine.add_device(gw)
self.send('GetOutputs')
def _run(self):
while 1:
......@@ -76,26 +77,34 @@ class GW(gevent.Greenlet):
self.parse_line(line)
def parse_line(self,line):
#logger.debug(line)
if line == 'OK': return
data = line.split('&')
if len(data) == 26:
out = data[1][2:]
#print(out)
i = 0
for c in out:
i = i + 1
for io in self.in_out:
if io.chan == i:
io.state.value = bool(int(c))
break
if line.startswith('I='):
data = line.split('&')
if len(data) == 26:
out = data[1][2:]
self.parse_output(out)
elif len(line)==32:
self.parse_output(line)
def parse_output(self,data):
i = 0
for c in data:
i = i + 1
for io in self.in_out:
if io.chan == i:
io.state.value = bool(int(c))
break
def send(self,data):
logger.debug(data)
data = data + "\r\n"
self.sock.send(data.encode('utf-8'))
time.sleep(0.07)
def network_error(self,msg):
logger.info("Network Error IPX800: %s" %msg)
logger.warning("Network Error IPX800: %s" %msg)
self.sock.close()
self.connect()
time.sleep(2)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment