fprime-gds 3.4.3__tar.gz → 3.4.4a2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/actions/spelling/excludes.txt +4 -2
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/actions/spelling/expect.txt +43 -6
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/PKG-INFO +3 -2
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/README.md +1 -1
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/pyproject.toml +6 -2
- fprime_gds-3.4.4a2/src/fprime_gds/common/communication/adapters/base.py +89 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/communication/adapters/ip.py +23 -5
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/communication/adapters/uart.py +20 -7
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/communication/checksum.py +1 -3
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/communication/framing.py +53 -4
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/data_types/event_data.py +6 -1
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/data_types/exceptions.py +16 -11
- fprime_gds-3.4.4a2/src/fprime_gds/common/loaders/ch_json_loader.py +107 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/loaders/ch_xml_loader.py +5 -5
- fprime_gds-3.4.4a2/src/fprime_gds/common/loaders/cmd_json_loader.py +85 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/loaders/dict_loader.py +1 -1
- fprime_gds-3.4.4a2/src/fprime_gds/common/loaders/event_json_loader.py +108 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/loaders/event_xml_loader.py +10 -6
- fprime_gds-3.4.4a2/src/fprime_gds/common/loaders/json_loader.py +222 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/loaders/xml_loader.py +31 -9
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/pipeline/dictionaries.py +38 -3
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/tools/seqgen.py +4 -4
- fprime_gds-3.4.4a2/src/fprime_gds/common/utils/string_util.py +110 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/zmq_transport.py +37 -20
- fprime_gds-3.4.4a2/src/fprime_gds/executables/apps.py +150 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/executables/cli.py +239 -103
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/executables/comm.py +17 -27
- fprime_gds-3.4.4a2/src/fprime_gds/executables/data_product_writer.py +935 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/executables/run_deployment.py +55 -14
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/executables/utils.py +24 -12
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/sequence.py +1 -1
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/commanding/command-input.js +3 -2
- fprime_gds-3.4.4a2/src/fprime_gds/plugin/__init__.py +0 -0
- fprime_gds-3.4.4a2/src/fprime_gds/plugin/definitions.py +71 -0
- fprime_gds-3.4.4a2/src/fprime_gds/plugin/system.py +225 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds.egg-info/PKG-INFO +3 -2
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds.egg-info/SOURCES.txt +35 -1
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds.egg-info/entry_points.txt +2 -3
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds.egg-info/requires.txt +1 -0
- fprime_gds-3.4.4a2/test/fprime_gds/common/loaders/resources/RefTopologyDictionary.json +9659 -0
- fprime_gds-3.4.4a2/test/fprime_gds/common/loaders/test_json_loader.py +152 -0
- fprime_gds-3.4.4a2/test/fprime_gds/common/tools/expected/simple_expected.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/common/tools/input/simple_bad_sequence.seq +9 -0
- fprime_gds-3.4.4a2/test/fprime_gds/common/tools/input/simple_sequence.seq +8 -0
- fprime_gds-3.4.4a2/test/fprime_gds/common/tools/resources/simple_dictionary.json +40 -0
- fprime_gds-3.4.4a2/test/fprime_gds/common/tools/resources/simple_dictionary.xml +12 -0
- fprime_gds-3.4.4a2/test/fprime_gds/common/tools/seqgen_unit_test.py +42 -0
- fprime_gds-3.4.4a2/test/fprime_gds/common/utils/test_string_util.py +206 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/.gitignore +1 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/dictionary.json +9934 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeBool.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeComplex.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeDataArray.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeEnum.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeF32.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeF64.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeFppArray.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeI16.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeI32.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeI64.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeI8.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeU32.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeU32Array.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/dp_writer_data/makeU8Array.bin +0 -0
- fprime_gds-3.4.4a2/test/fprime_gds/executables/test_data_product_writer.py +49 -0
- fprime_gds-3.4.4a2/test/fprime_gds/sample/dictionary.xml +1522 -0
- fprime_gds-3.4.4a2/test/fprime_gds/test_plugins.py +327 -0
- fprime-gds-3.4.3/pytest.ini +0 -3
- fprime-gds-3.4.3/src/fprime_gds/common/communication/adapters/base.py +0 -117
- fprime-gds-3.4.3/src/fprime_gds/common/utils/string_util.py +0 -118
- fprime-gds-3.4.3/test/fprime_gds/common/tools/seqgen_unit_test.py +0 -7
- fprime-gds-3.4.3/test/fprime_gds/common/utils/test_string_util.py +0 -129
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/actions/codeql/security-pack.yml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/actions/spelling/patterns.txt +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/pull_request_template.md +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/resources/RefTopologyAppDictionary.xml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/workflows/codeql-security-scan.yml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/workflows/fprime-gds-tests.yml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/workflows/gds-cli-tests.yml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/workflows/publish.yml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.github/workflows/spelling.yml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/.gitignore +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/Doxyfile +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/LICENSE.txt +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/NOTICE.txt +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/configs/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/docs/README.md +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/docs/_static/css/rtd_width.css +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/docs/conf.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/docs/gendoc.bash +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/docs/index.rst +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/examples/simple_sequence.bin +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/examples/simple_sequence.seq +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/setup.cfg +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/setup.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fastentrypoints.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/communication/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/communication/adapters/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/communication/ground.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/communication/updown.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/controllers/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/data_types/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/data_types/ch_data.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/data_types/cmd_data.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/data_types/file_data.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/data_types/pkt_data.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/data_types/sys_data.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/decoders/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/decoders/ch_decoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/decoders/decoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/decoders/event_decoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/decoders/file_decoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/decoders/pkt_decoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/distributor/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/distributor/distributor.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/encoders/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/encoders/ch_encoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/encoders/cmd_encoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/encoders/encoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/encoders/event_encoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/encoders/file_encoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/encoders/pkt_encoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/encoders/seq_writer.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/files/File Decoder Documentation.txt +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/files/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/files/downlinker.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/files/helpers.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/files/uplinker.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/gds_cli/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/gds_cli/base_commands.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/gds_cli/channels.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/gds_cli/command_send.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/gds_cli/events.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/gds_cli/filtering_utils.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/gds_cli/test_api_utils.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/handlers.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/history/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/history/chrono.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/history/history.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/history/ram.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/history/test.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/loaders/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/loaders/ch_py_loader.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/loaders/cmd_py_loader.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/loaders/cmd_xml_loader.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/loaders/event_py_loader.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/loaders/pkt_xml_loader.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/loaders/python_loader.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/logger/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/logger/data_logger.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/logger/test_logger.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/models/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/models/common/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/models/common/channel_telemetry.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/models/common/command.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/models/common/event.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/parsers/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/parsers/seq_file_parser.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/pipeline/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/pipeline/encoding.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/pipeline/files.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/pipeline/histories.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/pipeline/router.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/pipeline/standard.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/templates/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/templates/ch_template.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/templates/cmd_template.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/templates/data_template.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/templates/event_template.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/templates/pkt_template.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/testing_fw/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/testing_fw/api.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/testing_fw/predicates.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/testing_fw/pytest_integration.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/tools/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/transport.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/utils/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/utils/config_manager.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/utils/data_desc_type.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/utils/event_severity.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/executables/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/executables/fprime_cli.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/executables/tcpserver.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/__init__.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/app.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/channels.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/commands.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/components.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/default_settings.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/errors.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/events.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/json.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/logs.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/requirements.txt +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/resource.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/.idea/.gitignore +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/.idea/misc.xml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/.idea/modules.xml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/.idea/static.iml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/.idea/vcs.xml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/advanced-settings/addon-templates.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/advanced-settings/addon.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/channel-render/addon.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/channel-render/channel-render-template.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/channel-render/channel-render.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/chart-display/addon-templates.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/chart-display/addon.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/chart-display/config.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-streaming.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-zoom.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/flat.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/chart-display/sibling.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/chart-display/vendor/chart.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/chart-display/vendor/chartjs-adapter-luxon.min.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/chart-display/vendor/hammer.min.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/commanding/addon.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/commanding/argument-templates.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/commanding/arguments.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/commanding/command-history-template.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/commanding/command-history.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/commanding/command-input-template.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/commanding/command-string-template.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/commanding/command-string.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/dictionary/addon-templates.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/dictionary/addon.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/enabled.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/image-display/addon.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/image-display/dashboard.xml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/sequencer/README.md +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/sequencer/addon-templates.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/sequencer/addon.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/sequencer/autocomplete.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/sequencer/lint.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/sequencer/third/code-mirror.es.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/.gitignore +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/index.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/language.grammer +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/package.json +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/rollup.config.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/css/fprime.css +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/css/fpstyle.css +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/favicon.ico +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/img/error.svg +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/img/logo.svg +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/img/success.svg +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/index.html +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/config.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/datastore.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/gds.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/loader.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/performance.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/settings.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/uploader.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/validate.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/channel.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/dashboard-box.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/dashboard-row.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/dashboard.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/downlink.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/event.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/fp-row.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/fptable.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/log.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/tabetc.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/uplink.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/js/vue-support/utils.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/css/all.min.css +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/css/bootstrap.min.css +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/css/vue-select.css +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/js/luxon.min.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/js/sorttable.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/js/v-runtime-template.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/js/vue-select.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/js/vue.min.js +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.eot +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.svg +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.ttf +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff2 +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.eot +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.svg +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.ttf +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff2 +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.eot +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.svg +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.ttf +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff2 +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/stats.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/flask/updown.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/version.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds.egg-info/dependency_links.txt +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds.egg-info/top_level.txt +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/distributor/test_distributor.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/encoders/test_ch_encoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/encoders/test_event_encoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/encoders/test_pkt_encoder.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/gds_cli/filtering_utils_test.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/gds_cli/utils_test.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/history/chronohistory_unit_test.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/history/testhistory_unit_test.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/testing_fw/UnitTestDictionary.xml +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/testing_fw/api_unit_test.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/testing_fw/logs/.gitignore +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/common/testing_fw/predicate_unit_test.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/executables/test_run_deployment.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/fprime_gds/executables/test_utils.py +0 -0
- {fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/test/gui/GUI_Test_Procedure.md +0 -0
@@ -1,3 +1,5 @@
|
|
1
|
+
pyproject.toml
|
2
|
+
setup.py
|
1
3
|
ignore$
|
2
4
|
/html/
|
3
5
|
(?:^|/)(?i)COPYRIGHT
|
@@ -5,6 +7,8 @@ ignore$
|
|
5
7
|
(?:^|/)vendor/
|
6
8
|
^\.github/
|
7
9
|
^Autocoders/Python/test/.*\.xml$
|
10
|
+
RefTopologyDictionary.json
|
11
|
+
dictionary.xml
|
8
12
|
/doc/xml/
|
9
13
|
/third-party/
|
10
14
|
/third/
|
@@ -43,5 +47,3 @@ ignore$
|
|
43
47
|
\.xlsx$
|
44
48
|
\.xsd$
|
45
49
|
\.ico$
|
46
|
-
pyproject.toml
|
47
|
-
setup.py
|
@@ -47,10 +47,12 @@ backport
|
|
47
47
|
basestring
|
48
48
|
batchmode
|
49
49
|
baudrate
|
50
|
+
bcolors
|
50
51
|
beforeunload
|
51
52
|
BGR
|
52
53
|
Biberstein
|
53
54
|
bibtex
|
55
|
+
binascii
|
54
56
|
bitmaps
|
55
57
|
blockquote
|
56
58
|
bmp
|
@@ -67,8 +69,9 @@ cata
|
|
67
69
|
cbl
|
68
70
|
CCB
|
69
71
|
CCFF
|
70
|
-
cdn
|
71
72
|
Cdioux
|
73
|
+
cdn
|
74
|
+
cdxoefg
|
72
75
|
CFDG
|
73
76
|
CFDP
|
74
77
|
CFPD
|
@@ -76,6 +79,7 @@ cgi
|
|
76
79
|
Chainable
|
77
80
|
chartjs
|
78
81
|
checkbox
|
82
|
+
CHNG
|
79
83
|
chrono
|
80
84
|
classdocs
|
81
85
|
classmethod
|
@@ -85,6 +89,7 @@ cls
|
|
85
89
|
CMake
|
86
90
|
cmdhist
|
87
91
|
cmds
|
92
|
+
cmp
|
88
93
|
CODEFILE
|
89
94
|
Codemirror
|
90
95
|
colorized
|
@@ -95,8 +100,8 @@ combuffer
|
|
95
100
|
commandsi
|
96
101
|
concat
|
97
102
|
config
|
98
|
-
configs
|
99
103
|
configparser
|
104
|
+
configs
|
100
105
|
Consolas
|
101
106
|
cpp
|
102
107
|
CPython
|
@@ -128,9 +133,12 @@ deframed
|
|
128
133
|
deframer
|
129
134
|
deframing
|
130
135
|
DEPRECATEDLIST
|
136
|
+
DESER
|
137
|
+
Deserial
|
131
138
|
deserialization
|
132
139
|
deserialize
|
133
140
|
deserialized
|
141
|
+
deserializes
|
134
142
|
deserializing
|
135
143
|
dest
|
136
144
|
dexc
|
@@ -166,10 +174,14 @@ doxyrules
|
|
166
174
|
doxysearch
|
167
175
|
Doxywizard
|
168
176
|
doy
|
177
|
+
dpi
|
178
|
+
dps
|
179
|
+
dpspec
|
169
180
|
dropdown
|
170
181
|
dropleft
|
171
182
|
dropright
|
172
183
|
dropup
|
184
|
+
Drv
|
173
185
|
Dsh
|
174
186
|
dst
|
175
187
|
dts
|
@@ -183,6 +195,7 @@ EINPROGRESS
|
|
183
195
|
elif
|
184
196
|
Emoji
|
185
197
|
encodable
|
198
|
+
ENDC
|
186
199
|
endcond
|
187
200
|
endian
|
188
201
|
endif
|
@@ -191,6 +204,7 @@ endtime
|
|
191
204
|
enqueuing
|
192
205
|
entrypoint
|
193
206
|
enum
|
207
|
+
Enumtype
|
194
208
|
envvar
|
195
209
|
errno
|
196
210
|
errored
|
@@ -216,9 +230,12 @@ FFCC
|
|
216
230
|
FFFF
|
217
231
|
fieldset
|
218
232
|
figcaption
|
233
|
+
figsize
|
234
|
+
filecmp
|
219
235
|
filemode
|
220
236
|
fileno
|
221
237
|
filepath
|
238
|
+
filesize
|
222
239
|
fileurl
|
223
240
|
finditer
|
224
241
|
Firefox
|
@@ -229,6 +246,7 @@ focusring
|
|
229
246
|
FONTNAME
|
230
247
|
FONTPATH
|
231
248
|
FONTSIZE
|
249
|
+
fpp
|
232
250
|
fprime
|
233
251
|
fptable
|
234
252
|
frac
|
@@ -277,6 +295,9 @@ hidecallergraph
|
|
277
295
|
hidecallgraph
|
278
296
|
hideinitializer
|
279
297
|
hlp
|
298
|
+
HLTH
|
299
|
+
Hookimpl
|
300
|
+
hookspec
|
280
301
|
hostname
|
281
302
|
hpaulson
|
282
303
|
hpp
|
@@ -313,6 +334,7 @@ ints
|
|
313
334
|
ip
|
314
335
|
ipc
|
315
336
|
ipp
|
337
|
+
isabstract
|
316
338
|
isalnum
|
317
339
|
isclass
|
318
340
|
isdir
|
@@ -357,6 +379,7 @@ libc
|
|
357
379
|
libclang
|
358
380
|
libcrc
|
359
381
|
libiconv
|
382
|
+
lineno
|
360
383
|
Linting
|
361
384
|
Linux
|
362
385
|
listbox
|
@@ -381,6 +404,7 @@ MAKEVAR
|
|
381
404
|
marijnh
|
382
405
|
matchobj
|
383
406
|
mathjax
|
407
|
+
matplotlib
|
384
408
|
maxcountryman
|
385
409
|
maxdepth
|
386
410
|
mcternan
|
@@ -409,6 +433,7 @@ myproject
|
|
409
433
|
namespace
|
410
434
|
nargs
|
411
435
|
navbar
|
436
|
+
nbytes
|
412
437
|
Neue
|
413
438
|
newname
|
414
439
|
Nify
|
@@ -417,6 +442,7 @@ nitpicky
|
|
417
442
|
noapp
|
418
443
|
noqa
|
419
444
|
normpath
|
445
|
+
NOSONAR
|
420
446
|
nosort
|
421
447
|
Noto
|
422
448
|
novalidate
|
@@ -430,6 +456,8 @@ odl
|
|
430
456
|
odo
|
431
457
|
oga
|
432
458
|
ogg
|
459
|
+
OKBLUE
|
460
|
+
OKGREEN
|
433
461
|
OMG
|
434
462
|
onabort
|
435
463
|
onerror
|
@@ -462,10 +490,12 @@ php
|
|
462
490
|
phtml
|
463
491
|
pid
|
464
492
|
pkgutil
|
493
|
+
pkts
|
465
494
|
Pkts
|
466
495
|
plainnat
|
467
496
|
plantuml
|
468
497
|
plist
|
498
|
+
plt
|
469
499
|
plugin
|
470
500
|
png
|
471
501
|
PNGs
|
@@ -473,6 +503,7 @@ popen
|
|
473
503
|
posixpath
|
474
504
|
PREDEF
|
475
505
|
preds
|
506
|
+
prm
|
476
507
|
procs
|
477
508
|
PROGRAMLISTING
|
478
509
|
progressbar
|
@@ -487,8 +518,10 @@ ptr
|
|
487
518
|
px
|
488
519
|
py
|
489
520
|
pyc
|
521
|
+
pydantic
|
490
522
|
pylint
|
491
523
|
pypi
|
524
|
+
pyplot
|
492
525
|
pyserial
|
493
526
|
pytest
|
494
527
|
PYTHONHOME
|
@@ -509,6 +542,7 @@ RCE
|
|
509
542
|
RCVHWM
|
510
543
|
RCVTIMEO
|
511
544
|
RDWR
|
545
|
+
Readback
|
512
546
|
readlines
|
513
547
|
README
|
514
548
|
readonly
|
@@ -541,6 +575,7 @@ rst
|
|
541
575
|
rtd
|
542
576
|
rtf
|
543
577
|
saba
|
578
|
+
savefig
|
544
579
|
scm
|
545
580
|
scrollable
|
546
581
|
scrollbar
|
@@ -656,8 +691,8 @@ ttl
|
|
656
691
|
tts
|
657
692
|
twbs
|
658
693
|
txz
|
659
|
-
typedef'ed
|
660
694
|
typedef
|
695
|
+
typedef'ed
|
661
696
|
typehints
|
662
697
|
typeof
|
663
698
|
tzinfo
|
@@ -673,6 +708,7 @@ UML
|
|
673
708
|
undef
|
674
709
|
undoc
|
675
710
|
unicode
|
711
|
+
UNINIT
|
676
712
|
unittest
|
677
713
|
unpause
|
678
714
|
updown
|
@@ -682,7 +718,6 @@ uplinkvue
|
|
682
718
|
uploader
|
683
719
|
upto
|
684
720
|
uri
|
685
|
-
URI
|
686
721
|
url
|
687
722
|
usec
|
688
723
|
useconds
|
@@ -714,6 +749,7 @@ vname
|
|
714
749
|
VRuntime
|
715
750
|
vue
|
716
751
|
vw
|
752
|
+
Watney
|
717
753
|
wav
|
718
754
|
webbrowser
|
719
755
|
webified
|
@@ -737,14 +773,15 @@ xcode
|
|
737
773
|
xhtml
|
738
774
|
xhttp
|
739
775
|
xl
|
776
|
+
xlabel
|
740
777
|
xls
|
741
778
|
xlsx
|
779
|
+
xmit
|
742
780
|
xml
|
743
781
|
xy
|
744
782
|
yaml
|
783
|
+
ylabel
|
745
784
|
yml
|
746
785
|
zeromq
|
747
786
|
zlib
|
748
787
|
zmq
|
749
|
-
ZMQ
|
750
|
-
Zmq
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: fprime-gds
|
3
|
-
Version: 3.4.
|
3
|
+
Version: 3.4.4a2
|
4
4
|
Summary: F Prime Flight Software Ground Data System layer
|
5
5
|
Author-email: Michael Starch <Michael.D.Starch@jpl.nasa.gov>, Thomas Boyer-Chammard <Thomas.Boyer.Chammard@jpl.nasa.gov>
|
6
6
|
License:
|
@@ -239,6 +239,7 @@ Requires-Dist: argcomplete>=1.12.3
|
|
239
239
|
Requires-Dist: Jinja2>=2.11.3
|
240
240
|
Requires-Dist: openpyxl>=3.0.10
|
241
241
|
Requires-Dist: pyserial>=3.5
|
242
|
+
Requires-Dist: pydantic>=2.6
|
242
243
|
|
243
244
|
# F´ GDS
|
244
245
|
|
@@ -267,7 +268,7 @@ output data type included. Command data objects are created in the command panel
|
|
267
268
|
the command encoder registered to that panel. Encoders take a data object and turn it into binary
|
268
269
|
data that can be sent to the F´ deployment. The binary data is then passed to the TCP client
|
269
270
|
which is registered to the encoder. Finally, the TCP client send the data back to the TCP server and
|
270
|
-
the F´ deployment. 
|
271
272
|
|
272
273
|
All of these objects are created and registered to other objects when the GDS
|
273
274
|
is initialized. Thus, all of the structure of the GDS is created in one place,
|
@@ -25,7 +25,7 @@ output data type included. Command data objects are created in the command panel
|
|
25
25
|
the command encoder registered to that panel. Encoders take a data object and turn it into binary
|
26
26
|
data that can be sent to the F´ deployment. The binary data is then passed to the TCP client
|
27
27
|
which is registered to the encoder. Finally, the TCP client send the data back to the TCP server and
|
28
|
-
the F´ deployment. 
|
29
29
|
|
30
30
|
All of these objects are created and registered to other objects when the GDS
|
31
31
|
is initialized. Thus, all of the structure of the GDS is created in one place,
|
@@ -42,6 +42,7 @@ dependencies = [
|
|
42
42
|
"Jinja2>=2.11.3",
|
43
43
|
"openpyxl>=3.0.10",
|
44
44
|
"pyserial>=3.5",
|
45
|
+
"pydantic>=2.6"
|
45
46
|
]
|
46
47
|
|
47
48
|
[project.urls]
|
@@ -58,8 +59,7 @@ Repository = "https://github.com/fprime-community/fprime-gds"
|
|
58
59
|
[project.scripts]
|
59
60
|
fprime-cli = "fprime_gds.executables.fprime_cli:main"
|
60
61
|
fprime-seqgen = "fprime_gds.common.tools.seqgen:main"
|
61
|
-
|
62
|
-
[project.gui-scripts]
|
62
|
+
fprime-dp-write = "fprime_gds.executables.data_product_writer:main"
|
63
63
|
fprime-gds = "fprime_gds.executables.run_deployment:main"
|
64
64
|
|
65
65
|
# For Pytest fixtures
|
@@ -85,3 +85,7 @@ fprime_test_api = "fprime_gds.common.testing_fw.pytest_integration"
|
|
85
85
|
# - https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
|
86
86
|
# - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html#src-layout
|
87
87
|
####
|
88
|
+
[tool.pytest.ini_options]
|
89
|
+
markers =[
|
90
|
+
"gds_cli"
|
91
|
+
]
|
@@ -0,0 +1,89 @@
|
|
1
|
+
"""
|
2
|
+
base.py:
|
3
|
+
|
4
|
+
This file specifies the base-adapter for the F prime comm-layer. This class defines the basic methods needed to interact
|
5
|
+
with various wire formats as they are supported by the F prime comm-layer. This file defines a single abstract base
|
6
|
+
class representing the core features of the adapter class that must be implemented by every implementation of the
|
7
|
+
adapter for use with the comm-layer.
|
8
|
+
|
9
|
+
@author lestarch
|
10
|
+
"""
|
11
|
+
import abc
|
12
|
+
from typing import Type
|
13
|
+
from fprime_gds.plugin.definitions import gds_plugin_implementation, gds_plugin_specification
|
14
|
+
|
15
|
+
|
16
|
+
class BaseAdapter(abc.ABC):
|
17
|
+
"""
|
18
|
+
Base adapter for adapting the communications layer. This essentially breaks down to providing the ability to read
|
19
|
+
data from, and write to the necessary wire-format. The children of this class must at least implement the 'read' and
|
20
|
+
'write' functions to ensure that data can be read and written. 'open' and 'close' are also provided as a helper to
|
21
|
+
the subclass implementer to place resource initialization and release code, however; these implementations are
|
22
|
+
defaulted not overridden.
|
23
|
+
"""
|
24
|
+
|
25
|
+
def open(self):
|
26
|
+
"""Null default implementation"""
|
27
|
+
|
28
|
+
def close(self):
|
29
|
+
"""Null default implementation"""
|
30
|
+
|
31
|
+
@abc.abstractmethod
|
32
|
+
def read(self, timeout=0.500):
|
33
|
+
"""
|
34
|
+
Read from the interface. Must be overridden by the child adapter. Throw no fatal errors, reconnect instead. This
|
35
|
+
call is expected to block waiting on incoming data.
|
36
|
+
|
37
|
+
:param size: maximum size of data to read before breaking
|
38
|
+
:param timeout: timeout for the block, default: 0.500 (500ms) as blocking w/o timeout may be uninterruptible
|
39
|
+
:return: byte array of data, or b'' if no data was read
|
40
|
+
"""
|
41
|
+
|
42
|
+
@abc.abstractmethod
|
43
|
+
def write(self, frame):
|
44
|
+
"""
|
45
|
+
Write to the interface. Must be overridden by the child adapter. Throw no fatal errors, reconnect instead.
|
46
|
+
|
47
|
+
:param frame: framed data to uplink
|
48
|
+
:return: True if data sent through adapter, False otherwise
|
49
|
+
"""
|
50
|
+
|
51
|
+
@classmethod
|
52
|
+
@gds_plugin_specification
|
53
|
+
def register_communication_plugin(cls) -> Type["BaseAdapter"]:
|
54
|
+
"""Register a communications adapter
|
55
|
+
|
56
|
+
Plugin hook for registering a plugin that supplies an adapter to the communications interface (radio, uart, i2c,
|
57
|
+
etc). This interface is expected to read and write bytes from a wire and will be provided to the framing system.
|
58
|
+
|
59
|
+
Note: users should return the class, not an instance of the class. Needed arguments for instantiation are
|
60
|
+
determined from class methods, solicited via the command line, and provided at construction time to the chosen
|
61
|
+
instantiation.
|
62
|
+
|
63
|
+
Returns:
|
64
|
+
BaseAdapter subclass
|
65
|
+
"""
|
66
|
+
raise NotImplementedError()
|
67
|
+
|
68
|
+
|
69
|
+
class NoneAdapter(BaseAdapter):
|
70
|
+
""" None adapter used to turn off the comm script """
|
71
|
+
|
72
|
+
@classmethod
|
73
|
+
def get_name(cls):
|
74
|
+
""" Get name of the non-adapter """
|
75
|
+
return "none"
|
76
|
+
|
77
|
+
def read(self, timeout=0.500):
|
78
|
+
""" Raise exception if this is called"""
|
79
|
+
raise NotImplementedError()
|
80
|
+
|
81
|
+
def write(self, frame):
|
82
|
+
""" Raise exception if this is called"""
|
83
|
+
raise NotImplementedError()
|
84
|
+
|
85
|
+
@classmethod
|
86
|
+
@gds_plugin_implementation
|
87
|
+
def register_communication_plugin(cls):
|
88
|
+
""" Register this as a plugin """
|
89
|
+
return cls
|
@@ -18,6 +18,8 @@ import time
|
|
18
18
|
import fprime_gds.common.communication.adapters.base
|
19
19
|
import fprime_gds.common.logger
|
20
20
|
|
21
|
+
from fprime_gds.plugin.definitions import gds_plugin_implementation
|
22
|
+
|
21
23
|
LOGGER = logging.getLogger("ip_adapter")
|
22
24
|
|
23
25
|
|
@@ -114,7 +116,7 @@ class IpAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
|
|
114
116
|
|
115
117
|
def write(self, frame):
|
116
118
|
"""
|
117
|
-
Send a given framed bit of data by sending it out the serial interface. It will attempt to reconnect if there
|
119
|
+
Send a given framed bit of data by sending it out the serial interface. It will attempt to reconnect if there
|
118
120
|
was a problem previously. This function will return true on success, or false on error.
|
119
121
|
|
120
122
|
:param frame: framed data packet to send out
|
@@ -151,6 +153,11 @@ class IpAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
|
|
151
153
|
self.write(IpAdapter.KEEPALIVE_DATA)
|
152
154
|
time.sleep(interval)
|
153
155
|
|
156
|
+
@classmethod
|
157
|
+
def get_name(cls):
|
158
|
+
""" Get the name of this adapter """
|
159
|
+
return "ip"
|
160
|
+
|
154
161
|
@classmethod
|
155
162
|
def get_arguments(cls):
|
156
163
|
"""
|
@@ -163,13 +170,13 @@ class IpAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
|
|
163
170
|
"dest": "address",
|
164
171
|
"type": str,
|
165
172
|
"default": "0.0.0.0",
|
166
|
-
"help": "Address of the IP adapter server.
|
173
|
+
"help": "Address of the IP adapter server.",
|
167
174
|
},
|
168
175
|
("--ip-port",): {
|
169
176
|
"dest": "port",
|
170
177
|
"type": int,
|
171
178
|
"default": 50000,
|
172
|
-
"help": "Port of the IP adapter server.
|
179
|
+
"help": "Port of the IP adapter server.",
|
173
180
|
},
|
174
181
|
("--ip-client",): {
|
175
182
|
# dest is "server" since it is handled in BaseAdapter.construct_adapter and passed with the same
|
@@ -182,14 +189,25 @@ class IpAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
|
|
182
189
|
}
|
183
190
|
|
184
191
|
@classmethod
|
185
|
-
|
192
|
+
@gds_plugin_implementation
|
193
|
+
def register_communication_plugin(cls):
|
194
|
+
""" Register this as a communication plugin """
|
195
|
+
return cls
|
196
|
+
|
197
|
+
@classmethod
|
198
|
+
def check_arguments(cls, address, port, server=True):
|
186
199
|
"""
|
187
200
|
Code that should check arguments of this adapter. If there is a problem with this code, then a "ValueError"
|
188
201
|
should be raised describing the problem with these arguments.
|
189
202
|
|
190
203
|
:param args: arguments as dictionary
|
191
204
|
"""
|
192
|
-
|
205
|
+
try:
|
206
|
+
if server:
|
207
|
+
check_port(address, port)
|
208
|
+
except OSError as os_error:
|
209
|
+
raise ValueError(f"{os_error}")
|
210
|
+
|
193
211
|
|
194
212
|
|
195
213
|
class IpHandler(abc.ABC):
|
{fprime-gds-3.4.3 → fprime_gds-3.4.4a2}/src/fprime_gds/common/communication/adapters/uart.py
RENAMED
@@ -15,6 +15,8 @@ from serial.tools import list_ports
|
|
15
15
|
|
16
16
|
import fprime_gds.common.communication.adapters.base
|
17
17
|
|
18
|
+
from fprime_gds.plugin.definitions import gds_plugin_implementation
|
19
|
+
|
18
20
|
LOGGER = logging.getLogger("serial_adapter")
|
19
21
|
|
20
22
|
|
@@ -151,18 +153,29 @@ class SerialAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
|
|
151
153
|
"dest": "device",
|
152
154
|
"type": str,
|
153
155
|
"default": default,
|
154
|
-
"help": "UART device representing the FSW.
|
156
|
+
"help": "UART device representing the FSW.",
|
155
157
|
},
|
156
158
|
("--uart-baud",): {
|
157
159
|
"dest": "baud",
|
158
160
|
"type": int,
|
159
161
|
"default": 9600,
|
160
|
-
"help": "Baud rate of the serial device.
|
162
|
+
"help": "Baud rate of the serial device.",
|
161
163
|
},
|
162
164
|
}
|
163
165
|
|
164
166
|
@classmethod
|
165
|
-
def
|
167
|
+
def get_name(cls):
|
168
|
+
""" Get name of the adapter """
|
169
|
+
return "uart"
|
170
|
+
|
171
|
+
@classmethod
|
172
|
+
@gds_plugin_implementation
|
173
|
+
def register_communication_plugin(cls):
|
174
|
+
""" Register this as a communication plugin """
|
175
|
+
return cls
|
176
|
+
|
177
|
+
@classmethod
|
178
|
+
def check_arguments(cls, device, baud):
|
166
179
|
"""
|
167
180
|
Code that should check arguments of this adapter. If there is a problem with this code, then a "ValueError"
|
168
181
|
should be raised describing the problem with these arguments.
|
@@ -170,16 +183,16 @@ class SerialAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
|
|
170
183
|
:param args: arguments as dictionary
|
171
184
|
"""
|
172
185
|
ports = map(lambda info: info.device, list_ports.comports(include_links=True))
|
173
|
-
if
|
174
|
-
msg = f"Serial port '{
|
186
|
+
if device not in ports:
|
187
|
+
msg = f"Serial port '{device}' not valid. Available ports: {ports}"
|
175
188
|
raise ValueError(
|
176
189
|
msg
|
177
190
|
)
|
178
191
|
# Note: baud rate may not *always* work. These are a superset
|
179
192
|
try:
|
180
|
-
baud = int(
|
193
|
+
baud = int(baud)
|
181
194
|
except ValueError:
|
182
|
-
msg = f"Serial baud rate '{
|
195
|
+
msg = f"Serial baud rate '{baud}' not integer. Use one of: {SerialAdapter.BAUDS}"
|
183
196
|
raise ValueError(
|
184
197
|
msg
|
185
198
|
)
|
@@ -11,7 +11,6 @@ def crc_calculation(data: bytes):
|
|
11
11
|
return zlib.crc32(data) & 0xFFFFFFFF
|
12
12
|
|
13
13
|
|
14
|
-
CHECKSUM_SELECTION = "crc32"
|
15
14
|
CHECKSUM_MAPPING = {
|
16
15
|
"fixed": lambda data: 0xCAFECAFE,
|
17
16
|
"crc32": crc_calculation,
|
@@ -19,8 +18,7 @@ CHECKSUM_MAPPING = {
|
|
19
18
|
}
|
20
19
|
|
21
20
|
|
22
|
-
def calculate_checksum(data: bytes):
|
21
|
+
def calculate_checksum(data: bytes, selected_checksum: str):
|
23
22
|
"""Calculates the checksum of bytes"""
|
24
|
-
selected_checksum = CHECKSUM_SELECTION
|
25
23
|
hash_fn = CHECKSUM_MAPPING.get(selected_checksum, CHECKSUM_MAPPING.get("default"))
|
26
24
|
return hash_fn(data)
|
@@ -15,8 +15,10 @@ import abc
|
|
15
15
|
import copy
|
16
16
|
import struct
|
17
17
|
import sys
|
18
|
+
from typing import Type
|
18
19
|
|
19
|
-
from .checksum import calculate_checksum
|
20
|
+
from .checksum import calculate_checksum, CHECKSUM_MAPPING
|
21
|
+
from fprime_gds.plugin.definitions import gds_plugin_implementation, gds_plugin_specification
|
20
22
|
|
21
23
|
|
22
24
|
class FramerDeframer(abc.ABC):
|
@@ -70,6 +72,24 @@ class FramerDeframer(abc.ABC):
|
|
70
72
|
return packets, data, discarded_aggregate
|
71
73
|
packets.append(packet)
|
72
74
|
|
75
|
+
@classmethod
|
76
|
+
@gds_plugin_specification
|
77
|
+
def register_framing_plugin(cls) -> Type["FramerDeframer"]:
|
78
|
+
"""Register a plugin to provide framing capabilities
|
79
|
+
|
80
|
+
Plugin hook for registering a plugin that supplies a FramerDeframer implementation. Implementors of this hook must
|
81
|
+
return a non-abstract subclass of FramerDeframer. This class will be provided as a framing implementation option
|
82
|
+
that users may select via command line arguments.
|
83
|
+
|
84
|
+
Note: users should return the class, not an instance of the class. Needed arguments for instantiation are
|
85
|
+
determined from class methods, solicited via the command line, and provided at construction time to the chosen
|
86
|
+
instantiation.
|
87
|
+
|
88
|
+
Returns:
|
89
|
+
FramerDeframer subclass
|
90
|
+
"""
|
91
|
+
raise NotImplementedError()
|
92
|
+
|
73
93
|
|
74
94
|
class FpFramerDeframer(FramerDeframer):
|
75
95
|
"""
|
@@ -97,10 +117,11 @@ class FpFramerDeframer(FramerDeframer):
|
|
97
117
|
HEADER_FORMAT = None
|
98
118
|
START_TOKEN = None
|
99
119
|
|
100
|
-
def __init__(self):
|
120
|
+
def __init__(self, checksum_type):
|
101
121
|
"""Sets constants on construction."""
|
102
122
|
# Setup the constants as soon as possible.
|
103
123
|
FpFramerDeframer.set_constants()
|
124
|
+
self.checksum = checksum_type
|
104
125
|
|
105
126
|
@classmethod
|
106
127
|
def set_constants(cls):
|
@@ -134,7 +155,7 @@ class FpFramerDeframer(FramerDeframer):
|
|
134
155
|
FpFramerDeframer.HEADER_FORMAT, FpFramerDeframer.START_TOKEN, len(data)
|
135
156
|
)
|
136
157
|
framed += data
|
137
|
-
framed += struct.pack(">I", calculate_checksum(framed))
|
158
|
+
framed += struct.pack(">I", calculate_checksum(framed, self.checksum))
|
138
159
|
return framed
|
139
160
|
|
140
161
|
def deframe(self, data, no_copy=False):
|
@@ -176,7 +197,8 @@ class FpFramerDeframer(FramerDeframer):
|
|
176
197
|
)
|
177
198
|
# If the checksum is valid, return the packet. Otherwise continue to rotate
|
178
199
|
if check == calculate_checksum(
|
179
|
-
data[: data_size + FpFramerDeframer.HEADER_SIZE]
|
200
|
+
data[: data_size + FpFramerDeframer.HEADER_SIZE],
|
201
|
+
self.checksum
|
180
202
|
):
|
181
203
|
data = data[total_size:]
|
182
204
|
return deframed, data, discarded
|
@@ -192,6 +214,33 @@ class FpFramerDeframer(FramerDeframer):
|
|
192
214
|
return None, data, discarded
|
193
215
|
return None, data, discarded
|
194
216
|
|
217
|
+
@classmethod
|
218
|
+
def get_name(cls):
|
219
|
+
""" Get the name of this plugin """
|
220
|
+
return "fprime"
|
221
|
+
|
222
|
+
@classmethod
|
223
|
+
def get_arguments(cls):
|
224
|
+
""" Get arguments for the framer/deframer """
|
225
|
+
return {("--comm-checksum-type",): {
|
226
|
+
"dest": "checksum_type",
|
227
|
+
"action": "store",
|
228
|
+
"type": str,
|
229
|
+
"help": "Setup the checksum algorithm. [default: %(default)s]",
|
230
|
+
"choices": [
|
231
|
+
item
|
232
|
+
for item in CHECKSUM_MAPPING.keys()
|
233
|
+
if item != "default"
|
234
|
+
],
|
235
|
+
"default": "crc32",
|
236
|
+
}}
|
237
|
+
|
238
|
+
@classmethod
|
239
|
+
@gds_plugin_implementation
|
240
|
+
def register_framing_plugin(cls):
|
241
|
+
""" Register a bad plugin """
|
242
|
+
return cls
|
243
|
+
|
195
244
|
|
196
245
|
class TcpServerFramerDeframer(FramerDeframer):
|
197
246
|
"""
|
@@ -44,7 +44,12 @@ class EventData(sys_data.SysData):
|
|
44
44
|
self.display_text = event_temp.description
|
45
45
|
elif event_temp.format_str == "":
|
46
46
|
args_template = self.template.get_args()
|
47
|
-
self.display_text = str(
|
47
|
+
self.display_text = str(
|
48
|
+
[
|
49
|
+
{args_template[index][0]: arg.val}
|
50
|
+
for index, arg in enumerate(event_args)
|
51
|
+
]
|
52
|
+
)
|
48
53
|
else:
|
49
54
|
self.display_text = format_string_template(
|
50
55
|
event_temp.format_str, tuple([arg.val for arg in event_args])
|