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
@@ -10,22 +10,41 @@ DECLARE_TARGET DART
10
10
  DECLARE_TARGET SYSTEM
11
11
 
12
12
  # Listen Hosts - Ip addresses or hostnames to listen on when running the tools
13
+ # Set these to 0.0.0.0 if you need external connections from other computers
13
14
  LISTEN_HOST CTS_API 127.0.0.1
14
15
  LISTEN_HOST TLMVIEWER_API 127.0.0.1
15
- LISTEN_HOST CTS_PREIDENTIFIED 0.0.0.0 # 127.0.0.1 is more secure if you don't need external connections
16
- LISTEN_HOST CTS_CMD_ROUTER 0.0.0.0 # 127.0.0.1 is more secure if you don't need external connections
16
+ LISTEN_HOST CTS_PREIDENTIFIED 127.0.0.1
17
+ LISTEN_HOST CTS_CMD_ROUTER 127.0.0.1
18
+ LISTEN_HOST REPLAY_API 127.0.0.1
19
+ LISTEN_HOST REPLAY_PREIDENTIFIED 127.0.0.1
20
+ LISTEN_HOST REPLAY_CMD_ROUTER 127.0.0.1
21
+ LISTEN_HOST DART_STREAM 127.0.0.1
22
+ LISTEN_HOST DART_DECOM 127.0.0.1
23
+ LISTEN_HOST DART_MASTER 127.0.0.1
17
24
 
18
25
  # Connect Hosts - Ip addresses or hostnames to connect to when running the tools
19
26
  CONNECT_HOST CTS_API 127.0.0.1
20
27
  CONNECT_HOST TLMVIEWER_API 127.0.0.1
21
28
  CONNECT_HOST CTS_PREIDENTIFIED 127.0.0.1
22
29
  CONNECT_HOST CTS_CMD_ROUTER 127.0.0.1
30
+ CONNECT_HOST REPLAY_API 127.0.0.1
31
+ CONNECT_HOST REPLAY_PREIDENTIFIED 127.0.0.1
32
+ CONNECT_HOST REPLAY_CMD_ROUTER 127.0.0.1
33
+ CONNECT_HOST DART_STREAM 127.0.0.1
34
+ CONNECT_HOST DART_DECOM 127.0.0.1
35
+ CONNECT_HOST DART_MASTER 127.0.0.1
23
36
 
24
37
  # Ethernet Ports
25
38
  PORT CTS_API 7777
26
39
  PORT TLMVIEWER_API 7778
27
40
  PORT CTS_PREIDENTIFIED 7779
28
41
  PORT CTS_CMD_ROUTER 7780
42
+ PORT REPLAY_API 7877
43
+ PORT REPLAY_PREIDENTIFIED 7879
44
+ PORT REPLAY_CMD_ROUTER 7880
45
+ PORT DART_STREAM 8777
46
+ PORT DART_DECOM 8779
47
+ PORT DART_MASTER 8780
29
48
 
30
49
  # Default Packet Log Writer and Reader
31
50
  DEFAULT_PACKET_LOG_WRITER packet_log_writer.rb
@@ -38,6 +57,9 @@ PATH SAVED_CONFIG ./outputs/saved_config
38
57
  PATH TABLES ./outputs/tables
39
58
  PATH HANDBOOKS ./outputs/handbooks
40
59
  PATH PROCEDURES ./procedures
60
+ PATH SEQUENCES ./outputs/sequences
61
+ PATH DART_DATA ./outputs/dart/data
62
+ PATH DART_LOGS ./outputs/dart/logs
41
63
 
42
64
  ALLOW_ACCESS ALL
43
65
 
@@ -48,4 +70,21 @@ ENABLE_SOUND
48
70
  # Initialize the metadata dialog using values from the following file:
49
71
  META_INIT config/data/meta_init.txt
50
72
 
51
- ADD_MD5_FILE lib/user_version.rb
73
+ ADD_HASH_FILE lib/user_version.rb
74
+
75
+ # Banner examples
76
+ # Create a banner using an existing COSMOS color (Cosmos::GREEN in this case)
77
+ # CLASSIFICATION UNCLASSIFIED green
78
+
79
+ # Create a banner using a Qt::Color that doesn't exist in COSMOS
80
+ # CLASSIFICATION "Ball Aerospace COSMOS" teal
81
+
82
+ # Create a banner using a RGB color values
83
+ # CLASSIFICATION Secret 255 114 0
84
+
85
+ # ALLOW_ROUTER_COMMANDING # Enable this to chain servers with commanding
86
+ # ALLOW_HOST localhost:7777 # This is provided by default. Add with HostIP:7777 for chaining
87
+ # ALLOW_ORIGIN 1.2.3.4:8080 # Add this if you have a webserver that should be able to access the COSMOS API
88
+
89
+ # *** IMPORTANT *** Change this value to a unique value for each project
90
+ X_CSRF_TOKEN SuperSecret # Secret used to secure requests - Change for each project
@@ -8,22 +8,41 @@ DECLARE_TARGET EXAMPLE
8
8
  DECLARE_TARGET SYSTEM
9
9
 
10
10
  # Listen Hosts - Ip addresses or hostnames to listen on when running the tools
11
+ # Set these to 0.0.0.0 if you need external connections from other computers
11
12
  LISTEN_HOST CTS_API 127.0.0.1
12
13
  LISTEN_HOST TLMVIEWER_API 127.0.0.1
13
- LISTEN_HOST CTS_PREIDENTIFIED 0.0.0.0 # 127.0.0.1 is more secure if you don't need external connections
14
- LISTEN_HOST CTS_CMD_ROUTER 0.0.0.0 # 127.0.0.1 is more secure if you don't need external connections
14
+ LISTEN_HOST CTS_PREIDENTIFIED 127.0.0.1
15
+ LISTEN_HOST CTS_CMD_ROUTER 127.0.0.1
16
+ LISTEN_HOST REPLAY_API 127.0.0.1
17
+ LISTEN_HOST REPLAY_PREIDENTIFIED 127.0.0.1
18
+ LISTEN_HOST REPLAY_CMD_ROUTER 127.0.0.1
19
+ LISTEN_HOST DART_STREAM 127.0.0.1
20
+ LISTEN_HOST DART_DECOM 127.0.0.1
21
+ LISTEN_HOST DART_MASTER 127.0.0.1
15
22
 
16
23
  # Connect Hosts - Ip addresses or hostnames to connect to when running the tools
17
24
  CONNECT_HOST CTS_API 127.0.0.1
18
25
  CONNECT_HOST TLMVIEWER_API 127.0.0.1
19
26
  CONNECT_HOST CTS_PREIDENTIFIED 127.0.0.1
20
27
  CONNECT_HOST CTS_CMD_ROUTER 127.0.0.1
28
+ CONNECT_HOST REPLAY_API 127.0.0.1
29
+ CONNECT_HOST REPLAY_PREIDENTIFIED 127.0.0.1
30
+ CONNECT_HOST REPLAY_CMD_ROUTER 127.0.0.1
31
+ CONNECT_HOST DART_STREAM 127.0.0.1
32
+ CONNECT_HOST DART_DECOM 127.0.0.1
33
+ CONNECT_HOST DART_MASTER 127.0.0.1
21
34
 
22
35
  # Ethernet Ports
23
- PORT CTS_API 8777
24
- PORT TLMVIEWER_API 8778
25
- PORT CTS_PREIDENTIFIED 8779
36
+ PORT CTS_API 7777
37
+ PORT TLMVIEWER_API 7778
38
+ PORT CTS_PREIDENTIFIED 7779
26
39
  PORT CTS_CMD_ROUTER 7780
40
+ PORT REPLAY_API 7877
41
+ PORT REPLAY_PREIDENTIFIED 7879
42
+ PORT REPLAY_CMD_ROUTER 7880
43
+ PORT DART_STREAM 8777
44
+ PORT DART_DECOM 8779
45
+ PORT DART_DECOM 8780
27
46
 
28
47
  # Default Packet Log Writer and Reader
29
48
  DEFAULT_PACKET_LOG_WRITER packet_log_writer.rb
@@ -36,6 +55,9 @@ PATH SAVED_CONFIG ./outputs/saved_config
36
55
  PATH TABLES ./outputs/tables
37
56
  PATH HANDBOOKS ./outputs/handbooks
38
57
  PATH PROCEDURES ./procedures
58
+ PATH SEQUENCES ./outputs/sequences
59
+ PATH DART_DATA ./outputs/dart/data
60
+ PATH DART_LOGS ./outputs/dart/logs
39
61
 
40
62
  ALLOW_ACCESS ALL
41
63
 
@@ -44,3 +66,10 @@ ALLOW_ACCESS ALL
44
66
 
45
67
  # Initialize the metadata dialog using values from the following file:
46
68
  # META_INIT config/data/meta_init.txt
69
+
70
+ # ALLOW_ROUTER_COMMANDING # Enable this to chain servers with commanding
71
+ # ALLOW_HOST localhost:7777 # This is provided by default. Add with HostIP:7777 for chaining
72
+ # ALLOW_ORIGIN 1.2.3.4:8080 # Add this if you have a webserver that should be able to access the COSMOS API
73
+
74
+ # *** IMPORTANT *** Change this value to a unique value for each project
75
+ X_CSRF_TOKEN SuperSecret # Secret used to secure requests - Change for each project
@@ -0,0 +1,80 @@
1
+ # Declare Targets that make up the system
2
+ # DECLARE_TARGET target_name [substitute_name]
3
+
4
+ # AUTO_DECLARE_TARGETS
5
+ DECLARE_TARGET INST
6
+ DECLARE_TARGET INST INST2
7
+ DECLARE_TARGET EXAMPLE
8
+ DECLARE_TARGET TEMPLATED
9
+ DECLARE_TARGET DART
10
+ DECLARE_TARGET SYSTEM
11
+
12
+ # Listen Hosts - Ip addresses or hostnames to listen on when running the tools
13
+ # Set these to 0.0.0.0 if you need external connections from other computers
14
+ LISTEN_HOST CTS_API 127.0.0.1
15
+ LISTEN_HOST TLMVIEWER_API 127.0.0.1
16
+ LISTEN_HOST CTS_PREIDENTIFIED 127.0.0.1
17
+ LISTEN_HOST CTS_CMD_ROUTER 127.0.0.1
18
+ LISTEN_HOST REPLAY_API 127.0.0.1
19
+ LISTEN_HOST REPLAY_PREIDENTIFIED 127.0.0.1
20
+ LISTEN_HOST REPLAY_CMD_ROUTER 127.0.0.1
21
+ LISTEN_HOST DART_STREAM 127.0.0.1
22
+ LISTEN_HOST DART_DECOM 127.0.0.1
23
+ LISTEN_HOST DART_MASTER 127.0.0.1
24
+
25
+ # Connect Hosts - Ip addresses or hostnames to connect to when running the tools
26
+ CONNECT_HOST CTS_API 127.0.0.1
27
+ CONNECT_HOST TLMVIEWER_API 127.0.0.1
28
+ CONNECT_HOST CTS_PREIDENTIFIED 127.0.0.1
29
+ CONNECT_HOST CTS_CMD_ROUTER 127.0.0.1
30
+ CONNECT_HOST REPLAY_API 127.0.0.1
31
+ CONNECT_HOST REPLAY_PREIDENTIFIED 127.0.0.1
32
+ CONNECT_HOST REPLAY_CMD_ROUTER 127.0.0.1
33
+ CONNECT_HOST DART_STREAM 127.0.0.1
34
+ CONNECT_HOST DART_DECOM 127.0.0.1
35
+ CONNECT_HOST DART_MASTER 127.0.0.1
36
+
37
+ # Ethernet Ports
38
+ PORT CTS_API 9777
39
+ PORT TLMVIEWER_API 9778
40
+ PORT CTS_PREIDENTIFIED 9779
41
+ PORT CTS_CMD_ROUTER 9780
42
+ PORT REPLAY_API 9877
43
+ PORT REPLAY_PREIDENTIFIED 9879
44
+ PORT REPLAY_CMD_ROUTER 9880
45
+ PORT DART_STREAM 10777
46
+ PORT DART_DECOM 10779
47
+ PORT DART_MASTER 10780
48
+
49
+ # Default Packet Log Writer and Reader
50
+ DEFAULT_PACKET_LOG_WRITER packet_log_writer.rb
51
+ DEFAULT_PACKET_LOG_READER packet_log_reader.rb
52
+
53
+ # Paths
54
+ PATH LOGS ./outputs/logs
55
+ PATH TMP ./outputs/tmp
56
+ PATH SAVED_CONFIG ./outputs/saved_config
57
+ PATH TABLES ./outputs/tables
58
+ PATH HANDBOOKS ./outputs/handbooks
59
+ PATH PROCEDURES ./procedures
60
+ PATH SEQUENCES ./outputs/sequences
61
+ PATH DART_DATA ./outputs/dart/data
62
+ PATH DART_LOGS ./outputs/dart/logs
63
+
64
+ ALLOW_ACCESS ALL
65
+
66
+ ENABLE_SOUND
67
+ # DISABLE_DNS
68
+ # STALENESS_SECONDS 30
69
+
70
+ # Initialize the metadata dialog using values from the following file:
71
+ META_INIT config/data/meta_init.txt
72
+
73
+ ADD_HASH_FILE lib/user_version.rb
74
+
75
+ # ALLOW_ROUTER_COMMANDING # Enable this to chain servers with commanding
76
+ # ALLOW_HOST localhost:7777 # This is provided by default. Add with HostIP:7777 for chaining
77
+ # ALLOW_ORIGIN 1.2.3.4:8080 # Add this if you have a webserver that should be able to access the COSMOS API
78
+
79
+ # *** IMPORTANT *** Change this value to a unique value for each project
80
+ X_CSRF_TOKEN SuperSecret # Secret used to secure requests - Change for each project
@@ -4,3 +4,4 @@
4
4
  INTERFACE EXAMPLE_INT example_interface.rb localhost 9999
5
5
  TARGET EXAMPLE
6
6
  DONT_CONNECT
7
+ LOG_RAW
@@ -8,7 +8,7 @@ COMMAND INST COLLECT BIG_ENDIAN "Starts a collect on the <%= @target_name %> tar
8
8
  PARAMETER OPCODE 112 8 UINT 0x0 0xFF 0xAB "Collect opcode"
9
9
  FORMAT_STRING "0x%0X"
10
10
  PARAMETER TEMP 120 32 FLOAT 0.0 25.0 0.0 "Collect temperature"
11
- UNITS Celcius C
11
+ UNITS Celsius C
12
12
 
13
13
  COMMAND INST ABORT BIG_ENDIAN "Aborts a collect on the <%= @target_name %> instrument"
14
14
  <%= render "_ccsds_cmd.txt", locals: {id: 2} %>
@@ -26,7 +26,7 @@ COMMAND INST SETPARAMS BIG_ENDIAN "Sets numbered parameters"
26
26
 
27
27
  # New more flexible ERB syntax:
28
28
  <% (1..5).each do |i| %>
29
- APPEND_PARAMETER VALUE<%= i %> 16 UINT 0 5 0 "Value <%= i %> setting"
29
+ APPEND_PARAMETER VALUE<%= i %> 16 UINT 0 5 1 "Value <%= i %> setting"
30
30
  <% end %>
31
31
 
32
32
  SELECT_PARAMETER VALUE5
