/dtnma-ace

The DTNMA AMM CODEC Engine (ACE)

Primary LanguagePythonApache License 2.0Apache-2.0

ACE Tools

This is the AMM CODEC Engine (ACE) for the DTN Management Architecture (DTNMA). It is part of the larger Asynchronous Network Managment System (ANMS) managed for NASA AMMOS.

It is a library to manage the information in DTNMA Application Data Models (ADMs) and use that information to encode and decode DTNMA Application Resource Identifiers (ARIs) in:

It also includes an ace_ari command line interface (CLI) for translating between the two ARI forms.

Development

To install development and test dependencies for this project, run from the root directory (possibly under sudo if installing to the system path):

pip3 install -r <(python3 -m piptools compile --extra test pyproject.toml 2>&1)

To install the project itself from source run:

pip3 install .

An example of using the ARI transcoder, from the source tree, to convert from text to binary form is:

echo 'ari:/IANA:ion_admin/CTRL.node_contact_add(UVAST.1685728970,UVAST.1685729269,UINT.2,UINT.2,UVAST.25000,UVAST.1)' | PYTHONPATH=./src ADM_PATH=./tests/adms python3 -m ace.tools.ace_ari --inform=text --outform=cborhex

which will produce a hexadecimal output:

0xC1188D410605061616141416161A647A2ECA1A647A2FF502041961A801

An example of using the ADM parser, from the soruce tree, to normalize and compare ADMs (with meld tool) is:

ADMFILE=../adms/ietf-inet.yang; meld ${ADMFILE} <(PYTHONPATH=./src ADM_PATH=./tests/adms python3 -m ace.tools.ace_adm -f yang ${ADMFILE})

Contributing

To contribute to this project, through issue reporting or change requests, see the CONTRIBUTING document.