cosmos 4.4.0 → 4.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.dockerignore +2 -0
- data/.gitignore +1 -0
- data/.travis.yml +6 -6
- data/Dockerfile +70 -0
- data/Manifest.txt +37 -2
- data/README.md +9 -0
- data/Rakefile +55 -5
- data/appveyor.yml +18 -8
- data/autohotkey/config/tools/cmd_sequence/cmd_sequence.txt +2 -0
- data/autohotkey/lib/cmd_sequence_exporter.rb +52 -0
- data/autohotkey/procedures/collect.rb +2 -2
- data/autohotkey/procedures/collect_util.rb +1 -1
- data/autohotkey/procedures/script_test.rb +1 -1
- data/autohotkey/tools/CmdSenderAHK2 +18 -0
- data/autohotkey/tools/cmd_extractor.ahk +11 -9
- data/autohotkey/tools/cmd_sender.ahk +35 -7
- data/autohotkey/tools/cmd_sender2.ahk +4 -0
- data/autohotkey/tools/cmd_sequence.ahk +22 -9
- data/autohotkey/tools/config_editor.ahk +4 -4
- data/autohotkey/tools/data_viewer.ahk +1 -1
- data/autohotkey/tools/limits_monitor.ahk +1 -1
- data/autohotkey/tools/packet_viewer.ahk +1 -1
- data/autohotkey/tools/script_runner.ahk +1 -1
- data/autohotkey/tools/test_runner2.ahk +1 -1
- data/autohotkey/tools/tlm_grapher.ahk +1 -1
- data/autohotkey/tools/tlm_grapher3.ahk +1 -1
- data/autohotkey/tools/tlm_viewer.ahk +1 -1
- data/autohotkey/tools/tlm_viewer2.ahk +1 -1
- data/autohotkey/tools/tlm_viewer5.ahk +1 -1
- data/bin/cstol_converter +1 -1
- data/bin/rubysloc +73 -28
- data/bin/xtce_converter +1 -1
- data/cosmos.gemspec +2 -2
- data/data/config/command_modifiers.yaml +16 -1
- data/data/config/interface_modifiers.yaml +3 -2
- data/data/config/param_item_modifiers.yaml +5 -0
- data/data/config/system.yaml +110 -23
- data/data/config/telemetry_modifiers.yaml +16 -1
- data/data/crc.txt +416 -411
- data/demo/Rakefile +4 -4
- data/demo/config/dart/Gemfile +1 -6
- data/demo/config/data/crc.txt +233 -232
- data/demo/config/system/system.txt +17 -6
- data/demo/config/system/system2.txt +17 -6
- data/demo/config/system/system_alt_ports.txt +17 -6
- data/demo/config/targets/INST/cmd_tlm/inst_cmds.txt +4 -4
- data/demo/config/targets/INST/cmd_tlm/inst_tlm.txt +4 -0
- data/demo/config/targets/INST/cmd_tlm/inst_tlm_override.txt +12 -0
- data/demo/config/targets/INST/lib/sim_inst.rb +2 -2
- data/demo/config/targets/INST/target.txt +1 -0
- data/demo/config/tools/handbook_creator/default_toc.xsl +59 -59
- data/demo/procedures/cosmos_api_test.rb +8 -8
- data/ext/cosmos/ext/buffered_file/buffered_file.c +2 -2
- data/ext/cosmos/ext/config_parser/config_parser.c +1 -2
- data/ext/cosmos/ext/line_graph/line_graph.c +53 -94
- data/ext/cosmos/ext/platform/platform.c +56 -21
- data/ext/cosmos/ext/polynomial_conversion/polynomial_conversion.c +4 -8
- data/ext/cosmos/ext/structure/structure.c +12 -0
- data/extensions/vscode/.gitignore +4 -0
- data/extensions/vscode/.vscode/launch.json +32 -0
- data/extensions/vscode/.vscode/settings.json +13 -0
- data/extensions/vscode/.vscode/tasks.json +79 -0
- data/extensions/vscode/License.txt +879 -0
- data/extensions/vscode/README.md +9 -0
- data/extensions/vscode/client/License.txt +879 -0
- data/extensions/vscode/client/README.md +39 -0
- data/extensions/vscode/client/cosmos.configuration.json +23 -0
- data/extensions/vscode/client/images/icon.png +0 -0
- data/extensions/vscode/client/package-lock.json +414 -0
- data/extensions/vscode/client/package.json +105 -0
- data/extensions/vscode/client/src/extension.ts +132 -0
- data/extensions/vscode/client/src/screen_preview.rb +25 -0
- data/extensions/vscode/client/syntaxes/cosmos.tmLanguage.json +219 -0
- data/extensions/vscode/client/tsconfig.json +17 -0
- data/extensions/vscode/package-lock.json +26 -0
- data/extensions/vscode/package.json +35 -0
- data/extensions/vscode/server/License.txt +879 -0
- data/extensions/vscode/server/package-lock.json +236 -0
- data/extensions/vscode/server/package.json +29 -0
- data/extensions/vscode/server/src/server.ts +59 -0
- data/extensions/vscode/server/tsconfig.json +16 -0
- data/install/Rakefile +4 -4
- data/install/config/dart/Gemfile +2 -7
- data/install/config/data/crc.txt +137 -137
- data/install/config/system/system.txt +17 -6
- data/install/config/tools/handbook_creator/default_toc.xsl +59 -59
- data/lib/cosmos/config/config_parser.rb +2 -10
- data/lib/cosmos/core_ext/class.rb +10 -0
- data/lib/cosmos/core_ext/time.rb +5 -3
- data/lib/cosmos/dart/config/boot.rb +1 -1
- data/lib/cosmos/dart/config/database.yml +2 -0
- data/lib/cosmos/dart/examples/dart_decom_client.rb +1 -1
- data/lib/cosmos/dart/lib/dart_common.rb +12 -5
- data/lib/cosmos/dart/lib/dart_constants.rb +15 -0
- data/lib/cosmos/dart/lib/dart_decom_query.rb +5 -6
- data/lib/cosmos/dart/lib/dart_decommutator.rb +64 -54
- data/lib/cosmos/dart/lib/dart_master_query.rb +71 -0
- data/lib/cosmos/dart/lib/dart_reducer_worker_thread.rb +165 -134
- data/lib/cosmos/dart/processes/dart.rb +4 -2
- data/lib/cosmos/dart/processes/dart_decom_server.rb +3 -3
- data/lib/cosmos/dart/processes/dart_ingester.rb +38 -1
- data/lib/cosmos/dart/processes/dart_master.rb +44 -0
- data/lib/cosmos/dart/processes/dart_util.rb +115 -0
- data/lib/cosmos/dart/spec/dart/dart_database_cleaner_spec.rb +2 -2
- data/lib/cosmos/gui/qt.rb +10 -10
- data/lib/cosmos/gui/qt_tool.rb +17 -12
- data/lib/cosmos/gui/text/completion_text_edit.rb +2 -0
- data/lib/cosmos/gui/widgets/dart_meta_frame.rb +22 -3
- data/lib/cosmos/interfaces/dart_status_interface.rb +1 -1
- data/lib/cosmos/interfaces/linc_interface.rb +3 -3
- data/lib/cosmos/interfaces/protocols/burst_protocol.rb +1 -1
- data/lib/cosmos/interfaces/protocols/crc_protocol.rb +1 -1
- data/lib/cosmos/interfaces/protocols/length_protocol.rb +5 -0
- data/lib/cosmos/interfaces/protocols/template_protocol.rb +3 -3
- data/lib/cosmos/interfaces/serial_interface.rb +7 -1
- data/lib/cosmos/interfaces/stream_interface.rb +1 -1
- data/lib/cosmos/interfaces/tcpip_server_interface.rb +16 -16
- data/lib/cosmos/io/io_multiplexer.rb +6 -2
- data/lib/cosmos/io/json_drb.rb +5 -5
- data/lib/cosmos/io/json_drb_object.rb +7 -2
- data/lib/cosmos/io/json_drb_rack.rb +25 -5
- data/lib/cosmos/io/json_rpc.rb +1 -1
- data/lib/cosmos/io/posix_serial_driver.rb +60 -22
- data/lib/cosmos/io/serial_driver.rb +11 -8
- data/lib/cosmos/io/win32_serial_driver.rb +31 -3
- data/lib/cosmos/packet_logs/packet_log_reader.rb +2 -2
- data/lib/cosmos/packets/packet.rb +9 -9
- data/lib/cosmos/packets/packet_config.rb +27 -9
- data/lib/cosmos/packets/parsers/xtce_converter.rb +10 -10
- data/lib/cosmos/packets/parsers/xtce_parser.rb +3 -0
- data/lib/cosmos/packets/structure.rb +35 -5
- data/lib/cosmos/packets/structure_item.rb +5 -1
- data/lib/cosmos/packets/telemetry.rb +7 -1
- data/lib/cosmos/script/api_shared.rb +18 -1
- data/lib/cosmos/script/extract.rb +1 -1
- data/lib/cosmos/script/script.rb +4 -11
- data/lib/cosmos/streams/serial_stream.rb +11 -6
- data/lib/cosmos/system/system.rb +155 -57
- data/lib/cosmos/tools/cmd_sender/cmd_param_table_item_delegate.rb +15 -0
- data/lib/cosmos/tools/cmd_sender/cmd_params.rb +382 -0
- data/lib/cosmos/tools/cmd_sender/cmd_sender.rb +29 -318
- data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +14 -17
- data/lib/cosmos/tools/cmd_sequence/sequence_item.rb +38 -331
- data/lib/cosmos/tools/cmd_sequence/sequence_list.rb +16 -11
- data/lib/cosmos/tools/cmd_tlm_server/api.rb +10 -8
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +2 -2
- data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +1 -0
- data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +1 -1
- data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +29 -26
- data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +1 -1
- data/lib/cosmos/tools/cmd_tlm_server/router_thread.rb +5 -0
- data/lib/cosmos/tools/config_editor/config_editor.rb +34 -3
- data/lib/cosmos/tools/config_editor/config_editor_frame.rb +8 -9
- data/lib/cosmos/tools/config_editor/system_config_dialog.rb +158 -0
- data/lib/cosmos/tools/handbook_creator/handbook_creator.rb +1 -1
- data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +1 -1
- data/lib/cosmos/tools/script_runner/script_runner_frame.rb +7 -4
- data/lib/cosmos/tools/test_runner/test.rb +6 -3
- data/lib/cosmos/tools/test_runner/test_runner.rb +6 -6
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +3 -3
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_config.rb +1 -4
- data/lib/cosmos/tools/tlm_extractor/tlm_extractor_processor.rb +20 -16
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_dart_thread.rb +21 -17
- data/lib/cosmos/tools/tlm_grapher/tlm_grapher.rb +18 -11
- data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +17 -6
- data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +2 -0
- data/lib/cosmos/top_level.rb +1 -1
- data/lib/cosmos/utilities/ruby_lex_utils.rb +34 -30
- data/lib/cosmos/utilities/simulated_target.rb +1 -1
- data/lib/cosmos/version.rb +5 -5
- data/lib/cosmos/win32/excel.rb +23 -17
- data/run_gui_tests.bat +1 -0
- data/spec/core_ext/class_spec.rb +54 -0
- data/spec/core_ext/socket_spec.rb +1 -1
- data/spec/core_ext/time_spec.rb +4 -0
- data/spec/install/yaml_docs_spec.rb +26 -6
- data/spec/interfaces/linc_interface_spec.rb +1 -1
- data/spec/interfaces/protocols/length_protocol_spec.rb +39 -0
- data/spec/interfaces/serial_interface_spec.rb +1 -5
- data/spec/io/json_drb_rack_spec.rb +166 -0
- data/spec/io/json_drb_spec.rb +14 -0
- data/spec/io/json_rpc_spec.rb +4 -5
- data/spec/io/posix_serial_driver_spec.rb +81 -0
- data/spec/io/win32_serial_driver_spec.rb +33 -3
- data/spec/packet_logs/packet_log_reader_spec.rb +36 -37
- data/spec/packets/structure_spec.rb +52 -2
- data/spec/packets/telemetry_spec.rb +29 -1
- data/spec/script/extract_spec.rb +4 -1
- data/spec/system/system_spec.rb +111 -3
- data/spec/tools/cmd_tlm_server/api_spec.rb +12 -12
- data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +2 -2
- data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +4 -3
- data/spec/tools/cmd_tlm_server/router_thread_spec.rb +2 -3
- data/spec/utilities/logger_spec.rb +3 -3
- data/spec/utilities/message_log_spec.rb +6 -3
- data/tasks/gemfile_stats.rake +22 -13
- data/test/performance/Rakefile +4 -4
- data/test/performance/config/data/crc.txt +67 -48
- metadata +52 -11
- data/demo/outputs/dart/logs/README.txt +0 -1
- data/lib/cosmos/dart/Gemfile +0 -69
@@ -102,12 +102,12 @@ DOC
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def test_cmd_unknown(method)
|
105
|
-
expect { @api.
|
106
|
-
expect { @api.
|
107
|
-
expect { @api.
|
108
|
-
expect { @api.
|
109
|
-
expect { @api.
|
110
|
-
expect { @api.
|
105
|
+
expect { @api.public_send(method,"BLAH COLLECT with TYPE NORMAL") }.to raise_error(/does not exist/)
|
106
|
+
expect { @api.public_send(method,"INST UNKNOWN with TYPE NORMAL") }.to raise_error(/does not exist/)
|
107
|
+
expect { @api.public_send(method,"INST COLLECT with BLAH NORMAL") }.to raise_error(/does not exist/)
|
108
|
+
expect { @api.public_send(method,"BLAH","COLLECT","TYPE"=>"NORMAL") }.to raise_error(/does not exist/)
|
109
|
+
expect { @api.public_send(method,"INST","UNKNOWN","TYPE"=>"NORMAL") }.to raise_error(/does not exist/)
|
110
|
+
expect { @api.public_send(method,"INST","COLLECT","BLAH"=>"NORMAL") }.to raise_error(/does not exist/)
|
111
111
|
end
|
112
112
|
|
113
113
|
describe "cmd" do
|
@@ -571,12 +571,12 @@ DOC
|
|
571
571
|
end
|
572
572
|
|
573
573
|
def test_tlm_unknown(method)
|
574
|
-
expect { @api.
|
575
|
-
expect { @api.
|
576
|
-
expect { @api.
|
577
|
-
expect { @api.
|
578
|
-
expect { @api.
|
579
|
-
expect { @api.
|
574
|
+
expect { @api.public_send(method,"BLAH HEALTH_STATUS COLLECTS") }.to raise_error(/does not exist/)
|
575
|
+
expect { @api.public_send(method,"INST UNKNOWN COLLECTS") }.to raise_error(/does not exist/)
|
576
|
+
expect { @api.public_send(method,"INST HEALTH_STATUS BLAH") }.to raise_error(/does not exist/)
|
577
|
+
expect { @api.public_send(method,"BLAH","HEALTH_STATUS","COLLECTS") }.to raise_error(/does not exist/)
|
578
|
+
expect { @api.public_send(method,"INST","UNKNOWN","COLLECTS") }.to raise_error(/does not exist/)
|
579
|
+
expect { @api.public_send(method,"INST","HEALTH_STATUS","BLAH") }.to raise_error(/does not exist/)
|
580
580
|
end
|
581
581
|
|
582
582
|
describe "tlm" do
|
@@ -165,7 +165,7 @@ module Cosmos
|
|
165
165
|
expect(running_threads.length).to eql(2)
|
166
166
|
expect(bt.instance_variable_get("@threads").length).to eq 1
|
167
167
|
expect(bt.instance_variable_get("@threads")[0].alive?).to eq true
|
168
|
-
sleep
|
168
|
+
sleep 2 # Allow the thread to crash
|
169
169
|
expect(running_threads.length).to eql(1)
|
170
170
|
expect(bt.instance_variable_get("@threads")[0]).to be_nil
|
171
171
|
expect(stdout.string).to match("unexpectedly died")
|
@@ -178,7 +178,7 @@ module Cosmos
|
|
178
178
|
expect(running_threads.length).to eql(2)
|
179
179
|
expect(bt.instance_variable_get("@threads").length).to eq 1
|
180
180
|
expect(bt.instance_variable_get("@threads")[0].alive?).to eq true
|
181
|
-
sleep
|
181
|
+
sleep 2 # Allow the thread to crash
|
182
182
|
expect(running_threads.length).to eql(1)
|
183
183
|
expect(bt.instance_variable_get("@threads")[0]).to be_nil
|
184
184
|
expect(stdout.string).to match("unexpectedly died")
|
@@ -39,8 +39,8 @@ module Cosmos
|
|
39
39
|
@packet
|
40
40
|
end
|
41
41
|
|
42
|
-
allow(System).to receive_message_chain(:telemetry,:
|
43
|
-
allow(System).to receive_message_chain(:telemetry,:
|
42
|
+
allow(System).to receive_message_chain(:telemetry,:packet).and_return(@packet)
|
43
|
+
allow(System).to receive_message_chain(:telemetry,:identify).and_return(nil)
|
44
44
|
allow(System).to receive_message_chain(:telemetry,:identify_and_define_packet).and_return(@packet)
|
45
45
|
targets = {'TGT'=>Target.new('TGT')}
|
46
46
|
allow(System).to receive(:targets).and_return(targets)
|
@@ -237,6 +237,7 @@ module Cosmos
|
|
237
237
|
it "handles unidentified packets" do
|
238
238
|
capture_io do |stdout|
|
239
239
|
@packet = Packet.new(nil,nil)
|
240
|
+
@packet.buffer = "\x01\x02"
|
240
241
|
thread = InterfaceThread.new(@interface)
|
241
242
|
thread.start
|
242
243
|
sleep 0.1
|
@@ -253,7 +254,7 @@ module Cosmos
|
|
253
254
|
capture_io do |stdout|
|
254
255
|
@packet.target_name = 'BOB'
|
255
256
|
@packet.packet_name = 'SMITH'
|
256
|
-
allow(System).to receive_message_chain(:telemetry,:
|
257
|
+
allow(System).to receive_message_chain(:telemetry,:packet).and_raise(RuntimeError)
|
257
258
|
thread = InterfaceThread.new(@interface)
|
258
259
|
thread.start
|
259
260
|
sleep 0.1
|
@@ -20,7 +20,7 @@ module Cosmos
|
|
20
20
|
before(:each) do
|
21
21
|
@packet = Packet.new('TGT','PKT')
|
22
22
|
@packet.buffer = "\x01\x02"
|
23
|
-
|
23
|
+
System.instance.instance_variable_set(:@allow_router_commanding, true)
|
24
24
|
@interface = Interface.new
|
25
25
|
# Interface#connected? implemented in each test case
|
26
26
|
allow(@interface).to receive(:connect)
|
@@ -32,7 +32,7 @@ module Cosmos
|
|
32
32
|
end
|
33
33
|
|
34
34
|
describe "handle_packet" do
|
35
|
-
it "handles
|
35
|
+
it "handles disconnected interfaces" do
|
36
36
|
allow(@interface).to receive(:connected?).and_return(false)
|
37
37
|
@interface.interfaces = [@interface]
|
38
38
|
thread = RouterThread.new(@interface)
|
@@ -148,4 +148,3 @@ module Cosmos
|
|
148
148
|
end
|
149
149
|
end
|
150
150
|
end
|
151
|
-
|
@@ -33,11 +33,11 @@ module Cosmos
|
|
33
33
|
$stdout = stdout
|
34
34
|
Logger.level = level
|
35
35
|
if block
|
36
|
-
Logger.
|
36
|
+
Logger.public_send(method, "Message1") { "Block1" }
|
37
37
|
expect(stdout.string).not_to match("Message1")
|
38
38
|
expect(stdout.string).to match("#{method.upcase}: Block1")
|
39
39
|
else
|
40
|
-
Logger.
|
40
|
+
Logger.public_send(method, "Message1")
|
41
41
|
expect(stdout.string).to match("#{method.upcase}: Message1")
|
42
42
|
end
|
43
43
|
Logger::instance.level = level + 1
|
@@ -46,7 +46,7 @@ module Cosmos
|
|
46
46
|
expect(stdout.string).not_to match("Message2")
|
47
47
|
expect(stdout.string).not_to match("Block2")
|
48
48
|
else
|
49
|
-
Logger.
|
49
|
+
Logger.public_send(method, "Message2")
|
50
50
|
expect(stdout.string).not_to match("Message2")
|
51
51
|
end
|
52
52
|
$stdout = STDOUT
|
@@ -70,9 +70,12 @@ module Cosmos
|
|
70
70
|
log = MessageLog.new('TEST')
|
71
71
|
log.start
|
72
72
|
log.stop
|
73
|
-
|
74
|
-
|
75
|
-
|
73
|
+
if Kernel.is_windows? or Process.uid != 0
|
74
|
+
# writable? is always true for root, so skip this check
|
75
|
+
Cosmos.set_working_dir do
|
76
|
+
expect(File.stat(log.filename).writable?).to be false
|
77
|
+
File.delete log.filename
|
78
|
+
end
|
76
79
|
end
|
77
80
|
end
|
78
81
|
end
|
data/tasks/gemfile_stats.rake
CHANGED
@@ -15,18 +15,25 @@ task :gemfile_stats do
|
|
15
15
|
|
16
16
|
def get_latest_gem_data
|
17
17
|
gem_data = []
|
18
|
+
# This is the only API call to Rubygems
|
18
19
|
versions = Gems.versions 'cosmos'
|
19
20
|
versions.each do |version|
|
20
21
|
version_no = version['number']
|
22
|
+
next if version_no.split('.')[0] < '3' # anything before 3 is another gem
|
21
23
|
month = version['built_at'].split('-')[0..1].join('-')
|
22
|
-
|
24
|
+
downloads = version['downloads_count'].to_i
|
25
|
+
if gem_data.length > 0 && gem_data[-1][1] == version_no
|
26
|
+
gem_data[-1][2] += downloads
|
27
|
+
else
|
28
|
+
gem_data << [month, version_no, downloads]
|
29
|
+
end
|
23
30
|
end
|
24
31
|
gem_data
|
25
32
|
end
|
26
33
|
|
27
34
|
# This is useful for testing to prevent server round trips
|
28
35
|
# Simply comment out this line when working on the formatting below (after first running once)
|
29
|
-
File.open("gemdata.marshall", 'w') {|file| file.write(Marshal.dump(get_latest_gem_data)) }
|
36
|
+
File.open("gemdata.marshall", 'w') {|file| file.write(Marshal.dump(get_latest_gem_data())) }
|
30
37
|
gem_data = Marshal.load(File.read("gemdata.marshall"))
|
31
38
|
|
32
39
|
# Convert all the date text into Ruby Dates
|
@@ -68,26 +75,28 @@ task :gemfile_stats do
|
|
68
75
|
end
|
69
76
|
end
|
70
77
|
|
71
|
-
#
|
72
|
-
|
78
|
+
# Put dates in rows as there are more dates than there are releases
|
79
|
+
# Force the date column to be text
|
80
|
+
sheet.Columns(1).NumberFormat = "\@"
|
73
81
|
labels.values.each_with_index do |val, x|
|
74
|
-
sheet.Cells(
|
82
|
+
sheet.Cells((x+2), 1).Value = val
|
75
83
|
end
|
76
84
|
|
77
|
-
|
85
|
+
col = 2
|
78
86
|
dataset.each do |version, data|
|
79
|
-
# Set the version (e.g. 3.0) in
|
80
|
-
sheet.Cells(
|
87
|
+
# Set the version (e.g. 3.0) in the top row
|
88
|
+
sheet.Cells(1, col).Value = version
|
89
|
+
# The download values by date appear below the version in the same column
|
81
90
|
data.each_with_index do |val, x|
|
82
|
-
sheet.Cells(
|
91
|
+
sheet.Cells((x+2), col).Value = val
|
83
92
|
end
|
84
|
-
|
93
|
+
col += 1
|
85
94
|
end
|
86
|
-
# Excel column name lookup
|
87
|
-
letters = ('A'..'Z').to_a.concat(('AA'..'AZ').to_a)
|
95
|
+
# Excel column name lookup, 4 sets of alphabets gives us 104 versions to work with
|
96
|
+
letters = ('A'..'Z').to_a.concat(('AA'..'AZ').to_a).concat(('BA'..'BZ').to_a).concat(('CA'..'CZ').to_a)
|
88
97
|
chart = book.Charts.Add
|
89
98
|
chart.Name = "COSMOS Downloads"
|
90
|
-
chart.SetSourceData(sheet.Range("A1:#{letters[
|
99
|
+
chart.SetSourceData(sheet.Range("A1:#{letters[dataset.length]}#{labels.length+1}"))
|
91
100
|
chart.HasTitle = true
|
92
101
|
chart.ChartTitle.Characters.Text = "COSMOS Downloads"
|
93
102
|
chart.ChartType = 76 # AreaStacked
|
data/test/performance/Rakefile
CHANGED
@@ -35,14 +35,14 @@ def create_crc_file(official)
|
|
35
35
|
crc = Cosmos::Crc32.new(Cosmos::Crc32::DEFAULT_POLY, Cosmos::Crc32::DEFAULT_SEED, true, false)
|
36
36
|
File.open("config/data/crc.txt",'w') do |file|
|
37
37
|
file.puts "USER_MODIFIED" unless official
|
38
|
-
Dir[File.join('lib','**','*')].each do |filename|
|
38
|
+
Dir[File.join('lib','**','*')].sort.each do |filename|
|
39
39
|
next if File.directory?(filename)
|
40
40
|
next if ignore.include?(filename)
|
41
41
|
file_data = File.open(filename, 'rb').read.gsub("\x0D\x0A", "\x0A")
|
42
42
|
file.puts "\"#{filename}\" #{sprintf("0x%08X", crc.calc(file_data))}"
|
43
43
|
count += 1
|
44
44
|
end
|
45
|
-
Dir[File.join('config','**','*')].each do |filename|
|
45
|
+
Dir[File.join('config','**','*')].sort.each do |filename|
|
46
46
|
next if File.directory?(filename)
|
47
47
|
next if ignore.include?(filename)
|
48
48
|
next if File.basename(filename) == 'crc.txt'
|
@@ -50,14 +50,14 @@ def create_crc_file(official)
|
|
50
50
|
file.puts "\"#{filename}\" #{sprintf("0x%08X", crc.calc(file_data))}"
|
51
51
|
count += 1
|
52
52
|
end
|
53
|
-
Dir[File.join('tools','**','*')].each do |filename|
|
53
|
+
Dir[File.join('tools','**','*')].sort.each do |filename|
|
54
54
|
next if File.directory?(filename)
|
55
55
|
next if ignore.include?(filename)
|
56
56
|
file_data = File.open(filename, 'rb').read.gsub("\x0D\x0A", "\x0A")
|
57
57
|
file.puts "\"#{filename}\" #{sprintf("0x%08X", crc.calc(file_data))}"
|
58
58
|
count += 1
|
59
59
|
end
|
60
|
-
Dir[File.join('procedures','**','*')].each do |filename|
|
60
|
+
Dir[File.join('procedures','**','*')].sort.each do |filename|
|
61
61
|
next if File.directory?(filename)
|
62
62
|
next if ignore.include?(filename)
|
63
63
|
file_data = File.open(filename, 'rb').read.gsub("\x0D\x0A", "\x0A")
|
@@ -1,5 +1,6 @@
|
|
1
1
|
"lib/packet_target.rb" 0x59C31C58
|
2
|
-
"lib/thread_target.rb"
|
2
|
+
"lib/thread_target.rb" 0x6A2E93AF
|
3
|
+
"lib/user_version.rb" 0x8F282EE9
|
3
4
|
"config/data/attitude.bin" 0xB6D17289
|
4
5
|
"config/data/diamond.STL" 0xA96E4846
|
5
6
|
"config/data/groundoff.gif" 0x7BA45A4D
|
@@ -16,8 +17,9 @@
|
|
16
17
|
"config/data/tada.wav" 0x1ABCFFD1
|
17
18
|
"config/data/vswitchoff.gif" 0xFAE436C9
|
18
19
|
"config/data/vswitchon.gif" 0xD747AC45
|
19
|
-
"config/system/
|
20
|
-
"config/system/
|
20
|
+
"config/system/system.txt" 0x00000000
|
21
|
+
"config/system/system_packets.txt" 0xD7719176
|
22
|
+
"config/system/system_threads.txt" 0x345E358A
|
21
23
|
"config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt" 0x9589CE1D
|
22
24
|
"config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt" 0xC667CCD6
|
23
25
|
"config/targets/COSMOS/cmd_tlm_server.txt" 0xE53A4164
|
@@ -25,22 +27,38 @@
|
|
25
27
|
"config/targets/COSMOS/screens/version.txt" 0x393D4F72
|
26
28
|
"config/targets/COSMOS/target.txt" 0xB39D9281
|
27
29
|
"config/targets/PACKET/cmd_tlm/packet_cmds.txt" 0xAF042065
|
28
|
-
"config/targets/PACKET/cmd_tlm/packet_tlm.txt"
|
30
|
+
"config/targets/PACKET/cmd_tlm/packet_tlm.txt" 0x2FCD6766
|
29
31
|
"config/targets/PACKET/cmd_tlm_server.txt" 0x7C18BA09
|
30
32
|
"config/targets/PACKET/lib/packet_interface.rb" 0x0BC1909F
|
31
33
|
"config/targets/PACKET/lib/packet_limits_response.rb" 0xA427D78E
|
32
34
|
"config/targets/PACKET/screens/status.txt" 0xD9B1DD08
|
33
35
|
"config/targets/PACKET/target.txt" 0x0B0338E4
|
34
36
|
"config/targets/SYSTEM/screens/status.txt" 0x89B616E5
|
35
|
-
"config/targets/THREAD/cmd_tlm/thread_cmds.txt"
|
36
|
-
"config/targets/THREAD/cmd_tlm/thread_tlm.txt"
|
37
|
-
"config/targets/THREAD/cmd_tlm_server.txt"
|
37
|
+
"config/targets/THREAD/cmd_tlm/thread_cmds.txt" 0xE0E86176
|
38
|
+
"config/targets/THREAD/cmd_tlm/thread_tlm.txt" 0xA9255BD2
|
39
|
+
"config/targets/THREAD/cmd_tlm_server.txt" 0xA2C09F15
|
38
40
|
"config/targets/THREAD/lib/thread_interface.rb" 0x82FB49D8
|
39
41
|
"config/targets/THREAD/screens/status.txt" 0xD9B1DD08
|
40
42
|
"config/targets/THREAD/target.txt" 0x4ED5B5BC
|
41
43
|
"config/tools/cmd_tlm_server/cmd_tlm_server_packets.txt" 0x35E7315D
|
42
|
-
"config/tools/cmd_tlm_server/cmd_tlm_server_threads.txt"
|
44
|
+
"config/tools/cmd_tlm_server/cmd_tlm_server_threads.txt" 0x7781DEEA
|
43
45
|
"config/tools/data_viewer/data_viewer.txt" 0xCAC3B017
|
46
|
+
"config/tools/handbook_creator/assets/css/bootstrap-theme.css" 0x446F3211
|
47
|
+
"config/tools/handbook_creator/assets/css/bootstrap-theme.min.css" 0xB49F966D
|
48
|
+
"config/tools/handbook_creator/assets/css/bootstrap.css" 0x3F240B56
|
49
|
+
"config/tools/handbook_creator/assets/css/bootstrap.min.css" 0x1BD3585F
|
50
|
+
"config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot" 0x50687BA4
|
51
|
+
"config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg" 0x068A502C
|
52
|
+
"config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf" 0x063128D6
|
53
|
+
"config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff" 0x946BFB8C
|
54
|
+
"config/tools/handbook_creator/assets/img/ball_logo.bmp" 0xAD799C2E
|
55
|
+
"config/tools/handbook_creator/assets/img/ball_logo.gif" 0xD8A3D76B
|
56
|
+
"config/tools/handbook_creator/assets/img/ball_logo.jpg" 0xA15FB300
|
57
|
+
"config/tools/handbook_creator/assets/js/bootstrap.js" 0x013B0300
|
58
|
+
"config/tools/handbook_creator/assets/js/bootstrap.min.js" 0xB3ECDABF
|
59
|
+
"config/tools/handbook_creator/assets/js/html5shiv.js" 0x15B5CD4D
|
60
|
+
"config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js" 0xCDB86103
|
61
|
+
"config/tools/handbook_creator/assets/js/respond.min.js" 0xD9168C21
|
44
62
|
"config/tools/handbook_creator/default_toc.xsl" 0x4122A040
|
45
63
|
"config/tools/handbook_creator/handbook_creator.txt" 0xAA806C94
|
46
64
|
"config/tools/handbook_creator/templates/command_packets.html.erb" 0x9897CA7A
|
@@ -57,7 +75,7 @@
|
|
57
75
|
"config/tools/handbook_creator/templates/telemetry_toc.html.erb" 0x610E3BC5
|
58
76
|
"config/tools/handbook_creator/templates/title.html.erb" 0xBC66E2BC
|
59
77
|
"config/tools/launcher/launcher_packets.txt" 0x51DC78DA
|
60
|
-
"config/tools/launcher/launcher_threads.txt"
|
78
|
+
"config/tools/launcher/launcher_threads.txt" 0x5C3A58EF
|
61
79
|
"config/tools/limits_monitor/README.txt" 0x93B2C07E
|
62
80
|
"config/tools/opengl_builder/README.txt" 0x93B2C07E
|
63
81
|
"config/tools/script_runner/script_runner.txt" 0x1EECD803
|
@@ -67,7 +85,7 @@
|
|
67
85
|
"config/tools/table_manager/MCConfigurationTable_fsw2_def.txt" 0x9DE18AEA
|
68
86
|
"config/tools/table_manager/PPSSelectionTable_def.txt" 0xE7A1E70B
|
69
87
|
"config/tools/table_manager/TLMMonitoringTable_def.txt" 0x70DABA45
|
70
|
-
"config/tools/test_runner/test_runner.txt"
|
88
|
+
"config/tools/test_runner/test_runner.txt" 0x6401DC8C
|
71
89
|
"config/tools/tlm_extractor/tlm_extractor.txt" 0x51B791DF
|
72
90
|
"config/tools/tlm_extractor/tlm_extractor2.txt" 0x210DED6A
|
73
91
|
"config/tools/tlm_extractor/tlm_extractor3.txt" 0x3A25E012
|
@@ -85,14 +103,41 @@
|
|
85
103
|
"tools/CmdTlmServerMemProf.bat" 0xF1C468BA
|
86
104
|
"tools/DataViewer" 0x2F81335B
|
87
105
|
"tools/DataViewer.bat" 0xF1C468BA
|
88
|
-
"tools/ExampleTarget" 0xC7698E38
|
89
|
-
"tools/ExampleTarget.bat" 0xF7D93DD0
|
90
106
|
"tools/HandbookCreator" 0x7337665F
|
91
107
|
"tools/HandbookCreator.bat" 0x4D5B6471
|
92
108
|
"tools/Launcher" 0xBB5DB49A
|
93
109
|
"tools/Launcher.bat" 0xF1C468BA
|
94
110
|
"tools/LimitsMonitor" 0x8227E66E
|
95
111
|
"tools/LimitsMonitor.bat" 0xF1C468BA
|
112
|
+
"tools/OpenGLBuilder" 0x70C85B16
|
113
|
+
"tools/OpenGLBuilder.bat" 0xF1C468BA
|
114
|
+
"tools/PacketTarget" 0x633EBA89
|
115
|
+
"tools/PacketTarget.bat" 0xF7D93DD0
|
116
|
+
"tools/PacketViewer" 0xCFB39857
|
117
|
+
"tools/PacketViewer.bat" 0xF1C468BA
|
118
|
+
"tools/Replay" 0x15162D45
|
119
|
+
"tools/Replay.bat" 0xF1C468BA
|
120
|
+
"tools/ScpiTarget" 0x8FB2CE09
|
121
|
+
"tools/ScpiTarget.bat" 0xF7D93DD0
|
122
|
+
"tools/ScriptRunner" 0x8DF937B6
|
123
|
+
"tools/ScriptRunner.bat" 0xF1C468BA
|
124
|
+
"tools/TableManager" 0xE75FDFFE
|
125
|
+
"tools/TableManager.bat" 0xF1C468BA
|
126
|
+
"tools/TestRunner" 0x1DBDC0CF
|
127
|
+
"tools/TestRunner.bat" 0xF1C468BA
|
128
|
+
"tools/ThreadTarget" 0x93FE9405
|
129
|
+
"tools/ThreadTarget.bat" 0xF7D93DD0
|
130
|
+
"tools/TlmExtractor" 0xE0DE48BC
|
131
|
+
"tools/TlmExtractor.bat" 0xF1C468BA
|
132
|
+
"tools/TlmGrapher" 0x8D7A0529
|
133
|
+
"tools/TlmGrapher.bat" 0xF1C468BA
|
134
|
+
"tools/TlmGrapherMemProf" 0x9A200E06
|
135
|
+
"tools/TlmGrapherMemProf.bat" 0xF1C468BA
|
136
|
+
"tools/TlmViewer" 0x120F8422
|
137
|
+
"tools/TlmViewer.bat" 0xF1C468BA
|
138
|
+
"tools/TlmViewerMemProf" 0x3CC66D92
|
139
|
+
"tools/TlmViewerMemProf.bat" 0xF1C468BA
|
140
|
+
"tools/identify_performance.rb" 0xAC543A1D
|
96
141
|
"tools/mac/CmdExtractor.app/Contents/Info.plist" 0x0E89084D
|
97
142
|
"tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb" 0x9AD128F4
|
98
143
|
"tools/mac/CmdExtractor.app/Contents/MacOS/main.sh" 0x52DD5B34
|
@@ -122,72 +167,46 @@
|
|
122
167
|
"tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh" 0xCC934478
|
123
168
|
"tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns" 0xC98BF799
|
124
169
|
"tools/mac/OpenGLBuilder.app/Contents/Info.plist" 0x3C2E542D
|
125
|
-
"tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh" 0x5EF4D8E2
|
126
170
|
"tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb" 0x96F7D2C2
|
171
|
+
"tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh" 0x5EF4D8E2
|
127
172
|
"tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns" 0x8DDBD837
|
128
173
|
"tools/mac/PacketViewer.app/Contents/Info.plist" 0x6934BF89
|
129
|
-
"tools/mac/PacketViewer.app/Contents/MacOS/main.sh" 0x0D28EF08
|
130
174
|
"tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb" 0x019FC483
|
175
|
+
"tools/mac/PacketViewer.app/Contents/MacOS/main.sh" 0x0D28EF08
|
131
176
|
"tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns" 0xDF373DAE
|
132
177
|
"tools/mac/Replay.app/Contents/Info.plist" 0x894AC4CF
|
133
|
-
"tools/mac/Replay.app/Contents/MacOS/main.sh" 0x211D29BB
|
134
178
|
"tools/mac/Replay.app/Contents/MacOS/Replay.rb" 0xA2C90DA4
|
179
|
+
"tools/mac/Replay.app/Contents/MacOS/main.sh" 0x211D29BB
|
135
180
|
"tools/mac/Replay.app/Contents/Resources/appIcon.icns" 0x0E6B32E5
|
136
181
|
"tools/mac/ScriptRunner.app/Contents/Info.plist" 0x1BC8C5E9
|
137
|
-
"tools/mac/ScriptRunner.app/Contents/MacOS/main.sh" 0xE3274772
|
138
182
|
"tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb" 0x43D56B62
|
183
|
+
"tools/mac/ScriptRunner.app/Contents/MacOS/main.sh" 0xE3274772
|
139
184
|
"tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns" 0x9246743E
|
140
185
|
"tools/mac/TableManager.app/Contents/Info.plist" 0xF6A5877F
|
141
|
-
"tools/mac/TableManager.app/Contents/MacOS/main.sh" 0x98E69D10
|
142
186
|
"tools/mac/TableManager.app/Contents/MacOS/TableManager.rb" 0x2973832A
|
187
|
+
"tools/mac/TableManager.app/Contents/MacOS/main.sh" 0x98E69D10
|
143
188
|
"tools/mac/TableManager.app/Contents/Resources/appIcon.icns" 0xEBF5074E
|
144
189
|
"tools/mac/TestRunner.app/Contents/Info.plist" 0x482B3BA5
|
145
|
-
"tools/mac/TestRunner.app/Contents/MacOS/main.sh" 0xD486D22B
|
146
190
|
"tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb" 0xDE0A3BD7
|
191
|
+
"tools/mac/TestRunner.app/Contents/MacOS/main.sh" 0xD486D22B
|
147
192
|
"tools/mac/TestRunner.app/Contents/Resources/appIcon.icns" 0xC8D32D55
|
148
193
|
"tools/mac/TlmExtractor.app/Contents/Info.plist" 0x343784F4
|
149
|
-
"tools/mac/TlmExtractor.app/Contents/MacOS/main.sh" 0x4210EF0D
|
150
194
|
"tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb" 0x2EF21468
|
195
|
+
"tools/mac/TlmExtractor.app/Contents/MacOS/main.sh" 0x4210EF0D
|
151
196
|
"tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns" 0x0AC88876
|
152
197
|
"tools/mac/TlmGrapher.app/Contents/Info.plist" 0x3623B978
|
153
|
-
"tools/mac/TlmGrapher.app/Contents/MacOS/main.sh" 0x427E2ECF
|
154
198
|
"tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb" 0x4ECDFE31
|
199
|
+
"tools/mac/TlmGrapher.app/Contents/MacOS/main.sh" 0x427E2ECF
|
155
200
|
"tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns" 0xCA324F50
|
156
201
|
"tools/mac/TlmViewer.app/Contents/Info.plist" 0x821041E0
|
157
|
-
"tools/mac/TlmViewer.app/Contents/MacOS/main.sh" 0x99FD781B
|
158
202
|
"tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb" 0x922D7C22
|
203
|
+
"tools/mac/TlmViewer.app/Contents/MacOS/main.sh" 0x99FD781B
|
159
204
|
"tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns" 0x1CBA8EB3
|
160
|
-
"tools/OpenGLBuilder" 0x70C85B16
|
161
|
-
"tools/OpenGLBuilder.bat" 0xF1C468BA
|
162
|
-
"tools/PacketTarget" 0x633EBA89
|
163
|
-
"tools/PacketTarget.bat" 0xF7D93DD0
|
164
|
-
"tools/PacketViewer" 0xCFB39857
|
165
|
-
"tools/PacketViewer.bat" 0xF1C468BA
|
166
|
-
"tools/Replay" 0x15162D45
|
167
|
-
"tools/Replay.bat" 0xF1C468BA
|
168
|
-
"tools/ScpiTarget" 0x8FB2CE09
|
169
|
-
"tools/ScpiTarget.bat" 0xF7D93DD0
|
170
|
-
"tools/ScriptRunner" 0x8DF937B6
|
171
|
-
"tools/ScriptRunner.bat" 0xF1C468BA
|
172
|
-
"tools/TableManager" 0xE75FDFFE
|
173
|
-
"tools/TableManager.bat" 0xF1C468BA
|
174
|
-
"tools/TestRunner" 0x1DBDC0CF
|
175
|
-
"tools/TestRunner.bat" 0xF1C468BA
|
176
|
-
"tools/TlmExtractor" 0xE0DE48BC
|
177
|
-
"tools/TlmExtractor.bat" 0xF1C468BA
|
178
|
-
"tools/TlmGrapher" 0x8D7A0529
|
179
|
-
"tools/TlmGrapher.bat" 0xF1C468BA
|
180
|
-
"tools/TlmGrapherMemProf" 0x9A200E06
|
181
|
-
"tools/TlmGrapherMemProf.bat" 0xF1C468BA
|
182
|
-
"tools/TlmViewer" 0x120F8422
|
183
|
-
"tools/TlmViewer.bat" 0xF1C468BA
|
184
|
-
"tools/TlmViewerMemProf" 0x3CC66D92
|
185
|
-
"tools/TlmViewerMemProf.bat" 0xF1C468BA
|
186
205
|
"procedures/checks.rb" 0x34EEF3E2
|
187
206
|
"procedures/clear_util.rb" 0x5B3C1279
|
188
207
|
"procedures/collect.rb" 0x3E52C327
|
189
208
|
"procedures/collect_util.rb" 0x3952EB08
|
190
|
-
"procedures/cosmos_api_test.rb"
|
209
|
+
"procedures/cosmos_api_test.rb" 0xD334796E
|
191
210
|
"procedures/disconnect.rb" 0x5F3A18E5
|
192
211
|
"procedures/example_test.rb" 0x4FBA73C1
|
193
212
|
"procedures/plot_test.rb" 0x0C2972E4
|