cosmos 4.4.1 → 4.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build_v4.yml +33 -0
  3. data/Dockerfile +10 -4
  4. data/Gemfile +1 -1
  5. data/Manifest.txt +26 -2
  6. data/README.md +4 -1
  7. data/Rakefile +33 -27
  8. data/autohotkey/tools/cmd_extractor.ahk +11 -9
  9. data/autohotkey/tools/cmd_sender.ahk +1 -1
  10. data/autohotkey/tools/cmd_sequence.ahk +1 -1
  11. data/autohotkey/tools/data_viewer.ahk +1 -1
  12. data/autohotkey/tools/limits_monitor.ahk +1 -1
  13. data/autohotkey/tools/packet_viewer.ahk +1 -1
  14. data/autohotkey/tools/script_runner.ahk +1 -1
  15. data/autohotkey/tools/test_runner2.ahk +1 -1
  16. data/autohotkey/tools/tlm_grapher.ahk +1 -1
  17. data/autohotkey/tools/tlm_grapher3.ahk +1 -1
  18. data/autohotkey/tools/tlm_viewer.ahk +1 -1
  19. data/autohotkey/tools/tlm_viewer2.ahk +1 -1
  20. data/autohotkey/tools/tlm_viewer5.ahk +1 -1
  21. data/bin/rubysloc +73 -28
  22. data/bin/xtce_converter +1 -1
  23. data/cosmos.gemspec +6 -12
  24. data/data/config/interface_modifiers.yaml +3 -2
  25. data/data/config/system.yaml +81 -24
  26. data/data/crc.txt +435 -435
  27. data/demo/Rakefile +4 -4
  28. data/demo/config/data/crc.txt +250 -250
  29. data/demo/config/system/system.txt +15 -7
  30. data/demo/config/system/system2.txt +15 -7
  31. data/demo/config/system/system_alt_ports.txt +15 -7
  32. data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +1 -1
  33. data/demo/config/tools/handbook_creator/default_toc.xsl +59 -59
  34. data/ext/cosmos/ext/buffered_file/buffered_file.c +2 -2
  35. data/ext/cosmos/ext/config_parser/config_parser.c +1 -2
  36. data/ext/cosmos/ext/line_graph/line_graph.c +53 -94
  37. data/ext/cosmos/ext/packet/packet.c +0 -6
  38. data/ext/cosmos/ext/platform/platform.c +56 -21
  39. data/ext/cosmos/ext/polynomial_conversion/polynomial_conversion.c +4 -8
  40. data/ext/cosmos/ext/structure/structure.c +12 -0
  41. data/extensions/vscode/.gitignore +4 -0
  42. data/extensions/vscode/.vscode/launch.json +32 -0
  43. data/extensions/vscode/.vscode/settings.json +13 -0
  44. data/extensions/vscode/.vscode/tasks.json +79 -0
  45. data/extensions/vscode/License.txt +879 -0
  46. data/extensions/vscode/README.md +9 -0
  47. data/extensions/vscode/client/License.txt +879 -0
  48. data/extensions/vscode/client/README.md +39 -0
  49. data/extensions/vscode/client/cosmos.configuration.json +23 -0
  50. data/extensions/vscode/client/images/icon.png +0 -0
  51. data/extensions/vscode/client/package-lock.json +414 -0
  52. data/extensions/vscode/client/package.json +105 -0
  53. data/extensions/vscode/client/src/extension.ts +132 -0
  54. data/extensions/vscode/client/src/screen_preview.rb +25 -0
  55. data/extensions/vscode/client/syntaxes/cosmos.tmLanguage.json +219 -0
  56. data/extensions/vscode/client/tsconfig.json +17 -0
  57. data/extensions/vscode/package-lock.json +26 -0
  58. data/extensions/vscode/package.json +35 -0
  59. data/extensions/vscode/server/License.txt +879 -0
  60. data/extensions/vscode/server/package-lock.json +236 -0
  61. data/extensions/vscode/server/package.json +29 -0
  62. data/extensions/vscode/server/src/server.ts +59 -0
  63. data/extensions/vscode/server/tsconfig.json +16 -0
  64. data/install/Rakefile +4 -4
  65. data/install/config/data/crc.txt +145 -145
  66. data/install/config/system/system.txt +15 -7
  67. data/install/config/tools/handbook_creator/default_toc.xsl +59 -59
  68. data/lib/cosmos/config/config_parser.rb +2 -10
  69. data/lib/cosmos/core_ext/class.rb +10 -0
  70. data/lib/cosmos/core_ext/time.rb +5 -3
  71. data/lib/cosmos/dart/examples/dart_decom_client.rb +1 -1
  72. data/lib/cosmos/dart/lib/dart_common.rb +3 -3
  73. data/lib/cosmos/dart/lib/dart_decommutator.rb +4 -4
  74. data/lib/cosmos/dart/processes/dart_decom_server.rb +1 -1
  75. data/lib/cosmos/dart/processes/dart_master.rb +1 -1
  76. data/lib/cosmos/dart/spec/dart/dart_database_cleaner_spec.rb +2 -2
  77. data/lib/cosmos/gui/qt.rb +10 -10
  78. data/lib/cosmos/gui/qt_tool.rb +17 -12
  79. data/lib/cosmos/gui/text/completion_text_edit.rb +2 -0
  80. data/lib/cosmos/gui/widgets/dart_meta_frame.rb +1 -1
  81. data/lib/cosmos/interfaces/dart_status_interface.rb +1 -1
  82. data/lib/cosmos/interfaces/linc_interface.rb +3 -3
  83. data/lib/cosmos/interfaces/protocols/burst_protocol.rb +1 -1
  84. data/lib/cosmos/interfaces/protocols/crc_protocol.rb +1 -1
  85. data/lib/cosmos/interfaces/protocols/template_protocol.rb +3 -3
  86. data/lib/cosmos/interfaces/serial_interface.rb +7 -1
  87. data/lib/cosmos/interfaces/stream_interface.rb +1 -1
  88. data/lib/cosmos/interfaces/tcpip_server_interface.rb +16 -16
  89. data/lib/cosmos/io/io_multiplexer.rb +6 -2
  90. data/lib/cosmos/io/json_drb.rb +3 -11
  91. data/lib/cosmos/io/json_drb_object.rb +7 -2
  92. data/lib/cosmos/io/json_drb_rack.rb +25 -5
  93. data/lib/cosmos/io/json_rpc.rb +1 -1
  94. data/lib/cosmos/io/posix_serial_driver.rb +60 -22
  95. data/lib/cosmos/io/serial_driver.rb +11 -8
  96. data/lib/cosmos/io/win32_serial_driver.rb +8 -1
  97. data/lib/cosmos/packets/packet.rb +8 -8
  98. data/lib/cosmos/packets/packet_config.rb +1 -1
  99. data/lib/cosmos/packets/packet_item_limits.rb +2 -14
  100. data/lib/cosmos/packets/parsers/xtce_converter.rb +10 -10
  101. data/lib/cosmos/packets/parsers/xtce_parser.rb +3 -0
  102. data/lib/cosmos/packets/structure.rb +18 -5
  103. data/lib/cosmos/packets/structure_item.rb +4 -21
  104. data/lib/cosmos/script/api_shared.rb +18 -1
  105. data/lib/cosmos/script/extract.rb +1 -1
  106. data/lib/cosmos/script/script.rb +4 -11
  107. data/lib/cosmos/streams/serial_stream.rb +11 -6
  108. data/lib/cosmos/system/system.rb +47 -13
  109. data/lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb +15 -0
  110. data/lib/cosmos/tools/cmd_sender/cmd_params.rb +25 -3
  111. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +7 -0
  112. data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +0 -5
  113. data/lib/cosmos/tools/cmd_tlm_server/api.rb +10 -8
  114. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +2 -2
  115. data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +1 -1
  116. data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +29 -26
  117. data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +1 -1
  118. data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +5 -0
  119. data/lib/cosmos/tools/config_editor/config_editor.rb +1 -1
  120. data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +1 -1
  121. data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +1 -1
  122. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +5 -2
  123. data/lib/cosmos/tools/test_runner/test.rb +1 -1
  124. data/lib/cosmos/tools/test_runner/test_runner.rb +4 -4
  125. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +3 -3
  126. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +1 -4
  127. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +3 -3
  128. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +1 -1
  129. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +2 -2
  130. data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +2 -0
  131. data/lib/cosmos/top_level.rb +1 -1
  132. data/lib/cosmos/utilities/simulated_target.rb +1 -1
  133. data/lib/cosmos/version.rb +5 -5
  134. data/make_gems.sh +1 -1
  135. data/spec/core_ext/class_spec.rb +54 -0
  136. data/spec/core_ext/time_spec.rb +4 -0
  137. data/spec/gui/qt_spec.rb +1 -1
  138. data/spec/gui/utilities/script_module_gui_spec.rb +1 -1
  139. data/spec/interfaces/linc_interface_spec.rb +1 -1
  140. data/spec/interfaces/serial_interface_spec.rb +1 -5
  141. data/spec/io/json_drb_rack_spec.rb +166 -0
  142. data/spec/io/json_rpc_spec.rb +4 -5
  143. data/spec/io/posix_serial_driver_spec.rb +87 -0
  144. data/spec/io/win32_serial_driver_spec.rb +17 -1
  145. data/spec/packet_logs/packet_log_reader_spec.rb +34 -35
  146. data/spec/packets/packet_item_limits_spec.rb +6 -33
  147. data/spec/packets/structure_item_spec.rb +3 -21
  148. data/spec/script/extract_spec.rb +4 -1
  149. data/spec/system/system_spec.rb +109 -1
  150. data/spec/tools/cmd_tlm_server/api_spec.rb +12 -12
  151. data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +2 -2
  152. data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +4 -3
  153. data/spec/tools/cmd_tlm_server/router_thread_spec.rb +2 -3
  154. data/spec/top_level/top_level_spec.rb +2 -2
  155. data/spec/utilities/logger_spec.rb +3 -3
  156. data/test/performance/Rakefile +4 -4
  157. data/test/performance/config/data/crc.txt +67 -48
  158. metadata +59 -9
  159. data/.coveralls.yml +0 -1
  160. data/.travis.yml +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2c926798369e35c0ecb4a90b82b466222eba498919398d71260a8a788c93ec08
4
- data.tar.gz: 1741c93c093df086241b47a82dbfdcabcab568da5bceb5890b4f8ad79b3b57a5
3
+ metadata.gz: b5f1bf9bb7d272191c8e09b184e251e36bffff6588302895621d56c08c7e10c0
4
+ data.tar.gz: b983bbb4786cc7b0c55493f55c0c619d7c8df40a18c5432b7a8a16ffefd8ec24
5
5
  SHA512:
6
- metadata.gz: 54a24530208e5d2c775e621f896d219e84f00f647ea00a662dc204eb97786e5985b7a40acc4d88ad8889e0da7b0374922ca2235c3ac8aea77cea50cccb92b677
7
- data.tar.gz: de63f56dd7fdffb1290825321710b3242915a31465fc6331c880fa9eadb58da9b42573233d21382081287ed6109d14da16a85253ce7ac4f530da4c29b82e6968
6
+ metadata.gz: 8d7d2baf899f59181069c4007c0d0719f3f512061872059452cf5376c40a150c94daf66c7fc5b6df051a48fd9400eca8899486213510d98b646b434ecf58a624
7
+ data.tar.gz: '09acfa1481c96c6a20b6736ed04ed8c43e1ecacd759fac6343b52638202ca8fc9ec18941f0469c94b1a89ef0b39d49e49ce225bf56800fcc3cae97b3ba122077'
@@ -0,0 +1,33 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ # Reference environment variables: https://docs.github.com/en/actions/reference/environment-variables
9
+
10
+ name: Cosmos 4 Tests
11
+
12
+ on:
13
+ push:
14
+ branches: [cosmos4]
15
+ pull_request:
16
+ branches: [cosmos4]
17
+
18
+ jobs:
19
+ test:
20
+ runs-on: ubuntu-18.04
21
+ strategy:
22
+ matrix:
23
+ ruby-version: ["2.5", "2.6"]
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: ${{ matrix.ruby-version }}
29
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
30
+ - name: Run tests
31
+ run: bundle exec rake build spec
32
+ env:
33
+ COSMOS_DEVEL: ${GITHUB_WORKSPACE}\.
data/Dockerfile CHANGED
@@ -49,17 +49,23 @@ RUN cd /opt \
49
49
  && tar xvf jruby.tar.gz \