@@ -34,11 +34,12 @@ COMMAND INST SETPARAMS BIG_ENDIAN "Sets numbered parameters"
34
34
 
35
35
  COMMAND INST ASCIICMD BIG_ENDIAN "Enumerated ASCII command"
36
36
  <%= render "_ccsds_cmd.txt", locals: {id: 5} %>
37
- PARAMETER STRING 64 2048 STRING "NOOP" "Enumerated string parameter"
37
+ APPEND_PARAMETER STRING 2048 STRING "NOOP" "Enumerated string parameter"
38
38
  STATE "NOOP" "NOOP"
39
- STATE "ARM LASER" "ARM LASER" HAZARDOUS "Arming the laser poses an eye safety hazard."
39
+ STATE "ARM LASER" "ARM LASER" HAZARDOUS "Arming the laser poses an eye safety hazard so anyone without laser safety training needs to leave."
40
40
  STATE "FIRE LASER" "FIRE LASER" HAZARDOUS "WARNING Laser will be fired!"
41
41
  APPEND_PARAMETER BINARY 32 STRING 0xDEADBEEF "Binary string"
42
+ APPEND_PARAMETER ASCII 80 STRING "0xDEADBEEF" "ASCII string"
42
43
 
43
44
  COMMAND INST FLTCMD BIG_ENDIAN "Command with float parameters"
44
45
  <%= render "_ccsds_cmd.txt", locals: {id: 6} %>
@@ -4,29 +4,29 @@ TELEMETRY INST HEALTH_STATUS BIG_ENDIAN "Health and status from the <%= @target_
4
4
  APPEND_ITEM TEMP1 16 UINT "Temperature #1"
5
5
  POLY_READ_CONVERSION -100.0 0.00305
6
6
  POLY_WRITE_CONVERSION 32768.885246 327.86885
7
- UNITS CELCIUS C
7
+ UNITS CELSIUS C
8
8
  FORMAT_STRING "%0.3f"
9
9
  LIMITS DEFAULT 1 ENABLED -80.0 -70.0 60.0 80.0 -20.0 20.0
10
- LIMITS TVAC 1 ENABLED -80.0 -30.0 30.0 80.0
10
+ LIMITS TVAC 1 ENABLED -80.0 -30.0 30.0 80.0
11
11
  LIMITS_RESPONSE example_limits_response.rb
12
12
  APPEND_ITEM TEMP2 32 FLOAT "Temperature #2"
13
13
  POLY_READ_CONVERSION -100.0 0.00305
14
14
  POLY_WRITE_CONVERSION 32768.885246 327.86885
15
- UNITS CELCIUS C
15
+ UNITS CELSIUS C
16
16
  FORMAT_STRING "%0.3f"
17
17
  LIMITS DEFAULT 1 ENABLED -60.0 -55.0 30.0 35.0
18
18
  LIMITS TVAC 1 ENABLED -60.0 20.0 30.0 35.0
19
19
  APPEND_ITEM TEMP3 16 UINT "Temperature #3"
20
20
  POLY_READ_CONVERSION -100.0 0.00305
21
21
  POLY_WRITE_CONVERSION 32768.885246 327.86885
22
- UNITS CELCIUS C
22
+ UNITS CELSIUS C
23
23
  FORMAT_STRING "%0.3f"
24
24
  LIMITS DEFAULT 1 ENABLED -25.0 -10.0 50.0 55.0
25
25
  LIMITS TVAC 1 ENABLED -15.0 -10.0 20.0 30.0
26
26
  APPEND_ITEM TEMP4 16 UINT "Temperature #4"
27
27
  POLY_READ_CONVERSION -100.0 0.00305
28
28
  POLY_WRITE_CONVERSION 32768.885246 327.86885
29
- UNITS CELCIUS C
29
+ UNITS CELSIUS C
30
30
  FORMAT_STRING "%0.3f"
31
31
  LIMITS DEFAULT 1 ENABLED -80.0 -70.0 60.0 80.0
