fix some issues and test on hw
This commit is contained in:
24
tmtc/.idea/runConfigurations/tmtccli.xml
generated
Normal file
24
tmtc/.idea/runConfigurations/tmtccli.xml
generated
Normal file
@ -0,0 +1,24 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="tmtccli" type="PythonConfigurationType" factoryName="Python" nameIsGenerated="true">
|
||||
<module name="tmtc" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/tmtccli.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="true" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
11
tmtc/config/hook.py
Normal file
11
tmtc/config/hook.py
Normal file
@ -0,0 +1,11 @@
|
||||
from common_tmtc.config.hook_implementation import CommonFsfwHookBase
|
||||
from tmtccmd.tc.definitions import TcQueueT
|
||||
|
||||
|
||||
class FsfwHookBase(CommonFsfwHookBase):
|
||||
def pack_service_queue(self, service: int, op_code: str, service_queue: TcQueueT):
|
||||
from common_tmtc.pus_tc.tc_packing import common_service_queue_user
|
||||
|
||||
common_service_queue_user(
|
||||
service=service, op_code=op_code, tc_queue=service_queue
|
||||
)
|
@ -1,56 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
@brief TMTC Commander entry point for command line mode.
|
||||
@details
|
||||
This client was developed by KSat for the SOURCE project to test the on-board software but
|
||||
has evolved into a more generic tool for satellite developers to perform TMTC (Telemetry and Telecommand)
|
||||
handling and testing via different communication interfaces. Currently, only the PUS standard is
|
||||
implemented as a packet standard.
|
||||
|
||||
Run this file with the -h flag to display options.
|
||||
|
||||
@license
|
||||
Copyright 2020 KSat e.V. Stuttgart
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
@author R. Mueller
|
||||
"""
|
||||
import sys
|
||||
|
||||
from common_tmtc.config.hook_implementation import FsfwHookBase
|
||||
from common_tmtc.config.definitions import PUS_APID
|
||||
from common_tmtc.pus_tm.factory_hook import ccsds_tm_handler
|
||||
try:
|
||||
from tmtccmd.runner import run_tmtc_commander, initialize_tmtc_commander, add_ccsds_handler
|
||||
from tmtccmd.ccsds.handler import CcsdsTmHandler
|
||||
except ImportError as error:
|
||||
run_tmtc_commander = None
|
||||
initialize_tmtc_commander = None
|
||||
print(error)
|
||||
print("Python tmtccmd submodule could not be imported")
|
||||
print("Install with \"cd tmtccmd && python3 -m pip install -e .\" for interactive installation")
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def main():
|
||||
hook_obj = FsfwHookBase()
|
||||
initialize_tmtc_commander(hook_object=hook_obj)
|
||||
ccsds_handler = CcsdsTmHandler()
|
||||
ccsds_handler.add_tm_handler(apid=PUS_APID, pus_tm_handler=ccsds_tm_handler, max_queue_len=50)
|
||||
add_ccsds_handler(ccsds_handler)
|
||||
run_tmtc_commander(use_gui=False, app_name="TMTC Commander FSFW")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -1,56 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
@brief TMTC Commander entry point for command line mode.
|
||||
@details
|
||||
This client was developed by KSat for the SOURCE project to test the on-board software but
|
||||
has evolved into a more generic tool for satellite developers to perform TMTC (Telemetry and Telecommand)
|
||||
handling and testing via different communication interfaces. Currently, only the PUS standard is
|
||||
implemented as a packet standard.
|
||||
|
||||
Run this file with the -h flag to display options.
|
||||
|
||||
@license
|
||||
Copyright 2020 KSat e.V. Stuttgart
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
https://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
@author R. Mueller
|
||||
"""
|
||||
import sys
|
||||
|
||||
from common_tmtc.config.hook_implementation import FsfwHookBase
|
||||
from common_tmtc.config.definitions import PUS_APID
|
||||
from common_tmtc.pus_tm.factory_hook import ccsds_tm_handler
|
||||
try:
|
||||
from tmtccmd.runner import run_tmtc_commander, initialize_tmtc_commander, add_ccsds_handler
|
||||
from tmtccmd.ccsds.handler import CcsdsTmHandler
|
||||
except ImportError as error:
|
||||
run_tmtc_commander = None
|
||||
initialize_tmtc_commander = None
|
||||
print(error)
|
||||
print("Python tmtccmd submodule could not be imported")
|
||||
print("Install with \"cd tmtccmd && python3 -m pip install -e .\" for interactive installation")
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def main():
|
||||
hook_obj = FsfwHookBase()
|
||||
initialize_tmtc_commander(hook_object=hook_obj)
|
||||
ccsds_handler = CcsdsTmHandler()
|
||||
ccsds_handler.add_tm_handler(apid=PUS_APID, pus_tm_handler=ccsds_tm_handler, max_queue_len=50)
|
||||
add_ccsds_handler(ccsds_handler)
|
||||
run_tmtc_commander(use_gui=True, app_name="TMTC Commander FSFW")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
6
tmtc/tmtc_conf.json
Normal file
6
tmtc/tmtc_conf.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"com_if": "udp",
|
||||
"tcpip_udp_ip_addr": "169.254.1.38",
|
||||
"tcpip_udp_port": 7,
|
||||
"tcpip_udp_recv_max_size": 1500
|
||||
}
|
23
tmtc/tmtccli.py
Executable file
23
tmtc/tmtccli.py
Executable file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env python3
|
||||
"""TMTC commander for FSFW Example"""
|
||||
from common_tmtc.tmtcc import (
|
||||
tmtcc_post_args,
|
||||
tmtcc_pre_args,
|
||||
create_default_args_parser,
|
||||
add_default_tmtccmd_args,
|
||||
parse_default_input_arguments,
|
||||
)
|
||||
from config.hook import FsfwHookBase
|
||||
|
||||
|
||||
def main():
|
||||
tmtcc_pre_args()
|
||||
hook_obj = FsfwHookBase(json_cfg_path="tmtc_conf.json")
|
||||
arg_parser = create_default_args_parser()
|
||||
add_default_tmtccmd_args(arg_parser)
|
||||
args = parse_default_input_arguments(arg_parser, hook_obj)
|
||||
tmtcc_post_args(hook_obj=hook_obj, use_gui=False, args=args)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
12
tmtc/tmtcgui.py
Normal file
12
tmtc/tmtcgui.py
Normal file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env python3
|
||||
"""TMTC commander for the FSFW Example"""
|
||||
from common_tmtc.tmtcc import tmtcc_post_args, tmtcc_pre_args
|
||||
|
||||
|
||||
def main():
|
||||
hook_obj = tmtcc_pre_args()
|
||||
tmtcc_post_args(hook_obj=hook_obj, use_gui=True, args=None)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Reference in New Issue
Block a user