50
50
  && mv jruby-9.2.9.0 jruby
51
51
 
52
+ ARG COSMOS_REPO=https://github.com/BallAerospace/COSMOS.git
53
+
52
54
  # Download and setup COSMOS devel area
53
55
  RUN gem install bundler --no-document
54
56
  RUN cd /devel \
55
- && git clone https://github.com/BallAerospace/COSMOS.git \
57
+ && git clone -b cosmos4 ${COSMOS_REPO} COSMOS \
56
58
  && cd /devel/COSMOS \
57
59
  && bundle install
58
60
 
61
+ ARG COSMOS_DOCKER_REPO=https://github.com/BallAerospace/cosmos-docker.git
62
+
59
63
  # Download COSMOS docker files to support docker release
60
64
  RUN cd /devel \
61
- && git clone https://github.com/BallAerospace/cosmos-docker.git
62
-
65
+ && git clone ${COSMOS_DOCKER_REPO}
66
+
63
67
  ENV COSMOS_DEVEL /devel/COSMOS
68
+ ENV COSMOS_NO_SIMPLECOV 1
69
+ ENV DOCKER 1
64
70
  WORKDIR /devel/COSMOS
65
- CMD bash
71
+ CMD bash
data/Gemfile CHANGED
@@ -8,4 +8,4 @@ gem 'ruby-termios', '>= 0.9' if RbConfig::CONFIG['target_os'] !~ /mswin|mingw|cy
8
8
  # gem 'wdm', '>= 0.1.0', :platforms => [:mswin, :mingw]
