summaryrefslogtreecommitdiff
path: root/digital/io-hub/tools/io_hub/mex.py
diff options
context:
space:
mode:
authorNicolas Schodet2011-05-23 00:13:14 +0200
committerNicolas Schodet2011-05-23 01:25:09 +0200
commitc5b1353dea8a426d6eea043fb5aa78722f7b0bc5 (patch)
tree110c3c8e92b23c6d9535f0ee22ebac87ef26977f /digital/io-hub/tools/io_hub/mex.py
parente2ea2a7d57b9a204c08488118aa054b56a1e43fe (diff)
digital/io-hub: add US distance sensors
Diffstat (limited to 'digital/io-hub/tools/io_hub/mex.py')
-rw-r--r--digital/io-hub/tools/io_hub/mex.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/digital/io-hub/tools/io_hub/mex.py b/digital/io-hub/tools/io_hub/mex.py
index d9568197..22e9e900 100644
--- a/digital/io-hub/tools/io_hub/mex.py
+++ b/digital/io-hub/tools/io_hub/mex.py
@@ -44,9 +44,21 @@ class Mex:
"""
- def __init__ (self):
+ def __init__ (self, node, instance, index):
Observable.__init__ (self)
- self.value = None
+ self.value = 0
+ self.__node = node
+ self.__mtype = node.reserve (instance + ':adc')
+ self.__index = index
+ self.register (self.__notified)
+
+ def __notified (self):
+ m = simu.mex.msg.Msg (self.__mtype)
+ v = int (1024 * self.value / 5)
+ v = min (v, 1023)
+ v = max (0, v)
+ m.push ('BH', self.__index, v)
+ self.__node.send (m)
class PWM (Observable):
"""PWM output.
@@ -110,9 +122,9 @@ class Mex:
self.node.send (m)
def __init__ (self, node, instance = 'io-hub0'):
- self.adc = tuple (self.ADC () for i in range (0, ADC_NB))
+ self.adc = tuple (self.ADC (node, instance, i) for i in range (0, ADC_NB))
self.pwm = tuple (self.PWM () for i in range (0, PWM_NB))
- self.__adc_pwm = self.PWM.Pack (node, instance, self.pwm)
+ self.__pwm_pack = self.PWM.Pack (node, instance, self.pwm)
self.__contact_pack = self.Contact.Pack (node, instance)
self.contact = tuple (self.Contact (self.__contact_pack, i)
for i in range (CONTACT_NB))