fprime-gds 3.6.2a1__tar.gz → 4.0.0a2__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 (322) hide show
  1. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/actions/spelling/expect.txt +22 -0
  2. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/workflows/fprime-gds-tests.yml +1 -1
  3. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/workflows/gds-cli-tests.yml +1 -1
  4. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/PKG-INFO +18 -19
  5. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/README.md +14 -17
  6. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/pyproject.toml +4 -1
  7. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/communication/adapters/uart.py +34 -25
  8. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/decoders/ch_decoder.py +1 -1
  9. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/decoders/event_decoder.py +2 -1
  10. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/decoders/pkt_decoder.py +1 -1
  11. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/distributor/distributor.py +2 -2
  12. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/encoders/ch_encoder.py +2 -2
  13. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/encoders/cmd_encoder.py +2 -2
  14. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/encoders/event_encoder.py +2 -2
  15. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/encoders/pkt_encoder.py +2 -2
  16. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/encoders/seq_writer.py +2 -2
  17. fprime_gds-4.0.0a2/src/fprime_gds/common/fpy/serialize_bytecode.py +229 -0
  18. fprime_gds-4.0.0a2/src/fprime_gds/common/fpy/types.py +203 -0
  19. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/gds_cli/base_commands.py +1 -1
  20. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/handlers.py +39 -0
  21. fprime_gds-4.0.0a2/src/fprime_gds/common/loaders/fw_type_json_loader.py +54 -0
  22. fprime_gds-4.0.0a2/src/fprime_gds/common/loaders/pkt_json_loader.py +121 -0
  23. fprime_gds-4.0.0a2/src/fprime_gds/common/loaders/prm_json_loader.py +85 -0
  24. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/pipeline/dictionaries.py +21 -4
  25. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/pipeline/encoding.py +19 -0
  26. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/pipeline/histories.py +4 -0
  27. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/pipeline/standard.py +16 -2
  28. fprime_gds-4.0.0a2/src/fprime_gds/common/templates/prm_template.py +81 -0
  29. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/testing_fw/api.py +42 -0
  30. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/testing_fw/pytest_integration.py +25 -2
  31. fprime_gds-4.0.0a2/src/fprime_gds/common/tools/README.md +34 -0
  32. fprime_gds-4.0.0a2/src/fprime_gds/common/tools/params.py +246 -0
  33. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/utils/config_manager.py +6 -6
  34. fprime_gds-4.0.0a2/src/fprime_gds/executables/apps.py +323 -0
  35. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/executables/cli.py +443 -125
  36. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/executables/comm.py +5 -2
  37. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/executables/fprime_cli.py +3 -3
  38. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/executables/run_deployment.py +12 -4
  39. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/channel.js +1 -1
  40. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/event.js +1 -1
  41. fprime_gds-4.0.0a2/src/fprime_gds/plugin/__init__.py +0 -0
  42. fprime_gds-4.0.0a2/src/fprime_gds/plugin/definitions.py +149 -0
  43. fprime_gds-4.0.0a2/src/fprime_gds/plugin/system.py +338 -0
  44. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds.egg-info/PKG-INFO +18 -19
  45. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds.egg-info/SOURCES.txt +14 -0
  46. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds.egg-info/entry_points.txt +2 -0
  47. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds.egg-info/requires.txt +1 -0
  48. fprime_gds-4.0.0a2/test/fprime_gds/common/fpy/integrated_tests.py +273 -0
  49. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/loaders/resources/RefTopologyDictionary.json +1008 -338
  50. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/loaders/test_json_loader.py +46 -0
  51. fprime_gds-4.0.0a2/test/fprime_gds/common/tools/expected/simple_paramdb.dat +0 -0
  52. fprime_gds-4.0.0a2/test/fprime_gds/common/tools/input/simple_bad_paramdb.json +5 -0
  53. fprime_gds-4.0.0a2/test/fprime_gds/common/tools/input/simple_paramdb.json +5 -0
  54. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/tools/resources/simple_dictionary.json +12 -0
  55. fprime_gds-4.0.0a2/test/fprime_gds/common/tools/test_paramdb_gen.py +39 -0
  56. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/test_plugins.py +167 -75
  57. fprime_gds-3.6.2a1/src/fprime_gds/executables/apps.py +0 -150
  58. fprime_gds-3.6.2a1/src/fprime_gds/plugin/definitions.py +0 -71
  59. fprime_gds-3.6.2a1/src/fprime_gds/plugin/system.py +0 -225
  60. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  61. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/actions/codeql/security-pack.yml +0 -0
  62. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/actions/spelling/excludes.txt +0 -0
  63. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/actions/spelling/patterns.txt +0 -0
  64. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/pull_request_template.md +0 -0
  65. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/resources/RefTopologyAppDictionary.xml +0 -0
  66. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/workflows/codeql-security-scan.yml +0 -0
  67. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/workflows/publish.yml +0 -0
  68. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.github/workflows/spelling.yml +0 -0
  69. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/.gitignore +0 -0
  70. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/Doxyfile +0 -0
  71. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/LICENSE.txt +0 -0
  72. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/NOTICE.txt +0 -0
  73. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/configs/__init__.py +0 -0
  74. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/docs/README.md +0 -0
  75. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/docs/_static/css/rtd_width.css +0 -0
  76. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/docs/conf.py +0 -0
  77. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/docs/gendoc.bash +0 -0
  78. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/docs/index.rst +0 -0
  79. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/examples/simple_sequence.bin +0 -0
  80. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/examples/simple_sequence.seq +0 -0
  81. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/setup.cfg +0 -0
  82. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/setup.py +0 -0
  83. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fastentrypoints.py +0 -0
  84. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/__init__.py +0 -0
  85. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/__init__.py +0 -0
  86. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/communication/__init__.py +0 -0
  87. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/communication/adapters/__init__.py +0 -0
  88. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/communication/adapters/base.py +0 -0
  89. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/communication/adapters/ip.py +0 -0
  90. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/communication/checksum.py +0 -0
  91. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/communication/framing.py +0 -0
  92. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/communication/ground.py +0 -0
  93. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/communication/updown.py +0 -0
  94. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/controllers/__init__.py +0 -0
  95. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/data_types/__init__.py +0 -0
  96. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/data_types/ch_data.py +0 -0
  97. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/data_types/cmd_data.py +0 -0
  98. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/data_types/event_data.py +0 -0
  99. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/data_types/exceptions.py +0 -0
  100. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/data_types/file_data.py +0 -0
  101. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/data_types/pkt_data.py +0 -0
  102. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/data_types/sys_data.py +0 -0
  103. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/decoders/__init__.py +0 -0
  104. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/decoders/decoder.py +0 -0
  105. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/decoders/file_decoder.py +0 -0
  106. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/distributor/__init__.py +0 -0
  107. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/encoders/__init__.py +0 -0
  108. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/encoders/encoder.py +0 -0
  109. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/encoders/file_encoder.py +0 -0
  110. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/files/File Decoder Documentation.txt +0 -0
  111. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/files/__init__.py +0 -0
  112. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/files/downlinker.py +0 -0
  113. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/files/helpers.py +0 -0
  114. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/files/uplinker.py +0 -0
  115. {fprime_gds-3.6.2a1/src/fprime_gds/common/gds_cli → fprime_gds-4.0.0a2/src/fprime_gds/common/fpy}/__init__.py +0 -0
  116. {fprime_gds-3.6.2a1/src/fprime_gds/common/history → fprime_gds-4.0.0a2/src/fprime_gds/common/gds_cli}/__init__.py +0 -0
  117. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/gds_cli/channels.py +0 -0
  118. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/gds_cli/command_send.py +0 -0
  119. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/gds_cli/events.py +0 -0
  120. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/gds_cli/filtering_utils.py +0 -0
  121. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/gds_cli/test_api_utils.py +0 -0
  122. {fprime_gds-3.6.2a1/src/fprime_gds/common/loaders → fprime_gds-4.0.0a2/src/fprime_gds/common/history}/__init__.py +0 -0
  123. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/history/chrono.py +0 -0
  124. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/history/history.py +0 -0
  125. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/history/ram.py +0 -0
  126. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/history/test.py +0 -0
  127. {fprime_gds-3.6.2a1/src/fprime_gds/common/models → fprime_gds-4.0.0a2/src/fprime_gds/common/loaders}/__init__.py +0 -0
  128. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/loaders/ch_json_loader.py +0 -0
  129. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/loaders/ch_xml_loader.py +0 -0
  130. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/loaders/cmd_json_loader.py +0 -0
  131. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/loaders/cmd_xml_loader.py +0 -0
  132. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/loaders/dict_loader.py +0 -0
  133. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/loaders/event_json_loader.py +0 -0
  134. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/loaders/event_xml_loader.py +0 -0
  135. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/loaders/json_loader.py +0 -0
  136. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/loaders/pkt_xml_loader.py +0 -0
  137. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/loaders/xml_loader.py +0 -0
  138. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/logger/__init__.py +0 -0
  139. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/logger/data_logger.py +0 -0
  140. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/logger/test_logger.py +0 -0
  141. {fprime_gds-3.6.2a1/src/fprime_gds/common/models/common → fprime_gds-4.0.0a2/src/fprime_gds/common/models}/__init__.py +0 -0
  142. {fprime_gds-3.6.2a1/src/fprime_gds/common/parsers → fprime_gds-4.0.0a2/src/fprime_gds/common/models/common}/__init__.py +0 -0
  143. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/models/common/channel_telemetry.py +0 -0
  144. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/models/common/command.py +0 -0
  145. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/models/common/event.py +0 -0
  146. {fprime_gds-3.6.2a1/src/fprime_gds/common/pipeline → fprime_gds-4.0.0a2/src/fprime_gds/common/parsers}/__init__.py +0 -0
  147. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/parsers/seq_file_parser.py +0 -0
  148. {fprime_gds-3.6.2a1/src/fprime_gds/common/templates → fprime_gds-4.0.0a2/src/fprime_gds/common/pipeline}/__init__.py +0 -0
  149. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/pipeline/files.py +0 -0
  150. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/pipeline/router.py +0 -0
  151. {fprime_gds-3.6.2a1/src/fprime_gds/common/testing_fw → fprime_gds-4.0.0a2/src/fprime_gds/common/templates}/__init__.py +0 -0
  152. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/templates/ch_template.py +0 -0
  153. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/templates/cmd_template.py +0 -0
  154. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/templates/data_template.py +0 -0
  155. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/templates/event_template.py +0 -0
  156. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/templates/pkt_template.py +0 -0
  157. {fprime_gds-3.6.2a1/src/fprime_gds/common/tools → fprime_gds-4.0.0a2/src/fprime_gds/common/testing_fw}/__init__.py +0 -0
  158. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/testing_fw/predicates.py +0 -0
  159. {fprime_gds-3.6.2a1/src/fprime_gds/common/utils → fprime_gds-4.0.0a2/src/fprime_gds/common/tools}/__init__.py +0 -0
  160. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/tools/seqgen.py +0 -0
  161. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/transport.py +0 -0
  162. {fprime_gds-3.6.2a1/src/fprime_gds/executables → fprime_gds-4.0.0a2/src/fprime_gds/common/utils}/__init__.py +0 -0
  163. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/utils/data_desc_type.py +0 -0
  164. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/utils/event_severity.py +0 -0
  165. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/utils/string_util.py +0 -0
  166. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/common/zmq_transport.py +0 -0
  167. {fprime_gds-3.6.2a1/src/fprime_gds/flask → fprime_gds-4.0.0a2/src/fprime_gds/executables}/__init__.py +0 -0
  168. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/executables/data_product_writer.py +0 -0
  169. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/executables/tcpserver.py +0 -0
  170. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/executables/utils.py +0 -0
  171. {fprime_gds-3.6.2a1/src/fprime_gds/plugin → fprime_gds-4.0.0a2/src/fprime_gds/flask}/__init__.py +0 -0
  172. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/app.py +0 -0
  173. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/channels.py +0 -0
  174. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/commands.py +0 -0
  175. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/components.py +0 -0
  176. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/default_settings.py +0 -0
  177. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/errors.py +0 -0
  178. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/events.py +0 -0
  179. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/json.py +0 -0
  180. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/logs.py +0 -0
  181. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/requirements.txt +0 -0
  182. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/resource.py +0 -0
  183. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/sequence.py +0 -0
  184. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/.idea/.gitignore +0 -0
  185. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/.idea/misc.xml +0 -0
  186. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/.idea/modules.xml +0 -0
  187. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/.idea/static.iml +0 -0
  188. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/.idea/vcs.xml +0 -0
  189. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/advanced-settings/addon-templates.js +0 -0
  190. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/advanced-settings/addon.js +0 -0
  191. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/channel-render/addon.js +0 -0
  192. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/channel-render/channel-render-template.js +0 -0
  193. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/channel-render/channel-render.js +0 -0
  194. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/chart-display/addon-templates.js +0 -0
  195. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/chart-display/addon.js +0 -0
  196. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/chart-display/config.js +0 -0
  197. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-streaming.js +0 -0
  198. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-zoom.js +0 -0
  199. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/flat.js +0 -0
  200. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/chart-display/sibling.js +0 -0
  201. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/chart-display/vendor/chart.js +0 -0
  202. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/chart-display/vendor/chartjs-adapter-luxon.min.js +0 -0
  203. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/chart-display/vendor/hammer.min.js +0 -0
  204. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/commanding/addon.js +0 -0
  205. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/commanding/argument-templates.js +0 -0
  206. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/commanding/arguments.js +0 -0
  207. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/commanding/command-history-template.js +0 -0
  208. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/commanding/command-history.js +0 -0
  209. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/commanding/command-input-template.js +0 -0
  210. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/commanding/command-input.js +0 -0
  211. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/commanding/command-string-template.js +0 -0
  212. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/commanding/command-string.js +0 -0
  213. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/dictionary/addon-templates.js +0 -0
  214. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/dictionary/addon.js +0 -0
  215. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/enabled.js +0 -0
  216. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/image-display/addon.js +0 -0
  217. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/image-display/dashboard.xml +0 -0
  218. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/sequencer/README.md +0 -0
  219. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/sequencer/addon-templates.js +0 -0
  220. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/sequencer/addon.js +0 -0
  221. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/sequencer/autocomplete.js +0 -0
  222. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/sequencer/lint.js +0 -0
  223. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/sequencer/third/code-mirror.es.js +0 -0
  224. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/.gitignore +0 -0
  225. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/index.js +0 -0
  226. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/language.grammer +0 -0
  227. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/package.json +0 -0
  228. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/rollup.config.js +0 -0
  229. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/css/fprime.css +0 -0
  230. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/css/fpstyle.css +0 -0
  231. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/favicon.ico +0 -0
  232. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/img/error.svg +0 -0
  233. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/img/logo.svg +0 -0
  234. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/img/success.svg +0 -0
  235. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/index.html +0 -0
  236. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/config.js +0 -0
  237. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/datastore.js +0 -0
  238. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/gds.js +0 -0
  239. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/json.js +0 -0
  240. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/loader.js +0 -0
  241. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/performance.js +0 -0
  242. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/settings.js +0 -0
  243. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/uploader.js +0 -0
  244. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/validate.js +0 -0
  245. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/dashboard-box.js +0 -0
  246. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/dashboard-row.js +0 -0
  247. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/dashboard.js +0 -0
  248. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/downlink.js +0 -0
  249. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/fp-row.js +0 -0
  250. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/fptable.js +0 -0
  251. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/log.js +0 -0
  252. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/tabetc.js +0 -0
  253. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/uplink.js +0 -0
  254. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/js/vue-support/utils.js +0 -0
  255. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/css/all.min.css +0 -0
  256. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/css/bootstrap.min.css +0 -0
  257. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/css/vue-select.css +0 -0
  258. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/js/luxon.min.js +0 -0
  259. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/js/sorttable.js +0 -0
  260. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/js/v-runtime-template.js +0 -0
  261. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/js/vue-select.js +0 -0
  262. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/js/vue.min.js +0 -0
  263. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.eot +0 -0
  264. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.svg +0 -0
  265. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.ttf +0 -0
  266. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff +0 -0
  267. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff2 +0 -0
  268. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.eot +0 -0
  269. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.svg +0 -0
  270. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.ttf +0 -0
  271. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff +0 -0
  272. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff2 +0 -0
  273. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.eot +0 -0
  274. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.svg +0 -0
  275. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.ttf +0 -0
  276. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff +0 -0
  277. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff2 +0 -0
  278. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/stats.py +0 -0
  279. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/flask/updown.py +0 -0
  280. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds/version.py +0 -0
  281. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds.egg-info/dependency_links.txt +0 -0
  282. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/src/fprime_gds.egg-info/top_level.txt +0 -0
  283. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/data_types/test_cmd_data.py +0 -0
  284. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/distributor/test_distributor.py +0 -0
  285. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/encoders/test_ch_encoder.py +0 -0
  286. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/encoders/test_event_encoder.py +0 -0
  287. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/encoders/test_pkt_encoder.py +0 -0
  288. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/gds_cli/filtering_utils_test.py +0 -0
  289. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/gds_cli/utils_test.py +0 -0
  290. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/history/chronohistory_unit_test.py +0 -0
  291. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/history/testhistory_unit_test.py +0 -0
  292. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/testing_fw/UnitTestDictionary.xml +0 -0
  293. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/testing_fw/api_unit_test.py +0 -0
  294. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/testing_fw/logs/.gitignore +0 -0
  295. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/testing_fw/predicate_unit_test.py +0 -0
  296. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/tools/expected/simple_expected.bin +0 -0
  297. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/tools/input/simple_bad_sequence.seq +0 -0
  298. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/tools/input/simple_sequence.seq +0 -0
  299. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/tools/resources/simple_dictionary.xml +0 -0
  300. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/tools/seqgen_unit_test.py +0 -0
  301. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/common/utils/test_string_util.py +0 -0
  302. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/.gitignore +0 -0
  303. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/dictionary.json +0 -0
  304. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeBool.bin +0 -0
  305. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeComplex.bin +0 -0
  306. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeDataArray.bin +0 -0
  307. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeEnum.bin +0 -0
  308. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeF32.bin +0 -0
  309. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeF64.bin +0 -0
  310. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeFppArray.bin +0 -0
  311. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeI16.bin +0 -0
  312. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeI32.bin +0 -0
  313. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeI64.bin +0 -0
  314. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeI8.bin +0 -0
  315. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeU32.bin +0 -0
  316. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeU32Array.bin +0 -0
  317. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/dp_writer_data/makeU8Array.bin +0 -0
  318. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/test_data_product_writer.py +0 -0
  319. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/test_run_deployment.py +0 -0
  320. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/executables/test_utils.py +0 -0
  321. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/test/fprime_gds/sample/dictionary.xml +0 -0
  322. {fprime_gds-3.6.2a1 → fprime_gds-4.0.0a2}/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,6 +32,7 @@ bitmaps
31
32
  breadcrumb
32
33
  Btns
33
34
  BUGLIST
35
+ calcsize
34
36
  calibri
35
37
  callergraph
36
38
  callgraph
@@ -49,6 +51,7 @@ classdocs
49
51
  clearfix
50
52
  cls
51
53
  cmdhist
54
+ cmt
52
55
  CODEFILE
53
56
  COLORSTYLE
54
57
  colorwheel
@@ -59,10 +62,12 @@ configs
59
62
  Consolas
60
63
  creatingdocsetswithdoxygen
61
64
  csum
65
+ ctx
62
66
  curateable
63
67
  curated
64
68
  curating
65
69
  customise
70
+ cuz
66
71
  daringfireball
67
72
  dataobjects
68
73
  dblclick
@@ -136,9 +141,13 @@ FONTSIZE
136
141
  fpp
137
142
  fprime
138
143
  fptable
144
+ fpy
145
+ fpybc
146
+ fqn
139
147
  fsw
140
148
  gdiplus
141
149
  getbootstrap
150
+ getoption
142
151
  github
143
152
  grayscales
144
153
  gse
@@ -161,6 +170,7 @@ htags
161
170
  hyperlinks
162
171
  idct
163
172
  idl
173
+ idx
164
174
  ieeetr
165
175
  ified
166
176
  ifun
@@ -171,18 +181,22 @@ intlimits
171
181
  ip
172
182
  ipc
173
183
  ipp
184
+ issuecomment
174
185
  itcl
175
186
  ixx
176
187
  janamian
188
+ jawest
177
189
  Jdk
178
190
  jpl
179
191
  JSO
180
192
  jsonable
181
193
  jsonified
182
194
  jsonify
195
+ junitxml
183
196
  keepalive
184
197
  keyify
185
198
  kinda
199
+ leisher
186
200
  lestarch
187
201
  levelname
188
202
  Lezer
@@ -195,6 +209,7 @@ logdir
195
209
  logpath
196
210
  logselect
197
211
  luxon
212
+ LVAR
198
213
  makeindex
199
214
  MAKEVAR
200
215
  marijnh
@@ -235,9 +250,11 @@ oring
235
250
  osexc
236
251
  OSX
237
252
  outputfile
253
+ Packetize
238
254
  packetized
239
255
  Paetz
240
256
  PARAMDOC
257
+ paramdb
241
258
  passthrough
242
259
  pb
243
260
  pdflatex
@@ -248,6 +265,7 @@ plantuml
248
265
  PNGs
249
266
  preds
250
267
  prm
268
+ prmdb
251
269
  procs
252
270
  PROGRAMLISTING
253
271
  projectbrief
@@ -305,6 +323,7 @@ sss
305
323
  Ssymbols
306
324
  stackoverflow
307
325
  startuml
326
+ subcmd
308
327
  subgrouping
309
328
  subhist
310
329
  subhistory
@@ -322,6 +341,7 @@ Theif
322
341
  thtcp
323
342
  thudp
324
343
  timebase
344
+ timectx
325
345
  timescales
326
346
  timespan
327
347
  timestep
@@ -375,6 +395,8 @@ xapian
375
395
  xhttp
376
396
  xl
377
397
  xmit
398
+ xmlpath
378
399
  xy
379
400
  zeromq
380
401
  zmq
402
+ zimri
@@ -13,7 +13,7 @@ jobs:
13
13
  runs-on: ubuntu-latest
14
14
  strategy:
15
15
  matrix:
16
- python-version: ["3.8", "3.9", "3.10", "3.11"]
16
+ python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
17
17
 
18
18
  steps:
19
19
  - uses: actions/checkout@v4
@@ -16,7 +16,7 @@ jobs:
16
16
  runs-on: ubuntu-latest
17
17
  strategy:
18
18
  matrix:
19
- python-version: ["3.8", "3.9", "3.10", "3.11"]
19
+ python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
20
20
 
21
21
  steps:
22
22
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: fprime-gds
3
- Version: 3.6.2a1
3
+ Version: 4.0.0a2
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:
@@ -240,10 +240,12 @@ 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: PyYAML>=6.0.2
244
+ Dynamic: license-file
243
245
 
244
246
  # F´ GDS
245
247
 
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.
248
+ **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
249
 
248
250
  Issues should be reported here: [File an issue](https://github.com/nasa/fprime/issues/new/choose)
249
251
 
@@ -268,7 +270,8 @@ output data type included. Command data objects are created in the command panel
268
270
  the command encoder registered to that panel. Encoders take a data object and turn it into binary
269
271
  data that can be sent to the F´ deployment. The binary data is then passed to the TCP client
270
272
  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)
273
+ the F´ deployment.
274
+ ![The layout of the GDS](https://raw.githubusercontent.com/nasa/fprime/refs/heads/devel/docs/img/gds_layout.jpg)
272
275
 
273
276
  All of these objects are created and registered to other objects when the GDS
274
277
  is initialized. Thus, all of the structure of the GDS is created in one place,
@@ -285,15 +288,11 @@ commands and registering consumers to the GDS decoders. The Standard Pipeline ca
285
288
  [here](src/fprime_gds/common/pipeline/standard.py).
286
289
 
287
290
  ### 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.
291
+ 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
292
 
294
293
  ## GDS GUI Usage
295
294
 
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)
295
+ 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
296
 
298
297
  ## Classes
299
298
  The GDS back end is composed of several different data processing units. For
@@ -316,8 +315,15 @@ that descriptor. Descriptor types include events, channels, packets, etc (a full
316
315
  enumeration can be found in (src/utils/data_desc_type.py). The binary data that
317
316
  the descriptor receives should be of the form:
318
317
 
319
- | Length (4 bytes) | Type Descriptor (4 bytes) | Message Data |
320
- | ---------------- | ------------------------- | ------------ |
318
+ ```mermaid
319
+ ---
320
+ title: "Binary format received by Distributors"
321
+ ---
322
+ packet-beta
323
+ 0-31: "Length [4 bytes]"
324
+ 32-63: "Type Descriptor [4 bytes]"
325
+ 64-95: "Message Data [variable length]"
326
+ ```
321
327
 
322
328
  The distributor should then pass only the message data along to the decoders.
323
329
 
@@ -433,10 +439,3 @@ pip install doxypypy
433
439
 
434
440
  Next, make `docs/py_filter` available in your system path however you see fit.
435
441
  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
-
@@ -42,7 +42,8 @@ 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
+ "PyYAML>=6.0.2"
46
47
  ]
47
48
 
48
49
  [project.urls]
@@ -61,6 +62,8 @@ fprime-cli = "fprime_gds.executables.fprime_cli:main"
61
62
  fprime-seqgen = "fprime_gds.common.tools.seqgen:main"
62
63
  fprime-dp-write = "fprime_gds.executables.data_product_writer:main"
63
64
  fprime-gds = "fprime_gds.executables.run_deployment:main"
65
+ fprime-prm-write = "fprime_gds.common.tools.params:main"
66
+ fprime-fpy-bytecode = "fprime_gds.common.fpy.serialize_bytecode:main"
64
67
 
65
68
  # For Pytest fixtures
66
69
  [project.entry-points."pytest11"]
@@ -59,7 +59,7 @@ class SerialAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
59
59
  4000000,
60
60
  ]
61
61
 
62
- def __init__(self, device, baud):
62
+ def __init__(self, device, baud, skip_check):
63
63
  """
64
64
  Initialize the serial adapter using the default settings. This does not open the serial port, but sets up all
65
65
  the internal variables used when opening the device.
@@ -77,9 +77,14 @@ class SerialAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
77
77
  Opens the serial port based on previously supplied settings. If the port is already open, then close it first.
78
78
  Then open the port up again.
79
79
  """
80
- self.close()
81
- self.serial = serial.Serial(self.device, self.baud)
82
- return self.serial is not None
80
+ try:
81
+ self.close()
82
+ self.serial = serial.Serial(self.device, self.baud)
83
+ return self.serial is not None
84
+ except serial.serialutil.SerialException as exc:
85
+ LOGGER.warning("Serial exception caught: %s. Reconnecting.", (str(exc)))
86
+ self.close()
87
+ return False
83
88
 
84
89
  def close(self):
85
90
  """
@@ -100,12 +105,11 @@ class SerialAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
100
105
  :return: True, when data was sent through the UART. False otherwise.
101
106
  """
102
107
  try:
103
- if self.serial is None:
104
- self.open()
105
- written = self.serial.write(frame)
106
- # Not believed to be possible to not send everything without getting a timeout exception
107
- assert written == len(frame)
108
- return True
108
+ if self.serial is not None or self.open():
109
+ written = self.serial.write(frame)
110
+ # Not believed to be possible to not send everything without getting a timeout exception
111
+ assert written == len(frame)
112
+ return True
109
113
  except serial.serialutil.SerialException as exc:
110
114
  LOGGER.warning("Serial exception caught: %s. Reconnecting.", (str(exc)))
111
115
  self.close()
@@ -121,17 +125,16 @@ class SerialAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
121
125
  """
122
126
  data = b""
123
127
  try:
124
- if self.serial is None:
125
- self.open()
126
- # Read as much data as possible, while ensuring to block if no data is available at this time. Note: as much
127
- # data is read as possible to avoid a long-return time to this call. Minimum data to read is one byte in
128
- # order to block this function while data is incoming.
129
- self.serial.timeout = timeout
130
- data = self.serial.read(1) # Force a block for at least 1 character
131
- while self.serial.in_waiting:
132
- data += self.serial.read(
133
- self.serial.in_waiting
134
- ) # Drain the incoming data queue
128
+ if self.serial is not None or self.open():
129
+ # Read as much data as possible, while ensuring to block if no data is available at this time. Note: as much
130
+ # data is read as possible to avoid a long-return time to this call. Minimum data to read is one byte in
131
+ # order to block this function while data is incoming.
132
+ self.serial.timeout = timeout
133
+ data = self.serial.read(1) # Force a block for at least 1 character
134
+ while self.serial.in_waiting:
135
+ data += self.serial.read(
136
+ self.serial.in_waiting
137
+ ) # Drain the incoming data queue
135
138
  except serial.serialutil.SerialException as exc:
136
139
  LOGGER.warning("Serial exception caught: %s. Reconnecting.", (str(exc)))
137
140
  self.close()
@@ -161,6 +164,12 @@ class SerialAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
161
164
  "default": 9600,
162
165
  "help": "Baud rate of the serial device.",
163
166
  },
167
+ ("--uart-skip-port-check",): {
168
+ "dest": "skip_check",
169
+ "default": False,
170
+ "action": "store_true",
171
+ "help": "Skip checking that the port exists"
172
+ }
164
173
  }
165
174
 
166
175
  @classmethod
@@ -175,20 +184,20 @@ class SerialAdapter(fprime_gds.common.communication.adapters.base.BaseAdapter):
175
184
  return cls
176
185
 
177
186
  @classmethod
178
- def check_arguments(cls, device, baud):
187
+ def check_arguments(cls, device, baud, skip_check):
179
188
  """
180
189
  Code that should check arguments of this adapter. If there is a problem with this code, then a "ValueError"
181
190
  should be raised describing the problem with these arguments.
182
191
 
183
192
  :param args: arguments as dictionary
184
193
  """
185
- ports = map(lambda info: info.device, list_ports.comports(include_links=True))
186
- if device not in ports:
194
+ ports = list(map(lambda info: info.device, list_ports.comports(include_links=True)))
195
+ if not skip_check and device not in ports:
187
196
  msg = f"Serial port '{device}' not valid. Available ports: {ports}"
188
197
  raise ValueError(
189
198
  msg
190
199
  )
191
- # Note: baud rate may not *always* work. These are a superset
200
+ # Note: baud rate may not *always* work. These are a superset.
192
201
  try:
193
202
  baud = int(baud)
194
203
  except ValueError:
@@ -44,7 +44,7 @@ class ChDecoder(Decoder):
44
44
  config = config_manager.ConfigManager().get_instance()
45
45
 
46
46
  self.__dict = ch_dict
47
- self.id_obj = config.get_type("ch_id")
47
+ self.id_obj = config.get_type("FwChanIdType")
48
48
 
49
49
  def decode_api(self, data):
50
50
  """
@@ -19,6 +19,7 @@ from fprime.common.models.serialize.type_exceptions import TypeException
19
19
 
20
20
  from fprime_gds.common.data_types import event_data
21
21
  from fprime_gds.common.decoders import decoder
22
+ from fprime_gds.common.decoders.decoder import DecodingException
22
23
  from fprime_gds.common.utils import config_manager
23
24
 
24
25
 
@@ -43,7 +44,7 @@ class EventDecoder(decoder.Decoder):
43
44
  config = config_manager.ConfigManager().get_instance()
44
45
 
45
46
  self.__dict = event_dict
46
- self.id_obj = config.get_type("event_id")
47
+ self.id_obj = config.get_type("FwEventIdType")
47
48
 
48
49
  def decode_api(self, data):
49
50
  """
@@ -45,7 +45,7 @@ class PktDecoder(ChDecoder):
45
45
  super().__init__(ch_dict, config)
46
46
 
47
47
  self.__dict = pkt_name_dict
48
- self.id_obj = config.get_type("pkt_id")
48
+ self.id_obj = config.get_type("FwTlmPacketizeIdType")
49
49
 
50
50
  def decode_api(self, data):
51
51
  """
@@ -57,7 +57,7 @@ class Distributor(DataHandler):
57
57
  self.key_frame = int(config.get("framing", "key_val"), 16)
58
58
  self.key_obj = config.get_type("key_val")
59
59
  self.len_obj = config.get_type("msg_len")
60
- self.desc_obj = config.get_type("msg_desc")
60
+ self.desc_obj = config.get_type("FwPacketDescriptorType")
61
61
 
62
62
  # NOTE we could use either the type of the object or an enum as the type argument.
63
63
  # It should indicate what the decoder decodes.
@@ -204,4 +204,4 @@ class Distributor(DataHandler):
204
204
  try:
205
205
  d.data_callback(msg)
206
206
  except DecodingException as dexc:
207
- LOGGER.warning("Decoding error occurred: %s. Skipping.", dexc)
207
+ LOGGER.warning("Decoding error occurred: %s. Skipping.", dexc)
@@ -57,8 +57,8 @@ class ChEncoder(Encoder):
57
57
  super().__init__(config)
58
58
 
59
59
  self.len_obj = self.config.get_type("msg_len")
60
- self.desc_obj = self.config.get_type("msg_desc")
61
- self.id_obj = self.config.get_type("ch_id")
60
+ self.desc_obj = self.config.get_type("FwPacketDescriptorType")
61
+ self.id_obj = self.config.get_type("FwChanIdType")
62
62
 
63
63
  def encode_api(self, data):
64
64
  """
@@ -72,8 +72,8 @@ class CmdEncoder(encoder.Encoder):
72
72
  super().__init__(config)
73
73
 
74
74
  self.len_obj = self.config.get_type("msg_len")
75
- self.desc_obj = self.config.get_type("msg_desc")
76
- self.opcode_obj = self.config.get_type("op_code")
75
+ self.desc_obj = self.config.get_type("FwPacketDescriptorType")
76
+ self.opcode_obj = self.config.get_type("FwOpcodeType")
77
77
 
78
78
  def encode_api(self, data):
79
79
  """
@@ -61,8 +61,8 @@ class EventEncoder(Encoder):
61
61
  super().__init__(config)
62
62
 
63
63
  self.len_obj = self.config.get_type("msg_len")
64
- self.desc_obj = self.config.get_type("msg_desc")
65
- self.id_obj = self.config.get_type("event_id")
64
+ self.desc_obj = self.config.get_type("FwPacketDescriptorType")
65
+ self.id_obj = self.config.get_type("FwEventIdType")
66
66
 
67
67
  def encode_api(self, data):
68
68
  """
@@ -61,8 +61,8 @@ class PktEncoder(Encoder):
61
61
  super().__init__(config)
62
62
 
63
63
  self.len_obj = self.config.get_type("msg_len")
64
- self.desc_obj = self.config.get_type("msg_desc")
65
- self.id_obj = self.config.get_type("pkt_id")
64
+ self.desc_obj = self.config.get_type("FwPacketDescriptorType")
65
+ self.id_obj = self.config.get_type("FwTlmPacketizeIdType")
66
66
 
67
67
  def encode_api(self, data):
68
68
  """
@@ -28,8 +28,8 @@ class SeqBinaryWriter:
28
28
 
29
29
  self.__fd = None
30
30
  self.__timebase = timebase
31
- self.desc_obj = config.get_type("msg_desc")
32
- self.opcode_obj = config.get_type("op_code")
31
+ self.desc_obj = config.get_type("FwPacketDescriptorType")
32
+ self.opcode_obj = config.get_type("FwOpcodeType")
33
33
  self.len_obj = config.get_type("msg_len")
34
34
 
35
35
  def open(self, filename):