def run(): logger = tools.get_logger(__name__, logging.DEBUG, "%s.log" % __name__) #test_pysodium() #test_device() #test_msg() #test_encode() #test_log() #test_alive() #test_crypto_decoding_error() test_attr()
from xaal.lib import Engine, Device, tools import platform import copy import atexit PACKAGE_NAME = "xaal.metadb" logger = tools.get_logger(PACKAGE_NAME, 'DEBUG') class MetaDB(object): def __init__(self, engine): self.engine = engine self.cfg = tools.load_cfg_or_die(PACKAGE_NAME) self.setup() self.dirty = False atexit.register(self.periodic_save) def setup(self): addr = self.cfg['config']['addr'] dev = Device("metadatadb.basic") dev.address = addr dev.vendor_id = "IHSEV" dev.product_id = "Metadata database" dev.version = 0.1 dev.info = "%s@%s" % (PACKAGE_NAME, platform.node()) dev.add_method('getDevices', self.get_devices) dev.add_method('getKeysValues', self.get_keys_values) dev.add_method('getValue', self.get_value) dev.add_method('updateKeysValues', self.update_keys_values) dev.add_method('addKeysValues', self.add_keys_values)
import json import os import platform from gevent import Greenlet from gevent.pywsgi import WSGIServer from geventwebsocket.handler import WebSocketHandler # dev-type that don't appear in results BLACK_LIST = [ 'cli.experimental', ] PACKAGE_NAME = "xaal.rest" logger = tools.get_logger(PACKAGE_NAME, 'INFO') # we use this global variable to share data with greenlet monitor = None def monitor_filter(msg): """ Filter incomming messages. Return False if you don't want to use this device""" if msg.devtype in BLACK_LIST: return False return True def setup_xaal(): """ setup xAAL Engine & Device. And start it in a Greenlet""" global monitor
# (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from xaal.lib import tools from xaal.lib.core import Engine logger = tools.get_logger("dumper",'DEBUG') def display(msg): msg.dump() def main(): try: eng = Engine() eng.add_rx_handler(display) eng.run() except KeyboardInterrupt: print("Bye Bye") if __name__ == '__main__': main()
from xaal.lib import Device,Engine,tools import sys import time,random logger = tools.get_logger("test_switch.py","DEBUG") def main(addr): if addr == None: addr = tools.get_random_uuid() dev = Device("switch.basic",addr) dev.product_id = 'One Simple test of Switch' dev.url = 'http://www.acme.org' # attributes state = dev.new_attribute('state') dev.dump() # methods def on(): state.value = True print("%s ON" % dev) def off(): state.value = False print("%s OFF" %dev) dev.add_method('on',on) dev.add_method('off',off)
# # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # from xaal.lib.core import Engine from xaal.lib import tools from .ansi2 import term import sys level = 0 FORMAT = '%-8.08s=> %-10.10s %-36.36s (%-20.20s) %-18.18s %-45.45s' logger = tools.get_logger("tail", 'DEBUG') def reduceAddr(addr): return addr[:5] + '..' + addr[-5:] def display(msg): term('yellow') targets = [reduceAddr(addr) for addr in msg.targets] res = FORMAT % (msg.msgtype, msg.action, msg.source, msg.devtype, targets, msg.body) if msg.is_request(): if level > 2: return term('green')
from xaal.lib import Device, Engine, tools import sys logger = tools.get_logger("lamp.py", "DEBUG") def main(addr): if addr == None: addr = tools.get_random_uuid() dev = Device("lamp.dimmer", addr) dev.product_id = 'Dummy Dimming Lamp' dev.url = 'http://www.acme.org' # attributes light = dev.new_attribute('light') dimmer = dev.new_attribute('dimmer', 50) dev.dump() # methods def on(): light.value = True print("%s ON" % dev) def off(): light.value = False print("%s OFF" % dev) def dim(_target): dimmer.value = _target print("Dimming to %d" % _target)