예제 #1
0
파일: test.py 프로젝트: baocaifeng/xAAL
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()
예제 #2
0
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)
예제 #3
0
파일: app.py 프로젝트: baocaifeng/xAAL
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
예제 #4
0
#  (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()
예제 #5
0
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)
예제 #6
0
#
#  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')
예제 #7
0
파일: lamp.py 프로젝트: baocaifeng/xAAL
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)