32
32
  APPEND_ARRAY_ITEM ARY 8 UINT 80 "Array data"
@@ -35,8 +35,9 @@ TELEMETRY INST HEALTH_STATUS BIG_ENDIAN "Health and status from the <%= @target_
35
35
  APPEND_ITEM COLLECT_TYPE 16 UINT "Most recent collect type"
36
36
  STATE NORMAL 0
37
37
  STATE SPECIAL 1
38
+ STATE ERROR ANY
38
39
  APPEND_ARRAY_ITEM ARY2 64 FLOAT 640 "Double array"
39
- UNITS CELCIUS C
40
+ UNITS CELSIUS C
40
41
  APPEND_ITEM ASCIICMD 2048 STRING "Most recent ASCIICMD string"
41
42
  STATE "NOOP" "NOOP"
42
43
  STATE "FIRE LASER" "FIRE LASER"
@@ -138,7 +139,10 @@ TELEMETRY INST PARAMS BIG_ENDIAN "Params set by SETPARAMS command"
138
139
 
139
140
  TELEMETRY INST IMAGE BIG_ENDIAN "Packet with image data"
140
141
  <%= render "_ccsds_tlm.txt", locals: {apid: 4} %>
141
- ITEM IMAGE 128 800 BLOCK "10x10 Image Data"
142
+ ITEM BYTES 128 32 UINT "First bytes"
143
+ FORMAT_STRING '0x%08x'
144
+ ITEM IMAGE 128 131072 BLOCK "10x10 Image Data"
145
+ OVERLAP # Notify COSMOS that this is intentionally overlapping the BYTES field
142
146
  ITEM TIMESECONDS 0 0 DERIVED "Derived floating-point time since epoch in seconds"
143
147
  READ_CONVERSION unix_time_seconds_conversion.rb TIMESEC TIMEUS
144
148
  FORMAT_STRING '%0.6f'
@@ -147,6 +151,7 @@ TELEMETRY INST IMAGE BIG_ENDIAN "Packet with image data"
147
151
 
148
152
  TELEMETRY INST MECH BIG_ENDIAN "Mechanism status"
149
153
  <%= render "_ccsds_tlm.txt", locals: {apid: 5} %>
154
+ APPEND_ITEM EXTRA 32 FLOAT "Extra item to be deleted"
150
155
  APPEND_ITEM SLRPNL1 32 FLOAT "Solar panel 1 angle"
151
156
  UNITS DEGREES DEG
152
157
  APPEND_ITEM SLRPNL2 32 FLOAT "Solar panel 2 angle"
@@ -0,0 +1,12 @@
1
+ # NOTE: Telemetry definitions are processed in alphabetical order by default.
2
+ # However, this can be overridden by explicitly calling them out in target.txt.
3
+ # Thus it's recommended to create a file like this with an extension
4
+ # such as inst_tlm_override.txt which will be processed AFTER inst_tlm.txt.
5
+
6
+ # Existing telemetry packets can be selected and items modified
7
+ SELECT_TELEMETRY INST MECH
8
+ # Existing items can be selected and modified by adding conversions, limits, etc
9
+ SELECT_ITEM SLRPNL1
10
+ LIMITS DEFAULT 1 ENABLED -180.0 -170.0 170.0 180.0
11
+ # Delete an item so it doesn't appear in the packet
12
+ DELETE_ITEM EXTRA
@@ -4,3 +4,5 @@
4
4
  INTERFACE INST_INT simulated_target_interface.rb sim_inst.rb
5
5
  TARGET INST
6
6
  PROTOCOL READ OverrideProtocol
7
+ # This will ignore all received ADCS packets
8
+ #PROTOCOL READ IgnorePacketProtocol INST ADCS
@@ -13,9 +13,9 @@
13
13
  require 'cosmos'
14
14
 
15
15
  module Cosmos
16
-
16
+ # Simulated instrument for the demo. Populates several packets and cycles
17
+ # the telemetry to simulate an active target.
17
18
  class SimInst < SimulatedTarget
18
-
19
19
  SOLAR_PANEL_DFLTS = [-179.0, 179.0, -179.0, 179.0, -95.0] unless defined? SOLAR_PANEL_DFLTS
20
20
 
21
21
  def initialize(target_name)
@@ -80,6 +80,11 @@ module Cosmos
80
80
  packet.enable_method_missing
81
81
  packet.CcsdsSeqFlags = 'NOGROUP'
82
82
  packet.CcsdsLength = packet.buffer.length - 7
83
+ packet.value1 = 0
84
+ packet.value2 = 1
85
+ packet.value3 = 2
86
+ packet.value4 = 1
87
+ packet.value5 = 0
83
88
 
84
89
  packet = @tlm_packets['IMAGE']
85
90
  packet.enable_method_missing
@@ -296,6 +301,11 @@ module Cosmos
296
301
  when 'IMAGE'
297
302
  packet.timesec = time.tv_sec
298
303
  packet.timeus = time.tv_usec
304
+ # Create an Array the size of the packet and then initialize
305
+ # using a sample of all possible hex values (0..15)
306
+ # finally pack it into binary using the Character 'C' specifier
307
+ data = Array.new(packet.image.length) { Array(0..15).sample }.pack("C*")
308
+ packet.image = data
299
309
  packet.ccsdsseqcnt += 1
300
310
 
301
311
  when 'MECH'
@@ -310,7 +320,9 @@ module Cosmos
310
320
  end
311
321
  end
312
322
 
313
- pending_packets << Packet.new(nil, nil, :BIG_ENDIAN, nil, "\000" * 10) if @get_count == 300
323
+ # Every 10s throw an unknown packet at the server just to demo that
324
+ data = Array.new(10) { rand(0..255) }.pack("C*")
325
+ pending_packets << Packet.new(nil, nil, :BIG_ENDIAN, nil, data) if @get_count % 1000 == 0
314
326
 
315
327
  @get_count += 1
316
328
  pending_packets
@@ -1,8 +1,7 @@
1
1
  SCREEN AUTO AUTO 1.0 FIXED
2
2
 
3
3
  VERTICAL
4
-
5
- TITLE "<%= @target_name %> Instrument ADCS Information"
4
+ TITLE "<%= @target_name %> Instrument ADCS Information" Courier 20 NORMAL true
6
5
  # Note @original_target_name is also available
7
6
 
8
7
  HORIZONTAL
@@ -46,6 +45,7 @@ VERTICAL
46
45
 
47
46
  LABELPROGRESSBAR INST ADCS POSPROGRESS
48
47
  LABELPROGRESSBAR INST ADCS ATTPROGRESS
48
+ LABELPROGRESSBAR INST ADCS ATTPROGRESS 2 60 RAW # scale by 2
49
49
 
50
50
  LABEL ""
51
51
  LABEL "LEFT"
@@ -2,7 +2,7 @@ SCREEN AUTO AUTO 1.0
2
2
 
3
3
  VERTICAL
4
4
  TITLE "<%= @target_name %> Instrument Block Data"
5
- BLOCK INST IMAGE IMAGE 500 200 "%02X" 4 4 "0x%08X:"
5
+ BLOCK INST IMAGE IMAGE 500 600 "%02X" 4 4 "0x%08X:"
6
6
  END
7
7
 
8
8
 
@@ -36,7 +36,7 @@ VERTICAL
36
36
  # Here as an example we're using the BACKGROUNDBUTTON which runs all the code in the background.
37
37
  # Note we didn't need to use this here but it's an example of wrapping calls to the GUI in Qt.execute_in_main_thread.
38
38
  # You need to use this button if your code blocks or takes a long time to execute so you don't hang the screen.
39
- BACKGROUNDBUTTON 'Run Script' 'Cosmos.run_process("#{Cosmos::USERPATH}/tools/ScriptRunner -r #{Qt.execute_in_main_thread { get_named_widget("SCRIPTNAME").text }}")'
39
+ BACKGROUNDBUTTON 'Run Script' 'script = ""; Qt.execute_in_main_thread { script = get_named_widget("SCRIPTNAME").text }; Cosmos.run_cosmos_tool("ScriptRunner", "-r #{script}")'
40
40
  END
41
41
  SETTING BACKCOLOR 163 185 163
42
42
  END
@@ -2,24 +2,46 @@ SCREEN AUTO AUTO 1.0
2
2
 
3
3
  VERTICAL
4
4
  SETTING BACKCOLOR white
5
-
6
5
  TITLE "<%= @target_name %> Instrument Ground Station Status"
7
6
  SETTING BACKCOLOR white
8
7
 
9
- CANVAS 650 594
8
+ CANVAS 650 700
9
+ # The code inside <% %> is just ruby
10
+ <% 11.times do |x| %>
11
+ # Create a dot at various y locations. The <%= %> adds the expression to the file
12
+ CANVASDOT 5 <%= 50 * x + 50 %> BLUE 5
13
+ <% end %> # Close our block from above
14
+ # This is an example of using TLM_AND to && together different logical values
15
+ # Note you must use RAW for the base value and use SETTING IMAGE true / false
16
+ # for the two values you wish to display
17
+ #CANVASIMAGEVALUE INST HEALTH_STATUS GROUND1STATUS
18
+ # SETTING TLM_AND INST HEALTH_STATUS GROUND2STATUS VALUE_EQ 1
19
+ # SETTING TLM_AND INST HEALTH_STATUS COLLECTS VALUE_EQ 0
20
+ # SETTING IMAGE true "ground_on.gif" 100 200
21
+ # SETTING IMAGE false "ground_off.gif" 100 200
10
22
  CANVASLINE 10 10 640 10 blue 3
11
23
  CANVASIMAGE "satellite.gif" 50 150
12
- CANVASIMAGEVALUE INST HEALTH_STATUS GROUND1STATUS "ground" 400 100
24
+ # We're using the converted value and specifing a default of "ground_error.gif"
25
+ # if none of the IMAGE settings match the value
26
+ CANVASIMAGEVALUE INST HEALTH_STATUS GROUND1STATUS CONVERTED "ground_error.gif" 400 100
27
+ SETTING IMAGE CONNECTED "ground_on.gif" 400 100
28
+ SETTING IMAGE UNAVAILABLE "ground_off.gif" 400 100
29
+ # If the image is clicked the "INST HS" screen will popup at 100, 100
30
+ SETTING SCREEN "INST HS" 100 100
13
31
  CANVASLABEL 380 300 "Ground Station #1"
14
32
  CANVASLABELVALUE INST HEALTH_STATUS GROUND1STATUS 520 300
15
- CANVASIMAGEVALUE INST HEALTH_STATUS GROUND2STATUS "ground" 400 350
33
+ # The default type is RAW and no default means anything over 10 will be blank
34
+ CANVASIMAGEVALUE INST HEALTH_STATUS GROUND2STATUS
35
+ SETTING IMAGE 1 "ground_on.gif" 400 350
36
+ SETTING IMAGE 0 "ground_off.gif" 400 350
37
+ # This is an example of using a range of values with a particular image
38
+ SETTING IMAGE 2..10 "ground_error.gif" 400 350
16
39
  CANVASLABEL 380 550 "Ground Station #2"
17
40
  CANVASLABELVALUE INST HEALTH_STATUS GROUND2STATUS 520 550
18
41
  CANVASLINEVALUE INST HEALTH_STATUS GROUND1STATUS 420 135 240 330 green white 3
19
42
  CANVASLINEVALUE INST HEALTH_STATUS GROUND2STATUS 420 385 240 330 green white 3
20
43
  CANVASLINE 10 584 640 584 blue 3
21
44
  END
22
-
23
45
  END
24
46
 
25
47