cosmos 4.2.4-java → 4.5.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. checksums.yaml +4 -4
  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 +146 -62
  458. data/lib/cosmos/dart/Gemfile +0 -69
@@ -30,6 +30,7 @@ Click 130 100 ; Launch Command and Telemetry Server L-2
30
30
  Sleep 1000
31
31
  Send {Enter}
32
32
  WinWaitActive, Command and Telemetry Server
33
+ WinActivate, Command and Telemetry Server
33
34
  Sleep 2000
34
35
  Send ^q
35
36
  Sleep 2000
@@ -15,7 +15,7 @@ Send {Enter}
15
15
  Run ruby.exe %A_ScriptDir%/ScriptRunner -w 800 -t 200
16
16
  Sleep 2000
17
17
  WinActivate, Script Runner
18
- Sleep 500
18
+ Sleep 2000
19
19
  Send set_limits("INST", "HEALTH_STATUS", "TEMP1", -100, -80, 80, 100, -60, 60, :DEFAULT){Enter}
20
20
  Send set_limits("INST", "HEALTH_STATUS", "TEMP3", -100, -80, 80, 100, -60, 60, :DEFAULT)
21
21
  Sleep 1000
@@ -153,7 +153,7 @@ Sleep 500
153
153
  Send {Enter}
154
154
  Sleep 2000
155
155
 
156
- Click right 380, 687 ; TEMP1 details
156
+ Click right 380, 734 ; TEMP1 details
157
157
  Sleep 1000
158
158
  Send {Tab}{Enter}
159
159
  WinWaitActive TEMP1
@@ -162,10 +162,10 @@ Sleep 1000
162
162
 
163
163
  WinActivate Packet Viewer
164
164
  WinWaitActive Packet Viewer
165
- Click right 380, 780 ; ARY details
165
+ Click right 380, 757 ; TEMP2 details
166
166
  Sleep 1000
167
167
  Send {Tab}{Enter}
168
- WinWaitActive ARY
168
+ WinWaitActive TEMP2
169
169
  Sleep 1000
170
170
  Send {Enter} ; Close the window
171
171
 
@@ -177,10 +177,11 @@ Send {Backspace 5}
177
177
  Sleep 500
178
178
  Send COLLECT_TYPE{Enter}
179
179
  Sleep 1000
180
- Click right 380, 780 ; ARY details
180
+ Click right 380, 730 ; ARY details
181
181
  Sleep 1000
182
182
  Send {Tab}{Enter}
183
- WinWaitActive COLLECT_TYPE
183
+ WinActivate ARY
184
+ WinWaitActive ARY
184
185
  Sleep 1000
185
186
  Send {Enter} ; Close the window
186
187
 
@@ -191,7 +192,7 @@ Sleep 2000
191
192
  Run ruby.exe %A_ScriptDir%/ScriptRunner -w 600 -t 600
192
193
  Sleep 2000
193
194
  WinActivate Script Runner
194
- Sleep 1000
195
+ Sleep 2000
195
196
  Send set_limits("INST","HEALTH_STATUS","TEMP1",-110,-105,105,110,-100,100){ENTER}
196
197
  Send set_limits_set("CUSTOM"){ENTER}
197
198
  Sleep 1000
@@ -101,6 +101,18 @@ Sleep 500
101
101
  Send ^+{Tab}
102
102
  Sleep 500
103
103
 
104
+ Send !f ; File
105
+ Sleep 500
106
+ Send r ; Open Recent
107
+ Sleep 500
108
+ Send {ENTER}
109
+ Sleep 1000
110
+ Send !f ; File
111
+ Sleep 500
112
+ Send r ; Open Recent
113
+ Sleep 500
114
+ Send {Down}{ENTER}
115
+
104
116
  Click right 220 60
105
117
  Sleep 500
106
118
  Click 240 75 ; Close
@@ -143,9 +155,9 @@ WinWaitActive Script Runner
143
155
 
144
156
  Send ^s ; File Save SR-1
145
157
  Sleep 500
146
- Click 25 40 ; File
158
+ Send !f ; File
147
159
  Sleep 500
148
- Click 20 185 ; Save As
160
+ Send a ; Save as
149
161
  WinWaitActive Save As
150
162
  Send autohotkey.rb{Enter}
151
163
  WinWaitActive Script Runner
@@ -391,11 +403,11 @@ WinWaitActive Message
391
403
  Sleep 500
392
404
  Send {Enter}
393
405
  WinWaitActive Script Runner
394
- WinWaitActive COSMOS
406
+ WinWaitActive Prompt
395
407
  Sleep 500
396
408
  Send {Enter}
397
409
  WinWaitActive Script Runner
398
- WinWaitActive COSMOS
410
+ WinWaitActive Prompt
399
411
  Sleep 500
400
412
  Send {Enter}
401
413
  WinWaitActive Script Runner
@@ -82,9 +82,9 @@ Sleep 500
82
82
  Click 630 70 ; Start Test Suite
83
83
  Sleep 5000
84
84
 
85
- Click 64 40 ; Script Menu
85
+ Click 100 40 ; Script Menu
86
86
  Sleep 500
87
- Click 64 128 ; Toggle Debug TR-9
87
+ Click 100 128 ; Toggle Debug TR-9
88
88
  Sleep 500
89
89
  Send puts $manual{Enter} ; TR-16
90
90
  Sleep 1000
@@ -108,25 +108,25 @@ Click 630 70 ; Start Test Suite
108
108
  Sleep 5000
109
109
  Click 680 195 ; Retry
110
110
  Sleep 1000
111
- Click 65 40 ; Script
111
+ Click 100 40 ; Script
112
112
  Sleep 500
113
- Click 65 65 ; Test Results Message
113
+ Click 100 65 ; Test Results Message
114
114
  WinWaitActive Test Results
115
115
  Sleep 1000
116
116
  Send QA Approves{Enter}
117
117
  WinWaitActive Test Runner
118
118
  Sleep 500
119
- Click 65 40 ; Script
119
+ Click 100 40 ; Script
120
120
  Sleep 500
121
- Click 65 86 ; Script Message
121
+ Click 100 86 ; Script Message
122
122
  WinWaitActive Script Message
123
123
  Sleep 1000
124
124
  Send SQA Approves{Enter}
125
125
  WinWaitActive Test Runner
126
126
  Sleep 500
127
- Click 65 40 ; Script
127
+ Click 100 40 ; Script
128
128
  Sleep 500
129
- Click 65 108 ; Show Call Stack
129
+ Click 100 108 ; Show Call Stack
130
130
  WinWaitActive Call Stack
131
131
  Sleep 1000
132
132
  Send {Esc}
data/bin/cosmos CHANGED
@@ -133,7 +133,7 @@ end
133
133
  def gen_test(target)
134
134
  %Q(# To add this test to Test Runner edit config/tools/test_runner/test_runner.txt
135
135
  # Add this line:
136
- # REQUIRE_UTILITY '#{target.downcase}_test'
136
+ # LOAD_UTILITY '#{target.downcase}_test'
137
137
  #
138
138
  # Test Runner test script
139
139
  class #{target.capitalize}Test < Cosmos::Test
@@ -230,6 +230,40 @@ def generate(args)
230
230
  end
231
231
  end
232
232
 
233
+ def limits_change_callback(packet, item, old_limits_state, value, log_change)
234
+ if log_change
235
+ # Write to Server Messages that limits state has changed
236
+ tgt_pkt_item_str = "#{packet.target_name} #{packet.packet_name} #{item.name} = #{value} is"
237
+ packet_time = packet.packet_time
238
+ pkt_time_str = ""
239
+ pkt_time_str << " (#{packet.packet_time.sys.formatted})" if packet_time
240
+ case item.limits.state
241
+ when :BLUE
242
+ Cosmos::Logger.info "#{tgt_pkt_item_str} #{item.limits.state}#{pkt_time_str}"
243
+ when :GREEN, :GREEN_LOW, :GREEN_HIGH
244
+ Cosmos::Logger.info "#{tgt_pkt_item_str} #{item.limits.state}#{pkt_time_str}"
245
+ when :YELLOW, :YELLOW_LOW, :YELLOW_HIGH
246
+ Cosmos::Logger.warn "#{tgt_pkt_item_str} #{item.limits.state}#{pkt_time_str}"
247
+ when :RED, :RED_LOW, :RED_HIGH
248
+ Cosmos::Logger.error "#{tgt_pkt_item_str} #{item.limits.state}#{pkt_time_str}"
249
+ else
250
+ Cosmos::Logger.error "#{tgt_pkt_item_str} UNKNOWN#{pkt_time_str}"
251
+ end
252
+ end
253
+ end
254
+
255
+ def check_limits(filenames)
256
+ Cosmos::Logger.level = Cosmos::Logger::INFO
257
+ packet_log_reader = Cosmos::System.default_packet_log_reader.new(*Cosmos::System.default_packet_log_reader_params)
258
+ filenames.each do |filename|
259
+ packet_log_reader.open(filename)
260
+ Cosmos::System.telemetry.limits_change_callback = method(:limits_change_callback)
261
+ packet_log_reader.each(filename) do |packet|
262
+ packet.check_limits
263
+ end
264
+ end
265
+ end
266
+
233
267
  if not ARGV[0].nil? # argument(s) given
234
268
 
235
269
  # Handle each task
@@ -253,6 +287,9 @@ if not ARGV[0].nil? # argument(s) given
253
287
  when 'generate'
254
288
  generate(ARGV[1..-1])
255
289
 
290
+ when 'check_limits'
291
+ check_limits(ARGV[1..-1])
292
+
256
293
  when 'help'
257
294
  print_usage()
258
295
 
@@ -731,7 +731,7 @@ def parse_line(full_line, loc_out_file, wait_check_flag=false)
731
731
  # Process procedures with arguments as functions
732
732
  else
733
733
  # Add the statement to require the function
734
- str = str + "require_utility(\"" + words[1].downcase + ".rb\")\n"
734
+ str = str + "load_utility(\"" + words[1].downcase + ".rb\")\n"
735
735
  numSpaces.times {str = str + " "}
736
736
 
737
737
  # Split the list of arguments on commas
File without changes
@@ -13,25 +13,72 @@
13
13
  # Blank lines and comment lines are ignored. All other
14
14
  # lines count as one line.
15
15
 
16
- files = []
17
- if ARGV.length == 0
18
- require 'find'
16
+ require 'ostruct'
17
+ require 'optparse'
18
+
19
+ options = OpenStruct.new
20
+ options.filename = nil
21
+ options.sort_column = nil
19
22
 
20
- #Find all .rb and .rbw files from the current directory
21
- Find.find('.') do |path|
22
- Find.prune if FileTest.directory?(path) and File.basename(path) == 'pkg'
23
- extension = File.extname(path)
24
- files << path if extension.to_s =~ /\.rb/i
23
+ opts = OptionParser.new do |opts|
24
+ opts.banner = "Usage: rubysloc"
25
+ opts.separator ""
26
+ opts.separator "Recursively calculate SLOC for all ruby files (*.rb) sorted by filename"
27
+ opts.separator ""
28
+ opts.on("-h", "--help", "Show this message") do
29
+ puts opts
30
+ exit
25
31
  end
26
- else
27
- if ARGV[0] == '--infile' or ARGV[0] == '-i'
28
- File.open(ARGV[1], 'r') {|file| file.each_line {|line| files << line.chomp.strip}}
32
+ opts.on("-i DIRECTORY/FILENAME", "--input DIRECTORY/FILENAME",
33
+ "Parse only the specified directory/filename (relative or absolute path)") do |arg|
34
+ options.filename = arg
35
+ end
36
+ opts.on("-s SORT", "--sort SORT", "Sort by the specified column. Must be one of LINES, COMMENTS, SLOC, or RATIO.") do |arg|
37
+ case arg
38
+ when 'LINES'
39
+ options.sort_column = 1
40
+ when 'COMMENTS'
41
+ options.sort_column = 2
42
+ when 'SLOC'
43
+ options.sort_column = 3
44
+ when 'RATIO'
45
+ options.sort_column = 4
46
+ else
47
+ puts opts
48
+ exit
49
+ end
50
+ end
51
+ end
52
+
53
+ begin
54
+ opts.parse!(ARGV)
55
+ rescue => err
56
+ puts err
57
+ puts opts
58
+ exit
59
+ end
60
+
61
+ files = []
62
+ if options.filename
63
+ options.filename = File.join(Dir.pwd, options.filename) unless File.exist?(options.filename)
64
+ if File.exist?(options.filename)
65
+ if File.directory?(options.filename)
66
+ # Dir only works with unix paths so swap backslashes
67
+ files = Dir[File.join(options.filename.gsub('\\','/'), '**', '*.rb')]
68
+ else
69
+ files << options.filename
70
+ end
29
71
  else
30
- files = ARGV
72
+ puts "File #{options.filename} not found."
73
+ puts opts
74
+ exit
31
75
  end
76
+ else
77
+ files = Dir['**/*.rb']
32
78
  end
33
79
 
34
80
  # Build results over all found ruby files
81
+ longest_path = 1
35
82
  results = []
36
83
  files.each do |full_filename|
37
84
  filename = File.basename(full_filename)
@@ -43,21 +90,20 @@ files.each do |full_filename|
43
90
  lines += 1
44
91
  split_line = line.split
45
92
  if split_line[0].nil?
46
- #Blank Line - Do Nothing
47
- #puts "NOT COUNTED - #{line.chomp}"
93
+ # Blank Line - Do Nothing
48
94
  elsif split_line[0].to_s[0..0] == '#'
49
- #Comment Line
50
- #puts "COMMENT LINE - #{line.chomp}"
51
95
  comments += 1
52
96
  else
53
- #puts "COUNTED - #{line.chomp}"
54
97
  slocs += 1
55
98
  end
56
99
  end
57
- results << [filename, lines, comments, slocs, comments.to_f / slocs.to_f]
100
+ results << [full_filename, lines, comments, slocs, comments.to_f / slocs.to_f]
101
+ longest_path = full_filename.length if full_filename.length > longest_path
58
102
  end
59
103
  end
60
104
 
105
+ results.sort_by! {|col| col[options.sort_column].finite? ? col[options.sort_column] : -1 } if options.sort_column
106
+
61
107
  # Print results to STDOUT
62
108
  total_files = 0
63
109
  total_lines = 0
@@ -65,12 +111,12 @@ total_comments = 0
65
111
  total_slocs = 0
66
112
  total_ratio = 0
67
113
 
68
- puts "|-----------------------------------|----------|----------|----------|--------|"
69
- puts "| Filename | Lines | Comments | SLOCs | Ratio |"
70
- puts "|-----------------------------------|----------|----------|----------|--------|"
114
+ puts sprintf("|-%-#{longest_path}s-|----------|----------|----------|--------|", "-"*longest_path)
115
+ puts sprintf("| %-#{longest_path}s | Lines | Comments | SLOCs | Ratio |", "Filename")
116
+ puts sprintf("|-%-#{longest_path}s-|----------|----------|----------|--------|", "-"*longest_path)
71
117
  results.each do |filename, lines, comments, slocs, ratio|
72
- filename = filename[0..32] if filename.length > 33
73
- puts sprintf("| %-33s | %8d | %8d | %8d | %6.2f |",
118
+ # filename = filename[0..32] if filename.length > 33
119
+ puts sprintf("| %-#{longest_path}s | %8d | %8d | %8d | %6.2f |",
74
120
  filename, lines, comments, slocs, ratio)
75
121
  total_files += 1
76
122
  total_lines += lines
@@ -78,8 +124,7 @@ results.each do |filename, lines, comments, slocs, ratio|
78
124
  total_slocs += slocs
79
125
  end
80
126
  total_ratio = total_comments.to_f / total_slocs.to_f if total_slocs != 0
81
- puts "|-----------------------------------|----------|----------|----------|--------|"
82
- puts sprintf("| Totals - %3d Files | %8d | %8d | %8d | %6.2f |",
83
- total_files, total_lines, total_comments, total_slocs, total_ratio)
84
-
85
- puts "|-----------------------------------|----------|----------|----------|--------|"
127
+ puts sprintf("|-%-#{longest_path}s-|----------|----------|----------|--------|", "-"*longest_path)
128
+ puts sprintf("| %-#{longest_path}s | %8d | %8d | %8d | %6.2f |",
129
+ "Totals - #{total_files} Files", total_lines, total_comments, total_slocs, total_ratio)
130
+ puts sprintf("|-%-#{longest_path}s-|----------|----------|----------|--------|", "-"*longest_path)
@@ -68,7 +68,7 @@ end
68
68
  if input_filename
69
69
  packet_config = Cosmos::PacketConfig.new
70
70
  puts "Processing #{input_filename}..."
71
- packet_config.process_xtce(input_filename)
71
+ packet_config.process_file(input_filename, nil)
72
72
  puts "Converting to COSMOS config files in #{output_dir}"
73
73
  packet_config.to_config(output_dir)
74
74
  puts "Success"
@@ -73,12 +73,10 @@ spec = Gem::Specification.new do |s|
73
73
  files
74
74
  else [] end
75
75
 
76
- s.has_rdoc = true
77
-
78
- s.required_ruby_version = '~> 2.2'
76
+ s.required_ruby_version = '~> 2.3'
79
77
 
80
78
  # Runtime Dependencies
81
- s.add_runtime_dependency 'bundler', '~> 1.3'
79
+ s.add_runtime_dependency 'bundler', '>= 1.3'
82
80
  s.add_runtime_dependency 'rdoc', '>= 4' # qtbindings doesn't parse in 6.0.0, fixed in 6.0.1
83
81
  s.add_runtime_dependency 'rake', '>= 10.0' # 10.0 released Nov 12, 2012
84
82
  s.add_runtime_dependency 'json', '>= 1.5', '< 3' # 2.0+ works with COSMOS
@@ -88,7 +86,7 @@ spec = Gem::Specification.new do |s|
88
86
  s.add_runtime_dependency 'uuidtools', '~> 2.1'
89
87
  s.add_runtime_dependency 'snmp', '~> 1.0'
90
88
  s.add_runtime_dependency 'rubyzip', '~> 1.2'
91
- s.add_runtime_dependency 'nokogiri', '~> 1.6'
89
+ s.add_runtime_dependency 'nokogiri', '~> 1.10'
92
90
  s.add_runtime_dependency 'opengl-bindings', '~> 1.6' if RUBY_ENGINE == 'ruby' # MRI Only
93
91
  s.add_runtime_dependency 'qtbindings', '~> 4.8.6', '>= 4.8.6.2' if RUBY_ENGINE == 'ruby' # MRI Only
94
92
  s.add_runtime_dependency 'puma', '~> 3.10'
@@ -107,16 +105,16 @@ spec = Gem::Specification.new do |s|
107
105
  s.add_development_dependency 'rspec', '~> 3.5'
108
106
  s.add_development_dependency 'flog', '~> 4.0'
109
107
  s.add_development_dependency 'flay', '~> 2.0'
110
- s.add_development_dependency 'reek', '~> 4.0'
111
- s.add_development_dependency 'roodi', '~> 4.0'
108
+ s.add_development_dependency 'reek', '~> 5.0'
109
+ s.add_development_dependency 'roodi', '~> 5.0'
112
110
  s.add_development_dependency 'guard', '~> 2.0'
113
111
  s.add_development_dependency 'listen', '~> 3.0'
114
112
  s.add_development_dependency 'guard-bundler', '~> 2.0'
115
113
  s.add_development_dependency 'guard-rspec', '~> 4.0'
116
114
  s.add_development_dependency 'simplecov', '~> 0.15'
117
115
  s.add_development_dependency 'codecov', '~> 0.1'
118
- s.add_development_dependency 'benchmark-ips', '~> 2.0'
119
- s.add_development_dependency 'ruby-prof', '~> 0.16' if RUBY_ENGINE == 'ruby' # MRI Only
116
+ s.add_development_dependency 'benchmark-ips', '= 2.7.2'
117
+ s.add_development_dependency 'ruby-prof', ['~> 1.0', '< 1.3'] if RUBY_ENGINE == 'ruby' # MRI Only
120
118
 
121
119
  s.post_install_message = "Thanks for installing Ball Aerospace COSMOS!\nStart your first project with: cosmos demo demo\n"
122
120
  end
@@ -95,6 +95,10 @@ udp_interface.rb:
95
95
  description: Number of seconds to wait before aborting the read. Default is
96
96
  'nil' (block on read).
97
97
  values: .+
98
+ - name: Bind Address
99
+ required: false
100
+ description: Address to bind UDP ports to
101
+ values: .+
98
102
  serial_interface.rb:
99
103
  description: Connects to a target over a serial port. COSMOS provides drivers
100
104
  for both Windows and POSIX drivers for UNIX based systems.
@@ -0,0 +1,14 @@
1
+ ---
2
+ EXPORTER:
3
+ summary: Configure a Ruby class to export the command sequence definition into a custom format
4
+ parameters:
5
+ - name: Exporter Class Filename
6
+ required: true
7
+ description: The name of the Ruby class which implements the exporter.
8
+ Follow the convention of lower case filename with words separated by underscores.
9
+ For example if your class is "MyExporter" your filename would be "my_exporter.rb".
10
+ values: .+
11
+ - name: Exporter Class Arguments
12
+ required: false
13
+ description: Arguments to pass to the class constructor. There can be more than one.
14
+ values: .+
@@ -8,7 +8,7 @@ PARAMETER:
8
8
  PARAMETER DATA 32 32 INT MIN MAX 0 "Data value"
9
9
  PARAMETER VALUE 64 32 FLOAT 0 10.5 2.5
10
10
  PARAMETER LABEL 96 96 STRING "COSMOS" "The label to apply"
11
- PARAMETER BLOCK 192 0 BLOCK '' "Block of binary data"
11
+ PARAMETER BLOCK 192 0 BLOCK 0x0 "Block of binary data"
12
12
  parameters:
13
13
  - name: Name
14
14
  required: true
@@ -109,6 +109,21 @@ SELECT_PARAMETER:
109
109
  required: true
110
110
  description: Name of the parameter to select for modification
111
111
  values: .+
112
+ DELETE_PARAMETER:
113
+ summary: Deletes an existing command parameter from the packet definition
114
+ description: Deleting a parameter from the command definition does not remove the
115
+ defined space for that parameter. Thus unless you redefine a new parameter, there
116
+ will be a "hole" in the packet where the data is not accessible. You can
117
+ use SELECT_COMMAND and then PARAMETER to define a new parameter.
118
+ example: |
119
+ SELECT_COMMAND SYSTEM STARTLOGGING
120
+ DELETE_PARAMETER LABEL
121
+ since: 4.4.1
122
+ parameters:
123
+ - name: Parameter
124
+ required: true
125
+ description: Name of the parameter to delete
126
+ values: .+
112
127
  HIDDEN:
113
128
  summary: Hides this command from all COSMOS tools such as Command Sender and Handbook Creator
114
129
  description: Hidden commands do not appear in the Script Runner popup helper when writing scripts.