fprime-gds 3.5.2a1__tar.gz → 3.6.0__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.
Files changed (310) hide show
  1. fprime_gds-3.6.0/.github/actions/spelling/expect.txt +380 -0
  2. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/workflows/spelling.yml +18 -9
  3. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/PKG-INFO +2 -2
  4. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/cmd_data.py +4 -5
  5. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/json_loader.py +12 -3
  6. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/transport.py +1 -1
  7. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/commands.py +1 -1
  8. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/arguments.js +50 -20
  9. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-history.js +3 -22
  10. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-input.js +6 -1
  11. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-string-template.js +2 -1
  12. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-string.js +5 -1
  13. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/addon.js +2 -0
  14. fprime_gds-3.6.0/src/fprime_gds/flask/static/js/json.js +333 -0
  15. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/loader.js +3 -114
  16. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/PKG-INFO +2 -2
  17. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/SOURCES.txt +2 -0
  18. fprime_gds-3.6.0/test/fprime_gds/common/data_types/test_cmd_data.py +66 -0
  19. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/loaders/resources/RefTopologyDictionary.json +32 -0
  20. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/loaders/test_json_loader.py +10 -0
  21. fprime_gds-3.5.2a1/.github/actions/spelling/expect.txt +0 -788
  22. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  23. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/actions/codeql/security-pack.yml +0 -0
  24. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/actions/spelling/excludes.txt +0 -0
  25. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/actions/spelling/patterns.txt +0 -0
  26. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/pull_request_template.md +0 -0
  27. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/resources/RefTopologyAppDictionary.xml +0 -0
  28. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/workflows/codeql-security-scan.yml +0 -0
  29. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/workflows/fprime-gds-tests.yml +0 -0
  30. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/workflows/gds-cli-tests.yml +0 -0
  31. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/workflows/publish.yml +0 -0
  32. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.gitignore +0 -0
  33. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/Doxyfile +0 -0
  34. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/LICENSE.txt +0 -0
  35. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/NOTICE.txt +0 -0
  36. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/README.md +0 -0
  37. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/configs/__init__.py +0 -0
  38. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/docs/README.md +0 -0
  39. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/docs/_static/css/rtd_width.css +0 -0
  40. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/docs/conf.py +0 -0
  41. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/docs/gendoc.bash +0 -0
  42. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/docs/index.rst +0 -0
  43. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/examples/simple_sequence.bin +0 -0
  44. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/examples/simple_sequence.seq +0 -0
  45. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/pyproject.toml +0 -0
  46. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/setup.cfg +0 -0
  47. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/setup.py +0 -0
  48. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fastentrypoints.py +0 -0
  49. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/__init__.py +0 -0
  50. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/__init__.py +0 -0
  51. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/__init__.py +0 -0
  52. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/adapters/__init__.py +0 -0
  53. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/adapters/base.py +0 -0
  54. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/adapters/ip.py +0 -0
  55. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/adapters/uart.py +0 -0
  56. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/checksum.py +0 -0
  57. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/framing.py +0 -0
  58. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/ground.py +0 -0
  59. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/updown.py +0 -0
  60. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/controllers/__init__.py +0 -0
  61. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/__init__.py +0 -0
  62. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/ch_data.py +0 -0
  63. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/event_data.py +0 -0
  64. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/exceptions.py +0 -0
  65. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/file_data.py +0 -0
  66. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/pkt_data.py +0 -0
  67. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/sys_data.py +0 -0
  68. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/__init__.py +0 -0
  69. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/ch_decoder.py +0 -0
  70. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/decoder.py +0 -0
  71. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/event_decoder.py +0 -0
  72. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/file_decoder.py +0 -0
  73. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/pkt_decoder.py +0 -0
  74. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/distributor/__init__.py +0 -0
  75. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/distributor/distributor.py +0 -0
  76. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/__init__.py +0 -0
  77. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/ch_encoder.py +0 -0
  78. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/cmd_encoder.py +0 -0
  79. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/encoder.py +0 -0
  80. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/event_encoder.py +0 -0
  81. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/file_encoder.py +0 -0
  82. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/pkt_encoder.py +0 -0
  83. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/seq_writer.py +0 -0
  84. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/files/File Decoder Documentation.txt +0 -0
  85. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/files/__init__.py +0 -0
  86. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/files/downlinker.py +0 -0
  87. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/files/helpers.py +0 -0
  88. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/files/uplinker.py +0 -0
  89. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/__init__.py +0 -0
  90. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/base_commands.py +0 -0
  91. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/channels.py +0 -0
  92. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/command_send.py +0 -0
  93. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/events.py +0 -0
  94. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/filtering_utils.py +0 -0
  95. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/test_api_utils.py +0 -0
  96. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/handlers.py +0 -0
  97. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/history/__init__.py +0 -0
  98. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/history/chrono.py +0 -0
  99. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/history/history.py +0 -0
  100. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/history/ram.py +0 -0
  101. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/history/test.py +0 -0
  102. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/__init__.py +0 -0
  103. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/ch_json_loader.py +0 -0
  104. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/ch_py_loader.py +0 -0
  105. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/ch_xml_loader.py +0 -0
  106. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/cmd_json_loader.py +0 -0
  107. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/cmd_py_loader.py +0 -0
  108. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/cmd_xml_loader.py +0 -0
  109. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/dict_loader.py +0 -0
  110. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/event_json_loader.py +0 -0
  111. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/event_py_loader.py +0 -0
  112. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/event_xml_loader.py +0 -0
  113. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/pkt_xml_loader.py +0 -0
  114. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/python_loader.py +0 -0
  115. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/xml_loader.py +0 -0
  116. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/logger/__init__.py +0 -0
  117. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/logger/data_logger.py +0 -0
  118. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/logger/test_logger.py +0 -0
  119. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/models/__init__.py +0 -0
  120. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/models/common/__init__.py +0 -0
  121. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/models/common/channel_telemetry.py +0 -0
  122. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/models/common/command.py +0 -0
  123. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/models/common/event.py +0 -0
  124. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/parsers/__init__.py +0 -0
  125. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/parsers/seq_file_parser.py +0 -0
  126. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/__init__.py +0 -0
  127. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/dictionaries.py +0 -0
  128. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/encoding.py +0 -0
  129. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/files.py +0 -0
  130. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/histories.py +0 -0
  131. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/router.py +0 -0
  132. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/standard.py +0 -0
  133. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/__init__.py +0 -0
  134. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/ch_template.py +0 -0
  135. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/cmd_template.py +0 -0
  136. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/data_template.py +0 -0
  137. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/event_template.py +0 -0
  138. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/pkt_template.py +0 -0
  139. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/testing_fw/__init__.py +0 -0
  140. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/testing_fw/api.py +0 -0
  141. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/testing_fw/predicates.py +0 -0
  142. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/testing_fw/pytest_integration.py +0 -0
  143. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/tools/__init__.py +0 -0
  144. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/tools/seqgen.py +0 -0
  145. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/utils/__init__.py +0 -0
  146. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/utils/config_manager.py +0 -0
  147. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/utils/data_desc_type.py +0 -0
  148. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/utils/event_severity.py +0 -0
  149. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/utils/string_util.py +0 -0
  150. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/zmq_transport.py +0 -0
  151. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/__init__.py +0 -0
  152. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/apps.py +0 -0
  153. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/cli.py +0 -0
  154. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/comm.py +0 -0
  155. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/data_product_writer.py +0 -0
  156. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/fprime_cli.py +0 -0
  157. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/run_deployment.py +0 -0
  158. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/tcpserver.py +0 -0
  159. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/utils.py +0 -0
  160. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/__init__.py +0 -0
  161. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/app.py +0 -0
  162. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/channels.py +0 -0
  163. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/components.py +0 -0
  164. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/default_settings.py +0 -0
  165. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/errors.py +0 -0
  166. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/events.py +0 -0
  167. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/json.py +0 -0
  168. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/logs.py +0 -0
  169. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/requirements.txt +0 -0
  170. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/resource.py +0 -0
  171. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/sequence.py +0 -0
  172. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/.idea/.gitignore +0 -0
  173. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/.idea/misc.xml +0 -0
  174. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/.idea/modules.xml +0 -0
  175. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/.idea/static.iml +0 -0
  176. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/.idea/vcs.xml +0 -0
  177. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/advanced-settings/addon-templates.js +0 -0
  178. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/advanced-settings/addon.js +0 -0
  179. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/channel-render/addon.js +0 -0
  180. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/channel-render/channel-render-template.js +0 -0
  181. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/channel-render/channel-render.js +0 -0
  182. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/addon-templates.js +0 -0
  183. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/addon.js +0 -0
  184. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/config.js +0 -0
  185. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-streaming.js +0 -0
  186. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-zoom.js +0 -0
  187. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/flat.js +0 -0
  188. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/sibling.js +0 -0
  189. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/vendor/chart.js +0 -0
  190. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/vendor/chartjs-adapter-luxon.min.js +0 -0
  191. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/vendor/hammer.min.js +0 -0
  192. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/addon.js +0 -0
  193. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/argument-templates.js +0 -0
  194. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-history-template.js +0 -0
  195. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-input-template.js +0 -0
  196. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/dictionary/addon-templates.js +0 -0
  197. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/dictionary/addon.js +0 -0
  198. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/enabled.js +0 -0
  199. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/image-display/addon.js +0 -0
  200. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/image-display/dashboard.xml +0 -0
  201. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/README.md +0 -0
  202. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/addon-templates.js +0 -0
  203. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/autocomplete.js +0 -0
  204. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/lint.js +0 -0
  205. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/code-mirror.es.js +0 -0
  206. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/.gitignore +0 -0
  207. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/index.js +0 -0
  208. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/language.grammer +0 -0
  209. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/package.json +0 -0
  210. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/rollup.config.js +0 -0
  211. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/css/fprime.css +0 -0
  212. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/css/fpstyle.css +0 -0
  213. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/favicon.ico +0 -0
  214. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/img/error.svg +0 -0
  215. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/img/logo.svg +0 -0
  216. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/img/success.svg +0 -0
  217. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/index.html +0 -0
  218. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/config.js +0 -0
  219. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/datastore.js +0 -0
  220. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/gds.js +0 -0
  221. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/performance.js +0 -0
  222. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/settings.js +0 -0
  223. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/uploader.js +0 -0
  224. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/validate.js +0 -0
  225. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/channel.js +0 -0
  226. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/dashboard-box.js +0 -0
  227. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/dashboard-row.js +0 -0
  228. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/dashboard.js +0 -0
  229. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/downlink.js +0 -0
  230. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/event.js +0 -0
  231. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/fp-row.js +0 -0
  232. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/fptable.js +0 -0
  233. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/log.js +0 -0
  234. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/tabetc.js +0 -0
  235. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/uplink.js +0 -0
  236. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/utils.js +0 -0
  237. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/css/all.min.css +0 -0
  238. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/css/bootstrap.min.css +0 -0
  239. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/css/vue-select.css +0 -0
  240. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/js/luxon.min.js +0 -0
  241. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/js/sorttable.js +0 -0
  242. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/js/v-runtime-template.js +0 -0
  243. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/js/vue-select.js +0 -0
  244. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/js/vue.min.js +0 -0
  245. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.eot +0 -0
  246. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.svg +0 -0
  247. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.ttf +0 -0
  248. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff +0 -0
  249. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff2 +0 -0
  250. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.eot +0 -0
  251. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.svg +0 -0
  252. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.ttf +0 -0
  253. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff +0 -0
  254. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff2 +0 -0
  255. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.eot +0 -0
  256. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.svg +0 -0
  257. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.ttf +0 -0
  258. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff +0 -0
  259. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff2 +0 -0
  260. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/stats.py +0 -0
  261. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/updown.py +0 -0
  262. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/plugin/__init__.py +0 -0
  263. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/plugin/definitions.py +0 -0
  264. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/plugin/system.py +0 -0
  265. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/version.py +0 -0
  266. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/dependency_links.txt +0 -0
  267. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/entry_points.txt +0 -0
  268. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/requires.txt +0 -0
  269. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/top_level.txt +0 -0
  270. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/distributor/test_distributor.py +0 -0
  271. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/encoders/test_ch_encoder.py +0 -0
  272. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/encoders/test_event_encoder.py +0 -0
  273. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/encoders/test_pkt_encoder.py +0 -0
  274. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/gds_cli/filtering_utils_test.py +0 -0
  275. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/gds_cli/utils_test.py +0 -0
  276. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/history/chronohistory_unit_test.py +0 -0
  277. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/history/testhistory_unit_test.py +0 -0
  278. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/testing_fw/UnitTestDictionary.xml +0 -0
  279. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/testing_fw/api_unit_test.py +0 -0
  280. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/testing_fw/logs/.gitignore +0 -0
  281. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/testing_fw/predicate_unit_test.py +0 -0
  282. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/expected/simple_expected.bin +0 -0
  283. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/input/simple_bad_sequence.seq +0 -0
  284. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/input/simple_sequence.seq +0 -0
  285. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/resources/simple_dictionary.json +0 -0
  286. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/resources/simple_dictionary.xml +0 -0
  287. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/seqgen_unit_test.py +0 -0
  288. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/utils/test_string_util.py +0 -0
  289. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/.gitignore +0 -0
  290. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/dictionary.json +0 -0
  291. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeBool.bin +0 -0
  292. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeComplex.bin +0 -0
  293. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeDataArray.bin +0 -0
  294. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeEnum.bin +0 -0
  295. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeF32.bin +0 -0
  296. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeF64.bin +0 -0
  297. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeFppArray.bin +0 -0
  298. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeI16.bin +0 -0
  299. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeI32.bin +0 -0
  300. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeI64.bin +0 -0
  301. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeI8.bin +0 -0
  302. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeU32.bin +0 -0
  303. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeU32Array.bin +0 -0
  304. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeU8Array.bin +0 -0
  305. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/test_data_product_writer.py +0 -0
  306. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/test_run_deployment.py +0 -0
  307. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/test_utils.py +0 -0
  308. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/sample/dictionary.xml +0 -0
  309. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/test_plugins.py +0 -0
  310. {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/gui/GUI_Test_Procedure.md +0 -0
@@ -0,0 +1,380 @@
1
+ abeautifulsite
2
+ AClass
3
+ addoption
4
+ ADEBAD
5
+ adrianheine
6
+ allbox
7
+ ALLEXTERNALS
8
+ ALOG
9
+ amsmath
10
+ ANamespace
11
+ Anps
12
+ argcomplete
13
+ argdesc
14
+ ARGN
15
+ argname
16
+ argtype
17
+ autoapi
18
+ AUTOBRIEF
19
+ autocoded
20
+ autogen
21
+ autoraise
22
+ autosectionlabel
23
+ backface
24
+ batchmode
25
+ baudrate
26
+ bcolors
27
+ BGR
28
+ Biberstein
29
+ bibtex
30
+ bitmaps
31
+ breadcrumb
32
+ Btns
33
+ BUGLIST
34
+ calibri
35
+ callergraph
36
+ callgraph
37
+ cata
38
+ CCB
39
+ CCFF
40
+ Cdioux
41
+ cdn
42
+ cdxoefg
43
+ CFDG
44
+ CFDP
45
+ CFPD
46
+ chartjs
47
+ CHNG
48
+ classdocs
49
+ clearfix
50
+ cls
51
+ cmdhist
52
+ CODEFILE
53
+ COLORSTYLE
54
+ colorwheel
55
+ columnify
56
+ combuffer
57
+ commandsi
58
+ configs
59
+ Consolas
60
+ creatingdocsetswithdoxygen
61
+ csum
62
+ curateable
63
+ curated
64
+ curating
65
+ customise
66
+ daringfireball
67
+ dataobjects
68
+ dblclick
69
+ Dct
70
+ ddl
71
+ Ded
72
+ deframe
73
+ deframed
74
+ deframer
75
+ deframing
76
+ DEPRECATEDLIST
77
+ DESER
78
+ Deserial
79
+ deserializes
80
+ dests
81
+ dexc
82
+ DGRAM
83
+ diafile
84
+ dimitri
85
+ dinkel
86
+ docbook
87
+ docset
88
+ dontinclude
89
+ DOTFONTPATH
90
+ downfiles
91
+ downlinker
92
+ dox
93
+ doxyfile
94
+ doxygenversion
95
+ doxyindexer
96
+ doxypypy
97
+ doxyrules
98
+ doxysearch
99
+ Doxywizard
100
+ doy
101
+ dps
102
+ dropleft
103
+ dropright
104
+ dropup
105
+ Drv
106
+ Dsh
107
+ dts
108
+ DVI
109
+ ECLIPSEHELP
110
+ ECONNRESET
111
+ ect
112
+ EEXIST
113
+ Efg
114
+ ENDC
115
+ endcond
116
+ errorhandler
117
+ errorrs
118
+ ev
119
+ Evn
120
+ evr
121
+ evt
122
+ extlinks
123
+ exts
124
+ fastentrypoints
125
+ fbuild
126
+ fd
127
+ FEEDNAME
128
+ FFCC
129
+ FFFF
130
+ fileurl
131
+ Firefox
132
+ focusring
133
+ FONTNAME
134
+ FONTPATH
135
+ FONTSIZE
136
+ fpp
137
+ fprime
138
+ fptable
139
+ fsw
140
+ gdiplus
141
+ getbootstrap
142
+ github
143
+ grayscales
144
+ gse
145
+ gtags
146
+ GUIS
147
+ gz
148
+ Haverbeke
149
+ hh
150
+ hhc
151
+ hhk
152
+ hhp
153
+ hidecallergraph
154
+ hidecallgraph
155
+ hideinitializer
156
+ hlp
157
+ HLTH
158
+ hookspecs
159
+ hpaulson
160
+ htags
161
+ hyperlinks
162
+ idct
163
+ idl
164
+ ieeetr
165
+ ified
166
+ ifun
167
+ IH
168
+ inprogress
169
+ intersphinx
170
+ intlimits
171
+ ip
172
+ ipc
173
+ ipp
174
+ itcl
175
+ ixx
176
+ janamian
177
+ Jdk
178
+ jpl
179
+ JSO
180
+ jsonable
181
+ jsonified
182
+ jsonify
183
+ keepalive
184
+ keyify
185
+ kinda
186
+ lestarch
187
+ levelname
188
+ Lezer
189
+ libcrc
190
+ libiconv
191
+ Linting
192
+ LIw
193
+ logdata
194
+ logdir
195
+ logpath
196
+ logselect
197
+ luxon
198
+ makeindex
199
+ MAKEVAR
200
+ marijnh
201
+ matchobj
202
+ mathjax
203
+ mcternan
204
+ MDFILE
205
+ memb
206
+ millis
207
+ misordered
208
+ MML
209
+ moz
210
+ msc
211
+ mscfile
212
+ mscgen
213
+ mstarch
214
+ mx
215
+ mycompany
216
+ nassert
217
+ nbytes
218
+ Neue
219
+ Nify
220
+ ninjaaron
221
+ nitpicky
222
+ noapp
223
+ NOSONAR
224
+ nosort
225
+ nosubgrouping
226
+ Noto
227
+ NSPACES
228
+ nuntil
229
+ odl
230
+ OKBLUE
231
+ OKGREEN
232
+ OMG
233
+ OPREG
234
+ oring
235
+ osexc
236
+ OSX
237
+ outputfile
238
+ packetized
239
+ Paetz
240
+ PARAMDOC
241
+ passthrough
242
+ pb
243
+ pdflatex
244
+ PERLMOD
245
+ pkts
246
+ plainnat
247
+ plantuml
248
+ PNGs
249
+ preds
250
+ prm
251
+ procs
252
+ PROGRAMLISTING
253
+ projectbrief
254
+ projectlogo
255
+ projectname
256
+ projectnumber
257
+ propget
258
+ propput
259
+ px
260
+ py
261
+ qch
262
+ qhelpgenerator
263
+ QHG
264
+ qhp
265
+ qsf
266
+ qthelpproject
267
+ rackerlabs
268
+ rackspace
269
+ rae
270
+ rb
271
+ RCVHWM
272
+ RCVTIMEO
273
+ RDWR
274
+ Readback
275
+ recommonmark
276
+ recuring
277
+ recvd
278
+ recvs
279
+ reder
280
+ removeit
281
+ reqparse
282
+ riverbankcomputing
283
+ Roboto
284
+ rollup
285
+ rpaetz
286
+ rst
287
+ saba
288
+ sdd
289
+ searchdata
290
+ Segoe
291
+ seqfile
292
+ seqgen
293
+ serializables
294
+ serialutil
295
+ showinitializer
296
+ sideeffect
297
+ SIGALRM
298
+ sizeb
299
+ SMAP
300
+ Smath
301
+ SNDHWM
302
+ sorttable
303
+ squashify
304
+ sss
305
+ Ssymbols
306
+ stackoverflow
307
+ startuml
308
+ subgrouping
309
+ subhist
310
+ subhistory
311
+ superpackage
312
+ superpkg
313
+ tabetc
314
+ tagfile
315
+ tcanham
316
+ tcp
317
+ tcpserver
318
+ td
319
+ telem
320
+ TESTLIST
321
+ Theif
322
+ thtcp
323
+ thudp
324
+ timebase
325
+ timescales
326
+ timespan
327
+ timestep
328
+ timestring
329
+ timetype
330
+ tinyseqgen
331
+ TKC
332
+ tlm
333
+ toctree
334
+ TODOLIST
335
+ tooltiptext
336
+ treeview
337
+ tsn
338
+ tstring
339
+ ttl
340
+ tts
341
+ twbs
342
+ typedef'ed
343
+ typedef
344
+ uart
345
+ ucf
346
+ udp
347
+ UIs
348
+ uk
349
+ ul
350
+ UNINIT
351
+ updown
352
+ upfiles
353
+ uplinker
354
+ uplinkvue
355
+ usec
356
+ useconds
357
+ usepackage
358
+ usr
359
+ vh
360
+ vhd
361
+ vhdl
362
+ viewcode
363
+ vle
364
+ vname
365
+ VRuntime
366
+ vw
367
+ Watney
368
+ webified
369
+ webpage
370
+ website
371
+ wikipedia
372
+ WSL
373
+ wx
374
+ xapian
375
+ xhttp
376
+ xl
377
+ xmit
378
+ xy
379
+ zeromq
380
+ zmq
@@ -21,24 +21,33 @@ jobs:
21
21
  actions: read
22
22
  outputs:
23
23
  followup: ${{ steps.spelling.outputs.followup }}
24
- runs-on: ubuntu-20.04
25
- if: "contains(github.event_name, 'pull_request') || github.event_name == 'push'"
26
- concurrency:
27
- group: spelling-${{ github.event.pull_request.number || github.ref }}
28
- # note: If you use only_check_changed_files, you do not want cancel-in-progress
29
- cancel-in-progress: true
24
+ runs-on: ubuntu-24.04
25
+ if: ${{ contains(github.event_name, 'pull_request') || github.event_name == 'push' }}
30
26
  steps:
31
27
  - name: check-spelling
32
28
  id: spelling
33
- uses: check-spelling/check-spelling@v0.0.20
29
+ uses: check-spelling/check-spelling@v0.0.24
34
30
  with:
35
31
  suppress_push_for_open_pull_request: 1
36
32
  checkout: true
37
33
  post_comment: 0
38
- extra_dictionaries:
34
+ check_extra_dictionaries: ''
35
+ dictionary_source_prefixes: >
36
+ {
37
+ "cspell": "https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20241114/dictionaries/"
38
+ }
39
+ extra_dictionaries: |
39
40
  cspell:filetypes/filetypes.txt
40
41
  cspell:python/python.txt
42
+ cspell:python/python/python-lib.txt
43
+ cspell:python/python/python.txt
44
+ cspell:python/common/extra.txt
41
45
  cspell:django/django.txt
42
46
  cspell:html/html.txt
43
47
  cspell:fullstack/fullstack.txt
44
- check_extra_dictionaries: ''
48
+ cspell:software-terms/softwareTerms.txt
49
+ cspell:cpp/stdlib-c.txt
50
+ cspell:cpp/stdlib-cpp.txt
51
+ cspell:mnemonics/mnemonics.txt
52
+ cspell:cpp/ecosystem.txt
53
+
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: fprime-gds
3
- Version: 3.5.2a1
3
+ Version: 3.6.0
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:
@@ -131,9 +131,8 @@ class CmdData(sys_data.SysData):
131
131
  else:
132
132
  # The arguments are currently serializable objects which cannot be
133
133
  # used to fill in a format string. Convert them to values that can be
134
- arg_val_list = [arg_obj.val for arg_obj in self.args]
135
-
136
- arg_str = " ".join(str(arg_val_list))
134
+ arg_val_list = self.get_arg_vals()
135
+ arg_str = str(arg_val_list)
137
136
 
138
137
  if verbose and csv:
139
138
  return f"{time_str},{raw_time_str},{name},{self.id},{arg_str}"
@@ -149,13 +148,13 @@ class CmdData(sys_data.SysData):
149
148
  args = []
150
149
  for val, arg_tuple in zip(input_values, self.template.arguments):
151
150
  try:
152
- _, _, arg_type = arg_tuple
151
+ arg_name, _, arg_type = arg_tuple
153
152
  arg_value = arg_type()
154
153
  self.convert_arg_value(val, arg_value)
155
154
  args.append(arg_value)
156
155
  errors.append("")
157
156
  except Exception as exc:
158
- errors.append(str(exc))
157
+ errors.append(f"{arg_name}[{arg_type.__name__}]: {exc}")
159
158
  return args, errors
160
159
 
161
160
  @staticmethod
@@ -178,7 +178,10 @@ class JsonLoader(dict_loader.DictLoader):
178
178
  SerializableType: The constructed serializable type.
179
179
 
180
180
  """
181
- struct_members = []
181
+ # Note on struct_members: the order of the members list matter when calling construct_type() below.
182
+ # It should be ordered by incrementing index which corresponds to the order in the FPP declaration
183
+ # The JSON dictionary ordering is not guaranteed, so we use a dict() to sort by index below.
184
+ struct_members = {}
182
185
  for name, member_dict in qualified_type.get("members").items():
183
186
  member_type_dict = member_dict["type"]
184
187
  member_type_obj = self.parse_type(member_type_dict)
@@ -197,11 +200,17 @@ class JsonLoader(dict_loader.DictLoader):
197
200
  member_type_obj.FORMAT if hasattr(member_type_obj, "FORMAT") else "{}"
198
201
  )
199
202
  description = member_type_dict.get("annotation", "")
200
- struct_members.append((name, member_type_obj, fmt_str, description))
203
+ member_index = member_dict["index"]
204
+ if member_index in struct_members:
205
+ raise KeyError(
206
+ f"Invalid dictionary: Duplicate index {member_index} in serializable type {type_name}"
207
+ )
208
+ struct_members[member_index] = (name, member_type_obj, fmt_str, description)
201
209
 
210
+ # Construct the serializable type with list of members sorted by index
202
211
  ser_type = SerializableType.construct_type(
203
212
  type_name,
204
- struct_members,
213
+ [struct_members[i] for i in sorted(struct_members.keys())],
205
214
  )
206
215
  self.parsed_types[type_name] = ser_type
207
216
  return ser_type
@@ -241,7 +241,7 @@ class ThreadedTCPSocketClient(ThreadedTransportClient):
241
241
  assert self.dest is not None, "Cannot send data before connect call"
242
242
  self.sock.send(b"A5A5 %s %s" % (self.dest, data))
243
243
 
244
- def recv(self, timeout=100):
244
+ def recv(self, timeout=0.1):
245
245
  """Receives data from the threaded tcp server
246
246
 
247
247
  Receives raw data from the threaded tcp server. This data is expected to have no headers and will be passed as
@@ -49,7 +49,7 @@ class CommandArgumentsInvalidException(werkzeug.exceptions.BadRequest):
49
49
  """Command arguments failed to validate properly"""
50
50
 
51
51
  def __init__(self, errors):
52
- super().__init__("Failed to validate all arguments")
52
+ super().__init__(f"Failed to validate all arguments: {', '.join(errors)}")
53
53
  self.args = errors
54
54
 
55
55
 
@@ -74,7 +74,7 @@ export function command_argument_assignment_helper(argument, squashed_argument_v
74
74
  command_argument_array_serializable_assignment_helper(argument, squashed_argument_value);
75
75
  } else {
76
76
  let is_not_string = typeof(argument.type.MAX_LENGTH) === "undefined";
77
- argument.value = (is_not_string && (squashed_argument_value === FILL_NEEDED)) ? null : squashed_argument_value;
77
+ argument.value = (is_not_string && (squashed_argument_value === FILL_NEEDED)) ? null : squashed_argument_value.toString();
78
78
  }
79
79
  }
80
80
 
@@ -119,7 +119,21 @@ export function squashify_argument(argument) {
119
119
  let field = argument.type.MEMBER_LIST[i][0];
120
120
  value[field] = squashify_argument(argument.value[field]);
121
121
  }
122
- } else if (["U64Type", "U32Type", "U16Type", "U8Type"].indexOf(argument.type.name) != -1) {
122
+ } else if (["U64Type"].indexOf(argument.type.name) !== -1) {
123
+ if (argument.value.startsWith("0x")) {
124
+ // Hexadecimal
125
+ value = BigInt(argument.value, 16);
126
+ } else if (argument.value.startsWith("0b")) {
127
+ // Binary
128
+ value = BigInt(argument.value.slice(2), 2);
129
+ } else if (argument.value.startsWith("0o")) {
130
+ // Octal
131
+ value = BigInt(argument.value.slice(2), 8);
132
+ } else {
133
+ // Decimal
134
+ value = BigInt(argument.value, 10);
135
+ }
136
+ } else if (["U32Type", "U16Type", "U8Type"].indexOf(argument.type.name) !== -1) {
123
137
  if (argument.value.startsWith("0x")) {
124
138
  // Hexadecimal
125
139
  value = parseInt(argument.value, 16);
@@ -134,10 +148,13 @@ export function squashify_argument(argument) {
134
148
  value = parseInt(argument.value, 10);
135
149
  }
136
150
  }
137
- else if (["I64Type", "I32Type", "I16Type", "I8Type"].indexOf(argument.type.name) != -1) {
151
+ else if (["I64Type"].indexOf(argument.type.name) !== -1) {
152
+ value = BigInt(argument.value, 10);
153
+ }
154
+ else if (["I32Type", "I16Type", "I8Type"].indexOf(argument.type.name) !== -1) {
138
155
  value = parseInt(argument.value, 10);
139
156
  }
140
- else if (["F64Type", "F32Type"].indexOf(argument.type.name) != -1) {
157
+ else if (["F64Type", "F32Type"].indexOf(argument.type.name) !== -1) {
141
158
  value = parseFloat(argument.value);
142
159
  }
143
160
  else if (argument.type.name == "BoolType") {
@@ -160,22 +177,35 @@ export function squashify_argument(argument) {
160
177
  * @returns: string to display
161
178
  */
162
179
  export function argument_display_string(argument) {
163
- // Base assignment of the value
164
- let string = `${(argument.value == null || argument.value === "") ? FILL_NEEDED: argument.value}`;
165
-
166
- if (argument.type.LENGTH) {
167
- string = `[${argument.value.map((argument) => argument_display_string(argument)).join(", ")}]`;
168
- } else if (argument.type.MEMBER_LIST) {
169
- let fields = [];
170
- for (let i = 0; i < argument.type.MEMBER_LIST.length; i++) {
171
- let field = argument.type.MEMBER_LIST[i][0];
172
- fields.push(`${field}: ${argument_display_string(argument.value[field])}`);
180
+ let string = FILL_NEEDED;
181
+ try {
182
+ // Check for array
183
+ if (argument.type.LENGTH) {
184
+ string = `[${argument.value.map((argument) => argument_display_string(argument)).join(", ")}]`;
185
+ }
186
+ // Serializable
187
+ else if (argument.type.MEMBER_LIST) {
188
+ let fields = [];
189
+ for (let i = 0; i < argument.type.MEMBER_LIST.length; i++) {
190
+ let field = argument.type.MEMBER_LIST[i][0];
191
+ fields.push(`${field}: ${argument_display_string(argument.value[field])}`);
192
+ }
193
+ string = `{${fields.join(", ")}}`
194
+ }
195
+ // String type
196
+ else if (argument.type.MAX_LENGTH) {
197
+ let value = (argument.value == null) ? "" : argument.value;
198
+ value = value.replace(/"/g, '\\\"');
199
+ string = `"${value}"`
200
+ }
201
+ // Unassigned values
202
+ else if (argument.value == null || argument.value === "") {
203
+ string = FILL_NEEDED;
204
+ } else {
205
+ string = squashify_argument(argument);
173
206
  }
174
- string = `{${fields.join(", ")}}`
175
- } else if (argument.type.MAX_LENGTH) {
176
- let value = (argument.value == null) ? "" : argument.value;
177
- value = value.replace(/"/g, '\\\"');
178
- string = `"${value}"`
207
+ } catch (e) {
208
+ string = FILL_NEEDED;
179
209
  }
180
210
  return string;
181
211
  }
@@ -291,7 +321,7 @@ Vue.component("command-scalar-argument", {
291
321
  return ["text", "0[bB][01]+|0[oO][0-7]+|0[xX][0-9a-fA-F]+|[1-9]\\d*|0", ""];
292
322
  }
293
323
  else if (["I64Type", "I32Type", "I16Type", "I8Type"].indexOf(this.argument.type.name) != -1) {
294
- return ["number", null, "1"];
324
+ return ["text", "-?[1-9]\\d*|0", ""];
295
325
  }
296
326
  else if (["F64Type", "F32Type"].indexOf(this.argument.type.name) != -1) {
297
327
  return ["number", null, "any"];
@@ -10,7 +10,8 @@ import {command_argument_assignment_helper} from "./arguments.js";
10
10
  import {listExistsAndItemNameNotInList, timeToString} from "../../js/vue-support/utils.js";
11
11
  import {command_history_template} from "./command-history-template.js";
12
12
  import {command_display_string} from "./command-string.js";
13
-
13
+ import { SaferParser } from "../../js/json.js";
14
+ SaferParser.register();
14
15
 
15
16
  /**
16
17
  * command-history:
@@ -103,27 +104,7 @@ Vue.component("command-history", {
103
104
  // Can only set command if it is a child of a command input
104
105
  if (this.$parent.selectCmd) {
105
106
  // command-input expects an array of strings as arguments
106
- this.$parent.selectCmd(cmd.full_name, this.preprocess_args(cmd.args));
107
- }
108
- },
109
- /**
110
- * Process the arguments for a command. If the argument is (or contains) a number, it
111
- * is converted to a string. Other types that should be pre-processed can be added here.
112
- *
113
- * @param {*} args
114
- * @returns args processed for command input (numbers converted to strings)
115
- */
116
- preprocess_args(args) {
117
- if (Array.isArray(args)) {
118
- return args.map(el => this.preprocess_args(el));
119
- } else if (typeof args === 'object' && args !== null) {
120
- return Object.fromEntries(
121
- Object.entries(args).map(([key, value]) => [key, this.preprocess_args(value)])
122
- );
123
- } else if (typeof args === 'number') {
124
- return args.toString();
125
- } else {
126
- return args;
107
+ this.$parent.selectCmd(cmd.full_name, cmd.args);
127
108
  }
128
109
  }
129
110
  }
@@ -15,6 +15,8 @@ import {
15
15
  } from "../../addons/commanding/arguments.js";
16
16
  import {_settings} from "../../js/settings.js";
17
17
  import {command_input_template} from "./command-input-template.js";
18
+ import { SaferParser } from "../../js/json.js";
19
+ SaferParser.register();
18
20
 
19
21
  /**
20
22
  * This helper will help assign command and values in a safe manner by searching the command store, finding a reference,
@@ -38,6 +40,7 @@ function command_assignment_helper(desired_command_name, desired_command_args, p
38
40
  return null;
39
41
  }
40
42
  let selected = _datastore.commands[command_name];
43
+
41
44
  // Set arguments here
42
45
  for (let i = 0; i < selected.args.length; i++) {
43
46
  let assign_value = (desired_command_args.length > i)? desired_command_args[i] : null;
@@ -147,6 +150,7 @@ Vue.component("command-input", {
147
150
  * command reaches the ground system.
148
151
  */
149
152
  sendCommand() {
153
+
150
154
  // Validate the command before sending anything
151
155
  if (!this.validate()) {
152
156
  return;
@@ -158,8 +162,9 @@ Vue.component("command-input", {
158
162
  let _self = this;
159
163
  _self.active = true;
160
164
  let command = this.selected;
165
+ let squashed_args = command.args.map(serialize_arg);
161
166
  this.loader.load("/commands/" + command.full_name, "PUT",
162
- {"key":0xfeedcafe, "arguments": command.args.map(serialize_arg)})
167
+ {"key":0xfeedcafe, "arguments": squashed_args})
163
168
  .then(function() {
164
169
  _self.active = false;
165
170
  // Clear errors, as there is not a problem further
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * Contains the templates used to render the command string input box.
5
5
  */
6
- export let COMMAND_FORMAT_SPEC = "FULL_COMMAND_NAME[[[, ARG1], ARG2], ...]";
6
+ export let COMMAND_FORMAT_SPEC = "FULL_COMMAND_NAME[[[, ARG1], ARG2], ...] " +
7
+ "where ARGN is a decimal number, quoted string, or an enumerated constant";
7
8
 
8
9
  export let command_string_template = `
9
10
  <div class="fp-flex-repeater">