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

End for this week



git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2589 b32b6428-25c9-4566-ad07-03861ab6144f
parent 83549a73
No related branches found
No related tags found
No related merge requests found
......@@ -153,6 +153,13 @@ class Service(object):
dev.attributes[attr_name] = value_func(value)
return dev
def map_value(self,dev,data,attr_name,value_func):
value = data.get('value',None)
if value:
dev.attributes[attr_name] = value_func(value)
# ===========================================================================
# Below, you will find the data mapping. We can reduce this code easily
# but this should occur after more testing. I'm quite sure, we will find
......@@ -172,7 +179,7 @@ class Light(Service):
self.dev = self.map_device('light-level.current',devices.luxmeter,'illuminance',int_func)
def handler(self,src,data):
self.dev.attributes['illuminance'] = int(data['value'])
self.map_value(self.dev,data,'illuminance',int_func)
class Lamp(Service):
......@@ -180,7 +187,7 @@ class Lamp(Service):
self.dev = self.map_device('on',devices.lamp,'light',bool_func)
def handler(self,src,data):
self.dev.attributes['light'] = bool(data['value'])
self.map_value(self.dev,data,'light',bool_func)
class Motion(Service):
......@@ -188,7 +195,8 @@ class Motion(Service):
self.dev = self.map_device('motion-detected',devices.motion,'presence',bool_func)
def handler(self,src,data):
self.dev.attributes['presence'] = bool(data['value'])
self.map_value(self.dev,data,'presence',bool_func)
class Contact(Service):
......@@ -196,21 +204,22 @@ class Contact(Service):
self.dev = self.map_device('contact-state',devices.contact,'detected',bool_func)
def handler(self,src,data):
self.dev.attributes['detected'] = bool(data['value'])
self.map_value(self.dev,data,'detected',bool_func)
class Humidity(Service):
def setup(self):
self.dev = self.map_device('relative-humidity.current',devices.hygrometer,'humidity',round_2_func)
def handler(self,src,data):
self.dev.attributes['humidity'] = round(data['value'],2)
self.map_value(self.dev,data,'humidity',round_2_func)
class Temperature(Service):
def setup(self):
self.dev = self.map_device('temperature.current',devices.thermometer,'temperature',round_2_func)
def handler(self,src,data):
self.dev.attributes['temperature'] = round(data['value'],2)
self.map_value(self.dev,data,'temperature',round_2_func)
class Battery(Service):
......@@ -218,7 +227,7 @@ class Battery(Service):
self.dev = self.map_device('battery-level',devices.battery,'level',int_func)
def handler(self,src,data):
self.dev.attributes['level']=int(data['value'])
self.map_value(self.dev,data,'level',int_func)
def int_func(value):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment