fprime-gds 3.6.1__tar.gz → 4.0.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 (340) hide show
  1. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/actions/spelling/expect.txt +56 -1
  2. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/actions/spelling/patterns.txt +3 -0
  3. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/workflows/codeql-security-scan.yml +4 -0
  4. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/workflows/fprime-gds-tests.yml +5 -1
  5. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/workflows/gds-cli-tests.yml +5 -1
  6. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/workflows/spelling.yml +4 -0
  7. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/PKG-INFO +23 -21
  8. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/README.md +14 -17
  9. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/pyproject.toml +9 -3
  10. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/communication/adapters/ip.py +14 -9
  11. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/communication/adapters/uart.py +34 -25
  12. fprime_gds-4.0.0/src/fprime_gds/common/communication/ccsds/apid.py +19 -0
  13. fprime_gds-4.0.0/src/fprime_gds/common/communication/ccsds/chain.py +106 -0
  14. fprime_gds-4.0.0/src/fprime_gds/common/communication/ccsds/space_data_link.py +196 -0
  15. fprime_gds-4.0.0/src/fprime_gds/common/communication/ccsds/space_packet.py +129 -0
  16. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/communication/framing.py +27 -32
  17. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/decoders/ch_decoder.py +1 -1
  18. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/decoders/event_decoder.py +9 -2
  19. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/decoders/pkt_decoder.py +1 -1
  20. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/distributor/distributor.py +6 -3
  21. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/encoders/ch_encoder.py +2 -2
  22. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/encoders/cmd_encoder.py +2 -2
  23. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/encoders/event_encoder.py +2 -2
  24. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/encoders/pkt_encoder.py +2 -2
  25. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/encoders/seq_writer.py +2 -2
  26. fprime_gds-4.0.0/src/fprime_gds/common/fpy/README.md +56 -0
  27. fprime_gds-4.0.0/src/fprime_gds/common/fpy/SPEC.md +69 -0
  28. fprime_gds-4.0.0/src/fprime_gds/common/fpy/bytecode/directives.py +490 -0
  29. fprime_gds-4.0.0/src/fprime_gds/common/fpy/codegen.py +1687 -0
  30. fprime_gds-4.0.0/src/fprime_gds/common/fpy/grammar.lark +88 -0
  31. fprime_gds-4.0.0/src/fprime_gds/common/fpy/main.py +40 -0
  32. fprime_gds-4.0.0/src/fprime_gds/common/fpy/parser.py +239 -0
  33. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/gds_cli/base_commands.py +1 -1
  34. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/handlers.py +39 -0
  35. fprime_gds-4.0.0/src/fprime_gds/common/loaders/fw_type_json_loader.py +54 -0
  36. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/loaders/json_loader.py +15 -0
  37. fprime_gds-4.0.0/src/fprime_gds/common/loaders/pkt_json_loader.py +125 -0
  38. fprime_gds-4.0.0/src/fprime_gds/common/loaders/prm_json_loader.py +85 -0
  39. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/logger/__init__.py +2 -2
  40. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/pipeline/dictionaries.py +60 -41
  41. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/pipeline/encoding.py +19 -0
  42. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/pipeline/histories.py +4 -0
  43. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/pipeline/standard.py +16 -2
  44. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/templates/cmd_template.py +8 -0
  45. fprime_gds-4.0.0/src/fprime_gds/common/templates/prm_template.py +81 -0
  46. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/testing_fw/api.py +148 -1
  47. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/testing_fw/pytest_integration.py +37 -3
  48. fprime_gds-4.0.0/src/fprime_gds/common/tools/README.md +34 -0
  49. fprime_gds-4.0.0/src/fprime_gds/common/tools/params.py +246 -0
  50. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/utils/config_manager.py +6 -6
  51. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/utils/data_desc_type.py +6 -1
  52. fprime_gds-4.0.0/src/fprime_gds/executables/__init__.py +0 -0
  53. fprime_gds-4.0.0/src/fprime_gds/executables/apps.py +328 -0
  54. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/executables/cli.py +468 -127
  55. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/executables/comm.py +5 -2
  56. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/executables/data_product_writer.py +164 -165
  57. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/executables/fprime_cli.py +3 -3
  58. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/executables/run_deployment.py +13 -5
  59. fprime_gds-4.0.0/src/fprime_gds/flask/__init__.py +0 -0
  60. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/app.py +3 -0
  61. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/resource.py +5 -2
  62. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/chart-display/addon.js +8 -3
  63. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/datastore.js +1 -0
  64. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/channel.js +1 -1
  65. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/event.js +1 -1
  66. fprime_gds-4.0.0/src/fprime_gds/plugin/__init__.py +0 -0
  67. fprime_gds-4.0.0/src/fprime_gds/plugin/definitions.py +149 -0
  68. fprime_gds-4.0.0/src/fprime_gds/plugin/system.py +339 -0
  69. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds.egg-info/PKG-INFO +23 -21
  70. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds.egg-info/SOURCES.txt +27 -4
  71. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds.egg-info/entry_points.txt +2 -0
  72. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds.egg-info/requires.txt +4 -0
  73. fprime_gds-4.0.0/test/fprime_gds/common/communication/ccsds/test_space_data_link.py +90 -0
  74. fprime_gds-4.0.0/test/fprime_gds/common/communication/ccsds/test_space_packet.py +109 -0
  75. fprime_gds-4.0.0/test/fprime_gds/common/fpy/disabled_test_compiler.py +765 -0
  76. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/loaders/resources/RefTopologyDictionary.json +7014 -5030
  77. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/loaders/test_json_loader.py +63 -0
  78. fprime_gds-4.0.0/test/fprime_gds/common/tools/expected/simple_paramdb.dat +0 -0
  79. fprime_gds-4.0.0/test/fprime_gds/common/tools/input/simple_bad_paramdb.json +5 -0
  80. fprime_gds-4.0.0/test/fprime_gds/common/tools/input/simple_paramdb.json +5 -0
  81. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/tools/resources/simple_dictionary.json +12 -0
  82. fprime_gds-4.0.0/test/fprime_gds/common/tools/test_paramdb_gen.py +39 -0
  83. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/dictionary.json +240 -28
  84. fprime_gds-4.0.0/test/fprime_gds/test_plugins.py +503 -0
  85. fprime_gds-3.6.1/src/fprime_gds/common/loaders/ch_py_loader.py +0 -79
  86. fprime_gds-3.6.1/src/fprime_gds/common/loaders/cmd_py_loader.py +0 -66
  87. fprime_gds-3.6.1/src/fprime_gds/common/loaders/event_py_loader.py +0 -75
  88. fprime_gds-3.6.1/src/fprime_gds/common/loaders/python_loader.py +0 -132
  89. fprime_gds-3.6.1/src/fprime_gds/executables/apps.py +0 -150
  90. fprime_gds-3.6.1/src/fprime_gds/plugin/definitions.py +0 -71
  91. fprime_gds-3.6.1/src/fprime_gds/plugin/system.py +0 -225
  92. fprime_gds-3.6.1/test/fprime_gds/test_plugins.py +0 -327
  93. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  94. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/actions/codeql/security-pack.yml +0 -0
  95. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/actions/spelling/excludes.txt +0 -0
  96. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/pull_request_template.md +0 -0
  97. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/resources/RefTopologyAppDictionary.xml +0 -0
  98. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.github/workflows/publish.yml +0 -0
  99. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/.gitignore +0 -0
  100. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/Doxyfile +0 -0
  101. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/LICENSE.txt +0 -0
  102. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/NOTICE.txt +0 -0
  103. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/configs/__init__.py +0 -0
  104. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/docs/README.md +0 -0
  105. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/docs/_static/css/rtd_width.css +0 -0
  106. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/docs/conf.py +0 -0
  107. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/docs/gendoc.bash +0 -0
  108. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/docs/index.rst +0 -0
  109. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/examples/simple_sequence.bin +0 -0
  110. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/examples/simple_sequence.seq +0 -0
  111. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/setup.cfg +0 -0
  112. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/setup.py +0 -0
  113. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fastentrypoints.py +0 -0
  114. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/__init__.py +0 -0
  115. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/__init__.py +0 -0
  116. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/communication/__init__.py +0 -0
  117. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/communication/adapters/__init__.py +0 -0
  118. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/communication/adapters/base.py +0 -0
  119. {fprime_gds-3.6.1/src/fprime_gds/common/controllers → fprime_gds-4.0.0/src/fprime_gds/common/communication/ccsds}/__init__.py +0 -0
  120. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/communication/checksum.py +0 -0
  121. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/communication/ground.py +0 -0
  122. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/communication/updown.py +0 -0
  123. {fprime_gds-3.6.1/src/fprime_gds/common/data_types → fprime_gds-4.0.0/src/fprime_gds/common/controllers}/__init__.py +0 -0
  124. {fprime_gds-3.6.1/src/fprime_gds/common/decoders → fprime_gds-4.0.0/src/fprime_gds/common/data_types}/__init__.py +0 -0
  125. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/data_types/ch_data.py +0 -0
  126. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/data_types/cmd_data.py +0 -0
  127. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/data_types/event_data.py +0 -0
  128. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/data_types/exceptions.py +0 -0
  129. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/data_types/file_data.py +0 -0
  130. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/data_types/pkt_data.py +0 -0
  131. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/data_types/sys_data.py +0 -0
  132. {fprime_gds-3.6.1/src/fprime_gds/common/distributor → fprime_gds-4.0.0/src/fprime_gds/common/decoders}/__init__.py +0 -0
  133. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/decoders/decoder.py +0 -0
  134. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/decoders/file_decoder.py +0 -0
  135. {fprime_gds-3.6.1/src/fprime_gds/common/encoders → fprime_gds-4.0.0/src/fprime_gds/common/distributor}/__init__.py +0 -0
  136. {fprime_gds-3.6.1/src/fprime_gds/common/files → fprime_gds-4.0.0/src/fprime_gds/common/encoders}/__init__.py +0 -0
  137. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/encoders/encoder.py +0 -0
  138. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/encoders/file_encoder.py +0 -0
  139. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/files/File Decoder Documentation.txt +0 -0
  140. {fprime_gds-3.6.1/src/fprime_gds/common/gds_cli → fprime_gds-4.0.0/src/fprime_gds/common/files}/__init__.py +0 -0
  141. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/files/downlinker.py +0 -0
  142. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/files/helpers.py +0 -0
  143. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/files/uplinker.py +0 -0
  144. {fprime_gds-3.6.1/src/fprime_gds/common/history → fprime_gds-4.0.0/src/fprime_gds/common/fpy}/__init__.py +0 -0
  145. {fprime_gds-3.6.1/src/fprime_gds/common/loaders → fprime_gds-4.0.0/src/fprime_gds/common/fpy/bytecode}/__init__.py +0 -0
  146. {fprime_gds-3.6.1/src/fprime_gds/common/models → fprime_gds-4.0.0/src/fprime_gds/common/gds_cli}/__init__.py +0 -0
  147. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/gds_cli/channels.py +0 -0
  148. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/gds_cli/command_send.py +0 -0
  149. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/gds_cli/events.py +0 -0
  150. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/gds_cli/filtering_utils.py +0 -0
  151. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/gds_cli/test_api_utils.py +0 -0
  152. {fprime_gds-3.6.1/src/fprime_gds/common/models/common → fprime_gds-4.0.0/src/fprime_gds/common/history}/__init__.py +0 -0
  153. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/history/chrono.py +0 -0
  154. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/history/history.py +0 -0
  155. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/history/ram.py +0 -0
  156. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/history/test.py +0 -0
  157. {fprime_gds-3.6.1/src/fprime_gds/common/parsers → fprime_gds-4.0.0/src/fprime_gds/common/loaders}/__init__.py +0 -0
  158. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/loaders/ch_json_loader.py +0 -0
  159. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/loaders/ch_xml_loader.py +0 -0
  160. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/loaders/cmd_json_loader.py +0 -0
  161. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/loaders/cmd_xml_loader.py +0 -0
  162. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/loaders/dict_loader.py +0 -0
  163. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/loaders/event_json_loader.py +0 -0
  164. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/loaders/event_xml_loader.py +0 -0
  165. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/loaders/pkt_xml_loader.py +0 -0
  166. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/loaders/xml_loader.py +0 -0
  167. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/logger/data_logger.py +0 -0
  168. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/logger/test_logger.py +0 -0
  169. {fprime_gds-3.6.1/src/fprime_gds/common/pipeline → fprime_gds-4.0.0/src/fprime_gds/common/models}/__init__.py +0 -0
  170. {fprime_gds-3.6.1/src/fprime_gds/common/templates → fprime_gds-4.0.0/src/fprime_gds/common/models/common}/__init__.py +0 -0
  171. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/models/common/channel_telemetry.py +0 -0
  172. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/models/common/command.py +0 -0
  173. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/models/common/event.py +0 -0
  174. {fprime_gds-3.6.1/src/fprime_gds/common/testing_fw → fprime_gds-4.0.0/src/fprime_gds/common/parsers}/__init__.py +0 -0
  175. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/parsers/seq_file_parser.py +0 -0
  176. {fprime_gds-3.6.1/src/fprime_gds/common/tools → fprime_gds-4.0.0/src/fprime_gds/common/pipeline}/__init__.py +0 -0
  177. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/pipeline/files.py +0 -0
  178. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/pipeline/router.py +0 -0
  179. {fprime_gds-3.6.1/src/fprime_gds/common/utils → fprime_gds-4.0.0/src/fprime_gds/common/templates}/__init__.py +0 -0
  180. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/templates/ch_template.py +0 -0
  181. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/templates/data_template.py +0 -0
  182. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/templates/event_template.py +0 -0
  183. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/templates/pkt_template.py +0 -0
  184. {fprime_gds-3.6.1/src/fprime_gds/executables → fprime_gds-4.0.0/src/fprime_gds/common/testing_fw}/__init__.py +0 -0
  185. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/testing_fw/predicates.py +0 -0
  186. {fprime_gds-3.6.1/src/fprime_gds/flask → fprime_gds-4.0.0/src/fprime_gds/common/tools}/__init__.py +0 -0
  187. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/tools/seqgen.py +0 -0
  188. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/transport.py +0 -0
  189. {fprime_gds-3.6.1/src/fprime_gds/plugin → fprime_gds-4.0.0/src/fprime_gds/common/utils}/__init__.py +0 -0
  190. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/utils/event_severity.py +0 -0
  191. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/utils/string_util.py +0 -0
  192. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/common/zmq_transport.py +0 -0
  193. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/executables/tcpserver.py +0 -0
  194. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/executables/utils.py +0 -0
  195. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/channels.py +0 -0
  196. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/commands.py +0 -0
  197. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/components.py +0 -0
  198. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/default_settings.py +0 -0
  199. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/errors.py +0 -0
  200. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/events.py +0 -0
  201. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/json.py +0 -0
  202. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/logs.py +0 -0
  203. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/requirements.txt +0 -0
  204. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/sequence.py +0 -0
  205. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/.idea/.gitignore +0 -0
  206. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/.idea/misc.xml +0 -0
  207. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/.idea/modules.xml +0 -0
  208. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/.idea/static.iml +0 -0
  209. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/.idea/vcs.xml +0 -0
  210. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/advanced-settings/addon-templates.js +0 -0
  211. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/advanced-settings/addon.js +0 -0
  212. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/channel-render/addon.js +0 -0
  213. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/channel-render/channel-render-template.js +0 -0
  214. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/channel-render/channel-render.js +0 -0
  215. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/chart-display/addon-templates.js +0 -0
  216. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/chart-display/config.js +0 -0
  217. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-streaming.js +0 -0
  218. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-zoom.js +0 -0
  219. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/flat.js +0 -0
  220. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/chart-display/sibling.js +0 -0
  221. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/chart-display/vendor/chart.js +0 -0
  222. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/chart-display/vendor/chartjs-adapter-luxon.min.js +0 -0
  223. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/chart-display/vendor/hammer.min.js +0 -0
  224. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/commanding/addon.js +0 -0
  225. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/commanding/argument-templates.js +0 -0
  226. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/commanding/arguments.js +0 -0
  227. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/commanding/command-history-template.js +0 -0
  228. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/commanding/command-history.js +0 -0
  229. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/commanding/command-input-template.js +0 -0
  230. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/commanding/command-input.js +0 -0
  231. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/commanding/command-string-template.js +0 -0
  232. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/commanding/command-string.js +0 -0
  233. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/dictionary/addon-templates.js +0 -0
  234. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/dictionary/addon.js +0 -0
  235. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/enabled.js +0 -0
  236. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/image-display/addon.js +0 -0
  237. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/image-display/dashboard.xml +0 -0
  238. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/sequencer/README.md +0 -0
  239. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/sequencer/addon-templates.js +0 -0
  240. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/sequencer/addon.js +0 -0
  241. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/sequencer/autocomplete.js +0 -0
  242. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/sequencer/lint.js +0 -0
  243. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/sequencer/third/code-mirror.es.js +0 -0
  244. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/.gitignore +0 -0
  245. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/index.js +0 -0
  246. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/language.grammer +0 -0
  247. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/package.json +0 -0
  248. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/rollup.config.js +0 -0
  249. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/css/fprime.css +0 -0
  250. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/css/fpstyle.css +0 -0
  251. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/favicon.ico +0 -0
  252. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/img/error.svg +0 -0
  253. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/img/logo.svg +0 -0
  254. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/img/success.svg +0 -0
  255. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/index.html +0 -0
  256. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/config.js +0 -0
  257. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/gds.js +0 -0
  258. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/json.js +0 -0
  259. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/loader.js +0 -0
  260. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/performance.js +0 -0
  261. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/settings.js +0 -0
  262. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/uploader.js +0 -0
  263. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/validate.js +0 -0
  264. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/dashboard-box.js +0 -0
  265. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/dashboard-row.js +0 -0
  266. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/dashboard.js +0 -0
  267. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/downlink.js +0 -0
  268. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/fp-row.js +0 -0
  269. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/fptable.js +0 -0
  270. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/log.js +0 -0
  271. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/tabetc.js +0 -0
  272. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/uplink.js +0 -0
  273. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/js/vue-support/utils.js +0 -0
  274. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/css/all.min.css +0 -0
  275. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/css/bootstrap.min.css +0 -0
  276. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/css/vue-select.css +0 -0
  277. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/js/luxon.min.js +0 -0
  278. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/js/sorttable.js +0 -0
  279. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/js/v-runtime-template.js +0 -0
  280. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/js/vue-select.js +0 -0
  281. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/js/vue.min.js +0 -0
  282. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.eot +0 -0
  283. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.svg +0 -0
  284. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.ttf +0 -0
  285. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff +0 -0
  286. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff2 +0 -0
  287. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.eot +0 -0
  288. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.svg +0 -0
  289. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.ttf +0 -0
  290. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff +0 -0
  291. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff2 +0 -0
  292. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.eot +0 -0
  293. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.svg +0 -0
  294. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.ttf +0 -0
  295. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff +0 -0
  296. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff2 +0 -0
  297. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/stats.py +0 -0
  298. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/flask/updown.py +0 -0
  299. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds/version.py +0 -0
  300. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds.egg-info/dependency_links.txt +0 -0
  301. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/src/fprime_gds.egg-info/top_level.txt +0 -0
  302. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/data_types/test_cmd_data.py +0 -0
  303. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/distributor/test_distributor.py +0 -0
  304. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/encoders/test_ch_encoder.py +0 -0
  305. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/encoders/test_event_encoder.py +0 -0
  306. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/encoders/test_pkt_encoder.py +0 -0
  307. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/gds_cli/filtering_utils_test.py +0 -0
  308. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/gds_cli/utils_test.py +0 -0
  309. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/history/chronohistory_unit_test.py +0 -0
  310. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/history/testhistory_unit_test.py +0 -0
  311. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/testing_fw/UnitTestDictionary.xml +0 -0
  312. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/testing_fw/api_unit_test.py +0 -0
  313. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/testing_fw/logs/.gitignore +0 -0
  314. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/testing_fw/predicate_unit_test.py +0 -0
  315. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/tools/expected/simple_expected.bin +0 -0
  316. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/tools/input/simple_bad_sequence.seq +0 -0
  317. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/tools/input/simple_sequence.seq +0 -0
  318. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/tools/resources/simple_dictionary.xml +0 -0
  319. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/tools/seqgen_unit_test.py +0 -0
  320. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/common/utils/test_string_util.py +0 -0
  321. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/.gitignore +0 -0
  322. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeBool.bin +0 -0
  323. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeComplex.bin +0 -0
  324. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeDataArray.bin +0 -0
  325. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeEnum.bin +0 -0
  326. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeF32.bin +0 -0
  327. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeF64.bin +0 -0
  328. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeFppArray.bin +0 -0
  329. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeI16.bin +0 -0
  330. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeI32.bin +0 -0
  331. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeI64.bin +0 -0
  332. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeI8.bin +0 -0
  333. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeU32.bin +0 -0
  334. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeU32Array.bin +0 -0
  335. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/dp_writer_data/makeU8Array.bin +0 -0
  336. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/test_data_product_writer.py +0 -0
  337. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/test_run_deployment.py +0 -0
  338. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/executables/test_utils.py +0 -0
  339. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/fprime_gds/sample/dictionary.xml +0 -0
  340. {fprime_gds-3.6.1 → fprime_gds-4.0.0}/test/gui/GUI_Test_Procedure.md +0 -0
@@ -23,6 +23,7 @@ autosectionlabel
23
23
  backface
24
24
  batchmode
25
25
  baudrate
26
+ BBBBBHI
26
27
  bcolors
27
28
  BGR
28
29
  Biberstein
@@ -31,25 +32,32 @@ bitmaps
31
32
  breadcrumb
32
33
  Btns
33
34
  BUGLIST
35
+ calcsize
34
36
  calibri
35
37
  callergraph
36
38
  callgraph
37
39
  cata
38
40
  CCB
39
41
  CCFF
42
+ ccsds
43
+ Cdh
40
44
  Cdioux
41
45
  cdn
42
46
  cdxoefg
43
47
  CFDG
44
48
  CFDP
45
49
  CFPD
50
+ chans
46
51
  chartjs
47
52
  CHNG
48
53
  classdocs
49
54
  clearfix
50
55
  cls
51
56
  cmdhist
57
+ cmps
58
+ cmt
52
59
  CODEFILE
60
+ codegen
53
61
  COLORSTYLE
54
62
  colorwheel
55
63
  columnify
@@ -59,10 +67,12 @@ configs
59
67
  Consolas
60
68
  creatingdocsetswithdoxygen
61
69
  csum
70
+ ctx
62
71
  curateable
63
72
  curated
