mirror of
https://github.com/OpenMTC/OpenMTC.git
synced 2025-01-16 17:59:54 +00:00
56 lines
1.9 KiB
Python
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....")
|