9
9
  #end
10
10
  gemspec
11
- instance_eval File.read(File.join(__dir__, 'install/config/dart/Gemfile'))
11
+ instance_eval File.read(File.join(__dir__, 'install/config/dart/Gemfile')) unless ENV['CI']
data/Manifest.txt CHANGED
@@ -1,12 +1,11 @@
1
- .coveralls.yml
2
1
  .dockerignore
3
2
  .gitattributes
4
3
  .github/ISSUE_TEMPLATE/bug_report.md
5
4
  .github/ISSUE_TEMPLATE/feature_request.md
6
5
  .github/ISSUE_TEMPLATE/help---usage---general-question.md
6
+ .github/workflows/build_v4.yml
7
7
  .gitignore
8
8
  .rubocop.yml
9
- .travis.yml
10
9
  .yardopts
11
10
  CONTRIBUTING.txt
12
11
  Dockerfile
@@ -694,6 +693,29 @@ ext/cosmos/ext/tabbed_plots_config/tabbed_plots_config.c
694
693
  ext/cosmos/ext/telemetry/extconf.rb
695
694
  ext/cosmos/ext/telemetry/telemetry.c
696
695
  ext/mkrf_conf.rb
696
+ extensions/vscode/.gitignore
697
+ extensions/vscode/.vscode/launch.json
698
+ extensions/vscode/.vscode/settings.json
699
+ extensions/vscode/.vscode/tasks.json
700
+ extensions/vscode/License.txt
701
+ extensions/vscode/README.md
702
+ extensions/vscode/client/License.txt
703
+ extensions/vscode/client/README.md
704
+ extensions/vscode/client/cosmos.configuration.json
705
+ extensions/vscode/client/images/icon.png
706
+ extensions/vscode/client/package-lock.json
707
+ extensions/vscode/client/package.json
708
+ extensions/vscode/client/src/extension.ts
709
+ extensions/vscode/client/src/screen_preview.rb
710
+ extensions/vscode/client/syntaxes/cosmos.tmLanguage.json
711
+ extensions/vscode/client/tsconfig.json
712
+ extensions/vscode/package-lock.json
713
+ extensions/vscode/package.json
714
+ extensions/vscode/server/License.txt
715
+ extensions/vscode/server/package-lock.json
716
+ extensions/vscode/server/package.json
717
+ extensions/vscode/server/src/server.ts
718
+ extensions/vscode/server/tsconfig.json
697
719
  install/Gemfile
698
720
  install/Launcher
