openc3 5.0.6

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 (307) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +18 -0
  3. data/Guardfile +35 -0
  4. data/LICENSE.txt +727 -0
  5. data/README.md +37 -0
  6. data/Rakefile +131 -0
  7. data/bin/cstol_converter +1178 -0
  8. data/bin/openc3cli +531 -0
  9. data/bin/rubysloc +139 -0
  10. data/data/config/_array_params.yaml +23 -0
  11. data/data/config/_id_items.yaml +24 -0
  12. data/data/config/_id_params.yaml +58 -0
  13. data/data/config/_interfaces.yaml +214 -0
  14. data/data/config/_interfaces.yaml.err +1017 -0
  15. data/data/config/_items.yaml +20 -0
  16. data/data/config/_params.yaml +60 -0
  17. data/data/config/cmd_tlm_server.yaml +136 -0
  18. data/data/config/command.yaml +44 -0
  19. data/data/config/command_modifiers.yaml +160 -0
  20. data/data/config/command_telemetry.yaml +3 -0
  21. data/data/config/interface_modifiers.yaml +104 -0
  22. data/data/config/item_modifiers.yaml +221 -0
  23. data/data/config/microservice.yaml +78 -0
  24. data/data/config/param_item_modifiers.yaml +52 -0
  25. data/data/config/parameter_modifiers.yaml +200 -0
  26. data/data/config/plugins.yaml +80 -0
  27. data/data/config/protocols.yaml +290 -0
  28. data/data/config/screen.yaml +147 -0
  29. data/data/config/table_manager.yaml +89 -0
  30. data/data/config/table_parameter_modifiers.yaml +9 -0
  31. data/data/config/target.yaml +142 -0
  32. data/data/config/target_config.yaml +94 -0
  33. data/data/config/telemetry.yaml +87 -0
  34. data/data/config/telemetry_modifiers.yaml +159 -0
  35. data/data/config/tool.yaml +63 -0
  36. data/data/config/unknown.yaml +3 -0
  37. data/data/config/widgets.yaml +1505 -0
  38. data/ext/mkrf_conf.rb +49 -0
  39. data/ext/openc3/ext/array/array.c +122 -0
  40. data/ext/openc3/ext/array/extconf.rb +13 -0
  41. data/ext/openc3/ext/buffered_file/buffered_file.c +198 -0
  42. data/ext/openc3/ext/buffered_file/extconf.rb +13 -0
  43. data/ext/openc3/ext/config_parser/config_parser.c +280 -0
  44. data/ext/openc3/ext/config_parser/extconf.rb +13 -0
  45. data/ext/openc3/ext/crc/crc.c +351 -0
  46. data/ext/openc3/ext/crc/extconf.rb +13 -0
  47. data/ext/openc3/ext/openc3_io/extconf.rb +13 -0
  48. data/ext/openc3/ext/openc3_io/openc3_io.c +158 -0
  49. data/ext/openc3/ext/packet/extconf.rb +13 -0
  50. data/ext/openc3/ext/packet/packet.c +318 -0
  51. data/ext/openc3/ext/platform/extconf.rb +13 -0
  52. data/ext/openc3/ext/platform/platform.c +134 -0
  53. data/ext/openc3/ext/polynomial_conversion/extconf.rb +13 -0
  54. data/ext/openc3/ext/polynomial_conversion/polynomial_conversion.c +79 -0
  55. data/ext/openc3/ext/string/extconf.rb +13 -0
  56. data/ext/openc3/ext/string/string.c +63 -0
  57. data/ext/openc3/ext/structure/structure.c +1719 -0
  58. data/ext/openc3/ext/tabbed_plots_config/extconf.rb +13 -0
  59. data/ext/openc3/ext/tabbed_plots_config/tabbed_plots_config.c +62 -0
  60. data/ext/openc3/ext/telemetry/extconf.rb +13 -0
  61. data/ext/openc3/ext/telemetry/telemetry.c +336 -0
  62. data/lib/cosmos.rb +20 -0
  63. data/lib/cosmosc2.rb +20 -0
  64. data/lib/openc3/api/api.rb +39 -0
  65. data/lib/openc3/api/authorized_api.rb +30 -0
  66. data/lib/openc3/api/cmd_api.rb +451 -0
  67. data/lib/openc3/api/config_api.rb +58 -0
  68. data/lib/openc3/api/interface_api.rb +117 -0
  69. data/lib/openc3/api/limits_api.rb +375 -0
  70. data/lib/openc3/api/router_api.rb +117 -0
  71. data/lib/openc3/api/settings_api.rb +70 -0
  72. data/lib/openc3/api/target_api.rb +78 -0
  73. data/lib/openc3/api/tlm_api.rb +455 -0
  74. data/lib/openc3/bridge/bridge.rb +54 -0
  75. data/lib/openc3/bridge/bridge_config.rb +167 -0
  76. data/lib/openc3/bridge/bridge_interface_thread.rb +42 -0
  77. data/lib/openc3/bridge/bridge_router_thread.rb +42 -0
  78. data/lib/openc3/ccsds/ccsds_packet.rb +68 -0
  79. data/lib/openc3/ccsds/ccsds_parser.rb +148 -0
  80. data/lib/openc3/config/config_parser.rb +549 -0
  81. data/lib/openc3/config/meta_config_parser.rb +74 -0
  82. data/lib/openc3/conversions/conversion.rb +70 -0
  83. data/lib/openc3/conversions/generic_conversion.rb +83 -0
  84. data/lib/openc3/conversions/packet_time_formatted_conversion.rb +43 -0
  85. data/lib/openc3/conversions/packet_time_seconds_conversion.rb +43 -0
  86. data/lib/openc3/conversions/polynomial_conversion.rb +87 -0
  87. data/lib/openc3/conversions/processor_conversion.rb +70 -0
  88. data/lib/openc3/conversions/received_count_conversion.rb +38 -0
  89. data/lib/openc3/conversions/received_time_formatted_conversion.rb +42 -0
  90. data/lib/openc3/conversions/received_time_seconds_conversion.rb +42 -0
  91. data/lib/openc3/conversions/segmented_polynomial_conversion.rb +171 -0
  92. data/lib/openc3/conversions/unix_time_conversion.rb +68 -0
  93. data/lib/openc3/conversions/unix_time_formatted_conversion.rb +49 -0
  94. data/lib/openc3/conversions/unix_time_seconds_conversion.rb +49 -0
  95. data/lib/openc3/conversions.rb +34 -0
  96. data/lib/openc3/core_ext/array.rb +416 -0
  97. data/lib/openc3/core_ext/binding.rb +29 -0
  98. data/lib/openc3/core_ext/class.rb +72 -0
  99. data/lib/openc3/core_ext/exception.rb +61 -0
  100. data/lib/openc3/core_ext/file.rb +83 -0
  101. data/lib/openc3/core_ext/hash.rb +37 -0
  102. data/lib/openc3/core_ext/io.rb +134 -0
  103. data/lib/openc3/core_ext/kernel.rb +42 -0
  104. data/lib/openc3/core_ext/math.rb +128 -0
  105. data/lib/openc3/core_ext/matrix.rb +156 -0
  106. data/lib/openc3/core_ext/objectspace.rb +36 -0
  107. data/lib/openc3/core_ext/openc3_io.rb +57 -0
  108. data/lib/openc3/core_ext/range.rb +27 -0
  109. data/lib/openc3/core_ext/socket.rb +38 -0
  110. data/lib/openc3/core_ext/string.rb +389 -0
  111. data/lib/openc3/core_ext/stringio.rb +33 -0
  112. data/lib/openc3/core_ext/time.rb +508 -0
  113. data/lib/openc3/core_ext.rb +36 -0
  114. data/lib/openc3/interfaces/interface.rb +498 -0
  115. data/lib/openc3/interfaces/linc_interface.rb +475 -0
  116. data/lib/openc3/interfaces/protocols/burst_protocol.rb +192 -0
  117. data/lib/openc3/interfaces/protocols/crc_protocol.rb +193 -0
  118. data/lib/openc3/interfaces/protocols/fixed_protocol.rb +155 -0
  119. data/lib/openc3/interfaces/protocols/ignore_packet_protocol.rb +56 -0
  120. data/lib/openc3/interfaces/protocols/length_protocol.rb +165 -0
  121. data/lib/openc3/interfaces/protocols/override_protocol.rb +60 -0
  122. data/lib/openc3/interfaces/protocols/preidentified_protocol.rb +206 -0
  123. data/lib/openc3/interfaces/protocols/protocol.rb +82 -0
  124. data/lib/openc3/interfaces/protocols/template_protocol.rb +261 -0
  125. data/lib/openc3/interfaces/protocols/terminated_protocol.rb +93 -0
  126. data/lib/openc3/interfaces/serial_interface.rb +94 -0
  127. data/lib/openc3/interfaces/simulated_target_interface.rb +168 -0
  128. data/lib/openc3/interfaces/stream_interface.rb +81 -0
  129. data/lib/openc3/interfaces/tcpip_client_interface.rb +69 -0
  130. data/lib/openc3/interfaces/tcpip_server_interface.rb +629 -0
  131. data/lib/openc3/interfaces/udp_interface.rb +169 -0
  132. data/lib/openc3/interfaces.rb +44 -0
  133. data/lib/openc3/io/buffered_file.rb +109 -0
  134. data/lib/openc3/io/io_multiplexer.rb +80 -0
  135. data/lib/openc3/io/json_api_object.rb +208 -0
  136. data/lib/openc3/io/json_drb.rb +335 -0
  137. data/lib/openc3/io/json_drb_object.rb +114 -0
  138. data/lib/openc3/io/json_drb_rack.rb +84 -0
  139. data/lib/openc3/io/json_rpc.rb +420 -0
  140. data/lib/openc3/io/openc3_snmp.rb +58 -0
  141. data/lib/openc3/io/posix_serial_driver.rb +156 -0
  142. data/lib/openc3/io/raw_logger.rb +167 -0
  143. data/lib/openc3/io/raw_logger_pair.rb +77 -0
  144. data/lib/openc3/io/serial_driver.rb +105 -0
  145. data/lib/openc3/io/stderr.rb +43 -0
  146. data/lib/openc3/io/stdout.rb +43 -0
  147. data/lib/openc3/io/udp_sockets.rb +194 -0
  148. data/lib/openc3/io/win32_serial_driver.rb +196 -0
  149. data/lib/openc3/logs/log_writer.rb +302 -0
  150. data/lib/openc3/logs/packet_log_constants.rb +62 -0
  151. data/lib/openc3/logs/packet_log_reader.rb +345 -0
  152. data/lib/openc3/logs/packet_log_writer.rb +299 -0
  153. data/lib/openc3/logs/text_log_writer.rb +68 -0
  154. data/lib/openc3/logs.rb +25 -0
  155. data/lib/openc3/microservices/cleanup_microservice.rb +68 -0
  156. data/lib/openc3/microservices/decom_microservice.rb +136 -0
  157. data/lib/openc3/microservices/interface_microservice.rb +532 -0
  158. data/lib/openc3/microservices/log_microservice.rb +108 -0
  159. data/lib/openc3/microservices/microservice.rb +204 -0
  160. data/lib/openc3/microservices/plugin_microservice.rb +43 -0
  161. data/lib/openc3/microservices/reaction_microservice.rb +541 -0
  162. data/lib/openc3/microservices/reducer_microservice.rb +313 -0
  163. data/lib/openc3/microservices/router_microservice.rb +44 -0
  164. data/lib/openc3/microservices/text_log_microservice.rb +84 -0
  165. data/lib/openc3/microservices/timeline_microservice.rb +363 -0
  166. data/lib/openc3/microservices/trigger_group_microservice.rb +638 -0
  167. data/lib/openc3/models/activity_model.rb +319 -0
  168. data/lib/openc3/models/auth_model.rb +65 -0
  169. data/lib/openc3/models/cvt_model.rb +185 -0
  170. data/lib/openc3/models/environment_model.rb +58 -0
  171. data/lib/openc3/models/gem_model.rb +137 -0
  172. data/lib/openc3/models/info_model.rb +31 -0
  173. data/lib/openc3/models/interface_model.rb +281 -0
  174. data/lib/openc3/models/interface_status_model.rb +117 -0
  175. data/lib/openc3/models/metadata_model.rb +139 -0
  176. data/lib/openc3/models/metric_model.rb +59 -0
  177. data/lib/openc3/models/microservice_model.rb +206 -0
  178. data/lib/openc3/models/microservice_status_model.rb +74 -0
  179. data/lib/openc3/models/model.rb +204 -0
  180. data/lib/openc3/models/note_model.rb +122 -0
  181. data/lib/openc3/models/notification_model.rb +40 -0
  182. data/lib/openc3/models/ping_model.rb +35 -0
  183. data/lib/openc3/models/plugin_model.rb +292 -0
  184. data/lib/openc3/models/process_status_model.rb +76 -0
  185. data/lib/openc3/models/reaction_model.rb +322 -0
  186. data/lib/openc3/models/reducer_model.rb +65 -0
  187. data/lib/openc3/models/router_model.rb +35 -0
  188. data/lib/openc3/models/router_status_model.rb +27 -0
  189. data/lib/openc3/models/scope_model.rb +153 -0
  190. data/lib/openc3/models/settings_model.rb +55 -0
  191. data/lib/openc3/models/sorted_model.rb +167 -0
  192. data/lib/openc3/models/target_model.rb +759 -0
  193. data/lib/openc3/models/timeline_model.rb +154 -0
  194. data/lib/openc3/models/tool_config_model.rb +38 -0
  195. data/lib/openc3/models/tool_model.rb +262 -0
  196. data/lib/openc3/models/trigger_group_model.rb +186 -0
  197. data/lib/openc3/models/trigger_model.rb +330 -0
  198. data/lib/openc3/models/widget_model.rb +138 -0
  199. data/lib/openc3/operators/microservice_operator.rb +128 -0
  200. data/lib/openc3/operators/operator.rb +277 -0
  201. data/lib/openc3/packets/binary_accessor.rb +1207 -0
  202. data/lib/openc3/packets/commands.rb +373 -0
  203. data/lib/openc3/packets/json_packet.rb +134 -0
  204. data/lib/openc3/packets/limits.rb +271 -0
  205. data/lib/openc3/packets/limits_response.rb +53 -0
  206. data/lib/openc3/packets/packet.rb +1168 -0
  207. data/lib/openc3/packets/packet_config.rb +625 -0
  208. data/lib/openc3/packets/packet_item.rb +586 -0
  209. data/lib/openc3/packets/packet_item_limits.rb +162 -0
  210. data/lib/openc3/packets/parsers/format_string_parser.rb +65 -0
  211. data/lib/openc3/packets/parsers/limits_parser.rb +159 -0
  212. data/lib/openc3/packets/parsers/limits_response_parser.rb +61 -0
  213. data/lib/openc3/packets/parsers/packet_item_parser.rb +272 -0
  214. data/lib/openc3/packets/parsers/packet_parser.rb +134 -0
  215. data/lib/openc3/packets/parsers/processor_parser.rb +73 -0
  216. data/lib/openc3/packets/parsers/state_parser.rb +127 -0
  217. data/lib/openc3/packets/parsers/xtce_converter.rb +442 -0
  218. data/lib/openc3/packets/parsers/xtce_parser.rb +722 -0
  219. data/lib/openc3/packets/structure.rb +553 -0
  220. data/lib/openc3/packets/structure_item.rb +365 -0
  221. data/lib/openc3/packets/telemetry.rb +487 -0
  222. data/lib/openc3/processors/processor.rb +86 -0
  223. data/lib/openc3/processors/statistics_processor.rb +82 -0
  224. data/lib/openc3/processors/watermark_processor.rb +58 -0
  225. data/lib/openc3/processors.rb +24 -0
  226. data/lib/openc3/script/api_shared.rb +828 -0
  227. data/lib/openc3/script/calendar.rb +89 -0
  228. data/lib/openc3/script/commands.rb +227 -0
  229. data/lib/openc3/script/exceptions.rb +29 -0
  230. data/lib/openc3/script/extract.rb +161 -0
  231. data/lib/openc3/script/limits.rb +60 -0
  232. data/lib/openc3/script/script.rb +299 -0
  233. data/lib/openc3/script/script_runner.rb +238 -0
  234. data/lib/openc3/script/storage.rb +146 -0
  235. data/lib/openc3/script/suite.rb +542 -0
  236. data/lib/openc3/script/suite_results.rb +196 -0
  237. data/lib/openc3/script/suite_runner.rb +217 -0
  238. data/lib/openc3/script.rb +21 -0
  239. data/lib/openc3/streams/serial_stream.rb +167 -0
  240. data/lib/openc3/streams/stream.rb +63 -0
  241. data/lib/openc3/streams/tcpip_client_stream.rb +116 -0
  242. data/lib/openc3/streams/tcpip_socket_stream.rb +195 -0
  243. data/lib/openc3/system/system.rb +127 -0
  244. data/lib/openc3/system/system_config.rb +411 -0
  245. data/lib/openc3/system/target.rb +269 -0
  246. data/lib/openc3/system.rb +24 -0
  247. data/lib/openc3/tools/cmd_tlm_server/api.rb +20 -0
  248. data/lib/openc3/tools/cmd_tlm_server/cmd_tlm_server_config.rb +320 -0
  249. data/lib/openc3/tools/cmd_tlm_server/interface_thread.rb +294 -0
  250. data/lib/openc3/tools/table_manager/table.rb +77 -0
  251. data/lib/openc3/tools/table_manager/table_config.rb +273 -0
  252. data/lib/openc3/tools/table_manager/table_item.rb +90 -0
  253. data/lib/openc3/tools/table_manager/table_item_parser.rb +66 -0
  254. data/lib/openc3/tools/table_manager/table_manager_core.rb +333 -0
  255. data/lib/openc3/tools/table_manager/table_parser.rb +93 -0
  256. data/lib/openc3/tools/test_runner/test.rb +67 -0
  257. data/lib/openc3/top_level.rb +595 -0
  258. data/lib/openc3/topics/autonomic_topic.rb +52 -0
  259. data/lib/openc3/topics/calendar_topic.rb +44 -0
  260. data/lib/openc3/topics/command_decom_topic.rb +76 -0
  261. data/lib/openc3/topics/command_topic.rb +83 -0
  262. data/lib/openc3/topics/config_topic.rb +68 -0
  263. data/lib/openc3/topics/interface_topic.rb +73 -0
  264. data/lib/openc3/topics/limits_event_topic.rb +109 -0
  265. data/lib/openc3/topics/notifications_topic.rb +28 -0
  266. data/lib/openc3/topics/router_topic.rb +85 -0
  267. data/lib/openc3/topics/telemetry_decom_topic.rb +54 -0
  268. data/lib/openc3/topics/telemetry_topic.rb +36 -0
  269. data/lib/openc3/topics/timeline_topic.rb +45 -0
  270. data/lib/openc3/topics/topic.rb +53 -0
  271. data/lib/openc3/utilities/authentication.rb +141 -0
  272. data/lib/openc3/utilities/authorization.rb +51 -0
  273. data/lib/openc3/utilities/crc.rb +278 -0
  274. data/lib/openc3/utilities/csv.rb +153 -0
  275. data/lib/openc3/utilities/logger.rb +187 -0
  276. data/lib/openc3/utilities/message_log.rb +91 -0
  277. data/lib/openc3/utilities/metric.rb +141 -0
  278. data/lib/openc3/utilities/process_manager.rb +139 -0
  279. data/lib/openc3/utilities/quaternion.rb +257 -0
  280. data/lib/openc3/utilities/ruby_lex_utils.rb +568 -0
  281. data/lib/openc3/utilities/s3.rb +202 -0
  282. data/lib/openc3/utilities/s3_autoload.rb +9 -0
  283. data/lib/openc3/utilities/s3_file_cache.rb +274 -0
  284. data/lib/openc3/utilities/simulated_target.rb +117 -0
  285. data/lib/openc3/utilities/sleeper.rb +51 -0
  286. data/lib/openc3/utilities/store.rb +23 -0
  287. data/lib/openc3/utilities/store_autoload.rb +237 -0
  288. data/lib/openc3/utilities/zip.rb +21 -0
  289. data/lib/openc3/utilities.rb +35 -0
  290. data/lib/openc3/version.rb +14 -0
  291. data/lib/openc3/win32/excel.rb +132 -0
  292. data/lib/openc3/win32/win32.rb +402 -0
  293. data/lib/openc3/win32/win32_main.rb +333 -0
  294. data/lib/openc3.rb +49 -0
  295. data/tasks/gemfile_stats.rake +113 -0
  296. data/tasks/spec.rake +30 -0
  297. data/templates/plugin-template/README.md +15 -0
  298. data/templates/plugin-template/Rakefile +12 -0
  299. data/templates/plugin-template/plugin.gemspec +23 -0
  300. data/templates/plugin-template/plugin.txt +9 -0
  301. data/templates/plugin-template/targets/TARGET/cmd_tlm/cmd.txt +8 -0
  302. data/templates/plugin-template/targets/TARGET/cmd_tlm/tlm.txt +8 -0
  303. data/templates/plugin-template/targets/TARGET/lib/target.rb +10 -0
  304. data/templates/plugin-template/targets/TARGET/procedures/procedure.rb +3 -0
  305. data/templates/plugin-template/targets/TARGET/screens/status.txt +9 -0
  306. data/templates/plugin-template/targets/TARGET/target.txt +5 -0
  307. metadata +849 -0
@@ -0,0 +1,94 @@
1
+ ---
2
+ REQUIRE:
3
+ summary: Requires a Ruby file
4
+ description:
5
+ Ruby files must be required to be available to call in other code.
6
+ Files are first required from the target's lib folder. If no file is found the
7
+ Ruby system path is checked which includes the base openc3/lib folder.
8
+ example: REQUIRE limits_response.rb
9
+ parameters:
10
+ - name: Filename
11
+ required: true
12
+ description: Filename to require. For files in the target's lib directory
13
+ simply supply the filename, e.g. "REQUIRE my_file". Files in the base OpenC3
14
+ lib directory also should just list the filename. If a file is in a folder
15
+ under the lib directory then you must specify the folder name, e.g. "REQUIRE
16
+ folder/my_file". The filename can also be an absolute path but this is not
17
+ common. Note the ".rb" extension is optional when specifying the filename.
18
+ values: .+
19
+ IGNORE_PARAMETER:
20
+ summary: Ignore the given command parameter
21
+ description:
22
+ Hint to other OpenC3 tools to hide or ignore this command parameter
23
+ when processing the command. For example, Command Sender and Command Sequence
24
+ will not display the parameter (by default) when showing the command and Script
25
+ Runner code completion will not display the parameter.
26
+ example: IGNORE_PARAMETER CCSDS_VERSION
27
+ parameters:
28
+ - name: Parameter Name
29
+ required: true
30
+ description:
31
+ The name of a command parameter. Note that this parameter will
32
+ be ignored in ALL the commands it appears in.
33
+ values: .+
34
+ IGNORE_ITEM:
35
+ summary: Ignore the given telemetry item
36
+ description: Hint to other OpenC3 tools to hide or ignore this telemetry item
37
+ when processing the telemetry. For example, Packet Viewer will not display the
38
+ item (by default) when showing the packet.
39
+ example: IGNORE_ITEM CCSDS_VERSION
40
+ parameters:
41
+ - name: Item name
42
+ required: true
43
+ description:
44
+ The name of a telemetry item. Note that this item will be ignored
45
+ in ALL the telemetry it appears in.
46
+ values: .+
47
+ COMMANDS:
48
+ summary: Process the given command definition file
49
+ description:
50
+ This keyword is used to explicitly add the command definition file
51
+ to the list of command and telemetry files to process.
52
+ warning: Usage of this keyword overrides automatic command and telemetry file
53
+ discovery. If this keyword is used, you must also use the TELEMETRY keyword
54
+ to specify the telemetry files to process.
55
+ example: |
56
+ COMMANDS inst_cmds_v2.txt
57
+ TELEMETRY inst_tlm_v2.txt
58
+ parameters:
59
+ - name: Filename
60
+ required: true
61
+ description: Name of a command definition file in the target's cmd_tlm directory, e.g. "cmd.txt".
62
+ values: '.*\.txt'
63
+ TELEMETRY:
64
+ summary: Process the given telemetry definition file
65
+ description: This keyword is used to explicitly add the telemetry definition
66
+ file to the list of command and telemetry files to process.
67
+ warning: Usage of this keyword overrides automatic command and telemetry file
68
+ discovery. If this keyword is used, you must also use the COMMAND keyword to
69
+ specify the command files to process.
70
+ example: |
71
+ COMMANDS inst_cmds_v2.txt
72
+ TELEMETRY inst_tlm_v2.txt
73
+ parameters:
74
+ - name: Filename
75
+ required: true
76
+ description: Name of a telemetry definition file in the target's cmd_tlm
77
+ directory, e.g. "tlm.txt".
78
+ values: '.*\.txt'
79
+ CMD_UNIQUE_ID_MODE:
80
+ summary: Command packet identifiers don't all share the same bit offset, size, and type
81
+ description:
82
+ Ideally all commands for a target are identified using the exact same bit offset, size,
83
+ and type field in each command. If ANY command identifiers differ then this flag must be set
84
+ to force a brute force identification method.
85
+ warning: Using this mode significantly slows packet identification
86
+ since: 4.4.0
87
+ TLM_UNIQUE_ID_MODE:
88
+ summary: Telemetry packets identifiers don't all share the same bit offset, size, and type
89
+ description:
90
+ Ideally all telemetry for a target are identified using the exact same bit offset, size,
91
+ and type field in each packet. If ANY telemetry identifiers differ then this flag must be set
92
+ to force a brute force identification method.
93
+ warning: Using this mode significantly slows packet identification
94
+ since: 4.4.0
@@ -0,0 +1,87 @@
1
+ ---
2
+ TELEMETRY:
3
+ # Prevent prettier from removing the newline after modifiers:
4
+ # prettier-ignore
5
+ modifiers:
6
+ <%= MetaConfigParser.load('telemetry_modifiers.yaml').to_meta_config_yaml(4) %>
7
+ summary: Defines a new telemetry packet
8
+ example: TELEMETRY SYSTEM LIMITS_CHANGE BIG_ENDIAN "OpenC3 limits change"
9
+ parameters:
10
+ - name: Target
11
+ required: true
12
+ description: Name of the target this telemetry packet is associated with
13
+ values: .+
14
+ - name: Command
15
+ required: true
16
+ description:
17
+ Name of this telemetry packet. Also referred to as its mnemonic.
18
+ Must be unique to telemetry packets in this target. Ideally will be as short and clear as possible.
19
+ values: \D\S*
20
+ - name: Endianness
21
+ required: true
22
+ description: Indicates if the data in this packet is in Big Endian or Little Endian format
23
+ values: ["BIG_ENDIAN", "LITTLE_ENDIAN"]
24
+ - name: Description
25
+ required: false
26
+ description: Description of this telemetry packet which must be enclosed with quotes
27
+ values: '[''"].*[''"]'
28
+ SELECT_TELEMETRY:
29
+ # prettier-ignore
30
+ modifiers:
31
+ <%= MetaConfigParser.load('telemetry_modifiers.yaml').to_meta_config_yaml(4) %>
32
+ summary: Selects an existing telemetry packet for editing
33
+ description:
34
+ Typically used in a separate configuration file from where the original
35
+ telemetry is defined to override or add to the existing telemetry definition
36
+ example: SELECT_TELEMETRY SYSTEM LIMITS_CHANGE
37
+ parameters:
38
+ - name: Target Name
39
+ required: true
40
+ description: Name of the target this telemetry packet is associated with
41
+ values: .+
42
+ - name: Command Name
43
+ required: true
44
+ description: Name of the telemetry packet to select
45
+ values: .+
46
+ LIMITS_GROUP:
47
+ summary: Defines a group of related limits Items
48
+ description:
49
+ Limits groups contain telemetry items that can be enabled and disabled together.
50
+ It can be used to group related limits as a subsystem that can be enabled or disabled
51
+ as that particular subsystem is powered (for example). To enable a group call the
52
+ enable_limits_group("NAME") method in Script Runner. To disable a group call the
53
+ disable_limits_group("NAME") in Script Runner. Items can belong to multiple groups
54
+ but the last enabled or disabled group "wins". For example, if an item belongs to
55
+ GROUP1 and GROUP2 and you first enable GROUP1 and then disable GROUP2 the item will
56
+ be disabled. If you then enable GROUP1 again it will be enabled.
57
+ parameters:
58
+ - name: Group Name
59
+ required: true
60
+ description: Name of the limits group
61
+ values: .+
62
+ LIMITS_GROUP_ITEM:
63
+ summary: Adds the specified telemetry item to the last defined LIMITS_GROUP
64
+ description:
65
+ Limits group information is typically kept in a separate configuration
66
+ file in the config/TARGET/cmd_tlm folder named limits_groups.txt. If you want to
67
+ configure multiple target items in a particular group you should put this information
68
+ in the config/SYSTEM/cmd_tlm/limits_groups.txt file. The SYSTEM target is processed
69
+ last and contains information that crosses target boundaries.
70
+ example: |
71
+ LIMITS_GROUP SUBSYSTEM
72
+ LIMITS_GROUP_ITEM INST HEALTH_STATUS TEMP1
73
+ LIMITS_GROUP_ITEM INST HEALTH_STATUS TEMP2
74
+ LIMITS_GROUP_ITEM INST HEALTH_STATUS TEMP3
75
+ parameters:
76
+ - name: Target Name
77
+ required: true
78
+ description: Name of the target
79
+ values: .+
80
+ - name: Packet Name
81
+ required: true
82
+ description: Name of the packet
83
+ values: .+
84
+ - name: Item Name
85
+ required: true
86
+ description: Name of the telemetry item to add to the group
87
+ values: .+
@@ -0,0 +1,159 @@
1
+ ---
2
+ ITEM:
3
+ modifiers:
4
+ <%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
5
+ summary: Defines a telemetry item in the current telemetry packet
6
+ example: |
7
+ ITEM PKTID 112 16 UINT "Packet ID"
8
+ ITEM DATA 0 0 DERIVED "Derived data"
9
+ parameters:
10
+ - name: Name
11
+ required: true
12
+ description: Name of the telemety item. Must be unique within the packet.
13
+ values: '\D\S*'
14
+ - name: Bit Offset
15
+ required: true
16
+ description: Bit offset into the telemetry packet of the Most Significant Bit of this item.
17
+ May be negative to indicate on offset from the end of the packet.
18
+ Always use a bit offset of 0 for derived item.
19
+ values: '[-]?\d+'
20
+ <%= MetaConfigParser.load('_items.yaml').to_meta_config_yaml(4) %>
21
+ APPEND_ITEM:
22
+ modifiers:
23
+ <%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
24
+ summary: Defines a telemetry item in the current telemetry packet
25
+ example: APPEND_ITEM PKTID 16 UINT "Packet ID"
26
+ parameters:
27
+ - name: Name
28
+ required: true
29
+ description: Name of the telemety item. Must be unique within the packet.
30
+ values: \'
31
+ <%= MetaConfigParser.load('_items.yaml').to_meta_config_yaml(4) %>
32
+ ID_ITEM:
33
+ modifiers:
34
+ <%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
35
+ summary: Defines a telemetry item in the current telemetry packet.
36
+ Note, packets defined without one or more ID_ITEMs are "catch-all" packets which
37
+ will match all incoming data. Normally this is the job of the UNKNOWN packet.
38
+ example: ID_ITEM PKTID 112 16 UINT 1 "Packet ID which must be 1"
39
+ parameters:
40
+ - name: Name
41
+ required: true
42
+ description: Name of the telemety item. Must be unique within the packet.
43
+ values: '\D\S*'
44
+ - name: Bit Offset
45
+ required: true
46
+ description: Bit offset into the telemetry packet of the Most Significant Bit of this item.
47
+ May be negative to indicate on offset from the end of the packet.
48
+ Always use a bit offset of 0 for derived item.
49
+ values: '[-]?\d+'
50
+ <%= MetaConfigParser.load('_id_items.yaml').to_meta_config_yaml(4) %>
51
+ APPEND_ID_ITEM:
52
+ modifiers:
53
+ <%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
54
+ summary: Defines a telemetry item in the current telemetry packet
55
+ example: APPEND_ID_ITEM PKTID 16 UINT 1 "Packet ID which must be 1"
56
+ parameters:
57
+ - name: Name
58
+ required: true
59
+ description: Name of the telemety item. Must be unique within the packet.
60
+ values: \'
61
+ <%= MetaConfigParser.load('_id_items.yaml').to_meta_config_yaml(4) %>
62
+ ARRAY_ITEM:
63
+ modifiers:
64
+ <%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
65
+ summary: Defines a telemetry item in the current telemetry packet that is an array
66
+ example: ARRAY_ITEM ARRAY 64 32 FLOAT 320 "Array of 10 floats"
67
+ parameters:
68
+ - name: Name
69
+ required: true
70
+ description: Name of the telemety item. Must be unique within the packet.
71
+ values: '\D\S*'
72
+ - name: Bit Offset
73
+ required: true
74
+ description: Bit offset into the telemetry packet of the Most Significant Bit of this item.
75
+ May be negative to indicate on offset from the end of the packet.
76
+ Always use a bit offset of 0 for derived item.
77
+ values: '[-]?\d+'
78
+ <%= MetaConfigParser.load('_array_params.yaml').to_meta_config_yaml(4) %>
79
+ APPEND_ARRAY_ITEM:
80
+ modifiers:
81
+ <%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
82
+ summary: Defines a telemetry item in the current telemetry packet that is an array
83
+ example: APPEND_ARRAY_ITEM ARRAY 32 FLOAT 320 "Array of 10 floats"
84
+ parameters:
85
+ - name: Name
86
+ required: true
87
+ description: Name of the telemety item. Must be unique within the packet.
88
+ values: \'
89
+ <%= MetaConfigParser.load('_array_params.yaml').to_meta_config_yaml(4) %>
90
+ SELECT_ITEM:
91
+ modifiers:
92
+ <%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
93
+ summary: Selects an existing telemetry item for editing
94
+ example: |
95
+ SELECT_TELEMETRY SYSTEM LIMITS_CHANGE
96
+ SELECT_ITEM ITEM
97
+ parameters:
98
+ - name: Item
99
+ required: true
100
+ description: Name of the item to select for modification
101
+ values: .+
102
+ DELETE_ITEM:
103
+ summary: Delete an existing telemetry item from the packet definition
104
+ description: Deleting an item from the packet definition does not remove the
105
+ defined space for that item. Thus unless you redefine a new item, there
106
+ will be a "hole" in the packet where the data is not accessible. You can
107
+ use SELECT_TELEMETRY and then ITEM to define a new item.
108
+ example: |
109
+ SELECT_TELEMETRY SYSTEM LIMITS_CHANGE
110
+ DELETE_ITEM ITEM
111
+ since: 4.4.1
112
+ parameters:
113
+ - name: Item
114
+ required: true
115
+ description: Name of the item to delete
116
+ values: .+
117
+ META:
118
+ summary: Stores metadata for the current telemetry packet
119
+ description: Meta data is user specific data that can be used by custom tools
120
+ for various purposes. One example is to store additional information needed
121
+ to generate source code header files.
122
+ example: META FSW_TYPE "struct tlm_packet"
123
+ parameters:
124
+ - name: Meta Name
125
+ required: true
126
+ description: Name of the metadata to store
127
+ values: .*
128
+ - name: Meta Values
129
+ required: false
130
+ description: One or more values to be stored for this Meta Name
131
+ values: .*
132
+ PROCESSOR:
133
+ summary: Defines a processor class that executes code every time a packet is received
134
+ example: PROCESSOR TEMP1HIGH watermark_processor.rb TEMP1
135
+ parameters:
136
+ - name: Processor Name
137
+ required: true
138
+ description: The name of the processor
139
+ values: .+
140
+ - name: Processor Class Filename
141
+ required: true
142
+ description: Name of the Ruby file which implements the processor.
143
+ This file should be in the config/TARGET/lib directory so it can be found by OpenC3.
144
+ values: '.+\.rb'
145
+ - name: Processor Specific Options
146
+ required: false
147
+ description: Variable length number of options that will be passed to the class constructor.
148
+ values: .+
149
+ ALLOW_SHORT:
150
+ summary: Process telemetry packets which are less than their defined length
151
+ description: Allows the telemetry packet to be received with a data portion that
152
+ is smaller than the defined size without warnings. Any extra space in the packet
153
+ will be filled in with zeros by OpenC3.
154
+ HIDDEN:
155
+ summary: Hides this telemetry packet from all the OpenC3 tools
156
+ description: This packet will not appear in Packet Viewer, Telemetry Grapher and Handbook Creator.
157
+ It also hides this telemetry from appearing in the Script Runner popup helper
158
+ when writing scripts. The telemetry still exists in the system and can received
159
+ and checked by scripts.
@@ -0,0 +1,63 @@
1
+ ---
2
+ TOOL:
3
+ summary: Define a tool
4
+ example: TOOL DEMO Demo
5
+ description: Defines a tool that the plugin adds to the OpenC3 system. Tools are web based applications that make use of the Single-SPA javascript library that allows them to by dynamically added to the running system as independent frontend microservices.
6
+ parameters:
7
+ - name: Tool Folder Name
8
+ description: The exact name of the tool folder in the plugin. ie. tools/<Tool Folder Name>
9
+ required: true
10
+ values: .+
11
+ - name: Tool Name
12
+ description: Name of the tool that is displayed in the OpenC3 Navigation menu
13
+ required: true
14
+ values: .+
15
+ modifiers:
16
+ URL:
17
+ summary: Url used to access the tool
18
+ description: The relative url used to access the tool. Defaults to "/tools/<Tool Folder Name>".
19
+ parameters:
20
+ - name: Url
21
+ required: true
22
+ description: The url. If not given defaults to tools/<Tool Folder Name>. Generally should not be given unless linking to external tools.
23
+ values: .+
24
+ INLINE_URL:
25
+ summary: Internal url to load a tool
26
+ description: The url of the javascript file used to load the tool into single-SPA. Defaults to "js/app.js".
27
+ parameters:
28
+ - name: Url
29
+ required: true
30
+ description: The inline url. If not given defaults to js/app.js. Generally should not be given unless using a non-standard filename.
31
+ values: .+
32
+ WINDOW:
33
+ summary: How to display the tool when navigated to
34
+ description: The window mode used to display the tool. INLINE opens the tool internally without refreshing the page using the Single-SPA framework. IFRAME opens external tools in an Iframe within OpenC3. NEW opens the tool in a new TAB.
35
+ parameters:
36
+ - name: Window Mode
37
+ required: true
38
+ description: Tool display mode
39
+ values: ["INLINE", "IFRAME", "NEW"]
40
+ ICON:
41
+ summary: Set tool icon
42
+ description: Icon shown next to the tool name in the OpenC3 navigation menu.
43
+ parameters:
44
+ - name: Icon Name
45
+ required: true
46
+ description: Icon to display next to the tool name. Icons come from Font Awesome, Material Design (https://materialdesignicons.com/), and Astro.
47
+ values: .+
48
+ CATEGORY:
49
+ summary: Category for the tool
50
+ description: Associates the tool with a category. In a future release this will be able to organize tools into submenus in the Navigation menu.
51
+ parameters:
52
+ - name: Category Name
53
+ required: true
54
+ description: Category to associate the tool with
55
+ values: .+
56
+ SHOWN:
57
+ summary: Show the tool or not
58
+ description: Whether or not the tool is shown in the Navigation menu. Should generally be true, except for the openc3 base tool.
59
+ parameters:
60
+ - name: Shown
61
+ required: true
62
+ description: Whether or not the tool is shown. TRUE or FALSE
63
+ values: ["true", "false"]
@@ -0,0 +1,3 @@
1
+ ---
2
+ UNKNOWN:
3
+ summary: Unknown keyword selected