64
73
  curating
65
74
  customise
75
+ cuz
66
76
  daringfireball
67
77
  dataobjects
68
78
  dblclick
@@ -74,7 +84,7 @@ deframed
74
84
  deframer
75
85
  deframing
76
86
  DEPRECATEDLIST
77
- DESER
87
+ deser
78
88
  Deserial
79
89
  deserializes
80
90
  dests
@@ -111,6 +121,7 @@ ECONNRESET
111
121
  ect
112
122
  EEXIST
113
123
  Efg
124
+ elifs
114
125
  ENDC
115
126
  endcond
116
127
  errorhandler
@@ -125,20 +136,33 @@ fastentrypoints
125
136
  fbuild
126
137
  fd
127
138
  FEEDNAME
139
+ FEQ
128
140
  FFCC
129
141
  FFFF
142
+ FGE
143
+ FGT
130
144
  fileurl
131
145
  Firefox
146
+ FLE
132
147
  focusring
148
+ FNE
133
149
  FONTNAME
134
150
  FONTPATH
135
151
  FONTSIZE
152
+ FPEXT
136
153
  fpp
137
154
  fprime
138
155
  fptable
156
+ FPTOSI
157
+ FPTOUI
158
+ FPTRUNC
159
+ fpy
160
+ fpybc
161
+ fqn
139
162
  fsw
140
163
  gdiplus
141
164
  getbootstrap
165
+ getoption
142
166
  github
143
167
  grayscales
144
168
  gse
@@ -160,29 +184,38 @@ hpaulson
160
184
  htags
161
185
  hyperlinks
162
186
  idct
187
+ idk
163
188
  idl
189
+ idx
164
190
  ieeetr
191
+ IEQ
165
192
  ified
166
193
  ifun
167
194
  IH
195
+ INE
168
196
  inprogress
169
197
  intersphinx
170
198
  intlimits
171
199
  ip
172
200
  ipc
173
201
  ipp
202
+ issuecomment
174
203
  itcl
175
204
  ixx
176
205
  janamian
206
+ jawest
177
207
  Jdk
178
208
  jpl
179
209
  JSO
180
210
  jsonable
181
211
  jsonified
182
212
  jsonify
213
+ junitxml
183
214
  keepalive
184
215
  keyify
185
216
  kinda
217
+ lalr
218
+ leisher
186
219
  lestarch
187
220
  levelname
188
221
  Lezer
@@ -195,6 +228,7 @@ logdir
195
228
  logpath
196
229
  logselect
197
230
  luxon
231
+ LVAR
198
232
  makeindex
199
233
  MAKEVAR
200
234
  marijnh
@@ -224,6 +258,7 @@ NOSONAR
224
258
  nosort
