cosmos-unpacking_interface 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.travis.yml +7 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +158 -0
  7. data/Rakefile +12 -0
  8. data/bin/console +14 -0
  9. data/bin/setup +8 -0
  10. data/config/data/README.txt +1 -0
  11. data/config/data/crc.txt +198 -0
  12. data/config/system/system.txt +29 -0
  13. data/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +41 -0
  14. data/config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt +15 -0
  15. data/config/targets/COSMOS/cmd_tlm_server.txt +6 -0
  16. data/config/targets/COSMOS/screens/limits_change.txt +20 -0
  17. data/config/targets/COSMOS/screens/version.txt +19 -0
  18. data/config/targets/COSMOS/target.txt +9 -0
  19. data/config/targets/PI/cmd_tlm/pi_tlm_test.txt +12 -0
  20. data/config/targets/PI/cmd_tlm/pi_tlm_test_1.txt +13 -0
  21. data/config/targets/PI/cmd_tlm/pi_tlm_test_2.txt +68 -0
  22. data/config/targets/PI/cmd_tlm/pi_tlm_test_3.txt +12 -0
  23. data/config/targets/PI/cmd_tlm_server.txt +4 -0
  24. data/config/targets/PI/target.txt +4 -0
  25. data/cosmos-unpacking_interface.gemspec +34 -0
  26. data/doc/Cosmos.html +98 -0
  27. data/doc/Cosmos/AggregatePacketMapper.html +152 -0
  28. data/doc/Cosmos/AggregatePacketProcesser.html +249 -0
  29. data/doc/Cosmos/BaseNameMap.html +364 -0
  30. data/doc/Cosmos/UnpackingInterface.html +399 -0
  31. data/doc/UnpackingInterface.html +110 -0
  32. data/doc/created.rid +7 -0
  33. data/doc/css/fonts.css +167 -0
  34. data/doc/css/rdoc.css +590 -0
  35. data/doc/fonts/Lato-Light.ttf +0 -0
  36. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  37. data/doc/fonts/Lato-Regular.ttf +0 -0
  38. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  39. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  40. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  41. data/doc/images/add.png +0 -0
  42. data/doc/images/arrow_up.png +0 -0
  43. data/doc/images/brick.png +0 -0
  44. data/doc/images/brick_link.png +0 -0
  45. data/doc/images/bug.png +0 -0
  46. data/doc/images/bullet_black.png +0 -0
  47. data/doc/images/bullet_toggle_minus.png +0 -0
  48. data/doc/images/bullet_toggle_plus.png +0 -0
  49. data/doc/images/date.png +0 -0
  50. data/doc/images/delete.png +0 -0
  51. data/doc/images/find.png +0 -0
  52. data/doc/images/loadingAnimation.gif +0 -0
  53. data/doc/images/macFFBgHack.png +0 -0
  54. data/doc/images/package.png +0 -0
  55. data/doc/images/page_green.png +0 -0
  56. data/doc/images/page_white_text.png +0 -0
  57. data/doc/images/page_white_width.png +0 -0
  58. data/doc/images/plugin.png +0 -0
  59. data/doc/images/ruby.png +0 -0
  60. data/doc/images/tag_blue.png +0 -0
  61. data/doc/images/tag_green.png +0 -0
  62. data/doc/images/transparent.png +0 -0
  63. data/doc/images/wrench.png +0 -0
  64. data/doc/images/wrench_orange.png +0 -0
  65. data/doc/images/zoom.png +0 -0
  66. data/doc/index.html +91 -0
  67. data/doc/js/darkfish.js +161 -0
  68. data/doc/js/jquery.js +4 -0
  69. data/doc/js/navigation.js +141 -0
  70. data/doc/js/navigation.js.gz +0 -0
  71. data/doc/js/search.js +109 -0
  72. data/doc/js/search_index.js +1 -0
  73. data/doc/js/search_index.js.gz +0 -0
  74. data/doc/js/searcher.js +229 -0
  75. data/doc/js/searcher.js.gz +0 -0
  76. data/doc/lib/README_rdoc.html +118 -0
  77. data/doc/table_of_contents.html +140 -0
  78. data/lib/cosmos/unpacking_interface.rb +14 -0
  79. data/lib/cosmos/unpacking_interface/aggregate_packet_mapper.rb +14 -0
  80. data/lib/cosmos/unpacking_interface/aggregate_packet_processor.rb +42 -0
  81. data/lib/cosmos/unpacking_interface/base_name_map.rb +67 -0
  82. data/lib/cosmos/unpacking_interface/unpacking_interface.rb +87 -0
  83. data/lib/cosmos/unpacking_interface/version.rb +3 -0
  84. metadata +174 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 79a433548e75160c942ae28fd5916ffcbd738218
4
+ data.tar.gz: f6b575b0a7eeb12f06cad7f6b79b20273fb4b12d
5
+ SHA512:
6
+ metadata.gz: 0e47df0df0fe1c53932491315aa0df536fceb18a64123cbfcf626b27f50ac1efc685600339fd7e10523c9ad9d8fface35a5a78662eba670bc55f811b6acad05f
7
+ data.tar.gz: 9c9c587ace54cc7b281b44c2312ca2b65eadff2e4de749fe758b0bb9a15b3b90db4e19e94fbf4657fa93bca2bc0319cfaa386a425b6b0c626599affa4b9e1295
data/.gitignore ADDED
@@ -0,0 +1,10 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /pkg/
6
+ /spec/reports/
7
+ /tmp/
8
+ outputs/
9
+ notes.md
10
+ Gemfile.lock
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ sudo: false
3
+ language: ruby
4
+ cache: bundler
5
+ rvm:
6
+ - 2.3.7
7
+ before_install: gem install bundler -v 2.0.1
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in UnpackingInterface.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2019 Nick Benoit
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,158 @@
1
+ # UnpackingInterface
2
+
3
+ A custom extendable cosmos interface that unpacks aggregate packets (packets with many granules/datapoints) into many
4
+ simple packets (packets with a single granule/datapoint). This way we can use all the cosmos niceties
5
+ without having to send packets for individual measurements. Essentially we unpack an aggregate
6
+ packet into many packets that are stored in a queue that is read from. When the queue is empty
7
+ we look for new aggregate packets
8
+
9
+ For more information about cosmos interfaces look [here](https://cosmosrb.com/docs/interfaces/)
10
+
11
+
12
+ ## Installation
13
+
14
+ Add this line to your application's Gemfile:
15
+
16
+ ```ruby
17
+ gem 'cosmos-unpacking_interface'
18
+ ```
19
+
20
+ And then execute:
21
+
22
+ $ bundle
23
+
24
+ Or install it yourself as:
25
+
26
+ ```
27
+ $ gem install cosmos-unpacking_interface
28
+ ```
29
+
30
+ ## Usage
31
+
32
+ You will likely need to define your own custom PacketMapper. A PacketMapper handles mapping a cosmos packet into our internal representation, a `BaseNameMap`. As an example you can look at the Rdoc generated docs in the `docs` folder of this repository. An example is given here:
33
+
34
+ ```
35
+ require 'cosmos/unpacking_interface'
36
+
37
+ ##
38
+ # Example AggregatePacketMapper. This class encapsulates specific assumptions
39
+ # that can be made in mapping an aggregate packet into a BaseNameMap
40
+ module Cosmos
41
+ class MyPacketMapper < AggregatePacketMapper
42
+
43
+ ##
44
+ # Maps an item name like 'VALUE_A_42' => 'VALUE_A'
45
+ def _get_normalized_key(str)
46
+ match = /(.+)_\d+/.match(str)
47
+ return str if match.nil?
48
+
49
+ m = match[1]
50
+ if m.nil?
51
+ str
52
+ else
53
+ m
54
+ end end
55
+
56
+ ##
57
+ # Builds a BaseNameMap from an aggregate packet
58
+ def build_map(packet)
59
+ all_item_names = packet.items.keys
60
+
61
+ map = all_item_names.reduce({}) do |acc, raw_key|
62
+ value = packet.read(raw_key)
63
+ key = _get_normalized_key(raw_key)
64
+
65
+ if(_should_write(key))
66
+ acc[key] = [] if(acc[key].nil?)
67
+ acc[key] << value
68
+ end
69
+
70
+ acc
71
+ end
72
+
73
+ BaseNameMap.new(map, packet.packet_name)
74
+ end
75
+
76
+ ##
77
+ # List of fields not to be included in BaseNameMap. These are mostly cosmos auto generated derived
78
+ # fields
79
+ def _should_write(k)
80
+ not_allowed = [
81
+ 'RECEIVED_TIMESECONDS',
82
+ 'RECEIVED_TIMEFORMATTED',
83
+ 'RECEIVED_COUNT',
84
+ 'PACKET_TIMESECONDS',
85
+ 'PACKET_TIMEFORMATTED'
86
+ ]
87
+ !not_allowed.include?(k)
88
+ end
89
+ end
90
+ end
91
+ ```
92
+
93
+ A target is typically configured to use a specific interface in the `cmd_tlm_server.txt` file. In order to use the unpacking interface, you must add a ruby file `lib/my_interface` your cosmos project. It should define a class that extends `UnpackingInterface`. Then in your `cmd_tlm_server.txt` you should reference your file `lib/my_interface`. As an example:
94
+
95
+ ```
96
+ require 'cosmos'
97
+ require 'cosmos/unpacking_interface'
98
+
99
+ module Cosmos
100
+
101
+ ##
102
+ # Maps aggregate packets (packets with many granules/readings) to simple packets (packets with a single granule/readings)
103
+ # should have the form 'AggregatePacket' => 'SimplePacket'
104
+ # For example: 'Science' => 'Science2'
105
+ AGG_PKT_MAP = {
106
+ 'AGGREGATE_PACKET_NAME' => 'SIMPLE_PACKET_NAME'
107
+ }
108
+
109
+ ##
110
+ # Transformations defined on an item in a simple packet. Entries should be of the
111
+ # form: "<TARGET>-<PACKET_NAME>-<ITEM_NAME>" => Proc
112
+ # where the proc can accept the following parameters TargetName, ItemName, key, value, index
113
+ # index is the index of the granule in the aggregate packet that was transformed into the simple packet
114
+ # More info about procs can be found here: https://ruby-doc.org/core-2.4.1/Proc.html
115
+ TRANSFORMS = {
116
+ 'MYTARGET-PACKET-VALUE_A' => Proc.new do |target, item, key, value, index|
117
+ value # modify and return value
118
+ end
119
+ }
120
+
121
+
122
+ TARGET = 'MYTARGET'
123
+
124
+ class MyInterface < UnpackingInterface
125
+ def transforms
126
+ TRANSFORMS
127
+ end
128
+
129
+ def agg_pkt_map
130
+ AGG_PKT_MAP
131
+ end
132
+
133
+ def target
134
+ TARGET
135
+ end
136
+
137
+ def packet_mapper
138
+ MyPacketMapper.new
139
+ end
140
+
141
+ end
142
+ end
143
+ ```
144
+
145
+
146
+ ## Development
147
+
148
+ Run `rake test` to run the tests.
149
+
150
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
151
+
152
+ ## Contributing
153
+
154
+ Bug reports and pull requests are welcome on GitHub at https://github.com/nick-benoit14/cosmos-unpacking_interface
155
+
156
+ ## License
157
+
158
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+
2
+ require "bundler/gem_tasks"
3
+ require "rake/testtask"
4
+ require "cosmos"
5
+
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << "test"
8
+ t.test_files = FileList["test/*_test.rb"]
9
+ t.verbose = true
10
+ end
11
+
12
+ task :default => :test
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "UnpackingInterface"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1 @@
1
+ This file is here to make sure this folder is included in the release.
@@ -0,0 +1,198 @@
1
+ USER_MODIFIED
2
+ "lib/aggregate_packet_mapper.rb" 0x4068112E
3
+ "lib/aggregate_packet_processor.rb" 0x4258B00E
4
+ "lib/base_name_map.rb" 0x91E8E143
5
+ "lib/hkadc_conversion.rb" 0x38DDC76C
6
+ "lib/hkadc_lpsweep.rb" 0xBAF00449
7
+ "lib/my_interface.rb" 0xFC3F089B
8
+ "lib/science_granule_conversion.rb" 0x8610D03A
9
+ "lib/SLP_EFP_conv.rb" 0x7C0E5B8B
10
+ "lib/sport_packet_mapper.rb" 0xECFFCB48
11
+ "lib/temp_conversion.rb" 0xD7C76546
12
+ "lib/time_transformer.rb" 0x49551667
13
+ "lib/unpacking_interface.rb" 0x77A29883
14
+ "lib/user_version.rb" 0x8F282EE9
15
+ "config/data/README.txt" 0x93B2C07E
16
+ "config/system/system.txt" 0x6764F0C9
17
+ "config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt" 0xE2F62B11
18
+ "config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt" 0xC667CCD6
19
+ "config/targets/COSMOS/cmd_tlm_server.txt" 0xE53A4164
20
+ "config/targets/COSMOS/screens/limits_change.txt" 0xE8C47C54
21
+ "config/targets/COSMOS/screens/version.txt" 0x393D4F72
22
+ "config/targets/COSMOS/target.txt" 0x6C6F9A95
23
+ "config/targets/PI/cmd_tlm/cmd.txt" 0x3BB1B28F
24
+ "config/targets/PI/cmd_tlm/pi_tlm_SIPSweep.txt" 0x9A301D03
25
+ "config/targets/PI/cmd_tlm/pi_tlm_SIPTrack.txt" 0x34D43077
26
+ "config/targets/PI/cmd_tlm/pi_tlm_SLPScience.txt" 0x2C18FDF6
27
+ "config/targets/PI/cmd_tlm/pi_tlm_SLPScience2.txt" 0xF7D801F2
28
+ "config/targets/PI/cmd_tlm/pi_tlm_SLPsweep.txt" 0xC2BC6243
29
+ "config/targets/PI/cmd_tlm/pi_tlm_status.txt" 0x650698C8
30
+ "config/targets/PI/cmd_tlm/pi_tlm_test.txt" 0xB566CE74
31
+ "config/targets/PI/cmd_tlm/pi_tlm_test_1.txt" 0x850AAB7C
32
+ "config/targets/PI/cmd_tlm/pi_tlm_test_2.txt" 0xC62CC0C9
33
+ "config/targets/PI/cmd_tlm/pi_tlm_wave.txt" 0x030FE66E
34
+ "config/targets/PI/cmd_tlm_server.txt" 0x817CA568
35
+ "config/targets/PI/cmd_tlm_server_old.txt" 0xFFC7442F
36
+ "config/targets/PI/lib/multi_field_bit_conversion.rb" 0x9FAFF32B
37
+ "config/targets/PI/screens/command_display.txt" 0x17744D99
38
+ "config/targets/PI/screens/science_display.txt" 0x236FE1EE
39
+ "config/targets/PI/screens/sip_sweep_display.txt" 0x64862E3D
40
+ "config/targets/PI/screens/sip_track_display.txt" 0x6ED816C8
41
+ "config/targets/PI/screens/slp_sweep_display.txt" 0x0DA05B4E
42
+ "config/targets/PI/screens/status_display.txt" 0xD7D2428A
43
+ "config/targets/PI/screens/wave_display.txt" 0x5397D35B
44
+ "config/targets/PI/target.txt" 0x56F1158D
45
+ "config/tools/cmd_tlm_server/cmd_tlm_server.txt" 0xC6819D73
46
+ "config/tools/data_viewer/data_viewer.txt" 0xAEE0B7DF
47
+ "config/tools/handbook_creator/default_toc.xsl" 0x4122A040
48
+ "config/tools/handbook_creator/handbook_creator.txt" 0x64E4B5CC
49
+ "config/tools/handbook_creator/templates/command_packets.html.erb" 0x9897CA7A
50
+ "config/tools/handbook_creator/templates/command_toc.html.erb" 0x9159BCF9
51
+ "config/tools/handbook_creator/templates/footer.html.erb" 0x0E1F9800
52
+ "config/tools/handbook_creator/templates/header.html.erb" 0x1E490C2A
53
+ "config/tools/handbook_creator/templates/limits_groups.html.erb" 0x40FDF34C
54
+ "config/tools/handbook_creator/templates/nav.html.erb" 0xDF65AAEA
55
+ "config/tools/handbook_creator/templates/overview.html.erb" 0xDC4DD2B8
56
+ "config/tools/handbook_creator/templates/pdf_cover.html.erb" 0x7AAB9A42
57
+ "config/tools/handbook_creator/templates/pdf_footer.html.erb" 0xF0D3EB77
58
+ "config/tools/handbook_creator/templates/pdf_header.html.erb" 0x3020FEE1
59
+ "config/tools/handbook_creator/templates/telemetry_packets.html.erb" 0x44BD9695
60
+ "config/tools/handbook_creator/templates/telemetry_toc.html.erb" 0x610E3BC5
61
+ "config/tools/handbook_creator/templates/title.html.erb" 0xBC66E2BC
62
+ "config/tools/launcher/launcher.txt" 0x2F6ABBDB
63
+ "config/tools/limits_monitor/README.txt" 0x93B2C07E
64
+ "config/tools/opengl_builder/README.txt" 0x93B2C07E
65
+ "config/tools/script_runner/script_runner.txt" 0x1EECD803
66
+ "config/tools/table_manager/README.txt" 0x93B2C07E
67
+ "config/tools/test_runner/test_runner.txt" 0xD24409D2
68
+ "config/tools/tlm_extractor/diff-calibration.txt" 0xB96B9CA5
69
+ "config/tools/tlm_extractor/everything.txt" 0xA6C1B8E0
70
+ "config/tools/tlm_extractor/level_calibration.txt" 0x002C9B17
71
+ "config/tools/tlm_extractor/Pressure_Curve.txt" 0xDD01E92C
72
+ "config/tools/tlm_extractor/README.txt" 0x93B2C07E
73
+ "config/tools/tlm_grapher/everything.txt" 0x6D74DC74
74
+ "config/tools/tlm_grapher/level.txt" 0x897E659A
75
+ "config/tools/tlm_grapher/power.txt" 0x84A1E1E2
76
+ "config/tools/tlm_grapher/pressure.txt" 0xAD680050
77
+ "config/tools/tlm_grapher/README.txt" 0x93B2C07E
78
+ "config/tools/tlm_grapher/temperatures.txt" 0x1D7DE415
79
+ "config/tools/tlm_grapher/temperatures_Rev2.txt" 0x6169AD4A
80
+ "config/tools/tlm_grapher/venturi.txt" 0x4B601735
81
+ "config/tools/tlm_viewer/tlm_viewer.txt" 0xD9071527
82
+ "tools/CmdExtractor" 0x96E82AC3
83
+ "tools/CmdExtractor.bat" 0x09A34857
84
+ "tools/CmdSender" 0x10346CF4
85
+ "tools/CmdSender.bat" 0x09A34857
86
+ "tools/CmdTlmServer" 0x4C7A4FCB
87
+ "tools/CmdTlmServer.bat" 0x09A34857
88
+ "tools/DataViewer" 0x9D20734C
89
+ "tools/DataViewer.bat" 0x09A34857
90
+ "tools/HandbookCreator" 0xD927814C
91
+ "tools/HandbookCreator.bat" 0x09A34857
92
+ "tools/Launcher" 0xFD4E356C
93
+ "tools/Launcher.bat" 0x09A34857
94
+ "tools/LimitsMonitor" 0x04FD96D8
95
+ "tools/LimitsMonitor.bat" 0x09A34857
96
+ "tools/mac/CmdExtractor.app/Contents/Info.plist" 0x0E89084D
97
+ "tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb" 0x96E82AC3
98
+ "tools/mac/CmdExtractor.app/Contents/MacOS/main.sh" 0xEE3EC072
99
+ "tools/mac/CmdExtractor.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
100
+ "tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns" 0x39862FA7
101
+ "tools/mac/CmdSender.app/Contents/Info.plist" 0x87039019
102
+ "tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb" 0x10346CF4
103
+ "tools/mac/CmdSender.app/Contents/MacOS/main.sh" 0x707CA873
104
+ "tools/mac/CmdSender.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
105
+ "tools/mac/CmdSender.app/Contents/Resources/appIcon.icns" 0xEC403A52
106
+ "tools/mac/CmdTlmServer.app/Contents/Info.plist" 0x97E53674
107
+ "tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb" 0x4C7A4FCB
108
+ "tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh" 0x1F1443E6
109
+ "tools/mac/CmdTlmServer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
110
+ "tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns" 0x972CDCC6
111
+ "tools/mac/DataViewer.app/Contents/Info.plist" 0xB79CA16B
112
+ "tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb" 0x9D20734C
113
+ "tools/mac/DataViewer.app/Contents/MacOS/main.sh" 0xD40D9D6C
114
+ "tools/mac/DataViewer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
115
+ "tools/mac/DataViewer.app/Contents/Resources/appIcon.icns" 0x3EC9B207
116
+ "tools/mac/HandbookCreator.app/Contents/Info.plist" 0x7591A548
117
+ "tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb" 0xD927814C
118
+ "tools/mac/HandbookCreator.app/Contents/MacOS/main.sh" 0x358F92E1
119
+ "tools/mac/HandbookCreator.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
120
+ "tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns" 0xCEA7C465
121
+ "tools/mac/Launcher.app/Contents/Info.plist" 0x32A1EF14
122
+ "tools/mac/Launcher.app/Contents/MacOS/Launcher.rb" 0xFD4E356C
123
+ "tools/mac/Launcher.app/Contents/MacOS/main.sh" 0x0B32DAE8
124
+ "tools/mac/Launcher.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
125
+ "tools/mac/Launcher.app/Contents/Resources/appIcon.icns" 0x8857CD2B
126
+ "tools/mac/LimitsMonitor.app/Contents/Info.plist" 0xAF650287
127
+ "tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb" 0x04FD96D8
128
+ "tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh" 0xAAF1493C
129
+ "tools/mac/LimitsMonitor.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
130
+ "tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns" 0xC98BF799
131
+ "tools/mac/OpenGLBuilder.app/Contents/Info.plist" 0x3C2E542D
132
+ "tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh" 0xAD05D35B
133
+ "tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb" 0x585EA691
134
+ "tools/mac/OpenGLBuilder.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
135
+ "tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns" 0x8DDBD837
136
+ "tools/mac/PacketViewer.app/Contents/Info.plist" 0x6934BF89
137
+ "tools/mac/PacketViewer.app/Contents/MacOS/main.sh" 0x47F54F98
138
+ "tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb" 0xF23A40BB
139
+ "tools/mac/PacketViewer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
140
+ "tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns" 0xDF373DAE
141
+ "tools/mac/Replay.app/Contents/Info.plist" 0x894AC4CF
142
+ "tools/mac/Replay.app/Contents/MacOS/main.sh" 0x42370A6F
143
+ "tools/mac/Replay.app/Contents/MacOS/Replay.rb" 0xAC00D2AD
144
+ "tools/mac/Replay.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
145
+ "tools/mac/Replay.app/Contents/Resources/appIcon.icns" 0x0E6B32E5
146
+ "tools/mac/ScriptRunner.app/Contents/Info.plist" 0x1BC8C5E9
147
+ "tools/mac/ScriptRunner.app/Contents/MacOS/main.sh" 0xCE8AE11F
148
+ "tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb" 0x20F38758
149
+ "tools/mac/ScriptRunner.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
150
+ "tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns" 0x9246743E
151
+ "tools/mac/TableManager.app/Contents/Info.plist" 0xF6A5877F
152
+ "tools/mac/TableManager.app/Contents/MacOS/main.sh" 0x68092BA9
153
+ "tools/mac/TableManager.app/Contents/MacOS/TableManager.rb" 0x71F21C88
154
+ "tools/mac/TableManager.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
155
+ "tools/mac/TableManager.app/Contents/Resources/appIcon.icns" 0xEBF5074E
156
+ "tools/mac/TestRunner.app/Contents/Info.plist" 0x482B3BA5
157
+ "tools/mac/TestRunner.app/Contents/MacOS/main.sh" 0x5A8D958C
158
+ "tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb" 0x0B0E0B8B
159
+ "tools/mac/TestRunner.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
160
+ "tools/mac/TestRunner.app/Contents/Resources/appIcon.icns" 0xC8D32D55
161
+ "tools/mac/TlmExtractor.app/Contents/Info.plist" 0x343784F4
162
+ "tools/mac/TlmExtractor.app/Contents/MacOS/main.sh" 0x348F7440
163
+ "tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb" 0x1EC4639A
164
+ "tools/mac/TlmExtractor.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
165
+ "tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns" 0x0AC88876
166
+ "tools/mac/TlmGrapher.app/Contents/Info.plist" 0x3623B978
167
+ "tools/mac/TlmGrapher.app/Contents/MacOS/main.sh" 0x7BE28DE6
168
+ "tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb" 0x9464F502
169
+ "tools/mac/TlmGrapher.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
170
+ "tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns" 0xCA324F50
171
+ "tools/mac/TlmViewer.app/Contents/Info.plist" 0x821041E0
172
+ "tools/mac/TlmViewer.app/Contents/MacOS/main.sh" 0xE2F1EAFE
173
+ "tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb" 0xFE723189
174
+ "tools/mac/TlmViewer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
175
+ "tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns" 0x1CBA8EB3
176
+ "tools/OpenGLBuilder" 0x585EA691
177
+ "tools/OpenGLBuilder.bat" 0x09A34857
178
+ "tools/PacketViewer" 0xF23A40BB
179
+ "tools/PacketViewer.bat" 0x09A34857
180
+ "tools/Replay" 0xAC00D2AD
181
+ "tools/Replay.bat" 0x09A34857
182
+ "tools/ScriptRunner" 0x20F38758
183
+ "tools/ScriptRunner.bat" 0x09A34857
184
+ "tools/TableManager" 0x71F21C88
185
+ "tools/TableManager.bat" 0x09A34857
186
+ "tools/TestRunner" 0x0B0E0B8B
187
+ "tools/TestRunner.bat" 0x09A34857
188
+ "tools/TlmExtractor" 0x1EC4639A
189
+ "tools/TlmExtractor.bat" 0x09A34857
190
+ "tools/TlmGrapher" 0x9464F502
191
+ "tools/TlmGrapher.bat" 0x09A34857
192
+ "tools/TlmViewer" 0xFE723189
193
+ "tools/TlmViewer.bat" 0x09A34857
194
+ "tools/ToolLaunch.bat" 0x7896E14C
195
+ "tools/tool_launch.rb" 0x0BDB6696
196
+ "procedures/auto_test.rb" 0xD7D98CDB
197
+ "procedures/handshake.rb" 0x69D9F3B2
198
+ "procedures/README.txt" 0x93B2C07E