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

Fix spec 0.7rev2 is_alive

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2777 b32b6428-25c9-4566-ad07-03861ab6144f
parent 98fb4de5
Branches
No related tags found
No related merge requests found
......@@ -108,12 +108,11 @@ class EngineMixin(object):
msg = self.msg_factory.build_alive_for(dev, timeout)
self.queue_msg(msg)
def send_is_alive(self, dev, dev_types="any.any"):
def send_is_alive(self, dev, targets=[ALIVE_ADDR,], dev_types="any.any"):
"""Send a is_alive message, w/ dev_types filtering"""
body = {}
body['dev_types'] = dev_types
msg = self.msg_factory.build_msg(dev, [ALIVE_ADDR,], MessageType.REQUEST, "is_alive", body)
self.queue_msg(msg)
body = {'dev_types': dev_types}
self.send_request(dev,targets, 'is_alive', body)
#####################################################
......@@ -238,11 +237,13 @@ class Timer(object):
def filter_msg_for_devices(msg, devices):
"""
loop throught the devices, to find which are expected w/ the msg
- Filter on dev_types for is_alive request.
- Filter on dev_types for is_alive broadcast request.
- Filter on device address
"""
results = []
if msg.is_request_isalive():
if msg.is_request_isalive() and (ALIVE_ADDR in msg.targets):
# if we receive a broadcast is_alive request, we reply
# with filtering on dev_tyes.
if 'dev_types' in msg.body.keys():
dev_types = msg.body['dev_types']
if 'any.any' in dev_types:
......@@ -255,6 +256,9 @@ def filter_msg_for_devices(msg, devices):
elif any_subtype in dev_types:
results.append(dev)
else:
# this is a normal request, only filter on device address
# note: direct is_alive are treated like normal request
# so dev_types filtering is discarded
for dev in devices:
if dev.address in msg.targets:
results.append(dev)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment