Newer
Older
#!/usr/bin/env python
###################################################################################################
# COMMAND LINE INTERFACE
###################################################################################################
#
# This file gives the Command Line Interface for FofbTool
#
###################################################################################################
if __name__ == '__main__':
import logging
import argparse
import os
import sys
# Safer import: add the parent dir in path
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import FofbTool.Utils
# Get the module logger
logger = logging.getLogger("FofbTool")
# Add a Stream handler to the module logger
sh=logging.StreamHandler()
sh.setLevel(logging.DEBUG)
sh.setFormatter(logging.Formatter("{levelname:8}: {message}", style='{'))
logger.addHandler(sh)
parser = argparse.ArgumentParser("FofbTool")
parser.add_argument("--log", default="info",
help="Log level (error, warning, info, debug)")
parser.add_argument("--init-opcua", action="store_true",
help="Run init on opcua devices.")
parser.add_argument("--init-watcher", action="store_true",
help="Run init on the Fofb-Watcher device, and then the Fofb-Command.")
parser.add_argument("--conf-DS", action="store_true",
help="Applying attribute configuration on Tango Device Servers. This is required after restart of devices.")
parser.add_argument("--stop", action="store_true",
)
parser.add_argument("--conf", action="store_true",
)
parser.add_argument("--start", action="store_true",
)
parser.add_argument("--disable-corr", action="store_true",
help="Disable cellnode corrector output frames."
)
parser.add_argument("--respmat", default=None,
help="Configure response matrix from file"
)
parser.add_argument("node", default="allnodes", nargs='*',
choices=('c01', 'c06', 'c09', 'c14', 'central', 'allcells', 'allnodes'),
help="Node to apply the selected actions. Default is all.")
args = parser.parse_args()
# Set log level from args
logger.setLevel(getattr(logging, args.log.upper()))
logger.debug(args)
if args.init_opcua:
FofbTool.Utils.init_opcua()
if args.init_watcher:
FofbTool.Utils.init_watcher()
if args.conf_DS:
FofbTool.Utils.confds_opcua()
if args.stop:
for cnp in cellnode_subscribers:
cellnode_stop_ccn(cnp)
cellnode_stop_combpm(cnp)
centralnode_stop_ccn(centralnode_subscriber)
if not args.respmat is None:
centralnode_configure_respmat(centralnode_subscriber, args.respmat)
if args.conf:
for cnp in cellnode_subscribers:
cellnode_configure_combpm(cnp)
cellnode_configure_comcorr(cnp, not args.disable_corr)
time.sleep(2)
cellnode_configure_ccn(cnp)
centralnode_configure_ccn(centralnode_subscriber)
centralnode_configure_corr(centralnode_subscriber)
elif args.disable_corr:
for cnp in cellnode_subscribers:
cellnode_configure_comcorr(cnp, not args.disable_corr)
if args.start:
for cnp in cellnode_subscribers:
cellnode_start_ccn(cnp)
cellnode_start_combpm(cnp)
cellnode_ack_ccn(cnp)
centralnode_start_ccn(centralnode_subscriber)