699
721
  install/Launcher.bat
@@ -1454,8 +1476,10 @@ spec/interfaces/udp_interface_spec.rb
1454
1476
  spec/io/buffered_file_spec.rb
1455
1477
  spec/io/io_multiplexer_spec.rb
1456
1478
  spec/io/json_drb_object_spec.rb
1479
+ spec/io/json_drb_rack_spec.rb
1457
1480
  spec/io/json_drb_spec.rb
1458
1481
  spec/io/json_rpc_spec.rb
1482
+ spec/io/posix_serial_driver_spec.rb
1459
1483
  spec/io/raw_logger_pair_spec.rb
1460
1484
  spec/io/raw_logger_spec.rb
1461
1485
  spec/io/serial_driver_spec.rb
data/README.md CHANGED
@@ -105,9 +105,12 @@ Before any contributions can be incorporated we do require all contributors to s
105
105
 
106
106
  This protects both you and us and you retain full rights to any code you write.
107
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
+
108
112
  ## Code Status
109
113
 
110
- * [![Travis Build Status](https://travis-ci.org/BallAerospace/COSMOS.svg?branch=master)](https://travis-ci.org/BallAerospace/COSMOS)
111
114
  * [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/gw61r3dvakjamx6o?svg=true)](https://ci.appveyor.com/project/jasonatball/cosmos)
112
115
  * [![Code Climate](https://codeclimate.com/github/BallAerospace/COSMOS/badges/gpa.svg)](https://codeclimate.com/github/BallAerospace/COSMOS)
113
116
  * [![Codecov](https://img.shields.io/codecov/c/github/codecov/example-python.svg)](https://codecov.io/gh/BallAerospace/COSMOS)
data/Rakefile CHANGED
@@ -169,8 +169,8 @@ task :build => [:devkit] do
169
169
  end
170
170
  end
171
171
 
172
- task :git_checkout_master do
173
- system('git checkout master')
172
+ task :git_checkout do
173
+ system('git checkout cosmos4')
174
174
  end
175
175
 
176
176
  task :install_crc do
@@ -192,7 +192,7 @@ task :gem => [:require_version] do
192
192
  system('gem build cosmos.gemspec')
193
193
  end
194
194
 
195
- task :commit_release_ticket => [:require_version, :git_checkout_master] do
195
+ task :commit_release_ticket => [:require_version, :git_checkout] do
196
196
  system('git add data/crc.txt')
197
197
  system('git add demo/config/data/crc.txt')
198
198
  system('git add install/config/data/crc.txt')
@@ -233,7 +233,7 @@ task :version => [:require_version] do
233
233
  # Create the crc.txt file
234
234
  crc = RakeCrc32.new
235
235
  File.open("data/crc.txt",'w') do |file|
236
- Dir[File.join('lib','**','*.rb')].each do |filename|
236
+ Dir[File.join('lib','**','*.rb')].sort.each do |filename|
237
237
  file_data = File.open(filename, 'rb').read.gsub("\x0D\x0A", "\x0A")
238
238
  file.puts "\"#{filename}\" #{sprintf("0x%08X", crc.calc(file_data))}"
239
239
  end
@@ -297,9 +297,17 @@ if RUBY_ENGINE == 'ruby'
297
297
  end
298
298
  end
299
299
 
300
- 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]
301
301
  task :commit_release => [:commit_release_ticket, :tag_release]
302
302
 
303
+ # HOW-TO: Performing a COSMOS 4 build
304
+ # 1. rake docker_build
305
+ # 2. rake docker_run
306
+ # 3. Follow the individual steps printed out
307
+ # NOTE: When doing git push you will be asked for password
308
+ # You will need to enter a Github access token value
309
+ # Create one on Github, User -> Settings -> Developer settings -> Personal access tokens
310
+
303
311
  task :docker_build do
304
312
  _, platform, *_ = RUBY_PLATFORM.split("-")
305
313
  if (platform == 'mswin32' or platform == 'mingw32') and which('winpty')
@@ -312,28 +320,26 @@ end
312
320
  task :docker_run do
313
321
  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
322
  STDOUT.puts "Steps to perform a COSMOS release:"
315
- STDOUT.puts "1. git config --global user.name \"First Last\""
323
+ STDOUT.puts "1. git config --global user.name \"Last, First\""
316
324
  STDOUT.puts "2. git config --global user.email \"me@ball.com\""
317
- STDOUT.puts "3. git pull"
318
- STDOUT.puts "4. export VERSION=X.X.X"
319
- STDOUT.puts "5. rake release"
320
- STDOUT.puts "6. rake commit_release"
321
- STDOUT.puts "7. export PATH=/opt/jruby/bin:$PATH"
322
- STDOUT.puts "8. rake gem"
323
- STDOUT.puts "9. gem push cosmos-X.X.X.gem"
324
- STDOUT.puts "10. gem push cosmos-X.X.X-java.gem"
325
+ STDOUT.puts "3. git checkout cosmos4"
326
+ STDOUT.puts "4. git pull"
327
+ STDOUT.puts "5. export VERSION=X.X.X"
328
+ STDOUT.puts "6. rake release"
329
+ STDOUT.puts "7. rake commit_release"
330
+ STDOUT.puts "8. export PATH=/opt/jruby/bin:$PATH"
331
+ STDOUT.puts "9. rake gem"
332
+ STDOUT.puts "10a. /usr/bin/gem push cosmos-X.X.X.gem"
333
+ STDOUT.puts "10b. /usr/bin/gem push cosmos-X.X.X-java.gem"
325
334
  STDOUT.puts "11. cd /devel/cosmos-docker"
326
- STDOUT.puts "12. Update COSMOS_VERSION in all Dockerfiles"
327
- STDOUT.puts "13. git commit -a -m \"Release COSMOS vX.X.X\""
328
- STDOUT.puts "14. git push"
329
- STDOUT.puts "15. git checkout -b vX.X.X"
330
- STDOUT.puts "16. git push --set-upstream origin vX.X.X"
331
- STDOUT.puts "17. Update release notes on github.com and cosmosrb.com"
332
-
333
- _, platform, *_ = RUBY_PLATFORM.split("-")
334
- if (platform == 'mswin32' or platform == 'mingw32') and which('winpty')
335
- system('winpty docker run -it --rm cosmos-dev')
336
- else
337
- system('docker run -it --rm cosmos-dev')
338
- end
335
+ STDOUT.puts "12. git pull"
336
+ STDOUT.puts "13. Update COSMOS_VERSION in all Dockerfiles. Also update README.md"
337
+ STDOUT.puts "14. git commit -a -m \"Release COSMOS vX.X.X\""
338
+ STDOUT.puts "15. git push"
339
+ STDOUT.puts "16. git checkout -b vX.X.X"
340
+ STDOUT.puts "17. git push --set-upstream origin vX.X.X"
341
+ STDOUT.puts "18. Update release notes on github.com and cosmosrb.com"
342
+ STDOUT.puts " https://github.com/BallAerospace/COSMOS/pulls?q=is%3Apr+is%3Aclosed+base%3Acosmos4+no%3Amilestone"
343
+
344
+ system('docker run -it --rm cosmos-dev')
339
345
  end
@@ -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
@@ -15,7 +15,7 @@ Sleep 1000
15
15
  Send {Enter}
16
16
  WinWaitActive Command Sender
17
17
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
18
- Sleep 4000
18
+ Sleep 10000
19
19
  WinActivate Command Sender
20
20
  Sleep 500
21
21
  Click 60 600 ; Click in the Command History
@@ -1,7 +1,7 @@
1
1
  SetWinDelay 1000
2
2
  WinWaitActive Command Sequence
3
3
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
4
- Sleep 4000
4
+ Sleep 10000
5
5
  WinActivate Command Sequence
6
6
 
7
7
  Send ^o ; Open
@@ -1,7 +1,7 @@
1
1
  WinWaitActive, Data Viewer ahk_class QWidget
2
2
  Sleep 500
3
3
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
4
- Sleep 4000
4
+ Sleep 10000
5
5
  WinActivate Data Viewer
6
6
  Sleep 500
7
7
  Send ^r ; Reset
@@ -2,7 +2,7 @@ SetWinDelay 1000
2
2
  WinWaitActive Limits Monitor
3
3
  Sleep 500
4
4
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
5
- Sleep 4000
5
+ Sleep 10000
6
6
  WinActivate Limits Monitor
7
7
  Sleep 3000
8
8
  Send !fp ; Options
@@ -3,7 +3,7 @@ SetTitleMatchMode 2 ; Contain the title anywhere to match
3
3
  WinWaitActive Packet Viewer
4
4
  Sleep 500
5
5
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
6
- Sleep 4000
6
+ Sleep 10000
7
7
  WinActivate Packet Viewer
8
8
  WinWaitActive Packet Viewer
9
9
  Sleep 500
@@ -538,7 +538,7 @@ Sleep 500
538
538
 
539
539
  ; Start the CmdTlmServer
540
540
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
541
- Sleep 4000
541
+ Sleep 10000
542
542
  WinActivate Script Runner
543
543
  Sleep 1000
544
544
 
@@ -1,7 +1,7 @@
1
1
  SetWinDelay 500
2
2
  ; Start the CmdTlmServer
3
3
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
4
- Sleep 4000
4
+ Sleep 10000
5
5
 
6
6
  WinActivate Test Runner
7
7
  WinWaitActive Test Runner
@@ -20,7 +20,7 @@ Sleep 500
20
20
 
21
21
  ; Connect to the CT server
22
22
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
23
- Sleep 4000
23
+ Sleep 10000
24
24
  WinActivate Telemetry Grapher
25
25
  Click 55 95 ; Start TG-3
26
26
  Sleep 500
@@ -3,7 +3,7 @@ WinWaitActive Telemetry Grapher
3
3
 
4
4
  ; Connect to the CT server
5
5
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
6
- Sleep 4000
6
+ Sleep 10000
7
7
  WinActivate Telemetry Grapher
8
8
  Send {Enter}
9
9
 
@@ -3,7 +3,7 @@ SetKeyDelay 10
3
3
 
4
4
  Sleep 500
5
5
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
6
- Sleep 4000
6
+ Sleep 10000
7
7
 
8
8
  WinActivate Telemetry Viewer
9
9
  Sleep 1000
@@ -10,7 +10,7 @@ Send {Enter}
10
10
 
11
11
  Sleep 500
12
12
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
13
- Sleep 4000
13
+ Sleep 10000
14
14
  Run ruby.exe %A_ScriptDir%/ScriptRunner -w 600 -t 600
15
15
 
16
16
  WinWaitActive Script
@@ -4,7 +4,7 @@ SetKeyDelay 10
4
4
  Sleep 500
5
5
  Run ruby.exe %A_ScriptDir%/CmdTlmServer
6
6
  WinActivate "INST ADCS"
7
- Sleep 4000
7
+ Sleep 10000
8
8
 
9
9
  ; Close down command and telemetry server
10
10
  WinActivate Command and Telemetry Server
data/bin/rubysloc CHANGED
@@ -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)
data/bin/xtce_converter CHANGED
@@ -36,7 +36,7 @@ option_parser = OptionParser.new do |option_parser|
36
36
 
37
37
  # Create the system option
38
38
  option_parser.on("--system VALUE", "Use an alternative system.txt file") do |arg|
39
- Cosmos::System.instance(File.join(USERPATH, 'config', 'system', arg))
39
+ Cosmos::System.instance(File.join(Cosmos::USERPATH, 'config', 'system', arg))
40
40
  end
41
41
 
42
42
  # Handle --import mode
data/cosmos.gemspec CHANGED
@@ -73,10 +73,11 @@ spec = Gem::Specification.new do |s|
73
73
  files
74
74
  else [] end
75
75
 
76
- s.required_ruby_version = '~> 2.3'
76
+ s.required_ruby_version = '~> 2.4'
77
77
 
78
78
  # Runtime Dependencies
79
79
  s.add_runtime_dependency 'bundler', '>= 1.3'
80
+ s.add_runtime_dependency 'psych', '~> 3.3'
80
81
  s.add_runtime_dependency 'rdoc', '>= 4' # qtbindings doesn't parse in 6.0.0, fixed in 6.0.1
81
82
  s.add_runtime_dependency 'rake', '>= 10.0' # 10.0 released Nov 12, 2012
82
83
  s.add_runtime_dependency 'json', '>= 1.5', '< 3' # 2.0+ works with COSMOS
@@ -86,20 +87,13 @@ spec = Gem::Specification.new do |s|
86
87
  s.add_runtime_dependency 'uuidtools', '~> 2.1'
87
88
  s.add_runtime_dependency 'snmp', '~> 1.0'
88
89
  s.add_runtime_dependency 'rubyzip', '~> 1.2'
89
- s.add_runtime_dependency 'nokogiri', '~> 1.10'
90
+ s.add_runtime_dependency 'nokogiri', ['~> 1.10', '< 1.13'] # Nokogiri 1.13 doesn't support Ruby 2.5
90
91
  s.add_runtime_dependency 'opengl-bindings', '~> 1.6' if RUBY_ENGINE == 'ruby' # MRI Only
91
- s.add_runtime_dependency 'qtbindings', '~> 4.8.6', '>= 4.8.6.2' if RUBY_ENGINE == 'ruby' # MRI Only
92
+ s.add_runtime_dependency 'qtbindings', '~> 4.8.6', '>= 4.8.6.2' if RUBY_ENGINE == 'ruby' && !ENV['CI'] # MRI Only, not Github
92
93
  s.add_runtime_dependency 'puma', '~> 3.10'
93
94
  s.add_runtime_dependency 'rack', '~> 2.0'
94
95
  s.add_runtime_dependency 'httpclient', '~> 2.8'
95
96
 
96
- # From http://www.rubydoc.info/gems/puma#Known_Bugs :
97
- # "For MRI versions 2.2.7, 2.2.8, 2.2.9, 2.2.10, 2.3.4 and 2.4.1, you may see stream closed in
98
- # another thread (IOError). It may be caused by a Ruby bug. It can be
99
- # fixed with the gem https://rubygems.org/gems/stopgap_13632"
100
- # This is commented out because the gemspec is only evaluated at gem build time
101
- # s.add_runtime_dependency 'stopgap_13632', '~> 1.2.0' if RUBY_ENGINE == 'ruby' and %w(2.2.7 2.2.8 2.3.4 2.4.1).include? RUBY_VERSION # MRI Only
102
-
103
97
  # Development Dependencies
104
98
  s.add_development_dependency 'diff-lcs', '~> 1.3' if RUBY_ENGINE == 'ruby' # Get latest for MRI
105
99
  s.add_development_dependency 'rspec', '~> 3.5'
@@ -113,8 +107,8 @@ spec = Gem::Specification.new do |s|
113
107
  s.add_development_dependency 'guard-rspec', '~> 4.0'
114
108
  s.add_development_dependency 'simplecov', '~> 0.15'
115
109
  s.add_development_dependency 'codecov', '~> 0.1'
116
- s.add_development_dependency 'benchmark-ips', '~> 2.0'
117
- s.add_development_dependency 'ruby-prof', '~> 1.0' if RUBY_ENGINE == 'ruby' # MRI Only
110
+ s.add_development_dependency 'benchmark-ips', '= 2.7.2'
111
+ s.add_development_dependency 'ruby-prof', ['~> 1.0', '< 1.3'] if RUBY_ENGINE == 'ruby' # MRI Only
118
112
 
119
113
  s.post_install_message = "Thanks for installing Ball Aerospace COSMOS!\nStart your first project with: cosmos demo demo\n"
120
114
  end
@@ -84,8 +84,9 @@ OPTION:
84
84
  - name: Name
85
85
  required: true
86
86
  description: The option to set. COSMOS defines several options on the core provided
87
- interfaces. The SerialInterface defines FLOW_CONTROL which can be NONE (default) or RTSCTS
88
- and DATA_BITS which changes the data bits of the serial interface.
87
+ interfaces. The SerialInterface defines FLOW_CONTROL which can be NONE (default) or RTSCTS,
88
+ STRUCT to directly set fields in the Windows DCB or POSIX structure and it defines
89
+ DATA_BITS which changes the data bits of the serial interface.
89
90
  The TcpipServerInterface defines LISTEN_ADDRESS which is the IP address to accept
90
91
  connections on (default 0.0.0.0) and AUTO_SYSTEM_META which will automatically send
91
92
  SYSTEM META when the interface connects (default false).