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

Initial warp10 support. Async push should be better.. but for a first test that should be fine.



git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/fork@1761 b32b6428-25c9-4566-ad07-03861ab6144f
parent 8dfddaac
No related branches found
No related tags found
No related merge requests found
from setuptools import setup,find_packages
with open('README.rst') as f:
long_description = f.read()
VERSION = "0.1"
setup(
name='xaal.warp10',
version=VERSION,
license='GPL License',
author='Jerome Kerdreux',
author_email='Jerome.Kerdreux@imt-atlantique.fr',
#url='',
description=('xAAL logger for warp10'),
long_description=long_description,
classifiers=[
'Programming Language :: Python',
'Topic :: Software Development :: Libraries :: Python Modules',
],
keywords=['xaal', 'warp10'],
platforms='any',
packages=find_packages(),
include_package_data=True,
install_requires=[
'xaal.lib',
'urllib3',
]
)
[config]
url = http://localhost:8080/api/v0/update
token = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
topic = xaal
addr = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
__path__ = __import__('pkgutil').extend_path(__path__, __name__)
from . import dev
dev.main()
from xaal.lib import Device,Engine,tools,config
import sys
import platform
import urllib3
PACKAGE_NAME = "xaal.warp10"
logger = tools.get_logger(PACKAGE_NAME,'DEBUG')
class WARP10Logger:
def __init__(self,engine):
self.eng = engine
# change xAAL call flow
self.eng.handle_rx_msg = self.parse_msg
self.cfg = tools.load_cfg_or_die(PACKAGE_NAME)['config']
self.setup()
def setup(self):
dev = Device("logger.basic")
dev.address = self.cfg['addr']
dev.vendor_id = "IHSEV"
dev.product_id = "WARP10 Logger"
dev.info = "%s@%s" % (PACKAGE_NAME,platform.node())
self.eng.add_device(dev)
self.http = urllib3.PoolManager()
def parse_msg(self,msg):
if msg.is_attributes_change():
base = self.cfg['topic']
code = ''
for k in msg.body:
name = '%s.%s' % (base,k)
tags = '{devid=%s}' % msg.source
value = msg.body[k]
code = code +"// %s%s %s\n" % (name,tags,value)
rsp = self.http.request('POST', self.cfg['url'],headers={'X-Warp10-Token':self.cfg['token']},body=code)
# continue xAAL flow
self.eng.handle_request(msg)
def run():
eng = Engine()
log = WARP10Logger(eng)
eng.run()
def main():
try:
run()
except KeyboardInterrupt:
print("Bye Bye..")
if __name__ == '__main__':
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment