cosmos 4.1.1-java → 4.2.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 (336) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -2
  3. data/.travis.yml +2 -0
  4. data/.yardopts +1 -0
  5. data/Gemfile +1 -0
  6. data/Manifest.txt +130 -0
  7. data/autohotkey/tools/ConfigEditorAHK +19 -0
  8. data/autohotkey/tools/cmd_extractor.ahk +4 -4
  9. data/autohotkey/tools/cmd_sequence.ahk +9 -5
  10. data/autohotkey/tools/config_editor.ahk +197 -0
  11. data/autohotkey/tools/packet_viewer.ahk +12 -6
  12. data/autohotkey/tools/replay.ahk +29 -29
  13. data/autohotkey/tools/script_runner.ahk +10 -2
  14. data/autohotkey/tools/tlm_extractor.ahk +7 -8
  15. data/autohotkey/tools/tlm_grapher.ahk +21 -9
  16. data/bin/dart_import +2 -0
  17. data/cosmos.gemspec +18 -16
  18. data/data/config/cmd_tlm_server.yaml +9 -0
  19. data/data/config/interface_modifiers.yaml +17 -0
  20. data/data/config/item_modifiers.yaml +3 -3
  21. data/data/crc.txt +184 -90
  22. data/data/dart.png +0 -0
  23. data/demo/Gemfile +1 -0
  24. data/demo/Rakefile +4 -0
  25. data/demo/config/dart/Gemfile +54 -0
  26. data/demo/config/data/crc.txt +28 -21
  27. data/demo/config/system/system.txt +3 -0
  28. data/demo/config/system/system2.txt +3 -0
  29. data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +3 -3
  30. data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +1 -1
  31. data/demo/config/targets/INST/lib/sim_inst.rb +1 -1
  32. data/demo/config/targets/INST/screens/adcs.txt +2 -1
  33. data/demo/config/targets/INST/screens/array.txt +1 -1
  34. data/demo/config/targets/INST/screens/block.txt +1 -1
  35. data/demo/config/targets/INST/screens/commanding.txt +7 -2
  36. data/demo/config/targets/INST/screens/graphs.txt +1 -1
  37. data/demo/config/targets/INST/screens/ground.txt +1 -1
  38. data/demo/config/targets/INST/screens/hs.txt +2 -1
  39. data/demo/config/targets/INST/screens/latest.txt +1 -1
  40. data/demo/config/targets/INST/screens/limits.txt +1 -1
  41. data/demo/config/targets/INST/screens/other.txt +1 -1
  42. data/demo/config/targets/INST/screens/tabs.txt +1 -1
  43. data/demo/config/tools/cmd_tlm_server/cmd_tlm_server.txt +2 -2
  44. data/demo/config/tools/cmd_tlm_server/cmd_tlm_server2.txt +3 -1
  45. data/demo/config/tools/launcher/launcher.txt +3 -2
  46. data/demo/tools/Dart +16 -0
  47. data/demo/tools/Dart.bat +9 -0
  48. data/demo/tools/mac/CmdSequence.app/Contents/MacOS/main.sh +0 -0
  49. data/demo/tools/mac/ConfigEditor.app/Contents/MacOS/main.sh +0 -0
  50. data/install/Gemfile +1 -0
  51. data/install/Rakefile +4 -0
  52. data/install/config/dart/Gemfile +54 -0
  53. data/install/config/data/crc.txt +6 -3
  54. data/install/config/system/system.txt +3 -0
  55. data/install/config/tools/launcher/launcher.txt +3 -2
  56. data/install/tools/Dart +16 -0
  57. data/install/tools/Dart.bat +9 -0
  58. data/install/tools/mac/CmdSequence.app/Contents/MacOS/main.sh +0 -0
  59. data/install/tools/mac/ConfigEditor.app/Contents/MacOS/main.sh +0 -0
  60. data/lib/cosmos/core_ext/time.rb +8 -8
  61. data/lib/cosmos/dart/.rspec +1 -0
  62. data/lib/cosmos/dart/Gemfile +69 -0
  63. data/lib/cosmos/dart/Rakefile +7 -0
  64. data/lib/cosmos/dart/app/assets/config/manifest.js +4 -0
  65. data/lib/cosmos/dart/app/assets/images/.keep +0 -0
  66. data/lib/cosmos/dart/app/assets/javascripts/application.js +13 -0
  67. data/lib/cosmos/dart/app/assets/javascripts/cable.js +13 -0
  68. data/lib/cosmos/dart/app/assets/stylesheets/application.css.scss +15 -0
  69. data/lib/cosmos/dart/app/channels/application_cable/channel.rb +4 -0
  70. data/lib/cosmos/dart/app/channels/application_cable/connection.rb +4 -0
  71. data/lib/cosmos/dart/app/controllers/application_controller.rb +3 -0
  72. data/lib/cosmos/dart/app/helpers/application_helper.rb +2 -0
  73. data/lib/cosmos/dart/app/jobs/application_job.rb +2 -0
  74. data/lib/cosmos/dart/app/mailers/application_mailer.rb +4 -0
  75. data/lib/cosmos/dart/app/models/application_record.rb +3 -0
  76. data/lib/cosmos/dart/app/models/item.rb +6 -0
  77. data/lib/cosmos/dart/app/models/item_to_decom_table_mapping.rb +9 -0
  78. data/lib/cosmos/dart/app/models/packet.rb +4 -0
  79. data/lib/cosmos/dart/app/models/packet_config.rb +7 -0
  80. data/lib/cosmos/dart/app/models/packet_log.rb +3 -0
  81. data/lib/cosmos/dart/app/models/packet_log_entry.rb +41 -0
  82. data/lib/cosmos/dart/app/models/system_config.rb +2 -0
  83. data/lib/cosmos/dart/app/models/target.rb +4 -0
  84. data/lib/cosmos/dart/app/views/layouts/application.html.erb +14 -0
  85. data/lib/cosmos/dart/app/views/layouts/mailer.html.erb +13 -0
  86. data/lib/cosmos/dart/app/views/layouts/mailer.text.erb +1 -0
  87. data/lib/cosmos/dart/bin/bundle +3 -0
  88. data/lib/cosmos/dart/bin/rails +4 -0
  89. data/lib/cosmos/dart/bin/rake +4 -0
  90. data/lib/cosmos/dart/bin/setup +34 -0
  91. data/lib/cosmos/dart/bin/update +29 -0
  92. data/lib/cosmos/dart/config.ru +5 -0
  93. data/lib/cosmos/dart/config/application.rb +29 -0
  94. data/lib/cosmos/dart/config/boot.rb +3 -0
  95. data/lib/cosmos/dart/config/cable.yml +9 -0
  96. data/lib/cosmos/dart/config/database.yml +23 -0
  97. data/lib/cosmos/dart/config/environment.rb +5 -0
  98. data/lib/cosmos/dart/config/environments/development.rb +62 -0
  99. data/lib/cosmos/dart/config/environments/production.rb +84 -0
  100. data/lib/cosmos/dart/config/environments/test.rb +42 -0
  101. data/lib/cosmos/dart/config/initializers/application_controller_renderer.rb +6 -0
  102. data/lib/cosmos/dart/config/initializers/assets.rb +12 -0
  103. data/lib/cosmos/dart/config/initializers/backtrace_silencers.rb +7 -0
  104. data/lib/cosmos/dart/config/initializers/cookies_serializer.rb +5 -0
  105. data/lib/cosmos/dart/config/initializers/filter_parameter_logging.rb +4 -0
  106. data/lib/cosmos/dart/config/initializers/inflections.rb +16 -0
  107. data/lib/cosmos/dart/config/initializers/mime_types.rb +4 -0
  108. data/lib/cosmos/dart/config/initializers/new_framework_defaults.rb +25 -0
  109. data/lib/cosmos/dart/config/initializers/session_store.rb +3 -0
  110. data/lib/cosmos/dart/config/initializers/wrap_parameters.rb +14 -0
  111. data/lib/cosmos/dart/config/locales/en.yml +23 -0
  112. data/lib/cosmos/dart/config/puma.rb +47 -0
  113. data/lib/cosmos/dart/config/routes.rb +3 -0
  114. data/lib/cosmos/dart/config/secrets.yml +22 -0
  115. data/lib/cosmos/dart/db/migrate/20170406172907_create_targets.rb +8 -0
  116. data/lib/cosmos/dart/db/migrate/20170406172927_create_packets.rb +10 -0
  117. data/lib/cosmos/dart/db/migrate/20170406172937_create_packet_logs.rb +9 -0
  118. data/lib/cosmos/dart/db/migrate/20170406172943_create_packet_log_entries.rb +16 -0
  119. data/lib/cosmos/dart/db/migrate/20170406183500_change_packet_log_entries_primary_key.rb +5 -0
  120. data/lib/cosmos/dart/db/migrate/20170407153618_add_unique_requirements.rb +7 -0
  121. data/lib/cosmos/dart/db/migrate/20170511155447_add_meta_id_to_packet_log_entries.rb +6 -0
  122. data/lib/cosmos/dart/db/migrate/20170523185056_rename_received_time_and_add_is_tlm_to_packet_log_entries.rb +7 -0
  123. data/lib/cosmos/dart/db/migrate/20170525201157_create_items.rb +10 -0
  124. data/lib/cosmos/dart/db/migrate/20170525201315_create_system_configs.rb +9 -0
  125. data/lib/cosmos/dart/db/migrate/20170525201624_create_packet_configs.rb +11 -0
  126. data/lib/cosmos/dart/db/migrate/20170525201745_create_item_to_decom_table_mappings.rb +12 -0
  127. data/lib/cosmos/dart/db/migrate/20170525201939_create_decom_tables.rb +12 -0
  128. data/lib/cosmos/dart/db/migrate/20170525202051_add_decom_state_to_packet_log_entry.rb +5 -0
  129. data/lib/cosmos/dart/db/migrate/20170913160409_update_items.rb +6 -0
  130. data/lib/cosmos/dart/db/migrate/20170913160558_update_item_to_decom_table_mapping.rb +11 -0
  131. data/lib/cosmos/dart/db/migrate/20170913160916_udpate_decom_table.rb +6 -0
  132. data/lib/cosmos/dart/db/migrate/20170913212026_add_ready_to_packet_configs.rb +5 -0
  133. data/lib/cosmos/dart/db/migrate/20170913223556_modify_tables.rb +9 -0
  134. data/lib/cosmos/dart/db/migrate/20170914215744_modify_mapping_table.rb +6 -0
  135. data/lib/cosmos/dart/db/migrate/20170919201433_add_system_config_id_to_packet_config.rb +11 -0
  136. data/lib/cosmos/dart/db/migrate/20170919210307_add_max_table_index_to_packet_configs.rb +5 -0
  137. data/lib/cosmos/dart/db/migrate/20171215225546_add_ready_to_packet_log_entries.rb +5 -0
  138. data/lib/cosmos/dart/db/migrate/20180116214338_add_index_for_ple_ready_to_packet_log_entries.rb +5 -0
  139. data/lib/cosmos/dart/db/schema.rb +103 -0
  140. data/lib/cosmos/dart/db/seeds.rb +7 -0
  141. data/lib/cosmos/dart/examples/dart_decom_client.rb +45 -0
  142. data/lib/cosmos/dart/examples/dart_stream_client.rb +93 -0
  143. data/lib/cosmos/dart/lib/dart_common.rb +749 -0
  144. data/lib/cosmos/dart/lib/dart_database_cleaner.rb +172 -0
  145. data/lib/cosmos/dart/lib/dart_decom_query.rb +184 -0
  146. data/lib/cosmos/dart/lib/dart_decommutator.rb +235 -0
  147. data/lib/cosmos/dart/lib/dart_importer.rb +154 -0
  148. data/lib/cosmos/dart/lib/dart_logging.rb +50 -0
  149. data/lib/cosmos/dart/lib/dart_packet_log_writer.rb +139 -0
  150. data/lib/cosmos/dart/lib/dart_reducer_manager.rb +85 -0
  151. data/lib/cosmos/dart/lib/dart_reducer_worker_thread.rb +263 -0
  152. data/lib/cosmos/dart/lib/dart_tcpip_server_interface.rb +142 -0
  153. data/lib/cosmos/dart/processes/dart.rb +145 -0
  154. data/lib/cosmos/dart/processes/dart_decom_server.rb +39 -0
  155. data/lib/cosmos/dart/processes/dart_import.rb +63 -0
  156. data/lib/cosmos/dart/processes/dart_ingester.rb +92 -0
  157. data/lib/cosmos/dart/processes/dart_reducer.rb +27 -0
  158. data/lib/cosmos/dart/processes/dart_stream_server.rb +31 -0
  159. data/lib/cosmos/dart/processes/dart_worker.rb +37 -0
  160. data/lib/cosmos/dart/spec/dart/dart_common_spec.rb +333 -0
  161. data/lib/cosmos/dart/spec/dart/dart_database_cleaner_spec.rb +455 -0
  162. data/lib/cosmos/dart/spec/dart/dart_decom_query_spec.rb +153 -0
  163. data/lib/cosmos/dart/spec/dart/dart_decommutator_spec.rb +336 -0
  164. data/lib/cosmos/dart/spec/dart/dart_importer_spec.rb +83 -0
  165. data/lib/cosmos/dart/spec/dart/dart_logging_spec.rb +30 -0
  166. data/lib/cosmos/dart/spec/dart/dart_packet_log_writer_spec.rb +149 -0
  167. data/lib/cosmos/dart/spec/dart/dart_reducer_manager_spec.rb +289 -0
  168. data/lib/cosmos/dart/spec/dart/dart_tcpip_server_interface_spec.rb +241 -0
  169. data/lib/cosmos/dart/spec/rails_helper.rb +60 -0
  170. data/lib/cosmos/dart/spec/spec_helper.rb +139 -0
  171. data/lib/cosmos/gui/dialogs/about_dialog.rb +1 -1
  172. data/lib/cosmos/gui/dialogs/dart_dialog.rb +60 -0
  173. data/lib/cosmos/gui/dialogs/legal_dialog.rb +1 -0
  174. data/lib/cosmos/gui/dialogs/scroll_text_dialog.rb +0 -3
  175. data/lib/cosmos/gui/qt.rb +10 -1
  176. data/lib/cosmos/gui/text/completion.rb +10 -9
  177. data/lib/cosmos/gui/text/completion_text_edit.rb +16 -14
  178. data/lib/cosmos/gui/text/ruby_editor.rb +2 -2
  179. data/lib/cosmos/gui/widgets/dart_frame.rb +142 -0
  180. data/lib/cosmos/gui/widgets/dart_meta_frame.rb +119 -0
  181. data/lib/cosmos/gui/widgets/packet_log_frame.rb +42 -12
  182. data/lib/cosmos/interfaces/interface.rb +1 -2
  183. data/lib/cosmos/interfaces/protocols/crc_protocol.rb +26 -8
  184. data/lib/cosmos/interfaces/protocols/fixed_protocol.rb +8 -2
  185. data/lib/cosmos/interfaces/protocols/protocol.rb +2 -1
  186. data/lib/cosmos/interfaces/protocols/template_protocol.rb +1 -1
  187. data/lib/cosmos/interfaces/stream_interface.rb +1 -0
  188. data/lib/cosmos/interfaces/tcpip_server_interface.rb +2 -3
  189. data/lib/cosmos/io/json_drb_object.rb +1 -1
  190. data/lib/cosmos/io/json_rpc.rb +2 -1
  191. data/lib/cosmos/io/win32_serial_driver.rb +2 -9
  192. data/lib/cosmos/packet_logs/packet_log_writer.rb +1 -1
  193. data/lib/cosmos/packets/packet.rb +22 -12
  194. data/lib/cosmos/packets/packet_config.rb +2 -1
  195. data/lib/cosmos/packets/packet_item.rb +26 -24
  196. data/lib/cosmos/packets/parsers/macro_parser.rb +5 -2
  197. data/lib/cosmos/packets/parsers/packet_item_parser.rb +35 -17
  198. data/lib/cosmos/packets/parsers/packet_parser.rb +3 -10
  199. data/lib/cosmos/packets/parsers/xtce_converter.rb +21 -35
  200. data/lib/cosmos/packets/parsers/xtce_parser.rb +54 -46
  201. data/lib/cosmos/packets/structure.rb +10 -2
  202. data/lib/cosmos/packets/structure_item.rb +22 -8
  203. data/lib/cosmos/processors/statistics_processor.rb +2 -0
  204. data/lib/cosmos/script/api_shared.rb +13 -12
  205. data/lib/cosmos/script/cmd_tlm_server.rb +4 -0
  206. data/lib/cosmos/script/commands.rb +3 -15
  207. data/lib/cosmos/script/script.rb +69 -23
  208. data/lib/cosmos/streams/tcpip_client_stream.rb +2 -2
  209. data/lib/cosmos/system/system.rb +42 -25
  210. data/lib/cosmos/system/target.rb +6 -2
  211. data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +177 -36
  212. data/lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb +3 -2
  213. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +34 -8
  214. data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +80 -25
  215. data/lib/cosmos/tools/cmd_tlm_server/api.rb +19 -4
  216. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +15 -14
  217. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +15 -9
  218. data/lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb +1 -9
  219. data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +1 -6
  220. data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +1 -3
  221. data/lib/cosmos/tools/cmd_tlm_server/gui/replay_tab.rb +84 -7
  222. data/lib/cosmos/tools/cmd_tlm_server/gui/status_tab.rb +0 -1
  223. data/lib/cosmos/tools/cmd_tlm_server/gui/targets_tab.rb +1 -5
  224. data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +3 -2
  225. data/lib/cosmos/tools/cmd_tlm_server/replay_backend.rb +159 -27
  226. data/lib/cosmos/tools/cmd_tlm_server/routers.rb +1 -1
  227. data/lib/cosmos/tools/config_editor/config_editor.rb +17 -52
  228. data/lib/cosmos/tools/config_editor/config_editor_frame.rb +0 -5
  229. data/lib/cosmos/tools/data_viewer/data_viewer.rb +111 -0
  230. data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +31 -18
  231. data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +12 -3
  232. data/lib/cosmos/tools/script_runner/script_runner.rb +27 -14
  233. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +104 -37
  234. data/lib/cosmos/tools/table_manager/table_config.rb +1 -1
  235. data/lib/cosmos/tools/table_manager/table_item_parser.rb +4 -2
  236. data/lib/cosmos/tools/table_manager/table_manager.rb +0 -5
  237. data/lib/cosmos/tools/table_manager/table_manager_core.rb +0 -1
  238. data/lib/cosmos/tools/test_runner/test.rb +1 -3
  239. data/lib/cosmos/tools/test_runner/test_runner.rb +26 -15
  240. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +290 -137
  241. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +122 -25
  242. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +67 -0
  243. data/lib/cosmos/tools/tlm_grapher/data_object_editors/housekeeping_data_object_editor.rb +28 -0
  244. data/lib/cosmos/tools/tlm_grapher/data_object_editors/xy_data_object_editor.rb +36 -0
  245. data/lib/cosmos/tools/tlm_grapher/data_objects/data_object.rb +42 -3
  246. data/lib/cosmos/tools/tlm_grapher/data_objects/housekeeping_data_object.rb +88 -14
  247. data/lib/cosmos/tools/tlm_grapher/data_objects/linegraph_data_object.rb +2 -5
  248. data/lib/cosmos/tools/tlm_grapher/data_objects/singlexy_data_object.rb +2 -6
  249. data/lib/cosmos/tools/tlm_grapher/data_objects/xy_data_object.rb +74 -18
  250. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb +3 -7
  251. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +159 -0
  252. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb +49 -2
  253. data/lib/cosmos/tools/tlm_viewer/screen.rb +3 -0
  254. data/lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb +0 -2
  255. data/lib/cosmos/tools/tlm_viewer/widgets.rb +1 -0
  256. data/lib/cosmos/tools/tlm_viewer/widgets/backgroundbutton_widget.rb +54 -0
  257. data/lib/cosmos/tools/tlm_viewer/widgets/button_widget.rb +5 -5
  258. data/lib/cosmos/top_level.rb +1 -0
  259. data/lib/cosmos/utilities/crc.rb +3 -0
  260. data/lib/cosmos/utilities/csv.rb +1 -0
  261. data/lib/cosmos/utilities/message_log.rb +2 -1
  262. data/lib/cosmos/utilities/simulated_target.rb +8 -8
  263. data/lib/cosmos/version.rb +5 -5
  264. data/lib/cosmos/win32/win32.rb +4 -10
  265. data/run_gui_tests.bat +2 -1
  266. data/spec/config/config_parser_spec.rb +4 -4
  267. data/spec/core_ext/array_spec.rb +1 -1
  268. data/spec/core_ext/exception_spec.rb +12 -12
  269. data/spec/core_ext/file_spec.rb +6 -6
  270. data/spec/core_ext/hash_spec.rb +1 -1
  271. data/spec/core_ext/socket_spec.rb +2 -2
  272. data/spec/core_ext/string_spec.rb +13 -13
  273. data/spec/core_ext/time_spec.rb +0 -2
  274. data/spec/gui/utilities/script_module_gui_spec.rb +3 -3
  275. data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +6 -6
  276. data/spec/install/config/tools/cmd_tlm_server/cmd_tlm_server.txt +4 -0
  277. data/spec/interfaces/cmd_tlm_server_interface_spec.rb +6 -2
  278. data/spec/interfaces/interface_spec.rb +0 -1
  279. data/spec/interfaces/linc_interface_spec.rb +0 -5
  280. data/spec/interfaces/protocols/crc_protocol_spec.rb +201 -85
  281. data/spec/interfaces/protocols/fixed_protocol_spec.rb +33 -9
  282. data/spec/interfaces/protocols/length_protocol_spec.rb +1 -1
  283. data/spec/interfaces/protocols/override_protocol_spec.rb +6 -2
  284. data/spec/interfaces/protocols/preidentified_protocol_spec.rb +1 -5
  285. data/spec/interfaces/protocols/template_protocol_spec.rb +0 -1
  286. data/spec/interfaces/simulated_target_interface_spec.rb +5 -5
  287. data/spec/interfaces/udp_interface_spec.rb +2 -4
  288. data/spec/io/buffered_file_spec.rb +8 -12
  289. data/spec/io/json_drb_spec.rb +9 -9
  290. data/spec/io/json_rpc_spec.rb +4 -4
  291. data/spec/io/raw_logger_spec.rb +4 -3
  292. data/spec/packet_logs/packet_log_reader_spec.rb +3 -6
  293. data/spec/packet_logs/packet_log_writer_spec.rb +4 -4
  294. data/spec/packets/binary_accessor_spec.rb +5 -8
  295. data/spec/packets/commands_spec.rb +2 -2
  296. data/spec/packets/limits_spec.rb +2 -2
  297. data/spec/packets/packet_config_spec.rb +12 -0
  298. data/spec/packets/packet_item_limits_spec.rb +1 -1
  299. data/spec/packets/packet_item_spec.rb +9 -9
  300. data/spec/packets/packet_spec.rb +15 -5
  301. data/spec/packets/parsers/packet_item_parser_spec.rb +27 -0
  302. data/spec/packets/parsers/xtce_parser_spec.rb +27 -30
  303. data/spec/packets/structure_spec.rb +2 -1
  304. data/spec/packets/telemetry_spec.rb +3 -5
  305. data/spec/processors/statistics_processor_spec.rb +35 -0
  306. data/spec/script/cmd_tlm_server_spec.rb +4 -21
  307. data/spec/script/commands_disconnect_spec.rb +46 -58
  308. data/spec/script/commands_spec.rb +40 -61
  309. data/spec/script/limits_spec.rb +1 -21
  310. data/spec/script/script_spec.rb +32 -41
  311. data/spec/script/scripting_spec.rb +166 -185
  312. data/spec/script/telemetry_spec.rb +10 -5
  313. data/spec/script/tools_spec.rb +2 -24
  314. data/spec/spec_helper.rb +11 -5
  315. data/spec/system/system_spec.rb +17 -12
  316. data/spec/tools/cmd_tlm_server/api_spec.rb +21 -10
  317. data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +15 -16
  318. data/spec/tools/cmd_tlm_server/cmd_tlm_server_config_spec.rb +0 -1
  319. data/spec/tools/cmd_tlm_server/cmd_tlm_server_spec.rb +16 -27
  320. data/spec/tools/cmd_tlm_server/commanding_spec.rb +2 -6
  321. data/spec/tools/cmd_tlm_server/connections_spec.rb +0 -4
  322. data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +13 -13
  323. data/spec/tools/cmd_tlm_server/interfaces_spec.rb +5 -9
  324. data/spec/tools/cmd_tlm_server/limits_groups_background_task_spec.rb +11 -3
  325. data/spec/tools/cmd_tlm_server/packet_logging_spec.rb +0 -4
  326. data/spec/tools/cmd_tlm_server/router_thread_spec.rb +5 -5
  327. data/spec/tools/cmd_tlm_server/routers_spec.rb +5 -9
  328. data/spec/tools/table_manager/table_config_spec.rb +0 -1
  329. data/spec/tools/table_manager/tablemanager_core_spec.rb +23 -23
  330. data/spec/tools/tlm_viewer/tlm_viewer_config_spec.rb +6 -4
  331. data/spec/top_level/top_level_spec.rb +9 -9
  332. data/spec/utilities/csv_spec.rb +2 -12
  333. data/spec/utilities/logger_spec.rb +6 -6
  334. data/spec/utilities/message_log_spec.rb +3 -11
  335. data/tasks/gemfile_stats.rake +2 -2
  336. metadata +167 -60
@@ -50,7 +50,6 @@ module Cosmos
50
50
  end
51
51
 
52
52
  after(:all) do
53
- clean_config()
54
53
  File.delete @interface_filename
55
54
  File.delete @protocol_filename
56
55
  end
@@ -13,21 +13,7 @@ require 'cosmos'
13
13
  require 'cosmos/tools/cmd_tlm_server/cmd_tlm_server'
14
14
 
15
15
  module Cosmos
16
-
17
16
  describe CmdTlmServer do
18
- before(:all) do
19
- cts = File.join(Cosmos::USERPATH,'config','tools','cmd_tlm_server','cmd_tlm_server.txt')
20
- FileUtils.mkdir_p(File.dirname(cts))
21
- File.open(cts,'w') do |file|
22
- file.puts 'INTERFACE SYSTEM_INT cmd_tlm_server_interface.rb'
23
- file.puts ' TARGET SYSTEM'
24
- end
25
- end
26
-
27
- after(:all) do
28
- clean_config()
29
- end
30
-
31
17
  before(:each) do
32
18
  allow_any_instance_of(Interface).to receive(:connect).and_return(true)
33
19
  allow_any_instance_of(Interface).to receive(:connected?).and_return(true)
@@ -112,7 +98,7 @@ module Cosmos
112
98
  cts.stop
113
99
  sleep 0.2
114
100
 
115
- expect(stdout.string).to match "Staleness Monitor thread unexpectedly died"
101
+ expect(stdout.string).to match("Staleness Monitor thread unexpectedly died")
116
102
  end
117
103
  end
118
104
  end
@@ -125,23 +111,23 @@ module Cosmos
125
111
  pkt = Packet.new("TGT","PKT")
126
112
  pi = PacketItem.new("TEST", 0, 32, :UINT, :BIG_ENDIAN, nil)
127
113
  cts.limits_change_callback(pkt, pi, :STALE, 100, true)
128
- expect(stdout.string).to match "TGT PKT TEST = 100 is UNKNOWN"
114
+ expect(stdout.string).to match("TGT PKT TEST = 100 is UNKNOWN")
129
115
 
130
116
  pi.limits.state = :BLUE
131
117
  cts.limits_change_callback(pkt, pi, :STALE, 100, true)
132
- expect(stdout.string).to match "<B>TGT PKT TEST = 100 is BLUE"
118
+ expect(stdout.string).to match("<B>TGT PKT TEST = 100 is BLUE")
133
119
 
134
120
  pi.limits.state = :GREEN
135
121
  cts.limits_change_callback(pkt, pi, :STALE, 100, true)
136
- expect(stdout.string).to match "<G>TGT PKT TEST = 100 is GREEN"
122
+ expect(stdout.string).to match("<G>TGT PKT TEST = 100 is GREEN")
137
123
 
138
124
  pi.limits.state = :YELLOW
139
125
  cts.limits_change_callback(pkt, pi, :STALE, 100, true)
140
- expect(stdout.string).to match "<Y>TGT PKT TEST = 100 is YELLOW"
126
+ expect(stdout.string).to match("<Y>TGT PKT TEST = 100 is YELLOW")
141
127
 
142
128
  pi.limits.state = :RED
143
129
  cts.limits_change_callback(pkt, pi, :STALE, 100, true)
144
- expect(stdout.string).to match "<R>TGT PKT TEST = 100 is RED"
130
+ expect(stdout.string).to match("<R>TGT PKT TEST = 100 is RED")
145
131
  ensure
146
132
  cts.stop
147
133
  sleep 0.2
@@ -152,7 +138,7 @@ module Cosmos
152
138
  it "calls the limits response" do
153
139
  cts = CmdTlmServer.new
154
140
  begin
155
- pkt = Packet.new("TGT","PKT")
141
+ packet = Packet.new("TGT","PKT")
156
142
  pi = PacketItem.new("TEST", 0, 32, :UINT, :BIG_ENDIAN, nil)
157
143
  lr = LimitsResponse.new
158
144
  pi.limits.response = lr
@@ -164,7 +150,7 @@ module Cosmos
164
150
  expect(state).to eql :GREEN
165
151
  end
166
152
  pi.limits.state = :GREEN
167
- cts.limits_change_callback(pkt, pi, :YELLOW, 100, true)
153
+ cts.limits_change_callback(packet, pi, :YELLOW, 100, true)
168
154
  ensure
169
155
  cts.stop
170
156
  sleep 0.2
@@ -183,7 +169,7 @@ module Cosmos
183
169
  pi.limits.state = :GREEN
184
170
  cts.limits_change_callback(pkt, pi, :YELLOW, 100, true)
185
171
  sleep 0.1
186
- expect(stdout.string).to match "TGT PKT TEST Limits Response Exception!"
172
+ expect(stdout.string).to match("TGT PKT TEST Limits Response Exception!")
187
173
  ensure
188
174
  cts.stop
189
175
  sleep 0.2
@@ -256,7 +242,7 @@ module Cosmos
256
242
  cts.limits_change_callback(pkt, pi, :GREEN, 100, true)
257
243
 
258
244
  # Pull off one
259
- type,data = CmdTlmServer.get_limits_event(id)
245
+ CmdTlmServer.get_limits_event(id)
260
246
 
261
247
  # Add two more to put us over the limit
262
248
  cts.limits_change_callback(pkt, pi, :GREEN, 100, true)
@@ -289,7 +275,7 @@ module Cosmos
289
275
  cts.limits_change_callback(pkt, pi, :GREEN, 100, true)
290
276
 
291
277
  # Get one
292
- type,data = CmdTlmServer.get_limits_event(id)
278
+ CmdTlmServer.get_limits_event(id)
293
279
 
294
280
  # Unsubscribe and try to get the other one
295
281
  CmdTlmServer.unsubscribe_limits_events(id)
@@ -413,12 +399,15 @@ module Cosmos
413
399
  end
414
400
 
415
401
  it "works in disconnect mode" do
416
- cts = CmdTlmServer.new(CmdTlmServer::DEFAULT_CONFIG_FILE, false, true)
402
+ CmdTlmServer.new(CmdTlmServer::DEFAULT_CONFIG_FILE, false, true)
417
403
  id = CmdTlmServer.subscribe_packet_data([["SYSTEM","LIMITS_CHANGE"]])
418
- buffer,tgt,pkt,tv_sec,tv_usec,cnt = CmdTlmServer.get_packet_data(id, true)
404
+ buffer, tgt, pkt, tv_sec, tv_usec, cnt = CmdTlmServer.get_packet_data(id, true)
419
405
  expect(buffer).not_to be_nil
420
406
  expect(tgt).to eql "SYSTEM"
421
407
  expect(pkt).to eql "LIMITS_CHANGE"
408
+ expect(tv_sec).to be > 0
409
+ expect(tv_usec).to be > 0
410
+ expect(cnt).to eql 1
422
411
  end
423
412
  end
424
413
 
@@ -17,10 +17,6 @@ require 'cosmos/tools/cmd_tlm_server/cmd_tlm_server_config'
17
17
  module Cosmos
18
18
 
19
19
  describe Commanding do
20
- after(:all) do
21
- clean_config()
22
- end
23
-
24
20
  describe "send_command_to_target" do
25
21
  it "complains about unknown targets" do
26
22
  tf = Tempfile.new('unittest')
@@ -109,7 +105,7 @@ module Cosmos
109
105
  expect(System.commands.packet("UNKNOWN","UNKNOWN").buffer).to eql pkt.buffer
110
106
  tf.unlink
111
107
 
112
- expect(stdout.string).to match "Unidentified packet"
108
+ expect(stdout.string).to match("Unidentified packet")
113
109
  Logger.level = Logger::FATAL
114
110
  $stdout = STDOUT
115
111
  end
@@ -140,7 +136,7 @@ module Cosmos
140
136
  cmd.send_raw('MY_INT', "\x00\x01")
141
137
  tf.unlink
142
138
 
143
- expect(stdout.string).to match "Unlogged raw data of 2 bytes being sent to interface MY_INT"
139
+ expect(stdout.string).to match("Unlogged raw data of 2 bytes being sent to interface MY_INT")
144
140
  Logger.level = Logger::FATAL
145
141
  $stdout = STDOUT
146
142
  end
@@ -17,10 +17,6 @@ require 'tempfile'
17
17
  module Cosmos
18
18
 
19
19
  describe Connections do
20
- after(:all) do
21
- clean_config()
22
- end
23
-
24
20
  describe "initialize" do
25
21
  it "only allows :ROUTERS or :INTERFACES" do
26
22
  tf = Tempfile.new('unittest')
@@ -64,7 +64,7 @@ module Cosmos
64
64
  sleep 0.2
65
65
  expect(running_threads.length).to eql(1)
66
66
 
67
- expect(stdout.string).to match "Connection Failed: RuntimeError : ConnectError"
67
+ expect(stdout.string).to match("Connection Failed: RuntimeError : ConnectError")
68
68
  end
69
69
  end
70
70
 
@@ -89,7 +89,7 @@ module Cosmos
89
89
  expect(running_threads.length).to eql(1)
90
90
  expect(error_count).to eql 2
91
91
 
92
- expect(stdout.string).not_to match "Connection Failed: ConnectError"
92
+ expect(stdout.string).not_to match("Connection Failed: ConnectError")
93
93
  end
94
94
  end
95
95
 
@@ -103,7 +103,7 @@ module Cosmos
103
103
  sleep 0.2
104
104
  expect(running_threads.length).to eql(1)
105
105
 
106
- expect(stdout.string).to match "Connection Success"
106
+ expect(stdout.string).to match("Connection Success")
107
107
  end
108
108
  end
109
109
 
@@ -122,7 +122,7 @@ module Cosmos
122
122
  expect(running_threads.length).to eql(1)
123
123
  expect(callback_called).to be true
124
124
 
125
- expect(stdout.string).not_to match "Connection Success"
125
+ expect(stdout.string).not_to match("Connection Success")
126
126
  end
127
127
  end
128
128
 
@@ -141,7 +141,7 @@ module Cosmos
141
141
  sleep 0.2
142
142
  expect(running_threads.length).to eql(1)
143
143
 
144
- expect(stdout.string).to match "Connection Lost"
144
+ expect(stdout.string).to match("Connection Lost")
145
145
  end
146
146
  end
147
147
 
@@ -164,7 +164,7 @@ module Cosmos
164
164
  expect(running_threads.length).to eql(1)
165
165
  expect(callback_called).to be true
166
166
 
167
- expect(stdout.string).not_to match "Connection Lost"
167
+ expect(stdout.string).not_to match("Connection Lost")
168
168
  end
169
169
  end
170
170
 
@@ -178,7 +178,7 @@ module Cosmos
178
178
  thread.stop
179
179
  sleep 0.2
180
180
  expect(running_threads.length).to eql(1)
181
- expect(stdout.string).to match "ReadError"
181
+ expect(stdout.string).to match("ReadError")
182
182
  end
183
183
  end
184
184
 
@@ -197,7 +197,7 @@ module Cosmos
197
197
  sleep 0.2
198
198
  expect(running_threads.length).to eql(1)
199
199
 
200
- expect(stdout.string).to match "ECONNRESET"
200
+ expect(stdout.string).to match("ECONNRESET")
201
201
  end
202
202
  end
203
203
 
@@ -210,7 +210,7 @@ module Cosmos
210
210
  thread.stop
211
211
  sleep 0.2
212
212
 
213
- expect(stdout.string).to match "Packet reading thread unexpectedly died"
213
+ expect(stdout.string).to match("Packet reading thread unexpectedly died")
214
214
  end
215
215
  end
216
216
 
@@ -229,7 +229,7 @@ module Cosmos
229
229
  sleep 0.2
230
230
  expect(callback_called).to be true
231
231
 
232
- expect(stdout.string).not_to match "Packet reading thread unexpectedly died"
232
+ expect(stdout.string).not_to match("Packet reading thread unexpectedly died")
233
233
  end
234
234
  end
235
235
 
@@ -244,7 +244,7 @@ module Cosmos
244
244
  sleep 0.2
245
245
  expect(running_threads.length).to eql(1)
246
246
 
247
- expect(stdout.string).to match "Unknown 2 byte packet"
247
+ expect(stdout.string).to match("Unknown 2 byte packet")
248
248
  end
249
249
  end
250
250
 
@@ -261,7 +261,7 @@ module Cosmos
261
261
  thread.stop
262
262
  sleep 0.2
263
263
  expect(running_threads.length).to eql(1)
264
- expect(stdout.string).to match "Received unknown identified telemetry: BOB SMITH"
264
+ expect(stdout.string).to match("Received unknown identified telemetry: BOB SMITH")
265
265
  end
266
266
  end
267
267
 
@@ -281,7 +281,7 @@ module Cosmos
281
281
  sleep 0.2
282
282
  expect(running_threads.length).to eql(1)
283
283
 
284
- expect(stdout.string).to match "Problem writing to router"
284
+ expect(stdout.string).to match("Problem writing to router")
285
285
  end
286
286
  end
287
287
 
@@ -17,10 +17,6 @@ require 'cosmos/tools/cmd_tlm_server/cmd_tlm_server_config'
17
17
  module Cosmos
18
18
 
19
19
  describe Interfaces do
20
- after(:all) do
21
- clean_config()
22
- end
23
-
24
20
  describe "map_all_targets" do
25
21
  it "complains about an unknown interface" do
26
22
  tf = Tempfile.new('unittest')
@@ -100,7 +96,7 @@ module Cosmos
100
96
  interfaces.all['MY_INT'].connect_on_startup = true
101
97
  interfaces.start
102
98
 
103
- expect(stdout.string).to match "Creating thread for interface MY_INT"
99
+ expect(stdout.string).to match("Creating thread for interface MY_INT")
104
100
 
105
101
  interfaces.stop
106
102
  sleep 0.1
@@ -133,7 +129,7 @@ module Cosmos
133
129
  sleep 0.5
134
130
  expect(interfaces.state("MY_INT")).to eql "DISCONNECTED"
135
131
 
136
- expect(stdout.string).to match "Disconnected from interface MY_INT"
132
+ expect(stdout.string).to match("Disconnected from interface MY_INT")
137
133
 
138
134
  sleep 0.1
139
135
  end
@@ -187,14 +183,14 @@ module Cosmos
187
183
  expect(config.interfaces['DEST2'].routers[0].name).to eql "MY_ROUTER"
188
184
  interfaces.connect("DEST1")
189
185
  sleep 0.2
190
- expect(stdout.string).to match "Connecting to DEST1"
186
+ expect(stdout.string).to match("Connecting to DEST1")
191
187
  interfaces.disconnect("DEST1")
192
188
  interfaces.connect("DEST1",'localhost',8888,8888,6,6,'length')
193
189
  sleep 0.2
194
190
  expect(config.interfaces['DEST1'].routers[0].name).to eql "MY_ROUTER"
195
191
  expect(config.interfaces['DEST2'].routers[0].name).to eql "MY_ROUTER"
196
- expect(stdout.string).to match "Disconnected from interface DEST1"
197
- expect(stdout.string).to match "Connecting to DEST1"
192
+ expect(stdout.string).to match("Disconnected from interface DEST1")
193
+ expect(stdout.string).to match("Connecting to DEST1")
198
194
  interfaces.disconnect("DEST1")
199
195
  interfaces.stop
200
196
 
@@ -32,12 +32,20 @@ module Cosmos
32
32
  end
33
33
 
34
34
  describe "call" do
35
- it "raises an error if the group is not defined" do
35
+ it "warns if the group is not defined" do
36
36
  class MyLimitsGroups1 < LimitsGroupsBackgroundTask
37
37
  def check_blah
38
38
  end
39
39
  end
40
- expect { MyLimitsGroups1.new.call }.to raise_error(/check_blah doesn't match a group name/)
40
+ expect(Logger).to receive(:warn) do |msg|
41
+ expect(msg).to match(/check_blah doesn't match a group name/)
42
+ end
43
+ thread = Thread.new do
44
+ MyLimitsGroups1.new.call
45
+ end
46
+ sleep 0.1
47
+ thread.kill
48
+ thread.join
41
49
  end
42
50
 
43
51
  it "requires a floating point delay parameter" do
@@ -137,7 +145,7 @@ module Cosmos
137
145
  my.call
138
146
  end
139
147
  sleep 0.3
140
- expect(my.status).to match /Checking groups took 0.\d+/
148
+ expect(my.status).to match(/Checking groups took 0.\d+/)
141
149
  Cosmos.kill_thread(self, thread)
142
150
  end
143
151
  end
@@ -17,10 +17,6 @@ require 'tempfile'
17
17
  module Cosmos
18
18
 
19
19
  describe PacketLogging do
20
- after(:all) do
21
- clean_config()
22
- end
23
-
24
20
  describe "start" do
25
21
  it "starts each log writer" do
26
22
  tf = Tempfile.new('unittest')
@@ -43,7 +43,7 @@ module Cosmos
43
43
  thread.stop
44
44
  sleep 0.5
45
45
  expect(running_threads.length).to eql(1)
46
- expect(stdout.string).to match "disconnected interface"
46
+ expect(stdout.string).to match("disconnected interface")
47
47
  end
48
48
  end
49
49
 
@@ -61,7 +61,7 @@ module Cosmos
61
61
  thread.stop
62
62
  sleep 0.5
63
63
  expect(running_threads.length).to eql(1)
64
- expect(stdout.string).to match "Error routing command"
64
+ expect(stdout.string).to match("Error routing command")
65
65
  end
66
66
  end
67
67
 
@@ -85,7 +85,7 @@ module Cosmos
85
85
  thread.stop
86
86
  sleep 0.5
87
87
  expect(running_threads.length).to eql(1)
88
- expect(stdout.string).to match "Received unknown identified command: BOB SMITH"
88
+ expect(stdout.string).to match("Received unknown identified command: BOB SMITH")
89
89
  end
90
90
  end
91
91
 
@@ -113,7 +113,7 @@ module Cosmos
113
113
  thread.stop
114
114
  sleep 0.5
115
115
  expect(running_threads.length).to eql(1)
116
- expect(stdout.string).to match "Received unknown identified command: BOB SMITH"
116
+ expect(stdout.string).to match("Received unknown identified command: BOB SMITH")
117
117
  end
118
118
  expect(target).to have_received(:interface).at_least(2).times #and_return(@interface)
119
119
  end
@@ -142,7 +142,7 @@ module Cosmos
142
142
  thread.stop
143
143
  sleep 0.5
144
144
  expect(running_threads.length).to eql(1)
145
- expect(stdout.string).to match "target with no interface"
145
+ expect(stdout.string).to match("target with no interface")
146
146
  end
147
147
  end
148
148
  end
@@ -16,10 +16,6 @@ require 'tempfile'
16
16
  module Cosmos
17
17
 
18
18
  describe Routers do
19
- after(:all) do
20
- clean_config()
21
- end
22
-
23
19
  describe "start" do
24
20
  it "connects each router" do
25
21
  tf = Tempfile.new('unittest')
@@ -37,7 +33,7 @@ module Cosmos
37
33
  routers.all['MY_ROUTER'].connect_on_startup = true
38
34
  routers.start
39
35
 
40
- expect(stdout.string).to match "Creating thread for router MY_ROUTER"
36
+ expect(stdout.string).to match("Creating thread for router MY_ROUTER")
41
37
  routers.stop
42
38
  end
43
39
  tf.unlink
@@ -67,7 +63,7 @@ module Cosmos
67
63
  sleep 0.1
68
64
  expect(routers.state("MY_ROUTER")).to eql "DISCONNECTED"
69
65
 
70
- expect(stdout.string).to match "Disconnected from router MY_ROUTER"
66
+ expect(stdout.string).to match("Disconnected from router MY_ROUTER")
71
67
  end
72
68
  tf.unlink
73
69
  sleep(0.2)
@@ -156,12 +152,12 @@ module Cosmos
156
152
  expect(config.interfaces['DEST2'].routers[0].name).to eql "MY_ROUTER"
157
153
  routers.connect("MY_ROUTER")
158
154
  sleep 0.1
159
- expect(stdout.string).to match "Connecting to MY_ROUTER"
155
+ expect(stdout.string).to match("Connecting to MY_ROUTER")
160
156
  routers.disconnect("MY_ROUTER")
161
157
  routers.connect("MY_ROUTER",'localhost',8888,8888,6,6,'length')
162
158
  sleep 0.1
163
- expect(stdout.string).to match "Disconnected from router MY_ROUTER"
164
- expect(stdout.string).to match "Connecting to MY_ROUTER"
159
+ expect(stdout.string).to match("Disconnected from router MY_ROUTER")
160
+ expect(stdout.string).to match("Connecting to MY_ROUTER")
165
161
  expect(routers.all["MY_ROUTER"].interfaces[0].name).to eql "DEST1"
166
162
  expect(routers.all["MY_ROUTER"].interfaces[1].name).to eql "DEST2"
167
163
  expect(config.interfaces['DEST1'].routers[0].name).to eql "MY_ROUTER"