OpenMTC/ipes/CUL868IPE/src/cul868ipe/__main__.py
2019-01-11 17:46:03 +01:00

56 lines
1.9 KiB
Python

import sys
import os
if 'threading' in sys.modules and not os.environ.get('SUPPORT_GEVENT'):
raise Exception('threading module loaded before monkey patching!')
os.environ.setdefault("GEVENT_RESOLVER", "thread")
import gevent.monkey
gevent.monkey.patch_all()
from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser
from openmtc_app.util import prepare_app, get_value
from openmtc_app.runner import AppRunner as Runner
from .cul_868_ipe import CUL868IPE
# defaults
default_name = "CUL868IPE"
default_device = "/dev/ttyACM0"
default_ep = "http://localhost:8000"
# args parser
parser = ArgumentParser(
description="An IPE for the FS20 device connected on a CUL868",
prog="CUL868IPE",
formatter_class=ArgumentDefaultsHelpFormatter)
parser.add_argument("-n", "--name", help="Name used for the AE.")
parser.add_argument("-s", "--ep", help="URL of the local Endpoint.")
parser.add_argument("-d", "--cul-device", help="Device Node of the CUL868.")
parser.add_argument("devices", nargs="*")
# args, config and logging
args, config = prepare_app(parser, __loader__, __name__, "config.json")
# variables
nm = get_value("name", str, default_name, args, config)
cb = config.get("cse_base", "onem2m")
ep = get_value("ep", str, default_ep, args, config)
poas = config.get("poas", ["http://auto:28728"])
originator_pre = config.get("originator_pre", "//openmtc.org/mn-cse-1")
ssl_certs = config.get("ssl_certs", {})
s = config.get("sim", False)
p = int(config.get("sim_period"))
cul_device = get_value('cul_device', str, default_device, args, config)
device_mappings = get_value('device_mappings', dict, {}, args, config)
devices = get_value('devices', list, [], args, config)
# start
app = CUL868IPE(
devices, device=cul_device, sim=s, sim_period=p, device_mappings=device_mappings,
name=nm, cse_base=cb, poas=poas,
originator_pre=originator_pre, **ssl_certs
)
Runner(app).run(ep)
print ("Exiting....")