cosmos 4.4.0 → 4.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +5 -5
  2. data/.dockerignore +2 -0
  3. data/.gitignore +1 -0
  4. data/.travis.yml +6 -6
  5. data/Dockerfile +70 -0
  6. data/Manifest.txt +37 -2
  7. data/README.md +9 -0
  8. data/Rakefile +55 -5
  9. data/appveyor.yml +18 -8
  10. data/autohotkey/config/tools/cmd_sequence/cmd_sequence.txt +2 -0
  11. data/autohotkey/lib/cmd_sequence_exporter.rb +52 -0
  12. data/autohotkey/procedures/collect.rb +2 -2
  13. data/autohotkey/procedures/collect_util.rb +1 -1
  14. data/autohotkey/procedures/script_test.rb +1 -1
  15. data/autohotkey/tools/CmdSenderAHK2 +18 -0
  16. data/autohotkey/tools/cmd_extractor.ahk +11 -9
  17. data/autohotkey/tools/cmd_sender.ahk +35 -7
  18. data/autohotkey/tools/cmd_sender2.ahk +4 -0
  19. data/autohotkey/tools/cmd_sequence.ahk +22 -9
  20. data/autohotkey/tools/config_editor.ahk +4 -4
  21. data/autohotkey/tools/data_viewer.ahk +1 -1
  22. data/autohotkey/tools/limits_monitor.ahk +1 -1
  23. data/autohotkey/tools/packet_viewer.ahk +1 -1
  24. data/autohotkey/tools/script_runner.ahk +1 -1
  25. data/autohotkey/tools/test_runner2.ahk +1 -1
  26. data/autohotkey/tools/tlm_grapher.ahk +1 -1
  27. data/autohotkey/tools/tlm_grapher3.ahk +1 -1
  28. data/autohotkey/tools/tlm_viewer.ahk +1 -1
  29. data/autohotkey/tools/tlm_viewer2.ahk +1 -1
  30. data/autohotkey/tools/tlm_viewer5.ahk +1 -1
  31. data/bin/cstol_converter +1 -1
  32. data/bin/rubysloc +73 -28
  33. data/bin/xtce_converter +1 -1
  34. data/cosmos.gemspec +2 -2
  35. data/data/config/command_modifiers.yaml +16 -1
  36. data/data/config/interface_modifiers.yaml +3 -2
  37. data/data/config/param_item_modifiers.yaml +5 -0
  38. data/data/config/system.yaml +110 -23
  39. data/data/config/telemetry_modifiers.yaml +16 -1
  40. data/data/crc.txt +416 -411
  41. data/demo/Rakefile +4 -4
  42. data/demo/config/dart/Gemfile +1 -6
  43. data/demo/config/data/crc.txt +233 -232
  44. data/demo/config/system/system.txt +17 -6
  45. data/demo/config/system/system2.txt +17 -6
  46. data/demo/config/system/system_alt_ports.txt +17 -6
  47. data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +4 -4
  48. data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +4 -0
  49. data/demo/config/targets/INST/cmd_tlm/inst_tlm_override.txt +12 -0
  50. data/demo/config/targets/INST/lib/sim_inst.rb +2 -2
  51. data/demo/config/targets/INST/target.txt +1 -0
  52. data/demo/config/tools/handbook_creator/default_toc.xsl +59 -59
  53. data/demo/procedures/cosmos_api_test.rb +8 -8
  54. data/ext/cosmos/ext/buffered_file/buffered_file.c +2 -2
  55. data/ext/cosmos/ext/config_parser/config_parser.c +1 -2
  56. data/ext/cosmos/ext/line_graph/line_graph.c +53 -94
  57. data/ext/cosmos/ext/platform/platform.c +56 -21
  58. data/ext/cosmos/ext/polynomial_conversion/polynomial_conversion.c +4 -8
  59. data/ext/cosmos/ext/structure/structure.c +12 -0
  60. data/extensions/vscode/.gitignore +4 -0
  61. data/extensions/vscode/.vscode/launch.json +32 -0
  62. data/extensions/vscode/.vscode/settings.json +13 -0
  63. data/extensions/vscode/.vscode/tasks.json +79 -0
  64. data/extensions/vscode/License.txt +879 -0
  65. data/extensions/vscode/README.md +9 -0
  66. data/extensions/vscode/client/License.txt +879 -0
  67. data/extensions/vscode/client/README.md +39 -0
  68. data/extensions/vscode/client/cosmos.configuration.json +23 -0
  69. data/extensions/vscode/client/images/icon.png +0 -0
  70. data/extensions/vscode/client/package-lock.json +414 -0
  71. data/extensions/vscode/client/package.json +105 -0
  72. data/extensions/vscode/client/src/extension.ts +132 -0
  73. data/extensions/vscode/client/src/screen_preview.rb +25 -0
  74. data/extensions/vscode/client/syntaxes/cosmos.tmLanguage.json +219 -0
  75. data/extensions/vscode/client/tsconfig.json +17 -0
  76. data/extensions/vscode/package-lock.json +26 -0
  77. data/extensions/vscode/package.json +35 -0
  78. data/extensions/vscode/server/License.txt +879 -0
  79. data/extensions/vscode/server/package-lock.json +236 -0
  80. data/extensions/vscode/server/package.json +29 -0
  81. data/extensions/vscode/server/src/server.ts +59 -0
  82. data/extensions/vscode/server/tsconfig.json +16 -0
  83. data/install/Rakefile +4 -4
  84. data/install/config/dart/Gemfile +2 -7
  85. data/install/config/data/crc.txt +137 -137
  86. data/install/config/system/system.txt +17 -6
  87. data/install/config/tools/handbook_creator/default_toc.xsl +59 -59
  88. data/lib/cosmos/config/config_parser.rb +2 -10
  89. data/lib/cosmos/core_ext/class.rb +10 -0
  90. data/lib/cosmos/core_ext/time.rb +5 -3
  91. data/lib/cosmos/dart/config/boot.rb +1 -1
  92. data/lib/cosmos/dart/config/database.yml +2 -0
  93. data/lib/cosmos/dart/examples/dart_decom_client.rb +1 -1
  94. data/lib/cosmos/dart/lib/dart_common.rb +12 -5
  95. data/lib/cosmos/dart/lib/dart_constants.rb +15 -0
  96. data/lib/cosmos/dart/lib/dart_decom_query.rb +5 -6
  97. data/lib/cosmos/dart/lib/dart_decommutator.rb +64 -54
  98. data/lib/cosmos/dart/lib/dart_master_query.rb +71 -0
  99. data/lib/cosmos/dart/lib/dart_reducer_worker_thread.rb +165 -134
  100. data/lib/cosmos/dart/processes/dart.rb +4 -2
  101. data/lib/cosmos/dart/processes/dart_decom_server.rb +3 -3
  102. data/lib/cosmos/dart/processes/dart_ingester.rb +38 -1
  103. data/lib/cosmos/dart/processes/dart_master.rb +44 -0
  104. data/lib/cosmos/dart/processes/dart_util.rb +115 -0
  105. data/lib/cosmos/dart/spec/dart/dart_database_cleaner_spec.rb +2 -2
  106. data/lib/cosmos/gui/qt.rb +10 -10
  107. data/lib/cosmos/gui/qt_tool.rb +17 -12
  108. data/lib/cosmos/gui/text/completion_text_edit.rb +2 -0
  109. data/lib/cosmos/gui/widgets/dart_meta_frame.rb +22 -3
  110. data/lib/cosmos/interfaces/dart_status_interface.rb +1 -1
  111. data/lib/cosmos/interfaces/linc_interface.rb +3 -3
  112. data/lib/cosmos/interfaces/protocols/burst_protocol.rb +1 -1
  113. data/lib/cosmos/interfaces/protocols/crc_protocol.rb +1 -1
  114. data/lib/cosmos/interfaces/protocols/length_protocol.rb +5 -0
  115. data/lib/cosmos/interfaces/protocols/template_protocol.rb +3 -3
  116. data/lib/cosmos/interfaces/serial_interface.rb +7 -1
  117. data/lib/cosmos/interfaces/stream_interface.rb +1 -1
  118. data/lib/cosmos/interfaces/tcpip_server_interface.rb +16 -16
  119. data/lib/cosmos/io/io_multiplexer.rb +6 -2
  120. data/lib/cosmos/io/json_drb.rb +5 -5
  121. data/lib/cosmos/io/json_drb_object.rb +7 -2
  122. data/lib/cosmos/io/json_drb_rack.rb +25 -5
  123. data/lib/cosmos/io/json_rpc.rb +1 -1
  124. data/lib/cosmos/io/posix_serial_driver.rb +60 -22
  125. data/lib/cosmos/io/serial_driver.rb +11 -8
  126. data/lib/cosmos/io/win32_serial_driver.rb +31 -3
  127. data/lib/cosmos/packet_logs/packet_log_reader.rb +2 -2
  128. data/lib/cosmos/packets/packet.rb +9 -9
  129. data/lib/cosmos/packets/packet_config.rb +27 -9
  130. data/lib/cosmos/packets/parsers/xtce_converter.rb +10 -10
  131. data/lib/cosmos/packets/parsers/xtce_parser.rb +3 -0
  132. data/lib/cosmos/packets/structure.rb +35 -5
  133. data/lib/cosmos/packets/structure_item.rb +5 -1
  134. data/lib/cosmos/packets/telemetry.rb +7 -1
  135. data/lib/cosmos/script/api_shared.rb +18 -1
  136. data/lib/cosmos/script/extract.rb +1 -1
  137. data/lib/cosmos/script/script.rb +4 -11
  138. data/lib/cosmos/streams/serial_stream.rb +11 -6
  139. data/lib/cosmos/system/system.rb +155 -57
  140. data/lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb +15 -0
  141. data/lib/cosmos/tools/cmd_sender/cmd_params.rb +382 -0
  142. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +29 -318
  143. data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +14 -17
  144. data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +38 -331
  145. data/lib/cosmos/tools/cmd_sequence/sequence_list.rb +16 -11
  146. data/lib/cosmos/tools/cmd_tlm_server/api.rb +10 -8
  147. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +2 -2
  148. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +1 -0
  149. data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +1 -1
  150. data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +29 -26
  151. data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +1 -1
  152. data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +5 -0
  153. data/lib/cosmos/tools/config_editor/config_editor.rb +34 -3
  154. data/lib/cosmos/tools/config_editor/config_editor_frame.rb +8 -9
  155. data/lib/cosmos/tools/config_editor/system_config_dialog.rb +158 -0
  156. data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +1 -1
  157. data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +1 -1
  158. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +7 -4
  159. data/lib/cosmos/tools/test_runner/test.rb +6 -3
  160. data/lib/cosmos/tools/test_runner/test_runner.rb +6 -6
  161. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +3 -3
  162. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +1 -4
  163. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +20 -16
  164. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +21 -17
  165. data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +18 -11
  166. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +17 -6
  167. data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +2 -0
  168. data/lib/cosmos/top_level.rb +1 -1
  169. data/lib/cosmos/utilities/ruby_lex_utils.rb +34 -30
  170. data/lib/cosmos/utilities/simulated_target.rb +1 -1
  171. data/lib/cosmos/version.rb +5 -5
  172. data/lib/cosmos/win32/excel.rb +23 -17
  173. data/run_gui_tests.bat +1 -0
  174. data/spec/core_ext/class_spec.rb +54 -0
  175. data/spec/core_ext/socket_spec.rb +1 -1
  176. data/spec/core_ext/time_spec.rb +4 -0
  177. data/spec/install/yaml_docs_spec.rb +26 -6
  178. data/spec/interfaces/linc_interface_spec.rb +1 -1
  179. data/spec/interfaces/protocols/length_protocol_spec.rb +39 -0
  180. data/spec/interfaces/serial_interface_spec.rb +1 -5
  181. data/spec/io/json_drb_rack_spec.rb +166 -0
  182. data/spec/io/json_drb_spec.rb +14 -0
  183. data/spec/io/json_rpc_spec.rb +4 -5
  184. data/spec/io/posix_serial_driver_spec.rb +81 -0
  185. data/spec/io/win32_serial_driver_spec.rb +33 -3
  186. data/spec/packet_logs/packet_log_reader_spec.rb +36 -37
  187. data/spec/packets/structure_spec.rb +52 -2
  188. data/spec/packets/telemetry_spec.rb +29 -1
  189. data/spec/script/extract_spec.rb +4 -1
  190. data/spec/system/system_spec.rb +111 -3
  191. data/spec/tools/cmd_tlm_server/api_spec.rb +12 -12
  192. data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +2 -2
  193. data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +4 -3
  194. data/spec/tools/cmd_tlm_server/router_thread_spec.rb +2 -3
  195. data/spec/utilities/logger_spec.rb +3 -3
  196. data/spec/utilities/message_log_spec.rb +6 -3
  197. data/tasks/gemfile_stats.rake +22 -13
  198. data/test/performance/Rakefile +4 -4
  199. data/test/performance/config/data/crc.txt +67 -48
  200. metadata +52 -11
  201. data/demo/outputs/dart/logs/README.txt +0 -1
  202. data/lib/cosmos/dart/Gemfile +0 -69
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 134e2570bb805f1658a540299af415a7741b4c5c
4
- data.tar.gz: 2db906d305fae0a0c6b3336e026562e197b750ce
2
+ SHA256:
3
+ metadata.gz: c7429d28f8f97293a9c8f9779cd11b32c484b5611880bedd58f2cde82b348cd2
4
+ data.tar.gz: f64ef30f269a8c7d79d2dbd85c995e8eae63903d9eb534408c593e8def86cdcd
5
5
  SHA512:
