From 3a9cb5ee438f1cef6193ae3a00764cb29f5ecf0e Mon Sep 17 00:00:00 2001 From: jkerdreu <jkerdreu@b32b6428-25c9-4566-ad07-03861ab6144f> Date: Wed, 20 Oct 2021 12:52:47 +0000 Subject: [PATCH] Cleanup before merging Aio git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2715 b32b6428-25c9-4566-ad07-03861ab6144f --- apps/tools/xaal/tools/dumper.py | 5 +++-- apps/tools/xaal/tools/info.py | 2 +- apps/tools/xaal/tools/isalive.py | 4 ++-- apps/tools/xaal/tools/log.py | 2 +- apps/tools/xaal/tools/tail.py | 2 +- apps/tools/xaal/tools/uuidgen.py | 2 +- libs/lib/xaal/lib/core.py | 21 +++++++++++++-------- libs/monitor/xaal/monitor/monitor.py | 2 +- scripts/alarm.py | 2 +- scripts/btn_relay.py | 2 +- scripts/btn_relay_labo.py | 2 +- scripts/ensibs_btn.py | 2 +- 12 files changed, 27 insertions(+), 21 deletions(-) diff --git a/apps/tools/xaal/tools/dumper.py b/apps/tools/xaal/tools/dumper.py index ee555320..d1b21038 100644 --- a/apps/tools/xaal/tools/dumper.py +++ b/apps/tools/xaal/tools/dumper.py @@ -18,7 +18,8 @@ # -from xaal.lib import Engine,helpers +#from xaal.lib import Engine,helpers +from xaal.aiolib import Engine,helpers helpers.setup_console_logger() helpers.set_console_title("xaal-dumper") @@ -29,7 +30,7 @@ def display(msg): def main(): try: eng = Engine() - eng.add_rx_handler(display) + eng.subscribe(display) eng.run() except KeyboardInterrupt: print("Bye Bye") diff --git a/apps/tools/xaal/tools/info.py b/apps/tools/xaal/tools/info.py index 6f5509e3..1225b5aa 100644 --- a/apps/tools/xaal/tools/info.py +++ b/apps/tools/xaal/tools/info.py @@ -39,7 +39,7 @@ class InfoDumper: dev.vendor_id = "IHSEV" dev.product_id = "xAAL InfoDumper" self.eng.add_device(dev) - self.eng.add_rx_handler(self.parse_answer) + self.eng.subscribe(self.parse_answer) print(f"xAAL Info dumper [{addr}]") self.dev = dev diff --git a/apps/tools/xaal/tools/isalive.py b/apps/tools/xaal/tools/isalive.py index 5c6a6963..6a7080ab 100644 --- a/apps/tools/xaal/tools/isalive.py +++ b/apps/tools/xaal/tools/isalive.py @@ -33,7 +33,7 @@ class Scanner: # new fake device self.dev = Device("cli.experimental",tools.get_random_uuid()) self.eng.add_device(self.dev) - self.eng.add_rx_handler(self.parse_answer) + self.eng.subscribe(self.parse_answer) def query(self,dev_type): if not tools.is_valid_dev_type(dev_type): @@ -54,7 +54,7 @@ class Scanner: t0 = time.time() while 1: self.eng.loop() - if time.time() > (t0 + 1): + if time.time() > (t0 + 2): break def parse_answer(self,msg): diff --git a/apps/tools/xaal/tools/log.py b/apps/tools/xaal/tools/log.py index 9e75f0bb..face687c 100644 --- a/apps/tools/xaal/tools/log.py +++ b/apps/tools/xaal/tools/log.py @@ -15,7 +15,7 @@ def print_evt(msg): def main(): try: eng = Engine() - eng.add_rx_handler(print_evt) + eng.subscribe(print_evt) eng.run() except KeyboardInterrupt: print("ByeBye..") diff --git a/apps/tools/xaal/tools/tail.py b/apps/tools/xaal/tools/tail.py index 0c091d87..b7f0725c 100644 --- a/apps/tools/xaal/tools/tail.py +++ b/apps/tools/xaal/tools/tail.py @@ -80,7 +80,7 @@ def main(): level = int(sys.argv[1]) eng = Engine() - eng.add_rx_handler(display) + eng.subscribe(display) eng.start() term('@@') diff --git a/apps/tools/xaal/tools/uuidgen.py b/apps/tools/xaal/tools/uuidgen.py index cd80bd41..94c70e38 100644 --- a/apps/tools/xaal/tools/uuidgen.py +++ b/apps/tools/xaal/tools/uuidgen.py @@ -1,4 +1,4 @@ -from xaal.lib import tools,config +from xaal.lib import tools import sys diff --git a/libs/lib/xaal/lib/core.py b/libs/lib/xaal/lib/core.py index e756d3aa..c9a92eac 100644 --- a/libs/lib/xaal/lib/core.py +++ b/libs/lib/xaal/lib/core.py @@ -28,16 +28,21 @@ from . import config import time import inspect import collections +from enum import Enum import logging logger = logging.getLogger(__name__) +class EngineState(Enum): + start = 0 + run = 1 + halt = 2 + class Engine(object): def __init__(self,address=config.address,port=config.port,hops=config.hops,key=config.key): self.devices = [] # list of devices / use (un)register_devices() - self.started = False # engine started or not - self.running = False # engine is running or not + self.state = EngineState.halt self.timers = [] # functions to call periodic self.__last_timer = 0 # last timer check self.subscribers =[self.handle_request] # message receive workflow @@ -319,21 +324,21 @@ class Engine(object): def start(self): """Start the core engine: send queue alive msg""" - if self.started: + if self.state in [EngineState.start,EngineState.run]: return self.network.connect() for dev in self.devices: self.send_alive(dev) dev.update_alive() - self.started = True + self.state = EngineState.start def stop(self): - self.running = False + self.state = EngineState.halt def run(self): self.start() - self.running = True - while self.running: + self.state = EngineState.run + while self.state == EngineState.run: self.loop() @@ -341,7 +346,7 @@ def filter_msg_for_devices(msg, devices): """loop throught the devices, to find which are expected w/ the msg - - Filter on devTypes for isAlive request. + - Filter on dev_types for is_alive request. - Filter on device address """ results = [] diff --git a/libs/monitor/xaal/monitor/monitor.py b/libs/monitor/xaal/monitor/monitor.py index e399166d..b106c09d 100644 --- a/libs/monitor/xaal/monitor/monitor.py +++ b/libs/monitor/xaal/monitor/monitor.py @@ -212,7 +212,7 @@ class Monitor: self.devices = Devices() self.filter = filter_func self.subscribers = [] - self.engine.add_rx_handler(self.on_receive_msg) + self.engine.subscribe(self.on_receive_msg) # only send isAlive message every 2 expirations self.send_isalive() self.engine.add_timer(self.refresh_alives,REFRESH_TIMER) diff --git a/scripts/alarm.py b/scripts/alarm.py index c778097a..2705800b 100644 --- a/scripts/alarm.py +++ b/scripts/alarm.py @@ -111,7 +111,7 @@ def main(): dev.new_attribute('state') engine = Engine() engine.add_device(dev) - engine.add_rx_handler(handle_msg) + engine.subscribe(handle_msg) engine.add_timer(update,1) engine.run() diff --git a/scripts/btn_relay.py b/scripts/btn_relay.py index 488b4d7f..b91c36bc 100644 --- a/scripts/btn_relay.py +++ b/scripts/btn_relay.py @@ -68,7 +68,7 @@ def main(): dev.info = '%s@%s' % (PKG_NAME,platform.node()) engine = Engine() engine.add_device(dev) - engine.add_rx_handler(handle_msg) + engine.subscribe(handle_msg) engine.run() if __name__ == '__main__': diff --git a/scripts/btn_relay_labo.py b/scripts/btn_relay_labo.py index 9d9abbe3..b526e654 100644 --- a/scripts/btn_relay_labo.py +++ b/scripts/btn_relay_labo.py @@ -146,7 +146,7 @@ def main(): dev.info = '%s@%s' % (PKG_NAME,platform.node()) engine = Engine() engine.add_device(dev) - engine.add_rx_handler(handle_msg) + engine.subscribe(handle_msg) mon = Monitor(dev) engine.run() diff --git a/scripts/ensibs_btn.py b/scripts/ensibs_btn.py index aa5b53de..cc39b6fb 100644 --- a/scripts/ensibs_btn.py +++ b/scripts/ensibs_btn.py @@ -160,7 +160,7 @@ def main(): dev.info = '%s@%s' % (PKG_NAME,platform.node()) engine = Engine() engine.add_device(dev) - engine.add_rx_handler(handle_msg) + engine.subscribe(handle_msg) mon = Monitor(dev) engine.run() -- GitLab