first version of continous operation #69
85
tmtcloop.py
Executable file
85
tmtcloop.py
Executable file
@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env python3
|
||||
"""EIVE TMTC Commander"""
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
try:
|
||||
import tmtccmd.runner as tmtccmd
|
||||
from tmtccmd.config import default_json_path, SetupArgs, CoreGlobalIds
|
||||
from tmtccmd.config.definitions import CoreModeList
|
||||
from tmtccmd.config.args import (
|
||||
create_default_args_parser,
|
||||
add_default_tmtccmd_args,
|
||||
parse_default_input_arguments,
|
||||
)
|
||||
from tmtccmd.ccsds.handler import CcsdsTmHandler, ApidHandler
|
||||
from tmtccmd.logging import get_console_logger
|
||||
from tmtccmd.logging.pus import create_tmtc_logger
|
||||
except ImportError as error:
|
||||
run_tmtc_commander = None
|
||||
initialize_tmtc_commander = None
|
||||
tb = traceback.format_exc()
|
||||
print(tb)
|
||||
print("Python tmtccmd submodule could not be imported")
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
import spacepackets
|
||||
except ImportError as error:
|
||||
print(error)
|
||||
print("Python spacepackets module could not be imported")
|
||||
print(
|
||||
'Install with "cd spacepackets && python3 -m pip intall -e ." for interative installation'
|
||||
)
|
||||
sys.exit(1)
|
||||
|
||||
from config.definitions import PUS_APID
|
||||
from pus_tc.tc_packer_hook import pre_tc_send_cb
|
||||
from pus_tm.factory_hook import ccsds_tm_handler
|
||||
from tmtcc import tmtcc_pre_args
|
||||
|
||||
|
||||
def main():
|
||||
hook_obj = tmtcc_pre_args()
|
||||
arg_parser = create_default_args_parser()
|
||||
add_default_tmtccmd_args(arg_parser)
|
||||
args = parse_default_input_arguments(arg_parser, hook_obj)
|
||||
setup_args = SetupArgs(
|
||||
hook_obj=hook_obj, use_gui=False, apid=PUS_APID, cli_args=args
|
||||
)
|
||||
apid_handler = ApidHandler(cb=ccsds_tm_handler, queue_len=50, user_args=None)
|
||||
ccsds_handler = CcsdsTmHandler()
|
||||
ccsds_handler.add_tm_handler(apid=PUS_APID, handler=apid_handler)
|
||||
tmtccmd.setup(setup_args=setup_args)
|
||||
tmtccmd.add_ccsds_handler(ccsds_handler)
|
||||
tmtc_backend = tmtccmd.create_default_tmtc_backend(
|
||||
setup_args=setup_args,
|
||||
tm_handler=ccsds_handler,
|
||||
)
|
||||
tmtc_file_logger = create_tmtc_logger()
|
||||
tmtc_backend.usr_send_wrapper = (pre_tc_send_cb, tmtc_file_logger)
|
||||
|
||||
tmtc_backend.set_mode(CoreModeList.CONTINUOUS_MODE)
|
||||
|
||||
get_console_logger().info("Disabling console logger for continuous operation")
|
||||
get_console_logger().disabled = True
|
||||
|
||||
tmtccmd.init_and_start_daemons(tmtc_backend=tmtc_backend)
|
||||
tmtccmd.performOperation(tmtc_backend=tmtc_backend)
|
||||
|
||||
# remove cmdline args so that we can reuse code
|
||||
sys.argv = sys.argv[:1]
|
||||
|
||||
while True:
|
||||
args = parse_default_input_arguments(arg_parser, hook_obj)
|
||||
setup_args = SetupArgs(
|
||||
hook_obj=hook_obj, use_gui=False, apid=PUS_APID, cli_args=args
|
||||
)
|
||||
tmtccmd.setup(setup_args=setup_args)
|
||||
tmtc_backend.set_mode(CoreModeList.CONTINUOUS_MODE)
|
||||
|
||||
tmtccmd.performOperation(tmtc_backend=tmtc_backend)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue
Block a user