225
259
  nosubgrouping
226
260
  Noto
261
+ nreg
227
262
  NSPACES
228
263
  nuntil
229
264
  odl
@@ -235,9 +270,11 @@ oring
235
270
  osexc
236
271
  OSX
237
272
  outputfile
273
+ Packetize
238
274
  packetized
239
275
  Paetz
240
276
  PARAMDOC
277
+ paramdb
241
278
  passthrough
242
279
  pb
243
280
  pdflatex
@@ -246,8 +283,10 @@ pkts
246
283
  plainnat
247
284
  plantuml
248
285
  PNGs
286
+ postlex
249
287
  preds
250
288
  prm
289
+ prmdb
251
290
  procs
252
291
  PROGRAMLISTING
253
292
  projectbrief
@@ -285,6 +324,7 @@ rollup
285
324
  rpaetz
286
325
  rst
287
326
  saba
327
+ scid
288
328
  sdd
289
329
  searchdata
290
330
  Segoe
@@ -292,19 +332,27 @@ seqfile
292
332
  seqgen
293
333
  serializables
294
334
  serialutil
335
+ SGE
336
+ SGT
295
337
  showinitializer
296
338
  sideeffect
297
339
  SIGALRM
340
+ SITOFP
298
341
  sizeb
299
342
  SMAP
300
343
  Smath
344
+ smth
301
345
  SNDHWM
302
346
  sorttable
347
+ spacepacket
303
348
  squashify
349
+ sreg
304
350
  sss
305
351
  Ssymbols
306
352
  stackoverflow
307
353
  startuml
354
+ subclasscheck
355
+ subcmd
308
356
  subgrouping
309
357
  subhist
310
358
  subhistory
@@ -322,6 +370,7 @@ Theif
322
370
  thtcp
323
371
  thudp
324
372
  timebase
373
+ timectx
325
374
  timescales
326
375
  timespan
327
376
  timestep
@@ -344,7 +393,9 @@ typedef
344
393
  uart
345
394
  ucf
346
395
  udp
396
+ UGE
347
397
  UIs
398
+ UITOFP
348
399
  uk
349
400
  ul
350
401
  UNINIT
@@ -356,6 +407,8 @@ usec
356
407
  useconds
357
408
  usepackage
358
409
  usr
410
+ vcid
411
+ VCP
359
412
  vh
360
413
  vhd
361
414
  vhdl
@@ -375,6 +428,8 @@ xapian
375
428
  xhttp
376
429
  xl
377
430
  xmit
431
+ xmlpath
378
432
  xy
379
433
  zeromq
380
434
  zmq
435
+ zimri
@@ -44,3 +44,6 @@ value="(?:[0-9a-f]{1,2} )*"
44
44
 
45
45
  # Ignore any text between inline back-ticks
46
46
  `(.*?)`
