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

Added configuration file.

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/fork@1555 b32b6428-25c9-4566-ad07-03861ab6144f
parent c9e1fd2c
Branches
No related tags found
No related merge requests found
[config]
port = /dev/ttyACM1
addr = a25ba222-b00d-4938-a4cc-27d056ec3645
addr = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
[relays]
[[A1]]
addr = 2a3e52cf-cd60-4241-90b7-9a85b6b691ca
addr = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
[[B1]]
addr = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
......@@ -10,7 +10,7 @@ logger = tools.get_logger(PACKAGE_NAME,'DEBUG')
def new_dev(gw,key,channel,addr):
""" create e new xAAL device """
dev = None
if dev=='lamp':
dev = Device("lamp.basic",addr)
......@@ -24,12 +24,12 @@ def new_dev(gw,key,channel,addr):
# methods
def on(dev):
var.value = True
gw.switch_relay('ON',key,channel)
if gw.switch_relay('ON',key,channel):
var.value = True
def off(dev):
var.value = False
gw.switch_relay('OFF',key,channel)
if gw.switch_relay('OFF',key,channel):
var.value = False
dev.add_method('on',on)
dev.add_method('off',off)
......@@ -37,26 +37,26 @@ def new_dev(gw,key,channel,addr):
class GW(object):
def __init__(self,engine):
self.engine = engine
self.cfg = tools.load_cfg_or_die(PACKAGE_NAME)
#self.connect()
self.setup()
self.setup_gw()
def setup(self):
""" connect to serial port, and load configuration file"""
# connect to serial port
port = self.cfg['config']['port']
self.ser = serial.Serial(port,19200,timeout=0.5)
l1 = new_dev(self,'A',1,tools.get_random_uuid())
l2 = new_dev(self,'B',1,tools.get_random_uuid())
l3 = new_dev(self,'C',1,tools.get_random_uuid())
self.engine.add_devices([l1,l2,l3])
# load devices from
devices = []
relays = self.cfg['relays']
for k in relays:
dev = new_dev(self,k[0],k[1],relays[k]['addr'])
devices.append(dev)
self.engine.add_devices(devices)
def setup_gw(self):
# last step build the GW device
gw = Device("gateway.basic")
gw.address = self.cfg['config']['addr']
......@@ -66,15 +66,16 @@ class GW(object):
gw.info = "%s@%s" % (PACKAGE_NAME,platform.node())
emb = gw.new_attribute('embedded',[])
#emb.value.append([io.dev.address for io in self.in_out])
emb.value.append([dev.address for dev in devices])
self.engine.add_device(gw)
def switch_relay(self,cmd,key,channel):
""" turn on & off relay via serial arduino"""
r = '%s %s %s\r\n' % (cmd,key,channel)
print(r,end='')
self.ser.write(r)
line = self.ser.readline()
print(line,end='')
return True
def run():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment