cosmos 4.4.0 → 4.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) 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 +65 -0
  6. data/Manifest.txt +12 -2
  7. data/README.md +5 -0
  8. data/Rakefile +52 -0
  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_sender.ahk +34 -6
  17. data/autohotkey/tools/cmd_sender2.ahk +4 -0
  18. data/autohotkey/tools/cmd_sequence.ahk +21 -8
  19. data/autohotkey/tools/config_editor.ahk +4 -4
  20. data/bin/cstol_converter +1 -1
  21. data/cosmos.gemspec +1 -1
  22. data/data/config/command_modifiers.yaml +16 -1
  23. data/data/config/param_item_modifiers.yaml +5 -0
  24. data/data/config/system.yaml +31 -1
  25. data/data/config/telemetry_modifiers.yaml +16 -1
  26. data/data/crc.txt +415 -410
  27. data/demo/config/dart/Gemfile +1 -6
  28. data/demo/config/data/crc.txt +244 -243
  29. data/demo/config/system/system.txt +3 -0
  30. data/demo/config/system/system2.txt +3 -0
  31. data/demo/config/system/system_alt_ports.txt +3 -0
  32. data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +3 -3
  33. data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +4 -0
  34. data/demo/config/targets/INST/cmd_tlm/inst_tlm_override.txt +12 -0
  35. data/demo/config/targets/INST/lib/sim_inst.rb +2 -2
  36. data/demo/config/targets/INST/target.txt +1 -0
  37. data/demo/procedures/cosmos_api_test.rb +8 -8
  38. data/install/config/dart/Gemfile +2 -7
  39. data/install/config/data/crc.txt +143 -143
  40. data/install/config/system/system.txt +3 -0
  41. data/lib/cosmos/dart/config/boot.rb +1 -1
  42. data/lib/cosmos/dart/config/database.yml +2 -0
  43. data/lib/cosmos/dart/lib/dart_common.rb +11 -4
  44. data/lib/cosmos/dart/lib/dart_constants.rb +15 -0
  45. data/lib/cosmos/dart/lib/dart_decom_query.rb +5 -6
  46. data/lib/cosmos/dart/lib/dart_decommutator.rb +66 -56
  47. data/lib/cosmos/dart/lib/dart_master_query.rb +71 -0
  48. data/lib/cosmos/dart/lib/dart_reducer_worker_thread.rb +165 -134
  49. data/lib/cosmos/dart/processes/dart.rb +4 -2
  50. data/lib/cosmos/dart/processes/dart_decom_server.rb +2 -2
  51. data/lib/cosmos/dart/processes/dart_ingester.rb +38 -1
  52. data/lib/cosmos/dart/processes/dart_master.rb +44 -0
  53. data/lib/cosmos/dart/processes/dart_util.rb +115 -0
  54. data/lib/cosmos/gui/widgets/dart_meta_frame.rb +21 -2
  55. data/lib/cosmos/interfaces/protocols/length_protocol.rb +5 -0
  56. data/lib/cosmos/io/json_drb.rb +3 -3
  57. data/lib/cosmos/io/posix_serial_driver.rb +1 -1
  58. data/lib/cosmos/io/win32_serial_driver.rb +23 -2
  59. data/lib/cosmos/packet_logs/packet_log_reader.rb +2 -2
  60. data/lib/cosmos/packets/packet.rb +1 -1
  61. data/lib/cosmos/packets/packet_config.rb +26 -8
  62. data/lib/cosmos/packets/structure.rb +17 -0
  63. data/lib/cosmos/packets/structure_item.rb +5 -1
  64. data/lib/cosmos/packets/telemetry.rb +7 -1
  65. data/lib/cosmos/system/system.rb +115 -48
  66. data/lib/cosmos/tools/cmd_sender/cmd_params.rb +360 -0
  67. data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +23 -319
  68. data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +14 -17
  69. data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +43 -331
  70. data/lib/cosmos/tools/cmd_sequence/sequence_list.rb +16 -11
  71. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +1 -0
  72. data/lib/cosmos/tools/config_editor/config_editor.rb +33 -2
  73. data/lib/cosmos/tools/config_editor/config_editor_frame.rb +8 -9
  74. data/lib/cosmos/tools/config_editor/system_config_dialog.rb +158 -0
  75. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +2 -2
  76. data/lib/cosmos/tools/test_runner/test.rb +5 -2
  77. data/lib/cosmos/tools/test_runner/test_runner.rb +2 -2
  78. data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +17 -13
  79. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +20 -16
  80. data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +18 -11
  81. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +16 -5
  82. data/lib/cosmos/utilities/ruby_lex_utils.rb +34 -30
  83. data/lib/cosmos/version.rb +4 -4
  84. data/lib/cosmos/win32/excel.rb +23 -17
  85. data/run_gui_tests.bat +1 -0
  86. data/spec/core_ext/socket_spec.rb +1 -1
  87. data/spec/install/yaml_docs_spec.rb +26 -6
  88. data/spec/interfaces/protocols/length_protocol_spec.rb +39 -0
  89. data/spec/io/json_drb_spec.rb +14 -0
  90. data/spec/io/win32_serial_driver_spec.rb +16 -2
  91. data/spec/packet_logs/packet_log_reader_spec.rb +2 -2
  92. data/spec/packets/structure_spec.rb +52 -2
  93. data/spec/packets/telemetry_spec.rb +29 -1
  94. data/spec/system/system_spec.rb +2 -2
  95. data/spec/utilities/message_log_spec.rb +6 -3
  96. data/tasks/gemfile_stats.rake +22 -13
  97. metadata +17 -7
  98. 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: 2c926798369e35c0ecb4a90b82b466222eba498919398d71260a8a788c93ec08
4
+ data.tar.gz: 1741c93c093df086241b47a82dbfdcabcab568da5bceb5890b4f8ad79b3b57a5
5
5
  SHA512:
6
- metadata.gz: c2e0164a0959347156dd9b9d256f3a75488a4f3b8f147e1cafb461e9ea0d419ceeafcceb958da736921c0bc76386cd99abad47e1d7cc6ab442611aace04ec87c
7
- data.tar.gz: 352996be7dcad437868a502237cf65f401c25d1aa58dc9c74f3b66fe8528570b2462259f05c1edb932cd62d3d661b85354d944b5bcf27e7e23241ff34a2757cc
6
+ metadata.gz: 54a24530208e5d2c775e621f896d219e84f00f647ea00a662dc204eb97786e5985b7a40acc4d88ad8889e0da7b0374922ca2235c3ac8aea77cea50cccb92b677
7
+ data.tar.gz: de63f56dd7fdffb1290825321710b3242915a31465fc6331c880fa9eadb58da9b42573233d21382081287ed6109d14da16a85253ce7ac4f530da4c29b82e6968
@@ -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
@@ -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
@@ -0,0 +1,65 @@
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
+ # Download and setup COSMOS devel area
53
+ RUN gem install bundler --no-document
54
+ RUN cd /devel \
55
+ && git clone https://github.com/BallAerospace/COSMOS.git \
56
+ && cd /devel/COSMOS \
57
+ && bundle install
58
+
59
+ # Download COSMOS docker files to support docker release
60
+ RUN cd /devel \
61
+ && git clone https://github.com/BallAerospace/cosmos-docker.git
62
+
63
+ ENV COSMOS_DEVEL /devel/COSMOS
64
+ WORKDIR /devel/COSMOS
65
+ CMD bash
@@ -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
@@ -917,7 +923,6 @@ lib/cosmos/core_ext/string.rb
917
923
  lib/cosmos/core_ext/stringio.rb
918
924
  lib/cosmos/core_ext/time.rb
919
925
  lib/cosmos/dart/.rspec
920
- lib/cosmos/dart/Gemfile
921
926
  lib/cosmos/dart/Rakefile
922
927
  lib/cosmos/dart/app/assets/config/manifest.js
923
928
  lib/cosmos/dart/app/assets/images/.keep
@@ -1004,11 +1009,13 @@ lib/cosmos/dart/db/seeds.rb
1004
1009
  lib/cosmos/dart/examples/dart_decom_client.rb
1005
1010
  lib/cosmos/dart/examples/dart_stream_client.rb
1006
1011
  lib/cosmos/dart/lib/dart_common.rb
1012
+ lib/cosmos/dart/lib/dart_constants.rb
1007
1013
  lib/cosmos/dart/lib/dart_database_cleaner.rb
1008
1014
  lib/cosmos/dart/lib/dart_decom_query.rb
1009
1015
  lib/cosmos/dart/lib/dart_decommutator.rb
1010
1016
  lib/cosmos/dart/lib/dart_importer.rb
1011
1017
  lib/cosmos/dart/lib/dart_logging.rb
1018
+ lib/cosmos/dart/lib/dart_master_query.rb
1012
1019
  lib/cosmos/dart/lib/dart_packet_log_writer.rb
1013
1020
  lib/cosmos/dart/lib/dart_reducer_manager.rb
1014
1021
  lib/cosmos/dart/lib/dart_reducer_worker_thread.rb
@@ -1017,6 +1024,7 @@ lib/cosmos/dart/processes/dart.rb
1017
1024
  lib/cosmos/dart/processes/dart_decom_server.rb
1018
1025
  lib/cosmos/dart/processes/dart_import.rb
1019
1026
  lib/cosmos/dart/processes/dart_ingester.rb
1027
+ lib/cosmos/dart/processes/dart_master.rb
1020
1028
  lib/cosmos/dart/processes/dart_reducer.rb
1021
1029
  lib/cosmos/dart/processes/dart_stream_server.rb
1022
1030
  lib/cosmos/dart/processes/dart_util.rb
@@ -1184,6 +1192,7 @@ lib/cosmos/system/system.rb
1184
1192
  lib/cosmos/system/target.rb
1185
1193
  lib/cosmos/tools/cmd_extractor/cmd_extractor.rb
1186
1194
  lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb
1195
+ lib/cosmos/tools/cmd_sender/cmd_params.rb
1187
1196
  lib/cosmos/tools/cmd_sender/cmd_sender.rb
1188
1197
  lib/cosmos/tools/cmd_sender/cmd_sender_text_edit.rb
1189
1198
  lib/cosmos/tools/cmd_sequence/cmd_sequence.rb
@@ -1212,6 +1221,7 @@ lib/cosmos/tools/cmd_tlm_server/router_thread.rb
1212
1221
  lib/cosmos/tools/cmd_tlm_server/routers.rb
1213
1222
  lib/cosmos/tools/config_editor/config_editor.rb
1214
1223
  lib/cosmos/tools/config_editor/config_editor_frame.rb
1224
+ lib/cosmos/tools/config_editor/system_config_dialog.rb
1215
1225
  lib/cosmos/tools/data_viewer/data_viewer.rb
1216
1226
  lib/cosmos/tools/data_viewer/data_viewer_component.rb
1217
1227
  lib/cosmos/tools/data_viewer/dump_component.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!
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
@@ -285,3 +299,41 @@ end
285
299
 
286
300
  task :release => [:require_version, :git_checkout_master, :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 "1. git config --global user.name \"First Last\""
316
+ 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 "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
339
+ end
@@ -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
+
@@ -1,6 +1,19 @@
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
18
  Sleep 4000
6
19
  WinActivate Command Sender
@@ -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