47
+
48
+ # Python struct packing patterns
49
+ ["\']([<>])[xcbB?hHiIlLqQnNefdspP]+["\']
@@ -8,6 +8,10 @@ on:
8
8
  pull_request:
9
9
  # The branches below must be a subset of the branches above
10
10
  branches: [ devel ]
11
+ # Cancel in-progress runs if a newer run is started on a given PR
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
14
+ cancel-in-progress: ${{ !contains(github.ref, 'devel') && !contains(github.ref, 'release/')}}
11
15
 
12
16
  jobs:
13
17
  analyze:
@@ -6,6 +6,10 @@ on:
6
6
  pull_request:
7
7
  # The branches below must be a subset of the branches above
8
8
  branches: [ devel ]
9
+ # Cancel in-progress runs if a newer run is started on a given PR
10
+ concurrency:
11
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
12
+ cancel-in-progress: ${{ !contains(github.ref, 'devel') && !contains(github.ref, 'release/')}}
9
13
 
10
14
  jobs:
11
15
  Unit-tests:
@@ -13,7 +17,7 @@ jobs:
13
17
  runs-on: ubuntu-latest
14
18
  strategy:
15
19
  matrix:
16
- python-version: ["3.8", "3.9", "3.10", "3.11"]
20
+ python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
17
21
 
18
22
  steps:
19
23
  - uses: actions/checkout@v4
@@ -6,6 +6,10 @@ on:
6
6
  pull_request:
7
7
  # The branches below must be a subset of the branches above
8
8
  branches: [ devel ]
9
+ # Cancel in-progress runs if a newer run is started on a given PR
10
+ concurrency:
11
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
12
+ cancel-in-progress: ${{ !contains(github.ref, 'devel') && !contains(github.ref, 'release/')}}
9
13
 
10
14
  env:
11
15
  DICTIONARY: ./.github/resources/RefTopologyAppDictionary.xml
@@ -16,7 +20,7 @@ jobs:
16
20
  runs-on: ubuntu-latest
17
21
  strategy:
18
22
  matrix:
19
- python-version: ["3.8", "3.9", "3.10", "3.11"]
23
+ python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
20
24
 
21
25
  steps:
22
26
 
@@ -11,6 +11,10 @@ on:
11
11
  tags-ignore:
12
12
  - "**"
13
13
  types: ['opened', 'reopened', 'synchronize']
14
+ # Cancel in-progress runs if a newer run is started on a given PR
15
+ concurrency:
16
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
17
+ cancel-in-progress: ${{ !contains(github.ref, 'devel') && !contains(github.ref, 'release/')}}
14
18
 
15
19
  jobs:
16
20
  spelling:
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: fprime-gds
3
- Version: 3.6.1
3
+ Version: 4.0.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:
@@ -216,15 +216,15 @@ Classifier: Operating System :: Unix
216
216
  Classifier: Operating System :: POSIX
217
217
  Classifier: Programming Language :: Python
218
218
  Classifier: Programming Language :: Python :: 3
219
- Classifier: Programming Language :: Python :: 3.8
220
219
  Classifier: Programming Language :: Python :: 3.9
221
220
  Classifier: Programming Language :: Python :: 3.10
222
221
  Classifier: Programming Language :: Python :: 3.11
223
222
  Classifier: Programming Language :: Python :: 3.12
223
+ Classifier: Programming Language :: Python :: 3.13
224
224
  Classifier: Programming Language :: Python :: Implementation :: CPython
225
225
  Classifier: Programming Language :: Python :: Implementation :: PyPy
226
226
  Classifier: License :: OSI Approved :: Apache Software License
227
- Requires-Python: >=3.8
227
+ Requires-Python: >=3.9
228
228
  Description-Content-Type: text/markdown
229
229
  License-File: LICENSE.txt
230
230
  License-File: NOTICE.txt
@@ -240,10 +240,15 @@ Requires-Dist: Jinja2>=2.11.3
240
240
  Requires-Dist: openpyxl>=3.0.10
241
241
  Requires-Dist: pyserial>=3.5
242
242
  Requires-Dist: pydantic>=2.6
243
+ Requires-Dist: lark>=1.2.2
244
+ Requires-Dist: PyYAML>=6.0.2
245
+ Requires-Dist: spacepackets>=0.30.0
246
+ Requires-Dist: crc>=7.0.0
247
+ Dynamic: license-file
243
248
 
244
249
  # F´ GDS
245
250
 
246
- **Note:** This README describes GDS internals. Refer to the [user's guide](https://nasa.github.io/fprime/UsersGuide/gds/gds-introduction.html) for instructions on how to use the GDS.
251
+ **Note:** This README describes GDS internals. Refer to the [ Documentation](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/gds-introduction/) for instructions on how to use the GDS.
247
252
 
248
253
  Issues should be reported here: [File an issue](https://github.com/nasa/fprime/issues/new/choose)
249
254
 
@@ -268,7 +273,8 @@ output data type included. Command data objects are created in the command panel
268
273
  the command encoder registered to that panel. Encoders take a data object and turn it into binary
269
274
  data that can be sent to the F´ deployment. The binary data is then passed to the TCP client
270
275
  which is registered to the encoder. Finally, the TCP client send the data back to the TCP server and
271
- the F´ deployment. ![The layout of the GDS](https://github.com/nasa/fprime/blob/devel/docs/UsersGuide/media/gds_layout.jpg)
276
+ the F´ deployment.
277
+ ![The layout of the GDS](https://raw.githubusercontent.com/nasa/fprime/refs/heads/devel/docs/img/gds_layout.jpg)
272
278
 
273
279
  All of these objects are created and registered to other objects when the GDS
274
280
  is initialized. Thus, all of the structure of the GDS is created in one place,
@@ -285,15 +291,11 @@ commands and registering consumers to the GDS decoders. The Standard Pipeline ca
285
291
  [here](src/fprime_gds/common/pipeline/standard.py).
286
292
 
287
293
  ### GDS Integration Test API
288
- The Integration Test API is a tool that provides the ability to write integration-level tests for an
289
- F´ deployment using the GDS. The tool provides history searches/asserts, command sending, a
290
- detailed test log, sub-histories and convenient access to GDS data objects. The test API comes with
291
- separate [documentation](https://github.com/nasa/fprime/blob/master/docs/UsersGuide/dev/testAPI/markdown/contents.md) and its own [user
292
- guide](https://github.com/nasa/fprime/blob/master/docs/UsersGuide/dev/testAPI/user_guide.md) and is built on top of the Standard Pipeline.
294
+ The Integration Test API is a tool that provides the ability to write integration-level tests for an F´ deployment using the GDS. The tool provides history searches/asserts, command sending, a detailed test log, sub-histories and convenient access to GDS data objects. The test API comes with its own [user guide](https://fprime.jpl.nasa.gov/latest/docs/user-manual/gds/gds-test-api-guide/) and is built on top of the Standard Pipeline.
293
295
 
294
296
  ## GDS GUI Usage
295
297
 
296
- A guide for how to use the GDS is available in the [fprime documentation](https://nasa.github.io/fprime/UsersGuide/gds/gds-introduction.html)
298
+ A guide for how to use the GDS is available in the [F Prime documentation](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/gds-introduction)
297
299
 
298
300
  ## Classes
299
301
  The GDS back end is composed of several different data processing units. For
@@ -316,8 +318,15 @@ that descriptor. Descriptor types include events, channels, packets, etc (a full
316
318
  enumeration can be found in (src/utils/data_desc_type.py). The binary data that
317
319
  the descriptor receives should be of the form:
318
320
 
319
- | Length (4 bytes) | Type Descriptor (4 bytes) | Message Data |
320
- | ---------------- | ------------------------- | ------------ |
321
+ ```mermaid
322
+ ---
323
+ title: "Binary format received by Distributors"
324
+ ---
325
+ packet-beta
326
+ 0-31: "Length [4 bytes]"
327
+ 32-63: "Type Descriptor [4 bytes]"
328
+ 64-95: "Message Data [variable length]"
329
+ ```
321
330
 
322
331
  The distributor should then pass only the message data along to the decoders.
323
332
 
@@ -433,10 +442,3 @@ pip install doxypypy
433
442
 
434
443
  Next, make `docs/py_filter` available in your system path however you see fit.
435
444
  Now you can run `doxygen Doxyfile` in the root directory to generate documentation in `docs/doxy/index.html`
436
-
437
- ## Notes
438
- - Currently, the models/common directory has command.py, event.py, and
439
- channel.py. These files must be present in order for the python dictionaries
440
- to be properly imported. However, they are empty and not used in the GDS.
441
- When we switch fully to XML dictionaries, these can go away.
442
-
@@ -1,6 +1,6 @@
1
1
  # F´ GDS
2
2
 
3
- **Note:** This README describes GDS internals. Refer to the [user's guide](https://nasa.github.io/fprime/UsersGuide/gds/gds-introduction.html) for instructions on how to use the GDS.
3
+ **Note:** This README describes GDS internals. Refer to the [ Documentation](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/gds-introduction/) for instructions on how to use the GDS.
4
4
 
5
5
  Issues should be reported here: [File an issue](https://github.com/nasa/fprime/issues/new/choose)
6
6
 
@@ -25,7 +25,8 @@ 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. ![The layout of the GDS](https://github.com/nasa/fprime/blob/devel/docs/UsersGuide/media/gds_layout.jpg)
28
+ the F´ deployment.
29
+ ![The layout of the GDS](https://raw.githubusercontent.com/nasa/fprime/refs/heads/devel/docs/img/gds_layout.jpg)
29
30
 
30
31
  All of these objects are created and registered to other objects when the GDS
31
32
  is initialized. Thus, all of the structure of the GDS is created in one place,
@@ -42,15 +43,11 @@ commands and registering consumers to the GDS decoders. The Standard Pipeline ca
42
43
  [here](src/fprime_gds/common/pipeline/standard.py).
43
44
 
44
45
  ### GDS Integration Test API
45
- The Integration Test API is a tool that provides the ability to write integration-level tests for an
46
- F´ deployment using the GDS. The tool provides history searches/asserts, command sending, a
47
- detailed test log, sub-histories and convenient access to GDS data objects. The test API comes with
48
- separate [documentation](https://github.com/nasa/fprime/blob/master/docs/UsersGuide/dev/testAPI/markdown/contents.md) and its own [user
49
- guide](https://github.com/nasa/fprime/blob/master/docs/UsersGuide/dev/testAPI/user_guide.md) and is built on top of the Standard Pipeline.
46
+ The Integration Test API is a tool that provides the ability to write integration-level tests for an F´ deployment using the GDS. The tool provides history searches/asserts, command sending, a detailed test log, sub-histories and convenient access to GDS data objects. The test API comes with its own [user guide](https://fprime.jpl.nasa.gov/latest/docs/user-manual/gds/gds-test-api-guide/) and is built on top of the Standard Pipeline.
50
47
 
51
48
  ## GDS GUI Usage
52
49
 
53
- A guide for how to use the GDS is available in the [fprime documentation](https://nasa.github.io/fprime/UsersGuide/gds/gds-introduction.html)
50
+ A guide for how to use the GDS is available in the [F Prime documentation](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/gds-introduction)
54
51
 
55
52
  ## Classes
56
53
  The GDS back end is composed of several different data processing units. For
@@ -73,8 +70,15 @@ that descriptor. Descriptor types include events, channels, packets, etc (a full
73
70
  enumeration can be found in (src/utils/data_desc_type.py). The binary data that
74
71
  the descriptor receives should be of the form:
75
72
 
76
- | Length (4 bytes) | Type Descriptor (4 bytes) | Message Data |
77
- | ---------------- | ------------------------- | ------------ |
73
+ ```mermaid
74
+ ---
75
+ title: "Binary format received by Distributors"
76
+ ---
77
+ packet-beta
78
+ 0-31: "Length [4 bytes]"
79
+ 32-63: "Type Descriptor [4 bytes]"
80
+ 64-95: "Message Data [variable length]"
81
+ ```
78
82
 
79
83
  The distributor should then pass only the message data along to the decoders.
80
84
 
@@ -190,10 +194,3 @@ pip install doxypypy
190
194
 
191
195
  Next, make `docs/py_filter` available in your system path however you see fit.
192
196
  Now you can run `doxygen Doxyfile` in the root directory to generate documentation in `docs/doxy/index.html`
193
-
194
- ## Notes
195
- - Currently, the models/common directory has command.py, event.py, and
196
- channel.py. These files must be present in order for the python dictionaries
197
- to be properly imported. However, they are empty and not used in the GDS.
198
- When we switch fully to XML dictionaries, these can go away.
199
-
@@ -7,7 +7,7 @@ name = "fprime-gds"
7
7
  dynamic = ["version"]
8
8
  description = "F Prime Flight Software Ground Data System layer"
9
9
  readme = "README.md"
10
- requires-python = ">=3.8"
10
+ requires-python = ">=3.9"
11
11
  license = {file = "LICENSE.txt"}
12
12
  keywords = ["fprime", "embedded", "nasa", "flight", "software"]
13
13
  authors = [
@@ -21,11 +21,11 @@ classifiers = [
21
21
  "Operating System :: POSIX",
22
22
  "Programming Language :: Python",
23
23
  "Programming Language :: Python :: 3",
24
- "Programming Language :: Python :: 3.8",
25
24
  "Programming Language :: Python :: 3.9",
26
25
  "Programming Language :: Python :: 3.10",
27
26
  "Programming Language :: Python :: 3.11",
28
27
  "Programming Language :: Python :: 3.12",
28
+ "Programming Language :: Python :: 3.13",
29
29
  "Programming Language :: Python :: Implementation :: CPython",
30
30
  "Programming Language :: Python :: Implementation :: PyPy",
31
31
  "License :: OSI Approved :: Apache Software License",
@@ -42,7 +42,11 @@ dependencies = [
42
42
  "Jinja2>=2.11.3",
43
43
  "openpyxl>=3.0.10",
44
44
  "pyserial>=3.5",
45
- "pydantic>=2.6"
45
+ "pydantic>=2.6",
46
+ "lark>=1.2.2",
47
+ "PyYAML>=6.0.2",
48
+ "spacepackets>=0.30.0",
49
+ "crc>=7.0.0"
46
50
  ]
47
51
 
48
52
  [project.urls]
@@ -61,6 +65,8 @@ fprime-cli = "fprime_gds.executables.fprime_cli:main"
61
65
  fprime-seqgen = "fprime_gds.common.tools.seqgen:main"
62
66
  fprime-dp-write = "fprime_gds.executables.data_product_writer:main"
63
67
  fprime-gds = "fprime_gds.executables.run_deployment:main"
68
+ fprime-prm-write = "fprime_gds.common.tools.params:main"
69
+ fprime-fpyc = "fprime_gds.common.fpy.main:main"
64
70
 
65
71
  # For Pytest fixtures
66
72
  [project.entry-points."pytest11"]
@@ -50,13 +50,11 @@ class IpAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
50
50
  both. This data is concatenated and returned up the stack for processing.
51
51
  """
52
52
 
53
- # Interval to send a KEEPALIVE packet. None will turn off KEEPALIVE.
54
- KEEPALIVE_INTERVAL = 0.500
55
53
  # Data to send out as part of the KEEPALIVE packet. Should not be null nor empty.
56
54
  KEEPALIVE_DATA = b"sitting well"
57
55
  MAXIMUM_DATA_SIZE = 4096
58
56
 
59
- def __init__(self, address, port, server=True):
57
+ def __init__(self, address, port, server=True, keepalive_interval=0.5):
60
58
  """
61
59
  Initialize this adapter by creating a handler for UDP and TCP. A thread for the KEEPALIVE application packets
62
60
  will be created, if the interval is not none. Handlers are servers unless server=False.
@@ -64,7 +62,8 @@ class IpAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
64
62
  self.address = address
65
63
  self.port = port
66
64
  self.stop = False
67
- self.keepalive = None
65
+ self.keepalive_thread = None
66
+ self.keepalive_interval = keepalive_interval
68
67
  self.tcp = TcpHandler(address, port, server=server)
69
68
  self.udp = UdpHandler(address, port, server=server)
70
69
  self.thtcp = None
@@ -91,11 +90,11 @@ class IpAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
91
90
  self.thudp.daemon = True
92
91
  self.thudp.start()
93
92
  # Start up a keep-alive ping if desired. This will hit the TCP uplink, and die if the connection is down
94
- if IpAdapter.KEEPALIVE_INTERVAL is not None:
95
- self.keepalive = threading.Thread(
96
- target=self.th_alive, name="KeepCommAliveThread", args=[float(self.KEEPALIVE_INTERVAL)]
93
+ if self.keepalive_interval > 0.0:
94
+ self.keepalive_thread = threading.Thread(
95
+ target=self.th_alive, name="KeepCommAliveThread", args=[self.keepalive_interval]
97
96
  )
98
- self.keepalive.start()
97
+ self.keepalive_thread.start()
99
98
  except (ValueError, TypeError) as exc:
100
99
  LOGGER.error(
101
100
  f"Failed to start keep-alive thread. {type(exc).__name__}: {str(exc)}"
@@ -186,6 +185,12 @@ class IpAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
186
185
  "default": True,
187
186
  "help": "Run the IP adapter as the client (connects to FSW running TcpServer)",
188
187
  },
188
+ ("--keepalive-interval",): {
189
+ "dest": "keepalive_interval",
190
+ "type": float,
191
+ "default": 0.5000,
192
+ "help": "Keep alive packet interval. 0.0 = off, default = 0.5",
193
+ },
189
194
  }
190
195
 
191
196
  @classmethod
@@ -195,7 +200,7 @@ class IpAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
195
200
  return cls
196
201
 
197
202
  @classmethod
198
- def check_arguments(cls, address, port, server=True):
203
+ def check_arguments(cls, address, port, server=True, keepalive_interval=0.5):
199
204
  """
200
205
  Code that should check arguments of this adapter. If there is a problem with this code, then a "ValueError"
201
206
  should be raised describing the problem with these arguments.