6
- metadata.gz: c2e0164a0959347156dd9b9d256f3a75488a4f3b8f147e1cafb461e9ea0d419ceeafcceb958da736921c0bc76386cd99abad47e1d7cc6ab442611aace04ec87c
7
- data.tar.gz: 352996be7dcad437868a502237cf65f401c25d1aa58dc9c74f3b66fe8528570b2462259f05c1edb932cd62d3d661b85354d944b5bcf27e7e23241ff34a2757cc
6
+ metadata.gz: 7e7c12fac22a5a5e68f0d5cefeeab1327592d727a31e799001516f35000bc066e7ae7723417345c1578978e64a4a4e8d06a564035241a8a6ac4af2cf3ad73bad
7
+ data.tar.gz: ca43d50aac04edd22d03bc3a44c15c66911374a1cfe40a8ad08e2c91a9fe6c9b3192760d423df0197fc38137a7cf896462e73623163c1dba29a61368c2e0e8ca
data/.dockerignore ADDED
@@ -0,0 +1,2 @@
1
+ demo/outputs/**
2
+ install/outputs/**
data/.gitignore CHANGED
@@ -7,6 +7,7 @@ Gemfile.lock
7
7
  .yardoc
8
8
  .DS_Store
9
9
  desktop.ini
10
+ cert.pem
10
11
  install/outputs
11
12
  demo/outputs
12
13
  autohotkey/outputs
data/.travis.yml CHANGED
@@ -1,16 +1,16 @@
1
1
  env: JRUBY_OPTS=--debug
2
+ dist: trusty
2
3
  language: ruby
3
- sudo: false
4
4
  cache: bundler
5
5
  services:
6
6
  - postgresql
7
7
  rvm:
8
- - jruby-9.2.5.0
9
- - 2.6.3
10
- - 2.5.5
11
- - 2.4.6
12
- - 2.3.8
8
+ - jruby-9.2.9.0
9
+ - 2.6.5
10
+ - 2.5.7
11
+ - 2.4.9
13
12
  before_install:
13
+ - sudo apt-get install -y libgl1-mesa-dev
14
14
  - gem update --system
15
15
  - gem install bundler
16
16
  script: bundle exec rake build spec
data/Dockerfile ADDED
@@ -0,0 +1,70 @@
1
+ # This Dockerfile is for development of COSMOS
2
+ # See Docker Hub: ballaerospace/cosmos for production docker images
3
+
4
+ FROM ubuntu:18.04
5
+
6
+ RUN apt-get update -y && apt-get install -y \
7
+ cmake \
8
+ default-jdk \
9
+ freeglut3 \
10
+ freeglut3-dev \
11
+ gcc \
12
+ g++ \
13
+ git \
14
+ iproute2 \
15
+ libffi-dev \
16
+ libgdbm-dev \
17
+ libgdbm5 \
18
+ libgstreamer-plugins-base1.0-dev \
19
+ libgstreamer1.0-dev \
20
+ libncurses5-dev \
21
+ libreadline6-dev \
22
+ libsmokeqt4-dev \
23
+ libssl-dev \
24
+ libyaml-dev \
25
+ net-tools \
26
+ postgresql-server-dev-all \
27
+ qt4-default \
28
+ qt4-dev-tools \
29
+ ruby2.5 \
30
+ ruby2.5-dev \
31
+ vim \
32
+ xterm \
33
+ zlib1g-dev
34
+
35
+ RUN gem install rake --no-document
36
+
37
+ # We require a local certificate file so set that up.
38
+ # You must place a valid cert.pem file in your COSMOS development folder for this work
39
+ # Comment out these lines if this is not required in your environment
40
+ COPY cert.pem /devel/cert.pem
41
+ ENV SSL_CERT_FILE /devel/cert.pem
42
+ ENV CURL_CA_BUNDLE /devel/cert.pem
43
+ ENV REQUESTS_CA_BUNDLE /devel/cert.pem
44
+ RUN git config --global http.sslCAinfo /devel/cert.pem
45
+
46
+ # Download and install jruby
47
+ RUN cd /opt \
48
+ && curl -G https://repo1.maven.org/maven2/org/jruby/jruby-dist/9.2.9.0/jruby-dist-9.2.9.0-bin.tar.gz > jruby.tar.gz \
49
+ && tar xvf jruby.tar.gz \
50
+ && mv jruby-9.2.9.0 jruby
51
+
52
+ ARG COSMOS_REPO=https://github.com/BallAerospace/COSMOS.git
53
+
54
+ # Download and setup COSMOS devel area
55
+ RUN gem install bundler --no-document
56
+ RUN cd /devel \
57
+ && git clone ${COSMOS_REPO} COSMOS \
58
+ && git checkout cosmos4 \
59
+ && cd /devel/COSMOS \
60
+ && bundle install
61
+
62
+ ARG COSMOS_DOCKER_REPO=https://github.com/BallAerospace/cosmos-docker.git
63
+
64
+ # Download COSMOS docker files to support docker release
65
+ RUN cd /devel \
66
+ && git clone ${COSMOS_DOCKER_REPO}
67
+
68
+ ENV COSMOS_DEVEL /devel/COSMOS
69
+ WORKDIR /devel/COSMOS
70
+ CMD bash
data/Manifest.txt CHANGED
@@ -1,4 +1,5 @@
1
1
  .coveralls.yml
2
+ .dockerignore
2
3
  .gitattributes
3
4
  .github/ISSUE_TEMPLATE/bug_report.md
4
5
  .github/ISSUE_TEMPLATE/feature_request.md
@@ -8,6 +9,7 @@
8
9
  .travis.yml
9
10
  .yardopts
10
11
  CONTRIBUTING.txt
12
+ Dockerfile
11
13
  Gemfile
12
14
  Guardfile
13
15
  LICENSE.txt
@@ -59,6 +61,7 @@ autohotkey/config/targets/SYSTEM/screens/limits_change.txt
59
61
  autohotkey/config/targets/SYSTEM/screens/meta.txt
60
62
  autohotkey/config/targets/SYSTEM/target.txt
61
63
  autohotkey/config/tools/cmd_sender/cmd_sender.txt
64
+ autohotkey/config/tools/cmd_sequence/cmd_sequence.txt
62
65
  autohotkey/config/tools/cmd_tlm_server/cmd_tlm_server.txt
63
66
  autohotkey/config/tools/data_viewer/data_viewer.txt
64
67
  autohotkey/config/tools/handbook_creator/assets/css/bootstrap-theme.css
@@ -110,6 +113,7 @@ autohotkey/config/tools/tlm_grapher/test2.txt
110
113
  autohotkey/config/tools/tlm_viewer/tlm_viewer.txt
111
114
  autohotkey/config/tools/tlm_viewer/tlm_viewer2.txt
112
115
  autohotkey/config/tools/tlm_viewer/tlm_viewer3.txt
116
+ autohotkey/lib/cmd_sequence_exporter.rb
113
117
  autohotkey/lib/example_background_task.rb
114
118
  autohotkey/lib/user_version.rb
115
119
  autohotkey/outputs/handbooks/README.txt
@@ -132,6 +136,7 @@ autohotkey/procedures/syntax_error.rb
132
136
  autohotkey/tools/CmdExtractorAHK
133
137
  autohotkey/tools/CmdSender
134
138
  autohotkey/tools/CmdSenderAHK
139
+ autohotkey/tools/CmdSenderAHK2
135
140
  autohotkey/tools/CmdSequence
136
141
  autohotkey/tools/CmdSequenceAHK
137
142
  autohotkey/tools/CmdSequenceAHK2
@@ -184,6 +189,7 @@ autohotkey/tools/TlmViewerAHK5
184
189
  autohotkey/tools/autohotkey.rb
185
190
  autohotkey/tools/cmd_extractor.ahk
186
191
  autohotkey/tools/cmd_sender.ahk
192
+ autohotkey/tools/cmd_sender2.ahk
187
193
  autohotkey/tools/cmd_sequence.ahk
188
194
  autohotkey/tools/cmd_sequence2.ahk
189
195
  autohotkey/tools/cmd_tlm_server.ahk
@@ -391,6 +397,7 @@ demo/config/targets/INST/cmd_tlm/_ccsds_cmd.txt
391
397
  demo/config/targets/INST/cmd_tlm/_ccsds_tlm.txt
392
398
  demo/config/targets/INST/cmd_tlm/inst_cmds.txt
393
399
  demo/config/targets/INST/cmd_tlm/inst_tlm.txt
400
+ demo/config/targets/INST/cmd_tlm/inst_tlm_override.txt
394
401
  demo/config/targets/INST/cmd_tlm_server.txt
395
402
  demo/config/targets/INST/cmd_tlm_server2.txt
396
403
  demo/config/targets/INST/doc/README.txt
@@ -511,7 +518,6 @@ demo/lib/example_target.rb
511
518
  demo/lib/scpi_target.rb
512
519
  demo/lib/user_version.rb
513
520
  demo/outputs/dart/data/README.txt
514
- demo/outputs/dart/logs/README.txt
515
521
  demo/outputs/handbooks/README.txt
516
522
  demo/outputs/logs/README.txt
517
523
  demo/outputs/saved_config/README.txt
@@ -688,6 +694,29 @@ ext/cosmos/ext/tabbed_plots_config/tabbed_plots_config.c
688
694
  ext/cosmos/ext/telemetry/extconf.rb
689
695
  ext/cosmos/ext/telemetry/telemetry.c
690
696
  ext/mkrf_conf.rb
697
+ extensions/vscode/.gitignore
698
+ extensions/vscode/.vscode/launch.json
699
+ extensions/vscode/.vscode/settings.json
700
+ extensions/vscode/.vscode/tasks.json
701
+ extensions/vscode/License.txt
702
+ extensions/vscode/README.md
703
+ extensions/vscode/client/License.txt
704
+ extensions/vscode/client/README.md
705
+ extensions/vscode/client/cosmos.configuration.json
706
+ extensions/vscode/client/images/icon.png
707
+ extensions/vscode/client/package-lock.json
708
+ extensions/vscode/client/package.json
709
+ extensions/vscode/client/src/extension.ts
710
+ extensions/vscode/client/src/screen_preview.rb
711
+ extensions/vscode/client/syntaxes/cosmos.tmLanguage.json
712
+ extensions/vscode/client/tsconfig.json
713
+ extensions/vscode/package-lock.json
714
+ extensions/vscode/package.json
715
+ extensions/vscode/server/License.txt
716
+ extensions/vscode/server/package-lock.json
717
+ extensions/vscode/server/package.json
718
+ extensions/vscode/server/src/server.ts
719
+ extensions/vscode/server/tsconfig.json
691
720
  install/Gemfile
692
721
  install/Launcher
693
722
  install/Launcher.bat
@@ -917,7 +946,6 @@ lib/cosmos/core_ext/string.rb
917
946
  lib/cosmos/core_ext/stringio.rb
918
947
  lib/cosmos/core_ext/time.rb
919
948
  lib/cosmos/dart/.rspec
920
- lib/cosmos/dart/Gemfile
921
949
  lib/cosmos/dart/Rakefile
922
950
  lib/cosmos/dart/app/assets/config/manifest.js
923
951
  lib/cosmos/dart/app/assets/images/.keep
@@ -1004,11 +1032,13 @@ lib/cosmos/dart/db/seeds.rb
1004
1032
  lib/cosmos/dart/examples/dart_decom_client.rb
1005
1033
  lib/cosmos/dart/examples/dart_stream_client.rb
1006
1034
  lib/cosmos/dart/lib/dart_common.rb
1035
+ lib/cosmos/dart/lib/dart_constants.rb
1007
1036
  lib/cosmos/dart/lib/dart_database_cleaner.rb
1008
1037
  lib/cosmos/dart/lib/dart_decom_query.rb
1009
1038
  lib/cosmos/dart/lib/dart_decommutator.rb
1010
1039
  lib/cosmos/dart/lib/dart_importer.rb
1011
1040
  lib/cosmos/dart/lib/dart_logging.rb
1041
+ lib/cosmos/dart/lib/dart_master_query.rb
1012
1042
  lib/cosmos/dart/lib/dart_packet_log_writer.rb
1013
1043
  lib/cosmos/dart/lib/dart_reducer_manager.rb
1014
1044
  lib/cosmos/dart/lib/dart_reducer_worker_thread.rb
@@ -1017,6 +1047,7 @@ lib/cosmos/dart/processes/dart.rb
1017
1047
  lib/cosmos/dart/processes/dart_decom_server.rb
1018
1048
  lib/cosmos/dart/processes/dart_import.rb
1019
1049
  lib/cosmos/dart/processes/dart_ingester.rb
1050
+ lib/cosmos/dart/processes/dart_master.rb
1020
1051
  lib/cosmos/dart/processes/dart_reducer.rb
1021
1052
  lib/cosmos/dart/processes/dart_stream_server.rb
1022
1053
  lib/cosmos/dart/processes/dart_util.rb
@@ -1184,6 +1215,7 @@ lib/cosmos/system/system.rb
1184
1215
  lib/cosmos/system/target.rb
1185
1216
  lib/cosmos/tools/cmd_extractor/cmd_extractor.rb
1186
1217
  lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb
1218
+ lib/cosmos/tools/cmd_sender/cmd_params.rb
1187
1219
  lib/cosmos/tools/cmd_sender/cmd_sender.rb
1188
1220
  lib/cosmos/tools/cmd_sender/cmd_sender_text_edit.rb
1189
1221
  lib/cosmos/tools/cmd_sequence/cmd_sequence.rb
@@ -1212,6 +1244,7 @@ lib/cosmos/tools/cmd_tlm_server/router_thread.rb
1212
1244
  lib/cosmos/tools/cmd_tlm_server/routers.rb
1213
1245
  lib/cosmos/tools/config_editor/config_editor.rb
1214
1246
  lib/cosmos/tools/config_editor/config_editor_frame.rb
1247
+ lib/cosmos/tools/config_editor/system_config_dialog.rb
1215
1248
  lib/cosmos/tools/data_viewer/data_viewer.rb
1216
1249
  lib/cosmos/tools/data_viewer/data_viewer_component.rb
1217
1250
  lib/cosmos/tools/data_viewer/dump_component.rb
@@ -1444,8 +1477,10 @@ spec/interfaces/udp_interface_spec.rb
1444
1477
  spec/io/buffered_file_spec.rb
1445
1478
  spec/io/io_multiplexer_spec.rb
1446
1479
  spec/io/json_drb_object_spec.rb
1480
+ spec/io/json_drb_rack_spec.rb
1447
1481
  spec/io/json_drb_spec.rb
1448
1482
  spec/io/json_rpc_spec.rb
1483
+ spec/io/posix_serial_driver_spec.rb
1449
1484
  spec/io/raw_logger_pair_spec.rb
1450
1485
  spec/io/raw_logger_spec.rb
1451
1486
  spec/io/serial_driver_spec.rb
data/README.md CHANGED
@@ -84,6 +84,11 @@ COSMOS is built and maintained by Ryan Melton (ryanatball/ryanmelt) and Jason Th
84
84
 
85
85
  5. Follow the [Documentation](http://cosmosrb.com) to start developing your configuration.
86
86
 
87
+ ## Docker
88
+
89
+ See our Docker documentation here:
90
+ [COSMOS Docker Directions](https://github.com/BallAerospace/cosmos-docker)
91
+
87
92
  ## Contributing
88
93
 
89
94
  We encourage you to contribute to COSMOS!
@@ -100,6 +105,10 @@ Before any contributions can be incorporated we do require all contributors to s
100
105
 
101
106
  This protects both you and us and you retain full rights to any code you write.
102
107
 
108
+ ## Vulnerability Disclosure
109
+
110
+ If you discover a security vulnerability in COSMOS, please do not disclose to any public forum or our Github tickets system. Please email the vulnerability details to COSMOS@ball.com, and give us 90 days to incorporate any needed changes. Also please also let us know how how you would like to be reffered to for attribution when we post the fix. Thanks!
111
+
103
112
  ## Code Status
104
113
 
105
114
  * [![Travis Build Status](https://travis-ci.org/BallAerospace/COSMOS.svg?branch=master)](https://travis-ci.org/BallAerospace/COSMOS)
data/Rakefile CHANGED
@@ -10,6 +10,20 @@
10
10
 
11
11
  require 'open3'
12
12
 
13
+ # Cross-platform way of finding an executable in the $PATH.
14
+ #
15
+ # which('ruby') #=> /usr/bin/ruby
16
+ def which(cmd)
17
+ exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
18
+ ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
19
+ exts.each { |ext|
20
+ exe = File.join(path, "#{cmd}#{ext}")
21
+ return exe if File.executable?(exe) && !File.directory?(exe)
22
+ }
23
+ end
24
+ return nil
25
+ end
26
+
13
27
  # Pure Ruby CRC class to avoid circular dependency with c_cosmos
14
28
  class RakeCrc32
15
29
  attr_reader :crc32_poly
@@ -155,8 +169,8 @@ task :build => [:devkit] do
155
169
  end
156
170
  end
157
171
 
158
- task :git_checkout_master do
159
- system('git checkout master')
172
+ task :git_checkout do
173
+ system('git checkout cosmos4')
160
174
  end
161
175
 
162
176
  task :install_crc do
@@ -178,7 +192,7 @@ task :gem => [:require_version] do
178
192
  system('gem build cosmos.gemspec')
179
193
  end
180
194
 
181
- task :commit_release_ticket => [:require_version, :git_checkout_master] do
195
+ task :commit_release_ticket => [:require_version, :git_checkout] do
182
196
  system('git add data/crc.txt')
183
197
  system('git add demo/config/data/crc.txt')
184
198
  system('git add install/config/data/crc.txt')
@@ -219,7 +233,7 @@ task :version => [:require_version] do
219
233
  # Create the crc.txt file
220
234
  crc = RakeCrc32.new
221
235
  File.open("data/crc.txt",'w') do |file|
222
- Dir[File.join('lib','**','*.rb')].each do |filename|
236
+ Dir[File.join('lib','**','*.rb')].sort.each do |filename|
223
237
  file_data = File.open(filename, 'rb').read.gsub("\x0D\x0A", "\x0A")
224
238
  file.puts "\"#{filename}\" #{sprintf("0x%08X", crc.calc(file_data))}"
225
239
  end
@@ -283,5 +297,41 @@ if RUBY_ENGINE == 'ruby'
283
297
  end
284
298
  end
285
299
 
286
- task :release => [:require_version, :git_checkout_master, :build, :spec, :manifest, :version, :install_crc, :gem]
300
+ task :release => [:require_version, :git_checkout, :build, :spec, :manifest, :version, :install_crc, :gem]
287
301
  task :commit_release => [:commit_release_ticket, :tag_release]
302
+
303
+ task :docker_build do
304
+ _, platform, *_ = RUBY_PLATFORM.split("-")
305
+ if (platform == 'mswin32' or platform == 'mingw32') and which('winpty')
306
+ system('winpty docker build --tag cosmos-dev .')
307
+ else
308
+ system('docker build --tag cosmos-dev .')
309
+ end
310
+ end
311
+
312
+ task :docker_run do
313
+ STDOUT.puts "Note, this is not automated on purpose to ensure each step is successful (with user entry of credentials for github/rubygems.org)"
314
+ STDOUT.puts "Steps to perform a COSMOS release:"
315
+ STDOUT.puts "1a. git config --global user.name \"Last, First\""
316
+ STDOUT.puts "1b. git config --global user.email \"me@ball.com\""
317
+ STDOUT.puts "1c. Ensure Ruby 2.5 is in your path"
318
+ STDOUT.puts "2. git checkout cosmos4"
319
+ STDOUT.puts "3. git pull"
320
+ STDOUT.puts "4. export VERSION=X.X.X"
321
+ STDOUT.puts "5. rake release"
322
+ STDOUT.puts "6. rake commit_release"
323
+ STDOUT.puts "7. export PATH=/opt/jruby/bin:$PATH"
324
+ STDOUT.puts "8. rake gem"
325
+ STDOUT.puts "9. /usr/bin/gem push cosmos-X.X.X.gem"
326
+ STDOUT.puts "10. /usr/bin/gem push cosmos-X.X.X-java.gem"
327
+ STDOUT.puts "11. cd /devel/cosmos-docker"
328
+ STDOUT.puts "12. git pull"
329
+ STDOUT.puts "13. Update COSMOS_VERSION in all Dockerfiles. Also update README.md"
330
+ STDOUT.puts "14. git commit -a -m \"Release COSMOS vX.X.X\""
331
+ STDOUT.puts "15. git push"
332
+ STDOUT.puts "16. git checkout -b vX.X.X"
333
+ STDOUT.puts "17. git push --set-upstream origin vX.X.X"
334
+ STDOUT.puts "18. Update release notes on github.com and cosmosrb.com"
335
+
336
+ system('docker run -it --rm cosmos-dev')
337
+ end
data/appveyor.yml CHANGED
@@ -1,19 +1,29 @@
1
+ environment:
2
+ matrix:
3
+ - ruby_version: 24-x64
4
+ - ruby_version: 25-x64
5
+ #- ruby_version: 26-x64 this needs qtbindings support
6
+
7
+ cache:
8
+ # If one of the files after the right arrow changes, cache will be invalidated
9
+ - vendor\bundle -> appveyor.yml, Gemfile, cosmos.gemspec
10
+
1
11
  install:
2
12
  - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
3
13
  - SET PATH=C:\MinGW\bin;%PATH%
4
14
  - SET RAKEOPT=-rdevkit
5
- - ruby --version
6
- - gem --version
15
+ - bundle config --local path vendor/bundle
7
16
  - bundle install
8
- - bundle exec rake build spec
9
17
 
10
18
  build: off
11
19
 
12
- environment:
13
- matrix:
14
- - ruby_version: "24-x64"
15
- - ruby_version: "25-x64"
16
- # - ruby_version: "26-x64" Ruby 2.6 not yet supported on 1/15/2019
20
+ before_test:
21
+ - ruby -v
22
+ - gem -v
23
+ - bundle -v
24
+
25
+ test_script:
26
+ - bundle exec rake build spec
17
27
 
18
28
  branches:
19
29
  only:
@@ -0,0 +1,2 @@
1
+ # Declare a custom export class
2
+ EXPORTER cmd_sequence_exporter.rb
@@ -0,0 +1,52 @@
1
+ # encoding: ascii-8bit
2
+
3
+ # Copyright 2014 Ball Aerospace & Technologies Corp.
4
+ # All Rights Reserved.
5
+ #
6
+ # This program is free software; you can modify and/or redistribute it
7
+ # under the terms of the GNU General Public License
8
+ # as published by the Free Software Foundation; version 3 with
9
+ # attribution addendums as found in the LICENSE.txt
10
+
11
+ require 'cosmos'
12
+ require 'cosmos/ccsds/ccsds_packet'
13
+
14
+ module Cosmos
15
+ class CmdSequenceExporter
16
+ def initialize(parent)
17
+ @parent = parent
18
+ end
19
+
20
+ def export(filename, sequence_dir, sequence_list)
21
+ basename = File.basename(filename, ".*")
22
+ filename = Qt::FileDialog::getSaveFileName(@parent, # parent
23
+ 'Export', # caption
24
+ sequence_dir + "/#{basename}.bin", # dir
25
+ 'Sequence Binary (*.bin)') # filter
26
+ return if filename.nil? || filename.empty?
27
+
28
+ data = ''
29
+ sequence_list.each do |item|
30
+ begin
31
+ time = Time.parse(item.time)
32
+ day, ms, us = Time.mdy2ccsds(time.year, time.month, time.day, time.hour, time.min, time.sec, time.usec)
33
+ data << [day].pack("N") # UINT32
34
+ data << [ms].pack("N") # UINT32
35
+ rescue
36
+ time = item.time.to_f * 1000
37
+ data << [0].pack("N") # UINT32
38
+ data << [time].pack("N") # UINT32
39
+ end
40
+ data << item.command.buffer
41
+ end
42
+ ccsds = CcsdsPacket.new
43
+ ccsds.write("CCSDSTYPE", CcsdsPacket::COMMAND)
44
+ ccsds.write('CCSDSSHF', 0)
45
+ ccsds.write("CCSDSAPID", 505)
46
+ ccsds.write("CCSDSSEQFLAGS", CcsdsPacket::STANDALONE)
47
+ ccsds.write("CCSDSDATA", data)
48
+ ccsds.write("CCSDSLENGTH", data.length - 1)
49
+ File.open(filename, 'wb') { |file| file.write ccsds.buffer }
50
+ end
51
+ end
52
+ end
@@ -1,5 +1,5 @@
1
- require_utility 'collect_util.rb'
2
- require_utility 'clear_util.rb'
1
+ load_utility 'collect_util.rb'
2
+ load_utility 'clear_util.rb'
3
3
 
4
4
  number = ask("Enter a number.")
5
5
  raise "Bad return" unless number.is_a? Numeric
@@ -1,4 +1,4 @@
1
- require_utility 'clear_util.rb'
1
+ load_utility 'clear_util.rb'
2
2
 
3
3
  def collect (type, duration, call_clear = false)
4
4
  # Get the current collects telemetry point
@@ -1,4 +1,4 @@
1
- require_utility 'clear_util'
1
+ load_utility 'clear_util'
2
2
 
3
3
  display("INST ADCS")
4
4
  wait 2
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: ascii-8bit
3
+
4
+ # Copyright 2014 Ball Aerospace & Technologies Corp.
5
+ # All Rights Reserved.
6
+ #
7
+ # This program is free software; you can modify and/or redistribute it
8
+ # under the terms of the GNU General Public License
9
+ # as published by the Free Software Foundation; version 3 with
10
+ # attribution addendums as found in the LICENSE.txt
11
+
12
+ require_relative 'autohotkey.rb'
13
+ autohotkey('CmdSender2', 'cmd_sender2.ahk') do
14
+ require 'cosmos/tools/cmd_sender/cmd_sender'
15
+ require 'cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui'
16
+ Cosmos::CmdSender.run
17
+ end
18
+
@@ -4,27 +4,28 @@ Sleep 500
4
4
  Send ^r ; Mode->Include Raw Data CE-3
5
5
  Sleep 500
6
6
  Click 500 95 ; Browse
7
- Sleep 1000
7
+ WinWaitActive Select
8
8
  Send cmd.bin{Enter}
9
9
  WinWaitActive Command Extractor
10
- Click 200 446 ; Process Files
10
+ Click 200 446 ; Process Data
11
11
  WinWaitActive Warning
12
12
  Sleep 500
13
- Send {Enter} ;
13
+ Send {Enter}
14
14
  WinWaitActive Log File
15
+ Sleep 500
15
16
  Click 450 305 ; Cancel
16
17
  WinWaitActive Command Extractor
17
18
  sleep 500
18
- Click 200 446 ; Process Files
19
+ Click 200 446 ; Process Data
19
20
  WinWaitActive Warning
20
21
  Sleep 500
21
- Send {Enter} ;
22
+ Send {Enter} ; Overwrite
22
23
  Sleep 500
23
- Send {Enter} ; Overwrite Yes
24
+ Send {Enter} ; Warning Ok
24
25
  Sleep 5000 ; Allow the file to be processed CE-1
25
26
  Send {Enter}
26
27
  WinWaitActive Command Extractor
27
- Click 460 446 ; Open in Text Editor CE-2
28
+ Click 315 446 ; Open in Text Editor CE-2
28
29
  Sleep 5000
29
30
  Send !f{x} ; Exit text editor
30
31
  WinActivate Command Extractor
@@ -32,14 +33,15 @@ WinWaitActive Command Extractor
32
33
  Send !f{a} ; Analyze logs
33
34
  WinWaitActive Warning
34
35
  Sleep 500
35
- Send {Enter} ;
36
+ Send {Enter}
36
37
  WinWaitActive Log File
38
+ Sleep 500
37
39
  Click 450 305 ; Cancel
38
40
  WinWaitActive Command Extractor
39
41
  Send !f{a} ; Analyze logs
40
42
  WinWaitActive Warning
41
43
  Sleep 500
42
- Send {Enter} ;
44
+ Send {Enter}
43
45
  WinWaitActive Log File
44
46
  Sleep 2000
45
47
  Send {Enter} ; Done
@@ -1,8 +1,21 @@
1
1
  SetWinDelay 1000
2
2
  WinWaitActive Command Sender
3
3
  Sleep 500
4
+ Click 85 100 ; Target dropdown
5
+ Sleep 500
6
+ Click 75 128 ; INST2
7
+ Sleep 500
8
+ Click 365 100 ; Command dropdown
9
+ Sleep 500
10
+ Click 365 140 ; ASCIICMD
11
+ Sleep 500
12
+ Click 600 100 ; Send
13
+ WinWaitActive Error ; Error connecting to CTS
14
+ Sleep 1000
15
+ Send {Enter}
16
+ WinWaitActive Command Sender
4
17
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
5
- Sleep 4000
18
+ Sleep 10000
6
19
  WinActivate Command Sender
7
20
  Sleep 500
8
21
  Click 60 600 ; Click in the Command History
@@ -34,6 +47,8 @@ WinWaitActive Command Sender
34
47
  Sleep 500
35
48
  Click 85 100 ; Target dropdown CMD-1
36
49
  Sleep 500
50
+ Click 85 115 ; INST
51
+ Sleep 500
37
52
  Click 610 100 ; Send CMD-2
38
53
  Sleep 500
39
54
  Click 365 100 ; Command dropdown CMD-1
@@ -45,6 +60,7 @@ Sleep 500
45
60
  WinWaitActive Error
46
61
  Sleep 500
47
62
  Send {Enter}
63
+ WinWaitActive Command Sender
48
64
  Click 240 210 ; Click in the TYPE parameter CMD-5
49
65
  Sleep 500
50
66
  Send 5{Enter}
@@ -135,15 +151,27 @@ Click 215 475 ; Select File
135
151
  WinWaitActive Insert
136
152
  Sleep 500
137
153
  Send cmd.bin{Enter}
138
- WinWaitActive Command Sender
139
- Sleep 500
140
- Click 85 100 ; Target dropdown
141
154
  Sleep 500
142
- Click 75 128 ; INST2
155
+ WinActivate Command Sender
143
156
  Sleep 500
144
- Click 365 100 ; Command dropdown
157
+ Click 70 70 ; Search box
158
+ Send I
159
+ Sleep 100
160
+ Send N
161
+ Sleep 100
162
+ Send S
163
+ Sleep 100
164
+ Send T
165
+ Sleep 100
166
+ Send 2
167
+ Sleep 100
168
+ Send {Space}
169
+ Sleep 100
170
+ Send C
171
+ Sleep 100
172
+ Send O
145
173
  Sleep 500
146
- Click 365 165 ; Collect command
174
+ Send {Enter}
147
175
  Sleep 500
148
176
  Click 180 390 ; Click on Type
149
177
  Sleep 500
@@ -0,0 +1,4 @@
1
+ SetWinDelay 1000
2
+ WinWaitActive Command Sender
3
+ Sleep 500
4
+ Send ^q