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

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
parent c754f9bb
Branches
No related tags found
No related merge requests found
......@@ -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")
......
......@@ -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
......
......@@ -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):
......
......@@ -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..")
......
......@@ -80,7 +80,7 @@ def main():
level = int(sys.argv[1])
eng = Engine()
eng.add_rx_handler(display)
eng.subscribe(display)
eng.start()
term('@@')
......
from xaal.lib import tools,config
from xaal.lib import tools
import sys
......
......@@ -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 = []
......
......@@ -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)
......
......@@ -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()
......
......@@ -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__':
......
......@@ -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()
......
......@@ -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()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment