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

Fix the is_alive on new device added if running.

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2961 b32b6428-25c9-4566-ad07-03861ab6144f
parent 097c9d33
No related branches found
No related tags found
No related merge requests found
......@@ -157,7 +157,6 @@ class AsyncEngine(core.EngineMixin):
# queue the alive before anything
for dev in self.devices:
self.send_alive(dev)
dev.update_alive()
await self.network.connect()
self.running_event.set()
await self.run_hooks(HookType.start)
......
......@@ -55,6 +55,8 @@ class EngineMixin(object):
if dev not in self.devices:
self.devices.append(dev)
dev.engine = self
if self.is_running():
self.send_alive(dev)
def add_devices(self, devs):
"""register new devices"""
......@@ -107,6 +109,7 @@ class EngineMixin(object):
timeout = dev.get_timeout()
msg = self.msg_factory.build_alive_for(dev, timeout)
self.queue_msg(msg)
dev.update_alive()
def send_is_alive(self, dev, targets=[ALIVE_ADDR,], dev_types=["any.any",]):
"""Send a is_alive message, w/ dev_types filtering"""
......@@ -114,7 +117,6 @@ class EngineMixin(object):
self.send_request(dev,targets, 'is_alive', body)
#####################################################
# Messages filtering
#####################################################
......@@ -151,7 +153,6 @@ class EngineMixin(object):
for dev in self.devices:
if dev.next_alive < now :
self.send_alive(dev)
dev.update_alive()
#####################################################
# xAAL attributes changes
......@@ -220,6 +221,8 @@ class EngineMixin(object):
def run(self):
logger.critical("To be implemented run")
def is_running(self):
logger.critical("To be implemented is_running")
#####################################################
# Timer class
......
......@@ -192,7 +192,6 @@ class Engine(core.EngineMixin):
self.network.connect()
for dev in self.devices:
self.send_alive(dev)
dev.update_alive()
self.state = EngineState.started
def stop(self):
......@@ -207,6 +206,10 @@ class Engine(core.EngineMixin):
while self.state == EngineState.running:
self.loop()
def is_running(self):
if self.state == EngineState.running:
return True
return False
def run_action(msg,device):
"""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment