cosmos 4.2.4 → 4.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (458) hide show
  1. checksums.yaml +5 -5
  2. data/.dockerignore +2 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +30 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
  5. data/.github/ISSUE_TEMPLATE/help---usage---general-question.md +12 -0
  6. data/.gitignore +2 -0
  7. data/.travis.yml +6 -6
  8. data/Dockerfile +69 -0
  9. data/Gemfile +1 -1
  10. data/Manifest.txt +130 -46
  11. data/README.md +9 -0
  12. data/Rakefile +57 -0
  13. data/appveyor.yml +18 -7
  14. data/autohotkey/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
  15. data/autohotkey/config/targets/INST/cmd_tlm/inst_tlm.txt +5 -5
  16. data/autohotkey/config/targets/INST/lib/sim_inst.rb +3 -1
  17. data/autohotkey/config/tools/cmd_sequence/cmd_sequence.txt +2 -0
  18. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  19. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  20. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  21. data/autohotkey/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  22. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  23. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  24. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  25. data/autohotkey/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  26. data/autohotkey/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  27. data/autohotkey/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  28. data/autohotkey/config/tools/table_manager/ConfigTables_def.txt +2 -4
  29. data/autohotkey/config/tools/table_manager/SubTables/OneDimensionalSubTable_def.txt +31 -0
  30. data/autohotkey/config/tools/table_manager/SubTables/TwoDimensionalSubTable_def.txt +28 -0
  31. data/autohotkey/config/tools/test_runner/test_runner.txt +1 -1
  32. data/autohotkey/config/tools/test_runner/test_runner2.txt +1 -1
  33. data/autohotkey/config/tools/test_runner/test_runner3.txt +1 -1
  34. data/autohotkey/config/tools/test_runner/test_runner4.txt +1 -1
  35. data/autohotkey/lib/cmd_sequence_exporter.rb +52 -0
  36. data/autohotkey/procedures/collect.rb +2 -2
  37. data/autohotkey/procedures/collect_util.rb +1 -1
  38. data/autohotkey/procedures/script_test.rb +1 -1
  39. data/autohotkey/tools/CmdSenderAHK2 +18 -0
  40. data/autohotkey/tools/cmd_sender.ahk +34 -6
  41. data/autohotkey/tools/cmd_sender2.ahk +4 -0
  42. data/autohotkey/tools/cmd_sequence.ahk +36 -22
  43. data/autohotkey/tools/cmd_sequence2.ahk +1 -1
  44. data/autohotkey/tools/config_editor.ahk +5 -5
  45. data/autohotkey/tools/launcher.ahk +1 -0
  46. data/autohotkey/tools/limits_monitor.ahk +1 -1
  47. data/autohotkey/tools/packet_viewer.ahk +7 -6
  48. data/autohotkey/tools/script_runner.ahk +16 -4
  49. data/autohotkey/tools/test_runner.ahk +8 -8
  50. data/bin/cosmos +38 -1
  51. data/bin/cstol_converter +1 -1
  52. data/bin/dart_util +0 -0
  53. data/bin/rubysloc +73 -28
  54. data/bin/xtce_converter +1 -1
  55. data/cosmos.gemspec +7 -9
  56. data/data/config/_interfaces.yaml +4 -0
  57. data/data/config/cmd_sequence.yaml +14 -0
  58. data/data/config/command_modifiers.yaml +16 -1
  59. data/data/config/housekeeping_params.yaml +14 -0
  60. data/data/config/interface_modifiers.yaml +14 -2
  61. data/data/config/item_modifiers.yaml +11 -1
  62. data/data/config/launcher.yaml +12 -2
  63. data/data/config/param_item_modifiers.yaml +7 -2
  64. data/data/config/parameter_modifiers.yaml +20 -0
  65. data/data/config/screen.yaml +2 -0
  66. data/data/config/script_runner.yaml +9 -0
  67. data/data/config/system.yaml +152 -28
  68. data/data/config/table_manager.yaml +7 -0
  69. data/data/config/target.yaml +12 -0
  70. data/data/config/telemetry_modifiers.yaml +19 -2
  71. data/data/config/test_runner.yaml +10 -9
  72. data/data/config/widgets.yaml +174 -11
  73. data/data/crc.txt +428 -415
  74. data/demo/Gemfile +1 -1
  75. data/demo/Launcher.bat +1 -9
  76. data/demo/Launcher2.bat +1 -0
  77. data/demo/LauncherMini.bat +1 -0
  78. data/demo/Rakefile +2 -0
  79. data/demo/config/dart/Gemfile +2 -7
  80. data/demo/config/data/crc.txt +243 -219
  81. data/demo/config/system/system.txt +42 -3
  82. data/demo/config/system/system2.txt +34 -5
  83. data/demo/config/system/system_alt_ports.txt +80 -0
  84. data/demo/config/targets/EXAMPLE/cmd_tlm_server.txt +1 -0
  85. data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +5 -4
  86. data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +12 -7
  87. data/demo/config/targets/INST/cmd_tlm/inst_tlm_override.txt +12 -0
  88. data/demo/config/targets/INST/cmd_tlm_server.txt +2 -0
  89. data/demo/config/targets/INST/lib/sim_inst.rb +15 -3
  90. data/demo/config/targets/INST/screens/adcs.txt +2 -2
  91. data/demo/config/targets/INST/screens/block.txt +1 -1
  92. data/demo/config/targets/INST/screens/commanding.txt +1 -1
  93. data/demo/config/targets/INST/screens/ground.txt +27 -5
  94. data/demo/config/targets/INST/screens/ground_error.gif +0 -0
  95. data/demo/config/{data/groundoff.gif → targets/INST/screens/ground_off.gif} +0 -0
  96. data/demo/config/{data/groundon.gif → targets/INST/screens/ground_on.gif} +0 -0
  97. data/demo/config/targets/INST/screens/limits.txt +69 -31
  98. data/demo/config/targets/INST/screens/other.txt +13 -3
  99. data/demo/config/targets/INST/screens/params.txt +54 -0
  100. data/demo/config/targets/INST/screens/satellite.gif +0 -0
  101. data/demo/config/targets/INST/target.txt +1 -0
  102. data/demo/config/tools/cmd_tlm_server/cmd_tlm_server_chain.txt +18 -0
  103. data/demo/config/tools/data_viewer/data_viewer.txt +3 -0
  104. data/demo/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  105. data/demo/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  106. data/demo/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  107. data/demo/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  108. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  109. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  110. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  111. data/demo/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  112. data/demo/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
  113. data/demo/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
  114. data/demo/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
  115. data/demo/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  116. data/demo/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  117. data/demo/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
  118. data/demo/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
  119. data/demo/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
  120. data/demo/config/tools/handbook_creator/default_toc.xsl +59 -59
  121. data/demo/config/tools/script_runner/script_runner.txt +1 -2
  122. data/demo/config/tools/test_runner/test_runner.txt +3 -1
  123. data/demo/lib/example_background_task.rb +1 -0
  124. data/demo/procedures/cosmos_api_test.rb +26 -22
  125. data/demo/procedures/interactive.rb +22 -0
  126. data/demo/procedures/local_screen_example.rb +51 -0
  127. data/ext/cosmos/ext/cosmos_io/cosmos_io.c +32 -4
  128. data/ext/cosmos/ext/packet/packet.c +6 -77
  129. data/ext/mkrf_conf.rb +2 -2
  130. data/extensions/vscode/.gitignore +4 -0
  131. data/extensions/vscode/.vscode/launch.json +32 -0
  132. data/extensions/vscode/.vscode/settings.json +13 -0
  133. data/extensions/vscode/.vscode/tasks.json +79 -0
  134. data/extensions/vscode/License.txt +879 -0
  135. data/extensions/vscode/README.md +9 -0
  136. data/extensions/vscode/client/License.txt +879 -0
  137. data/extensions/vscode/client/README.md +39 -0
  138. data/extensions/vscode/client/cosmos.configuration.json +23 -0
  139. data/extensions/vscode/client/images/icon.png +0 -0
  140. data/extensions/vscode/client/package-lock.json +414 -0
  141. data/extensions/vscode/client/package.json +105 -0
  142. data/extensions/vscode/client/src/extension.ts +132 -0
  143. data/extensions/vscode/client/src/screen_preview.rb +25 -0
  144. data/extensions/vscode/client/syntaxes/cosmos.tmLanguage.json +219 -0
  145. data/extensions/vscode/client/tsconfig.json +17 -0
  146. data/extensions/vscode/package-lock.json +26 -0
  147. data/extensions/vscode/package.json +35 -0
  148. data/extensions/vscode/server/License.txt +879 -0
  149. data/extensions/vscode/server/package-lock.json +236 -0
  150. data/extensions/vscode/server/package.json +29 -0
  151. data/extensions/vscode/server/src/server.ts +59 -0
  152. data/extensions/vscode/server/tsconfig.json +16 -0
  153. data/install/Gemfile +1 -1
  154. data/install/Launcher.bat +1 -9
  155. data/install/config/dart/Gemfile +3 -8
  156. data/install/config/data/crc.txt +148 -132
  157. data/install/config/system/system.txt +36 -3
  158. data/install/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  159. data/install/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  160. data/install/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  161. data/install/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  162. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  163. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  164. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  165. data/install/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  166. data/install/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
  167. data/install/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
  168. data/install/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
  169. data/install/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  170. data/install/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  171. data/install/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
  172. data/install/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
  173. data/install/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
  174. data/install/config/tools/handbook_creator/default_toc.xsl +59 -59
  175. data/lib/cosmos/config/config_parser.rb +4 -5
  176. data/lib/cosmos/conversions.rb +2 -0
  177. data/lib/cosmos/conversions/packet_time_formatted_conversion.rb +38 -0
  178. data/lib/cosmos/conversions/packet_time_seconds_conversion.rb +38 -0
  179. data/lib/cosmos/core_ext/cosmos_io.rb +2 -1
  180. data/lib/cosmos/core_ext/time.rb +3 -1
  181. data/lib/cosmos/dart/config/boot.rb +1 -1
  182. data/lib/cosmos/dart/config/database.yml +2 -0
  183. data/lib/cosmos/dart/examples/dart_decom_client.rb +1 -1
  184. data/lib/cosmos/dart/examples/dart_stream_client.rb +6 -2
  185. data/lib/cosmos/dart/lib/dart_common.rb +13 -6
  186. data/lib/cosmos/dart/lib/dart_constants.rb +15 -0
  187. data/lib/cosmos/dart/lib/dart_database_cleaner.rb +2 -2
  188. data/lib/cosmos/dart/lib/dart_decom_query.rb +5 -6
  189. data/lib/cosmos/dart/lib/dart_decommutator.rb +64 -54
  190. data/lib/cosmos/dart/lib/dart_importer.rb +3 -3
  191. data/lib/cosmos/dart/lib/dart_master_query.rb +71 -0
  192. data/lib/cosmos/dart/lib/dart_packet_log_writer.rb +2 -2
  193. data/lib/cosmos/dart/lib/dart_reducer_worker_thread.rb +165 -134
  194. data/lib/cosmos/dart/processes/dart.rb +4 -2
  195. data/lib/cosmos/dart/processes/dart_decom_server.rb +3 -3
  196. data/lib/cosmos/dart/processes/dart_ingester.rb +40 -1
  197. data/lib/cosmos/dart/processes/dart_master.rb +44 -0
  198. data/lib/cosmos/dart/processes/dart_util.rb +119 -4
  199. data/lib/cosmos/dart/spec/dart/dart_reducer_manager_spec.rb +3 -3
  200. data/lib/cosmos/gui/dialogs/cmd_tlm_raw_dialog.rb +9 -5
  201. data/lib/cosmos/gui/dialogs/details_dialog.rb +44 -29
  202. data/lib/cosmos/gui/dialogs/exception_list_dialog.rb +1 -1
  203. data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +3 -3
  204. data/lib/cosmos/gui/dialogs/interface_raw_dialog.rb +2 -2
  205. data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +1 -1
  206. data/lib/cosmos/gui/dialogs/tlm_details_dialog.rb +11 -10
  207. data/lib/cosmos/gui/dialogs/tlm_graph_dialog.rb +4 -2
  208. data/lib/cosmos/gui/opengl/earth_model.rb +1 -1
  209. data/lib/cosmos/gui/qt.rb +13 -2
  210. data/lib/cosmos/gui/qt_tool.rb +71 -43
  211. data/lib/cosmos/gui/text/ruby_editor.rb +91 -49
  212. data/lib/cosmos/gui/utilities/classification_banner.rb +60 -0
  213. data/lib/cosmos/gui/utilities/screenshot.rb +1 -1
  214. data/lib/cosmos/gui/utilities/script_module_gui.rb +117 -91
  215. data/lib/cosmos/gui/widgets/dart_meta_frame.rb +22 -3
  216. data/lib/cosmos/interfaces.rb +2 -0
  217. data/lib/cosmos/interfaces/dart_status_interface.rb +1 -1
  218. data/lib/cosmos/interfaces/interface.rb +9 -1
  219. data/lib/cosmos/interfaces/linc_interface.rb +3 -3
  220. data/lib/cosmos/interfaces/protocols/burst_protocol.rb +1 -1
  221. data/lib/cosmos/interfaces/protocols/crc_protocol.rb +1 -1
  222. data/lib/cosmos/interfaces/protocols/fixed_protocol.rb +40 -18
  223. data/lib/cosmos/interfaces/protocols/ignore_packet_protocol.rb +46 -0
  224. data/lib/cosmos/interfaces/protocols/length_protocol.rb +5 -0
  225. data/lib/cosmos/interfaces/protocols/preidentified_protocol.rb +68 -23
  226. data/lib/cosmos/interfaces/protocols/template_protocol.rb +9 -4
  227. data/lib/cosmos/interfaces/serial_interface.rb +7 -1
  228. data/lib/cosmos/interfaces/simulated_target_interface.rb +14 -5
  229. data/lib/cosmos/interfaces/stream_interface.rb +1 -1
  230. data/lib/cosmos/interfaces/tcpip_server_interface.rb +13 -13
  231. data/lib/cosmos/io/json_drb.rb +16 -12
  232. data/lib/cosmos/io/json_drb_object.rb +7 -2
  233. data/lib/cosmos/io/json_drb_rack.rb +25 -5
  234. data/lib/cosmos/io/json_rpc.rb +1 -1
  235. data/lib/cosmos/io/posix_serial_driver.rb +60 -22
  236. data/lib/cosmos/io/serial_driver.rb +11 -8
  237. data/lib/cosmos/io/win32_serial_driver.rb +31 -3
  238. data/lib/cosmos/packet_logs/packet_log_reader.rb +71 -28
  239. data/lib/cosmos/packet_logs/packet_log_writer.rb +13 -1
  240. data/lib/cosmos/packets/commands.rb +30 -9
  241. data/lib/cosmos/packets/packet.rb +105 -34
  242. data/lib/cosmos/packets/packet_config.rb +60 -10
  243. data/lib/cosmos/packets/parsers/format_string_parser.rb +0 -1
  244. data/lib/cosmos/packets/parsers/state_parser.rb +0 -1
  245. data/lib/cosmos/packets/parsers/xtce_converter.rb +2 -0
  246. data/lib/cosmos/packets/parsers/xtce_parser.rb +5 -4
  247. data/lib/cosmos/packets/structure.rb +32 -4
  248. data/lib/cosmos/packets/structure_item.rb +5 -1
  249. data/lib/cosmos/packets/telemetry.rb +30 -4
  250. data/lib/cosmos/script/api_shared.rb +22 -10
  251. data/lib/cosmos/script/extract.rb +1 -1
  252. data/lib/cosmos/script/limits.rb +4 -0
  253. data/lib/cosmos/script/script.rb +29 -20
  254. data/lib/cosmos/script/scripting.rb +16 -14
  255. data/lib/cosmos/script/telemetry.rb +3 -1
  256. data/lib/cosmos/script/tools.rb +18 -8
  257. data/lib/cosmos/streams/serial_stream.rb +11 -6
  258. data/lib/cosmos/system/system.rb +214 -76
  259. data/lib/cosmos/system/target.rb +39 -9
  260. data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +116 -55
  261. data/lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb +15 -0
  262. data/lib/cosmos/tools/cmd_sender/cmd_params.rb +382 -0
  263. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +54 -340
  264. data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +74 -52
  265. data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +40 -333
  266. data/lib/cosmos/tools/cmd_sequence/sequence_list.rb +16 -11
  267. data/lib/cosmos/tools/cmd_tlm_server/api.rb +13 -0
  268. data/lib/cosmos/tools/cmd_tlm_server/background_tasks.rb +2 -0
  269. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +44 -15
  270. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_config.rb +8 -1
  271. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +18 -20
  272. data/lib/cosmos/tools/cmd_tlm_server/commanding.rb +13 -2
  273. data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +2 -2
  274. data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +13 -13
  275. data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +9 -6
  276. data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +8 -8
  277. data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +5 -5
  278. data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +35 -20
  279. data/lib/cosmos/tools/cmd_tlm_server/replay_backend.rb +15 -11
  280. data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +5 -0
  281. data/lib/cosmos/tools/cmd_tlm_server/routers.rb +2 -0
  282. data/lib/cosmos/tools/config_editor/config_editor.rb +181 -94
  283. data/lib/cosmos/tools/config_editor/config_editor_frame.rb +10 -9
  284. data/lib/cosmos/tools/config_editor/system_config_dialog.rb +158 -0
  285. data/lib/cosmos/tools/data_viewer/data_viewer.rb +57 -47
  286. data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +1 -0
  287. data/lib/cosmos/tools/data_viewer/dump_component.rb +3 -9
  288. data/lib/cosmos/tools/data_viewer/text_component.rb +77 -0
  289. data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +68 -42
  290. data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +1 -1
  291. data/lib/cosmos/tools/launcher/launcher.rb +2 -1
  292. data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +59 -41
  293. data/lib/cosmos/tools/opengl_builder/opengl_builder.rb +42 -42
  294. data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +64 -59
  295. data/lib/cosmos/tools/script_runner/script_runner.rb +198 -123
  296. data/lib/cosmos/tools/script_runner/script_runner_config.rb +14 -0
  297. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +87 -35
  298. data/lib/cosmos/tools/table_manager/table_config.rb +5 -3
  299. data/lib/cosmos/tools/table_manager/table_manager.rb +48 -45
  300. data/lib/cosmos/tools/test_runner/test.rb +5 -2
  301. data/lib/cosmos/tools/test_runner/test_runner.rb +61 -38
  302. data/lib/cosmos/tools/test_runner/test_runner_chooser.rb +24 -12
  303. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +48 -48
  304. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +5 -8
  305. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +20 -16
  306. data/lib/cosmos/tools/tlm_grapher/data_object_adders/xy_data_object_adder.rb +3 -3
  307. data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +7 -7
  308. data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +10 -10
  309. data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +10 -3
  310. data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +6 -6
  311. data/lib/cosmos/tools/tlm_grapher/tabbed_plots/overview_tabbed_plots.rb +14 -14
  312. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +21 -17
  313. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb +5 -8
  314. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +94 -91
  315. data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +27 -26
  316. data/lib/cosmos/tools/tlm_viewer/screen.rb +76 -14
  317. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +51 -34
  318. data/lib/cosmos/tools/tlm_viewer/widgets.rb +3 -0
  319. data/lib/cosmos/tools/tlm_viewer/widgets/aging_widget.rb +4 -5
  320. data/lib/cosmos/tools/tlm_viewer/widgets/array_widget.rb +3 -4
  321. data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +4 -5
  322. data/lib/cosmos/tools/tlm_viewer/widgets/canvas_clickable.rb +16 -2
  323. data/lib/cosmos/tools/tlm_viewer/widgets/canvas_widget.rb +17 -3
  324. data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +1 -2
  325. data/lib/cosmos/tools/tlm_viewer/widgets/canvasellipse_widget.rb +40 -0
  326. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb +12 -7
  327. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb +79 -29
  328. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabel_widget.rb +1 -0
  329. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb +2 -1
  330. data/lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb +2 -0
  331. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb +4 -0
  332. data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +33 -25
  333. data/lib/cosmos/tools/tlm_viewer/widgets/checkbutton_widget.rb +5 -3
  334. data/lib/cosmos/tools/tlm_viewer/widgets/combobox_widget.rb +5 -3
  335. data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +1 -1
  336. data/lib/cosmos/tools/tlm_viewer/widgets/formatvalue_widget.rb +4 -7
  337. data/lib/cosmos/tools/tlm_viewer/widgets/horizontal_widget.rb +5 -5
  338. data/lib/cosmos/tools/tlm_viewer/widgets/horizontalbox_widget.rb +6 -7
  339. data/lib/cosmos/tools/tlm_viewer/widgets/horizontalline_widget.rb +2 -4
  340. data/lib/cosmos/tools/tlm_viewer/widgets/label_widget.rb +10 -8
  341. data/lib/cosmos/tools/tlm_viewer/widgets/labelformatvalue_widget.rb +2 -3
  342. data/lib/cosmos/tools/tlm_viewer/widgets/labelled_widget.rb +58 -0
  343. data/lib/cosmos/tools/tlm_viewer/widgets/labelprogressbar_widget.rb +3 -4
  344. data/lib/cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb +2 -4
  345. data/lib/cosmos/tools/tlm_viewer/widgets/labelvalue_widget.rb +2 -1
  346. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluedesc_widget.rb +3 -5
  347. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitsbar_widget.rb +2 -3
  348. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluelimitscolumn_widget.rb +2 -3
  349. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangebar_widget.rb +2 -3
  350. data/lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangecolumn_widget.rb +2 -3
  351. data/lib/cosmos/tools/tlm_viewer/widgets/layout_widget.rb +3 -5
  352. data/lib/cosmos/tools/tlm_viewer/widgets/led_widget.rb +108 -0
  353. data/lib/cosmos/tools/tlm_viewer/widgets/limits_widget.rb +60 -10
  354. data/lib/cosmos/tools/tlm_viewer/widgets/limitsbar_widget.rb +22 -8
  355. data/lib/cosmos/tools/tlm_viewer/widgets/limitscolor_widget.rb +19 -13
  356. data/lib/cosmos/tools/tlm_viewer/widgets/limitscolumn_widget.rb +22 -8
  357. data/lib/cosmos/tools/tlm_viewer/widgets/linegraph_widget.rb +2 -3
  358. data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +4 -3
  359. data/lib/cosmos/tools/tlm_viewer/widgets/multi_widget.rb +1 -3
  360. data/lib/cosmos/tools/tlm_viewer/widgets/progressbar_widget.rb +10 -5
  361. data/lib/cosmos/tools/tlm_viewer/widgets/radiobutton_widget.rb +7 -4
  362. data/lib/cosmos/tools/tlm_viewer/widgets/rangebar_widget.rb +4 -6
  363. data/lib/cosmos/tools/tlm_viewer/widgets/rangecolumn_widget.rb +3 -5
  364. data/lib/cosmos/tools/tlm_viewer/widgets/screenshotbutton_widget.rb +4 -3
  365. data/lib/cosmos/tools/tlm_viewer/widgets/scrollwindow_widget.rb +2 -3
  366. data/lib/cosmos/tools/tlm_viewer/widgets/sectionheader_widget.rb +2 -3
  367. data/lib/cosmos/tools/tlm_viewer/widgets/spacer_widget.rb +4 -6
  368. data/lib/cosmos/tools/tlm_viewer/widgets/tabbook_widget.rb +2 -3
  369. data/lib/cosmos/tools/tlm_viewer/widgets/tabitem_widget.rb +2 -3
  370. data/lib/cosmos/tools/tlm_viewer/widgets/textbox_widget.rb +13 -4
  371. data/lib/cosmos/tools/tlm_viewer/widgets/textfield_widget.rb +3 -4
  372. data/lib/cosmos/tools/tlm_viewer/widgets/timegraph_widget.rb +3 -8
  373. data/lib/cosmos/tools/tlm_viewer/widgets/title_widget.rb +6 -12
  374. data/lib/cosmos/tools/tlm_viewer/widgets/trendbar_widget.rb +5 -10
  375. data/lib/cosmos/tools/tlm_viewer/widgets/trendlimitsbar_widget.rb +5 -3
  376. data/lib/cosmos/tools/tlm_viewer/widgets/value_widget.rb +4 -4
  377. data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitsbar_widget.rb +2 -3
  378. data/lib/cosmos/tools/tlm_viewer/widgets/valuelimitscolumn_widget.rb +2 -3
  379. data/lib/cosmos/tools/tlm_viewer/widgets/valuerangebar_widget.rb +3 -4
  380. data/lib/cosmos/tools/tlm_viewer/widgets/valuerangecolumn_widget.rb +2 -3
  381. data/lib/cosmos/tools/tlm_viewer/widgets/vertical_widget.rb +8 -7
  382. data/lib/cosmos/tools/tlm_viewer/widgets/verticalbox_widget.rb +9 -7
  383. data/lib/cosmos/tools/tlm_viewer/widgets/widget.rb +60 -47
  384. data/lib/cosmos/top_level.rb +37 -13
  385. data/lib/cosmos/utilities/ruby_lex_utils.rb +34 -30
  386. data/lib/cosmos/version.rb +5 -5
  387. data/lib/cosmos/win32/excel.rb +81 -24
  388. data/make_gems.sh +10 -0
  389. data/run_gui_tests.bat +1 -0
  390. data/spec/conversions/packet_time_formatted_conversion_spec.rb +58 -0
  391. data/spec/conversions/packet_time_seconds_conversion_spec.rb +60 -0
  392. data/spec/core_ext/socket_spec.rb +1 -1
  393. data/spec/core_ext/time_spec.rb +4 -0
  394. data/spec/gui/utilities/script_module_gui_spec.rb +44 -63
  395. data/spec/install/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
  396. data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +5 -5
  397. data/spec/install/yaml_docs_spec.rb +132 -0
  398. data/spec/interfaces/linc_interface_spec.rb +1 -1
  399. data/spec/interfaces/protocols/fixed_protocol_spec.rb +20 -9
  400. data/spec/interfaces/protocols/ignore_packet_protocol_spec.rb +243 -0
  401. data/spec/interfaces/protocols/length_protocol_spec.rb +39 -0
  402. data/spec/interfaces/protocols/preidentified_protocol_spec.rb +227 -4
  403. data/spec/interfaces/protocols/template_protocol_spec.rb +78 -25
  404. data/spec/io/json_drb_rack_spec.rb +166 -0
  405. data/spec/io/json_drb_spec.rb +14 -0
  406. data/spec/io/json_rpc_spec.rb +4 -5
  407. data/spec/io/posix_serial_driver_spec.rb +81 -0
  408. data/spec/io/serial_driver_spec.rb +15 -13
  409. data/spec/io/win32_serial_driver_spec.rb +33 -3
  410. data/spec/packet_logs/packet_log_reader_spec.rb +106 -52
  411. data/spec/packets/commands_spec.rb +22 -0
  412. data/spec/packets/packet_config_spec.rb +29 -16
  413. data/spec/packets/packet_item_spec.rb +2 -2
  414. data/spec/packets/packet_spec.rb +39 -6
  415. data/spec/packets/parsers/format_string_parser_spec.rb +0 -11
  416. data/spec/packets/parsers/macro_parser_spec.rb +36 -36
  417. data/spec/packets/parsers/state_parser_spec.rb +69 -11
  418. data/spec/packets/structure_spec.rb +93 -2
  419. data/spec/packets/telemetry_spec.rb +63 -10
  420. data/spec/script/extract_spec.rb +4 -1
  421. data/spec/script/script_spec.rb +2 -3
  422. data/spec/script/scripting_spec.rb +2 -1
  423. data/spec/script/tools_spec.rb +0 -1
  424. data/spec/streams/tcpip_socket_stream_spec.rb +32 -27
  425. data/spec/system/system_spec.rb +187 -4
  426. data/spec/system/target_spec.rb +62 -1
  427. data/spec/tools/cmd_tlm_server/api_spec.rb +29 -21
  428. data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +15 -7
  429. data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +33 -0
  430. data/spec/tools/cmd_tlm_server/commanding_spec.rb +25 -1
  431. data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +15 -0
  432. data/spec/tools/cmd_tlm_server/router_thread_spec.rb +2 -3
  433. data/spec/top_level/top_level_spec.rb +29 -5
  434. data/spec/utilities/message_log_spec.rb +6 -3
  435. data/tasks/gemfile_stats.rake +38 -14
  436. data/test/performance/config/system/system.txt +0 -0
  437. data/test/performance/config/targets/PACKET/cmd_tlm/packet_tlm.txt +5 -5
  438. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap-theme.css +397 -0
  439. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap-theme.min.css +7 -0
  440. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap.css +7118 -0
  441. data/test/performance/config/tools/handbook_creator/assets/css/bootstrap.min.css +7 -0
  442. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  443. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  444. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  445. data/test/performance/config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  446. data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.bmp +0 -0
  447. data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.gif +0 -0
  448. data/test/performance/config/tools/handbook_creator/assets/img/ball_logo.jpg +0 -0
  449. data/test/performance/config/tools/handbook_creator/assets/js/bootstrap.js +2006 -0
  450. data/test/performance/config/tools/handbook_creator/assets/js/bootstrap.min.js +7 -0
  451. data/test/performance/config/tools/handbook_creator/assets/js/html5shiv.js +8 -0
  452. data/test/performance/config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js +6 -0
  453. data/test/performance/config/tools/handbook_creator/assets/js/respond.min.js +6 -0
  454. data/test/performance/config/tools/test_runner/test_runner.txt +1 -1
  455. data/test/performance/procedures/cosmos_api_test.rb +1 -1
  456. data/test/performance/tools/identify_performance.rb +82 -0
  457. metadata +154 -64
  458. data/lib/cosmos/dart/Gemfile +0 -69
@@ -69,3 +69,17 @@ SHOW_LIMITS_LINES:
69
69
  description: Whether to display the limits lines
70
70
  required: true
71
71
  values: ['TRUE','FALSE']
72
+ DART_REDUCTION:
73
+ summary: What kind of DART reduction to use for the data item
74
+ parameters:
75
+ - name: Reduction Time Period
76
+ description: DART reduces data over minute, hour, and day
77
+ required: true
78
+ values: ['NONE','MINUTE','HOUR','DAY']
79
+ DART_REDUCED_TYPE:
80
+ summary: What kind of DART reduction type to use for the data item
81
+ parameters:
82
+ - name: Reduction Type
83
+ description: DART calculates an average, minimum, maximum and standard deviation over the time period
84
+ required: true
85
+ values: ['AVG','MIN','MAX','STDDEV']
@@ -35,6 +35,17 @@ LOG:
35
35
  required: true
36
36
  description: Log writer name as defined by PACKET_LOG_WRITER
37
37
  values: \D\S*
38
+ LOG_STORED:
39
+ summary: Enable logging of stored telemetry on the interface by the specified log writer
40
+ description: LOG_STORED allows you to specify a different log writer for stored telemetry
41
+ (telemetry which has the 'stored' flag set in the packet). By default the stored telemetry
42
+ is intermingled in the normal log file.
43
+ warning: Choosing a custom log writer can prevent COSMOS from reading back your log files
44
+ parameters:
45
+ - name: Name
46
+ required: true
47
+ description: Log writer name as defined by PACKET_LOG_WRITER
48
+ values: \D\S*
38
49
  DONT_LOG:
39
50
  summary: Disable logging commands and telemetry on this interface
40
51
  LOG_RAW:
@@ -73,8 +84,9 @@ OPTION:
73
84
  - name: Name
74
85
  required: true
75
86
  description: The option to set. COSMOS defines several options on the core provided
76
- interfaces. The SerialInterface defines FLOW_CONTROL which can be NONE (default) or RTSCTS
77
- and DATA_BITS which changes the data bits of the serial interface.
87
+ interfaces. The SerialInterface defines FLOW_CONTROL which can be NONE (default) or RTSCTS,
88
+ STRUCT to directly set fields in the Windows DCB or POSIX structure and it defines
89
+ DATA_BITS which changes the data bits of the serial interface.
78
90
  The TcpipServerInterface defines LISTEN_ADDRESS which is the IP address to accept
79
91
  connections on (default 0.0.0.0) and AUTO_SYSTEM_META which will automatically send
80
92
  SYSTEM META when the interface connects (default false).
@@ -131,6 +131,15 @@ GENERIC_READ_CONVERSION_START:
131
131
  GENERIC_READ_CONVERSION_START
132
132
  value * 1.5 # Convert the value by a scale factor
133
133
  GENERIC_READ_CONVERSION_END
134
+ parameters:
135
+ - name: Converted Type
136
+ required: false
137
+ description: Type of the converted value
138
+ values: <%= %w(INT UINT FLOAT STRING BLOCK) %>
139
+ - name: Converted Bit Size
140
+ required: false
141
+ description: Bit size of converted value
142
+ values: \d+
134
143
  GENERIC_READ_CONVERSION_END:
135
144
  summary: Complete a generic read conversion
136
145
  LIMITS:
@@ -157,7 +166,8 @@ LIMITS:
157
166
  values: \d+
158
167
  - name: Initial State
159
168
  required: true
160
- description: Whether limits monitoring for this telemetry item is initially enabled or disabled
169
+ description: Whether limits monitoring for this telemetry item is initially enabled or disabled.
170
+ Note if you have multiple LIMITS items they should all have the same initial state.
161
171
  values: ['ENABLED', 'DISABLED']
162
172
  - name: Red Low Limit
163
173
  required: true
@@ -60,7 +60,10 @@ TOOL:
60
60
  required: true
61
61
  description: Command that is executed to launch the tool. (The same thing you
62
62
  would type at a command terminal). Note that you can include tool parameters
63
- here which will be applied when the tool starts.
63
+ here which will be applied when the tool starts. COSMOS defines three helper
64
+ keywords to execute tools - LAUNCH, LAUNCH_TERMINAL, and LAUNCH_GEM. LAUNCH
65
+ starts a GUI Ruby tool without a terminal. LAUNCH_TERMINAL starts a Ruby tool
66
+ with a terminal window. LAUNCH_GEM launches a Ruby tool distributed with a gem.
64
67
  values: .+
65
68
  - name: Icon Filename
66
69
  required: false
@@ -101,7 +104,10 @@ MULTITOOL_START:
101
104
  required: true
102
105
  description: Command that is executed to launch the tool. (The same thing you
103
106
  would type at a command terminal). Note that you can include tool parameters
104
- here which will be applied when the tool starts.
107
+ here which will be applied when the tool starts. COSMOS defines three helper
108
+ keywords to execute tools - LAUNCH, LAUNCH_TERMINAL, and LAUNCH_GEM. LAUNCH
109
+ starts a GUI Ruby tool without a terminal. LAUNCH_TERMINAL starts a Ruby tool
110
+ with a terminal window. LAUNCH_GEM launches a Ruby tool distributed with a gem.
105
111
  values: .+
106
112
  modifiers:
107
113
  DONT_CAPTURE_IO:
@@ -115,3 +121,7 @@ MULTITOOL_START:
115
121
  values: \d+
116
122
  MULTITOOL_END:
117
123
  summary: Ends the creation of a multi-tool button
124
+ AUTO_GEM_TOOLS:
125
+ summary: Automatically installs COSMOS tool gems
126
+ description: Traverses the installed rubygems looking for COSMOS gems named cosmos-xxxx.gem.
127
+ If the gem has a tools directory, the tool launcher will be added as a TOOL in the Launcher.
@@ -11,12 +11,12 @@ FORMAT_STRING:
11
11
  UNITS:
12
12
  summary: Add displayed units
13
13
  example: |
14
- UNITS Celcius C
14
+ UNITS Celsius C
15
15
  UNITS Kilometers KM
16
16
  parameters:
17
17
  - name: Full Name
18
18
  required: true
19
- description: Full name of the units type, e.g. Celcius
19
+ description: Full name of the units type, e.g. Celsius
20
20
  values: .*
21
21
  - name: Abbreviated
22
22
  required: true
@@ -44,3 +44,8 @@ META:
44
44
  required: false
45
45
  description: One or more values to be stored for this Meta Name
46
46
  values: .*
47
+ OVERLAP:
48
+ summary: This item is allowed to overlap other items in the packet
49
+ description: If an item's bit offset overlaps another item, COSMOS issues a warning. This keyword explicitly
50
+ allows an item to overlap another and supresses the warning message.
51
+ since: 4.4.1
@@ -68,6 +68,16 @@ WRITE_CONVERSION:
68
68
  takes extra parameters and must always implement the call method. The conversion
69
69
  factor is applied to the value entered by the user before it is written into
70
70
  the binary command packet and sent.
71
+
72
+ <div class="note info">
73
+ <h5>Multiple write conversions on command parameters</h5>
74
+ <p>When a command is built, each item gets written (and write conversions are run)
75
+ to set the default value. Then items are written (again write conversions are run)
76
+ with user provided values. Thus write conversions can be run twice. Also there are
77
+ no guarantees which parameters have already been written. The packet itself has a
78
+ given_values() method which can be used to retrieve a hash of the user provided
79
+ values to the command. That can be used to check parameter values passed in.</p>
80
+ </div>
71
81
  example: |
72
82
  WRITE_CONVERSION the_great_conversion.rb 1000
73
83
 
@@ -151,6 +161,16 @@ GENERIC_WRITE_CONVERSION_START:
151
161
  compatibility). The last line of ruby code given should return the converted
152
162
  value. The GENERIC_WRITE_CONVERSION_END keyword specifies that all lines of
153
163
  ruby code for the conversion have been given.
164
+
165
+ <div class="note info">
166
+ <h5>Multiple write conversions on command parameters</h5>
167
+ <p>When a command is built, each item gets written (and write conversions are run)
168
+ to set the default value. Then items are written (again write conversions are run)
169
+ with user provided values. Thus write conversions can be run twice. Also there are
170
+ no guarantees which parameters have already been written. The packet itself has a
171
+ given_values() method which can be used to retrieve a hash of the user provided
172
+ values to the command. That can be used to check parameter values passed in.</p>
173
+ </div>
154
174
  warning: Generic conversions are not a good long term solution. Consider creating
155
175
  a conversion class and using WRITE_CONVERSION instead. WRITE_CONVERSION is easier
156
176
  to debug and higher performance.
@@ -146,6 +146,8 @@ NAMED_WIDGET:
146
146
  required: true
147
147
  description: The unique parameters for the given widget type
148
148
  values: .+
149
+ STAY_ON_TOP:
150
+ summary: Force a screen to stay on top of all other windows
149
151
  # Even though these are technically SCREEN modifiers we load them at the top_frame
150
152
  # level so they appear as available keywords
151
153
  <%= MetaConfigParser.load('widgets.yaml').to_meta_config_yaml(0) %>
@@ -7,6 +7,15 @@ LINE_DELAY:
7
7
  description: Delay in seconds before the next line is executed. A value of
8
8
  0 means to execute the scripts as fast as possible.
9
9
  values: '[0-9]*\.?[0-9]+'
10
+ PAUSE_ON_ERROR:
11
+ summary: Set or clear the pause on error checkbox
12
+ description: If this is checked, Script Runner will pause if the test encounters
13
+ an error. Otherwise the error will be logged but the script will continue.
14
+ parameters:
15
+ - name: Enable
16
+ required: true
17
+ description: Whether to pause when the script encounters an error
18
+ values: ['TRUE', 'FALSE']
10
19
  MONITOR_LIMITS:
11
20
  summary: Log limits events to the Script Runner log file while a script is running
12
21
  description: Limits events are always logged by the Command and Telemetry Server
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  AUTO_DECLARE_TARGETS:
3
3
  summary: Automatically load all the target folders under config/targets into the system
4
- description: When automatically discovering target folders the COSMOS naming convention
4
+ description:
5
+ When automatically discovering target folders the COSMOS naming convention
5
6
  must be followed. Target folders must be uppercase and be named according to how
6
7
  COSMOS will access them. For example, if you create a config/targets/INST directory,
7
8
  COSMOS will create a target named 'INST' which is how it will be referenced.
@@ -9,7 +10,8 @@ AUTO_DECLARE_TARGETS:
9
10
  DECLARE_TARGET keyword.
10
11
  DECLARE_TARGET:
11
12
  summary: Declare a COSMOS target and name it
12
- description: Declare target is used in place of AUTO_DECLARE_TARGETS to give more
13
+ description:
14
+ Declare target is used in place of AUTO_DECLARE_TARGETS to give more
13
15
  fine grained control over how the target folder is loaded and named within COSMOS.
14
16
  This is required if AUTO_DECLARE_TARGET is not present.
15
17
  example: DECLARE_TARGET INST INST2 inst.txt
@@ -26,7 +28,8 @@ DECLARE_TARGET:
26
28
  the target name will be the directory name given above.
27
29
  - name: Target Filename
28
30
  required: false
29
- description: The name of the file in the target directory which contains the
31
+ description:
32
+ The name of the file in the target directory which contains the
30
33
  configuration information for the target. By default this is 'target.txt'
31
34
  but if you want to rename this you need to set this parameter.
32
35
  DECLARE_GEM_TARGET:
@@ -38,7 +41,8 @@ DECLARE_GEM_TARGET:
38
41
  parameters:
39
42
  - name: Gem Name
40
43
  required: true
41
- description: The COSMOS gem name which must be cosmos-<gem-name> where <gem-name>
44
+ description:
45
+ The COSMOS gem name which must be cosmos-<gem-name> where <gem-name>
42
46
  is the descriptive gem name. In the above example, the target will be named
43
47
  'GEM-NAME' (note the cosmos- prefix is stripped off).
44
48
  values: .+
@@ -49,12 +53,47 @@ DECLARE_GEM_TARGET:
49
53
  the target name will be the gem name as described above.
50
54
  - name: Target Filename
51
55
  required: false
52
- description: The name of the file in the target directory which contains the
56
+ description:
57
+ The name of the file in the target directory which contains the
58
+ configuration information for the target. By default this is 'target.txt'
59
+ but if you want to rename this you need to set this parameter.
60
+ DECLARE_GEM_MULTI_TARGET:
61
+ summary: Declare a COSMOS target which resides in a Ruby gem with multiple targets
62
+ description: COSMOS targets can be distributed in gem form in which case they
63
+ must be named 'cosmos-<gem-name>' where <gem-name> is the descriptive name of
64
+ the gem. Multiple Targets can be packaged into a single gem. This directive
65
+ will tell COSMOS where to look for a target inside the first directory level
66
+ of the gem. The sub-directory name must be all uppercase and must contain a
67
+ sub-directory named 'cmd_tlm'. See the COSMOS documentation at cosmosrb.com
68
+ for for information on creating a COSMOS gem target.
69
+ parameters:
70
+ - name: Gem Name
71
+ required: true
72
+ description:
73
+ The COSMOS gem name which must be cosmos-<gem-name> where <gem-name>
74
+ is the descriptive gem name. In the above example, the target will be named
75
+ 'GEM-NAME' (note the cosmos- prefix is stripped off).
76
+ values: .+
77
+ - name: Target Name
78
+ required: true
79
+ description: The directory name which contains the target information.
80
+ This must match a directory under the first level of the gem base directory.
81
+ values: .+
82
+ - name: Substitute Target Name
83
+ required: false
84
+ description: The target name in the COSMOS system. This is how the target
85
+ will be referred to in scripts. If this is not given (or given as nil)
86
+ the target name will be the gem name as described above.
87
+ - name: Target Filename
88
+ required: false
89
+ description:
90
+ The name of the file in the target directory which contains the
53
91
  configuration information for the target. By default this is 'target.txt'
54
92
  but if you want to rename this you need to set this parameter.
55
93
  PORT:
56
94
  summary: Set a Server Port
57
- description: Port is used to set the default ports used by the Command and Telemetry Server.
95
+ description:
96
+ Port is used to set the default ports used by the Command and Telemetry Server.
58
97
  It is not necessary to set this option unless you wish to override the defaults
59
98
  (given in the example usage). Overriding ports is necessary if you want to run
60
99
  two Command and Telemetry Servers on the same computer simultaneously.
@@ -65,7 +104,8 @@ PORT:
65
104
  parameters:
66
105
  - name: Port Name
67
106
  required: true
68
- description: CTS_API - This port is what tools connect to to communicate with the COSMOS Scripting API.
107
+ description:
108
+ CTS_API - This port is what tools connect to to communicate with the COSMOS Scripting API.
69
109
  TLMVIEWER_API - This port is used to remotely open and close telemetry screens in Telemetry Viewer.
70
110
  CTS_PREIDENTIFIED - This port provides access to a preidentified stream of all telemetry packets
71
111
  in the system. This is currently used by Telemetry Grapher and can be used to chain Command
@@ -83,7 +123,8 @@ LISTEN_HOST:
83
123
  parameters:
84
124
  - name: Host Port Name
85
125
  required: true
86
- description: CTS_API - This port is what tools connect to to communicate with the COSMOS Scripting API.
126
+ description:
127
+ CTS_API - This port is what tools connect to to communicate with the COSMOS Scripting API.
87
128
  TLMVIEWER_API - This port is used to remotely open and close telemetry screens in Telemetry Viewer.
88
129
  CTS_PREIDENTIFIED - This port provides access to a preidentified stream of all telemetry packets
89
130
  in the system. This is currently used by Telemetry Grapher and can be used to chain Command
@@ -93,7 +134,8 @@ LISTEN_HOST:
93
134
  values: <%= %w(CTS_API TLMVIEWER_API CTS_PREIDENTIFIED CTS_CMD_ROUTER) %>
94
135
  - name: Host Value
95
136
  required: true
96
- description: The IP address or host name to bind the Host Port Name to. By default,
137
+ description:
138
+ The IP address or host name to bind the Host Port Name to. By default,
97
139
  the CTS_API and TLMVIEWER_API are bound to localhost meaning that only tools
98
140
  on the same machine can connect. By default, CTS_PREIDENTIFIED and CTS_CMD_ROUTER
99
141
  are bound to '0.0.0.0' to allow for tools on any machines to connect. This
@@ -105,7 +147,8 @@ CONNECT_HOST:
105
147
  parameters:
106
148
  - name: Host Port Name
107
149
  required: true
108
- description: CTS_API - This port is what tools connect to to communicate with the COSMOS Scripting API.
150
+ description:
151
+ CTS_API - This port is what tools connect to to communicate with the COSMOS Scripting API.
109
152
  TLMVIEWER_API - This port is used to remotely open and close telemetry screens in Telemetry Viewer.
110
153
  CTS_PREIDENTIFIED - This port provides access to a preidentified stream of all telemetry packets
111
154
  in the system. This is currently used by Telemetry Grapher and can be used to chain Command
@@ -115,15 +158,18 @@ CONNECT_HOST:
115
158
  values: <%= %w(CTS_API TLMVIEWER_API CTS_PREIDENTIFIED CTS_CMD_ROUTER) %>
116
159
  - name: Host Value
117
160
  required: true
118
- description: The IP address or host name to connect tools to. By default all
161
+ description:
162
+ The IP address or host name to connect tools to. By default all
119
163
  ports are bound to localhost so all tools connect to the local machine.
120
164
  values: .+
121
165
  PATH:
122
166
  summary: Set a Server Path
123
- description: Path is used to set the default paths used by the Command and Telemetry Server
167
+ description:
168
+ Path is used to set the default paths used by the Command and Telemetry Server
124
169
  to access or create files. It is not necessary to set this option unless you wish to
125
170
  override the defaults (given in the example usage).
126
- warning: The PROCEDURES path must be set for Script Runner and Test Runner to locate your
171
+ warning:
172
+ The PROCEDURES path must be set for Script Runner and Test Runner to locate your
127
173
  procedure files. You can add multiple 'PATH PROCEDURES' lines to your configuration file
128
174
  to set multiple locations.
129
175
  example: |
@@ -174,7 +220,8 @@ DEFAULT_PACKET_LOG_READER:
174
220
  since: 4.0.0
175
221
  STALENESS_SECONDS:
176
222
  summary: Number of seconds before marking the packet stale
177
- description: A stale packet is identified in telemetry screens by all the telemetry
223
+ description:
224
+ A stale packet is identified in telemetry screens by all the telemetry
178
225
  items in the stale packet being colored purple..
179
226
  example: STALENESS_SECONDS 30 # Default
180
227
  parameters:
@@ -196,7 +243,8 @@ DISABLE_DNS:
196
243
  As of COSMOS 3.5.0 the default is to not use DNS
197
244
  ENABLE_SOUND:
198
245
  summary: Enable audible sounds when popups occur
199
- description: Enable sound makes any prompts that occur in ScriptRunner/TestRunner
246
+ description:
247
+ Enable sound makes any prompts that occur in ScriptRunner/TestRunner
200
248
  make an audible sound when they popup to alert the operator of needed input.
201
249
  since: 3.5.0
202
250
  ALLOW_ACCESS:
@@ -205,12 +253,14 @@ ALLOW_ACCESS:
205
253
  parameters:
206
254
  - name: Name or IP Address
207
255
  required: true
208
- description: Machine name to allow access or you can specify 'ALL' to allow
256
+ description:
257
+ Machine name to allow access or you can specify 'ALL' to allow
209
258
  all machines access
210
259
  values: .+
211
260
  META_INIT:
212
261
  summary: Specify a file to initialize the SYSTEM META packet
213
- description: Filename should be a text file with key value pairs where the keyword
262
+ description:
263
+ Filename should be a text file with key value pairs where the keyword
214
264
  matches an item in the SYSTEM META packet. Note you do not have to specify ALL
215
265
  the items in the SYSTEM META packet.
216
266
  since: 4.0.0
@@ -221,27 +271,101 @@ META_INIT:
221
271
  values: .+
222
272
  TIME_ZONE_UTC:
223
273
  summary: Report all times as UTC
224
- description: COSMOS will report all times as UTC time. If this keyword is not used,
274
+ description:
275
+ COSMOS will report all times as UTC time. If this keyword is not used,
225
276
  COSMOS will report all times as local times, where the local time zone is determined
226
277
  automatically by Ruby based upon the operating system time settings. This setting
227
278
  affects packet receive times, timestamped log filenames, message logs,
228
279
  Cmd/Tlm extractor time ranges, etc.
229
280
  since: 3.10.0
230
- ADD_MD5_FILE:
231
- summary: Add a file to the MD5 sum calculation
232
- description: Adds a file to the set of files used in marshal file MD5 sum calculation.
233
- Upon startup, COSMOS calculates an MD5 sum over the command/telemetry definition files
281
+ ADD_HASH_FILE:
282
+ summary: Add a file to the hashing sum calculation
283
+ description:
284
+ Adds a file to the set of files used in marshal file hashing sum calculation.
285
+ Upon startup, COSMOS calculates a hashing sum over the command/telemetry definition files
234
286
  for all targets. After the definitions have been processed, COSMOS saves the resulting
235
- objects as marshal files in a folder with the MD5 sum as part of the name.
236
- The next time COSMOS runs, if the MD5 checksum of the cmd/tlm definition files
287
+ objects as marshal files in a folder with the hashing sum as part of the name.
288
+ The next time COSMOS runs, if the hashing sum of the cmd/tlm definition files
237
289
  has not changed, COSMOS can load the marshal files instead of re-processing the definitions.
238
- If a file is specified with the ADD_MD5_FILE keyword, COSMOS will include it in the
239
- MD5 sum calculation. This means that a change in the file will cause COSMOS to
290
+ If a file is specified with the ADD_HASH_FILE keyword, COSMOS will include it in the
291
+ hashing sum calculation. This means that a change in the file will cause COSMOS to
240
292
  re-process the cmd/tlm defintions and create a new set of marshal files.
241
- since: 4.0.0
242
- example: ADD_MD5_FILE lib/user_version.rb
293
+ The default hashing algorithm is MD5, but other Ruby Digest algorithms are also supported,
294
+ like SHA1 and SHA256
295
+ since: 4.4.0
296
+ example: ADD_HASH_FILE lib/user_version.rb
243
297
  parameters:
244
298
  - name: Filename
245
299
  required: true
246
300
  description: Filename, either fully qualified, or relative to Cosmos::USERPATH
247
301
  values: '.+\.rb'
302
+ CLASSIFICATION:
303
+ summary: Add a classification banner to the top of all the COSMOS tools
304
+ since: 4.3.0
305
+ example: |
306
+ CLASSIFICATION Unclassified green
307
+ CLASSIFICATION Secret 255 114 0
308
+ parameters:
309
+ - name: Display Text
310
+ required: true
311
+ description: The text to display in the classification banner
312
+ values: ".*"
313
+ - name: Color Name | Red Hex
314
+ required: true
315
+ description: The color name or the red value of a RGB triplet
316
+ values: ".*"
317
+ - name: Green Hex
318
+ required: false
319
+ description: The green value of a RGB triplet
320
+ values: '\d+'
321
+ - name: Blue Hex
322
+ required: false
323
+ description: The blue value of a RGB triplet
324
+ values: '\d+'
325
+ HASHING_ALGORITHM:
326
+ summary: Specify which Ruby Digest hashing algorithm to use
327
+ description:
328
+ Set the hashing algorithm used for config hashing, tlm_viewer hashing, and
329
+ script hashing. COSMOS will truncate the resulting hash string down to 32 characters
330
+ since: 4.4.0
331
+ example: HASHING_ALGORITHM SHA256
332
+ parameters:
333
+ - name: Algorithm
334
+ required: true
335
+ description: Digest algorithm, one of MD5, RMD160, SHA1, SHA256, SHA384, SHA512
336
+ values: .+
337
+ ALLOW_ROUTER_COMMANDING:
338
+ summary: Allow routers to receive and forward commands to interfaces
339
+ since: 4.5.0
340
+ example: ALLOW_ROUTER_COMMANDING
341
+ X_CSRF_TOKEN:
342
+ summary: Secret token passed with API calls
343
+ since: 4.5.0
344
+ example: X_CSRF_TOKEN Secret
345
+ parameters:
346
+ - name: token
347
+ required: true
348
+ description: Token passed with api calls
349
+ values: .+
350
+ ALLOW_ORIGIN:
351
+ summary: Allow a specific HTTP Origin header in Api calls
352
+ description: This keyword should only be used if COSMOS needs to be commanded from a web server.
353
+ since: 4.5.0
354
+ example: ALLOW_ORIGIN 1.2.4.4:8080
355
+ parameters:
356
+ - name: origin
357
+ required: true
358
+ description: Hostname colon port of origin
359
+ values: .+
360
+ ALLOW_HOST:
361
+ summary: Allow a specific HTTP Host header in Api calls
362
+ description:
363
+ By default includes ['127.0.0.1:7777', '127.0.0.1:7778', '127.0.0.1:7877', '127.0.0.1:8779', '127.0.0.1:8780'].
364
+ API Ports changed by a PORT line will also be added automatically. If you need external connections you must add your ip and
365
+ these ports to allow external access to work for apis
366
+ example: ALLOW_HOST 1.2.4.4:7777
367
+ parameters:
368
+ - name: host
369
+ required: true
370
+ description: Hostname colon port of host
371
+ values: .+