cosmos 3.4.2 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (261) hide show
  1. checksums.yaml +4 -4
  2. data/Manifest.txt +69 -11
  3. data/autohotkey/config/targets/INST/cmd_tlm/inst_tlm.txt +23 -0
  4. data/autohotkey/tools/TestRunnerAHK5 +17 -0
  5. data/autohotkey/tools/TestRunnerAHK6 +17 -0
  6. data/autohotkey/tools/cmd_extractor.ahk +6 -0
  7. data/autohotkey/tools/data_viewer.ahk +6 -0
  8. data/autohotkey/tools/limits_monitor.ahk +67 -14
  9. data/autohotkey/tools/replay.ahk +6 -0
  10. data/autohotkey/tools/test_runner5.ahk +8 -0
  11. data/autohotkey/tools/test_runner6.ahk +5 -0
  12. data/autohotkey/tools/tlm_extractor.ahk +25 -1
  13. data/autohotkey/tools/tlm_grapher.ahk +6 -0
  14. data/cosmos.gemspec +19 -19
  15. data/data/crc.txt +46 -46
  16. data/data/critical.wav +0 -0
  17. data/data/information.wav +0 -0
  18. data/data/input.wav +0 -0
  19. data/data/message.wav +0 -0
  20. data/data/question.wav +0 -0
  21. data/data/warning.wav +0 -0
  22. data/demo/Gemfile +5 -1
  23. data/demo/Launcher +5 -4
  24. data/demo/Launcher.bat +6 -56
  25. data/demo/config/data/crc.txt +73 -55
  26. data/demo/config/system/system.txt +1 -0
  27. data/demo/config/targets/EXAMPLE/cmd_tlm/example_tlm.txt +2 -0
  28. data/demo/procedures/example_test.rb +17 -16
  29. data/demo/tools/CmdExtractor +6 -5
  30. data/demo/tools/CmdExtractor.bat +6 -56
  31. data/demo/tools/CmdSender +6 -5
  32. data/demo/tools/CmdSender.bat +6 -56
  33. data/demo/tools/CmdTlmServer +6 -5
  34. data/demo/tools/CmdTlmServer.bat +6 -56
  35. data/demo/tools/DataViewer +6 -5
  36. data/demo/tools/DataViewer.bat +6 -56
  37. data/demo/tools/ExampleTarget +6 -5
  38. data/demo/tools/ExampleTarget.bat +6 -56
  39. data/demo/tools/HandbookCreator +6 -5
  40. data/demo/tools/HandbookCreator.bat +6 -58
  41. data/demo/tools/Launcher +6 -5
  42. data/demo/tools/Launcher.bat +6 -56
  43. data/demo/tools/LimitsMonitor +6 -5
  44. data/demo/tools/LimitsMonitor.bat +6 -56
  45. data/demo/tools/OpenGLBuilder +6 -5
  46. data/demo/tools/OpenGLBuilder.bat +6 -56
  47. data/demo/tools/PacketViewer +6 -5
  48. data/demo/tools/PacketViewer.bat +6 -56
  49. data/demo/tools/Replay +6 -5
  50. data/demo/tools/Replay.bat +6 -56
  51. data/demo/tools/ScpiTarget +6 -5
  52. data/demo/tools/ScpiTarget.bat +6 -56
  53. data/demo/tools/ScriptRunner +6 -5
  54. data/demo/tools/ScriptRunner.bat +6 -56
  55. data/demo/tools/TableManager +6 -5
  56. data/demo/tools/TableManager.bat +6 -56
  57. data/demo/tools/TestRunner +6 -5
  58. data/demo/tools/TestRunner.bat +6 -56
  59. data/demo/tools/TlmExtractor +6 -5
  60. data/demo/tools/TlmExtractor.bat +6 -56
  61. data/demo/tools/TlmGrapher +6 -5
  62. data/demo/tools/TlmGrapher.bat +6 -56
  63. data/demo/tools/TlmViewer +6 -5
  64. data/demo/tools/TlmViewer.bat +6 -56
  65. data/demo/tools/ToolLaunch.bat +63 -0
  66. data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +6 -5
  67. data/demo/tools/mac/CmdExtractor.app/Contents/MacOS/tool_launch.rb +38 -0
  68. data/demo/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +6 -5
  69. data/demo/tools/mac/CmdSender.app/Contents/MacOS/tool_launch.rb +38 -0
  70. data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +6 -5
  71. data/demo/tools/mac/CmdTlmServer.app/Contents/MacOS/tool_launch.rb +38 -0
  72. data/demo/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +6 -5
  73. data/demo/tools/mac/DataViewer.app/Contents/MacOS/tool_launch.rb +38 -0
  74. data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +6 -5
  75. data/demo/tools/mac/HandbookCreator.app/Contents/MacOS/tool_launch.rb +38 -0
  76. data/demo/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +6 -5
  77. data/demo/tools/mac/Launcher.app/Contents/MacOS/tool_launch.rb +38 -0
  78. data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +6 -5
  79. data/demo/tools/mac/LimitsMonitor.app/Contents/MacOS/tool_launch.rb +38 -0
  80. data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +6 -5
  81. data/demo/tools/mac/OpenGLBuilder.app/Contents/MacOS/tool_launch.rb +38 -0
  82. data/demo/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +6 -5
  83. data/demo/tools/mac/PacketViewer.app/Contents/MacOS/tool_launch.rb +38 -0
  84. data/demo/tools/mac/Replay.app/Contents/MacOS/Replay.rb +6 -5
  85. data/demo/tools/mac/Replay.app/Contents/MacOS/tool_launch.rb +38 -0
  86. data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +6 -5
  87. data/demo/tools/mac/ScriptRunner.app/Contents/MacOS/tool_launch.rb +38 -0
  88. data/demo/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +6 -5
  89. data/demo/tools/mac/TableManager.app/Contents/MacOS/tool_launch.rb +38 -0
  90. data/demo/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +6 -5
  91. data/demo/tools/mac/TestRunner.app/Contents/MacOS/tool_launch.rb +38 -0
  92. data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +6 -5
  93. data/demo/tools/mac/TlmExtractor.app/Contents/MacOS/tool_launch.rb +38 -0
  94. data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +6 -5
  95. data/demo/tools/mac/TlmGrapher.app/Contents/MacOS/tool_launch.rb +38 -0
  96. data/demo/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +6 -5
  97. data/demo/tools/mac/TlmViewer.app/Contents/MacOS/tool_launch.rb +38 -0
  98. data/demo/tools/tool_launch.rb +38 -0
  99. data/install/Gemfile +5 -1
  100. data/install/Launcher +5 -3
  101. data/install/Launcher.bat +6 -56
  102. data/install/config/data/crc.txt +67 -49
  103. data/install/config/tools/launcher/launcher.txt +1 -0
  104. data/install/tools/CmdExtractor +6 -5
  105. data/install/tools/CmdExtractor.bat +6 -56
  106. data/install/tools/CmdSender +6 -5
  107. data/install/tools/CmdSender.bat +6 -56
  108. data/install/tools/CmdTlmServer +6 -5
  109. data/install/tools/CmdTlmServer.bat +6 -56
  110. data/install/tools/DataViewer +6 -5
  111. data/install/tools/DataViewer.bat +6 -56
  112. data/install/tools/HandbookCreator +6 -5
  113. data/install/tools/HandbookCreator.bat +6 -58
  114. data/install/tools/Launcher +6 -5
  115. data/install/tools/Launcher.bat +6 -56
  116. data/install/tools/LimitsMonitor +6 -5
  117. data/install/tools/LimitsMonitor.bat +6 -56
  118. data/install/tools/OpenGLBuilder +6 -5
  119. data/install/tools/OpenGLBuilder.bat +6 -56
  120. data/install/tools/PacketViewer +6 -5
  121. data/install/tools/PacketViewer.bat +6 -56
  122. data/install/tools/Replay +6 -5
  123. data/install/tools/Replay.bat +6 -56
  124. data/install/tools/ScriptRunner +6 -5
  125. data/install/tools/ScriptRunner.bat +6 -56
  126. data/install/tools/TableManager +6 -5
  127. data/install/tools/TableManager.bat +6 -56
  128. data/install/tools/TestRunner +6 -5
  129. data/install/tools/TestRunner.bat +6 -56
  130. data/install/tools/TlmExtractor +6 -5
  131. data/install/tools/TlmExtractor.bat +6 -56
  132. data/install/tools/TlmGrapher +6 -5
  133. data/install/tools/TlmGrapher.bat +6 -56
  134. data/install/tools/TlmViewer +6 -5
  135. data/install/tools/TlmViewer.bat +6 -56
  136. data/install/tools/ToolLaunch.bat +63 -0
  137. data/install/tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb +6 -5
  138. data/install/tools/mac/CmdExtractor.app/Contents/MacOS/tool_launch.rb +38 -0
  139. data/install/tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb +6 -5
  140. data/install/tools/mac/CmdSender.app/Contents/MacOS/tool_launch.rb +38 -0
  141. data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb +6 -5
  142. data/install/tools/mac/CmdTlmServer.app/Contents/MacOS/tool_launch.rb +38 -0
  143. data/install/tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb +6 -5
  144. data/install/tools/mac/DataViewer.app/Contents/MacOS/tool_launch.rb +38 -0
  145. data/install/tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb +6 -5
  146. data/install/tools/mac/HandbookCreator.app/Contents/MacOS/tool_launch.rb +38 -0
  147. data/install/tools/mac/Launcher.app/Contents/MacOS/Launcher.rb +6 -5
  148. data/install/tools/mac/Launcher.app/Contents/MacOS/tool_launch.rb +38 -0
  149. data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb +6 -5
  150. data/install/tools/mac/LimitsMonitor.app/Contents/MacOS/tool_launch.rb +38 -0
  151. data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb +6 -5
  152. data/install/tools/mac/OpenGLBuilder.app/Contents/MacOS/tool_launch.rb +38 -0
  153. data/install/tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb +6 -5
  154. data/install/tools/mac/PacketViewer.app/Contents/MacOS/tool_launch.rb +38 -0
  155. data/install/tools/mac/Replay.app/Contents/MacOS/Replay.rb +6 -5
  156. data/install/tools/mac/Replay.app/Contents/MacOS/tool_launch.rb +38 -0
  157. data/install/tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb +6 -5
  158. data/install/tools/mac/ScriptRunner.app/Contents/MacOS/tool_launch.rb +38 -0
  159. data/install/tools/mac/TableManager.app/Contents/MacOS/TableManager.rb +6 -5
  160. data/install/tools/mac/TableManager.app/Contents/MacOS/tool_launch.rb +38 -0
  161. data/install/tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb +6 -5
  162. data/install/tools/mac/TestRunner.app/Contents/MacOS/tool_launch.rb +38 -0
  163. data/install/tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb +6 -5
  164. data/install/tools/mac/TlmExtractor.app/Contents/MacOS/tool_launch.rb +38 -0
  165. data/install/tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb +6 -5
  166. data/install/tools/mac/TlmGrapher.app/Contents/MacOS/tool_launch.rb +38 -0
  167. data/install/tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb +6 -5
  168. data/install/tools/mac/TlmViewer.app/Contents/MacOS/tool_launch.rb +38 -0
  169. data/install/tools/tool_launch.rb +38 -0
  170. data/lib/cosmos/core_ext/string.rb +3 -2
  171. data/lib/cosmos/gui/dialogs/about_dialog.rb +3 -7
  172. data/lib/cosmos/gui/dialogs/find_replace_dialog.rb +200 -136
  173. data/lib/cosmos/gui/opengl/gl_viewer.rb +8 -8
  174. data/lib/cosmos/gui/qt.rb +56 -27
  175. data/lib/cosmos/gui/qt_tool.rb +3 -1
  176. data/lib/cosmos/gui/text/ruby_editor.rb +130 -110
  177. data/lib/cosmos/gui/utilities/script_module_gui.rb +150 -4
  178. data/lib/cosmos/io/json_drb.rb +1 -1
  179. data/lib/cosmos/io/win32_serial_driver.rb +2 -4
  180. data/lib/cosmos/packet_logs/ccsds_log_reader.rb +1 -0
  181. data/lib/cosmos/packet_logs/packet_log_reader.rb +13 -4
  182. data/lib/cosmos/packets/limits.rb +6 -3
  183. data/lib/cosmos/packets/telemetry.rb +34 -3
  184. data/lib/cosmos/processors/new_packet_log_processor.rb +1 -1
  185. data/lib/cosmos/script/commands.rb +20 -2
  186. data/lib/cosmos/script/extract.rb +11 -3
  187. data/lib/cosmos/script/limits.rb +6 -0
  188. data/lib/cosmos/script/scripting.rb +17 -9
  189. data/lib/cosmos/system/system.rb +73 -17
  190. data/lib/cosmos/system/target.rb +10 -5
  191. data/lib/cosmos/tools/cmd_extractor/cmd_extractor.rb +1 -0
  192. data/lib/cosmos/tools/cmd_tlm_server/api.rb +95 -0
  193. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb +8 -4
  194. data/lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb +55 -0
  195. data/lib/cosmos/tools/data_viewer/data_viewer.rb +5 -12
  196. data/lib/cosmos/tools/data_viewer/data_viewer_component.rb +14 -48
  197. data/lib/cosmos/tools/handbook_creator/handbook_creator_config.rb +1 -5
  198. data/lib/cosmos/tools/launcher/launcher.rb +4 -0
  199. data/lib/cosmos/tools/launcher/launcher_config.rb +50 -0
  200. data/lib/cosmos/tools/launcher/launcher_tool.rb +21 -9
  201. data/lib/cosmos/tools/limits_monitor/limits_monitor.rb +607 -566
  202. data/lib/cosmos/tools/replay/replay.rb +51 -45
  203. data/lib/cosmos/tools/script_runner/script_runner.rb +13 -5
  204. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +8 -109
  205. data/lib/cosmos/tools/test_runner/test.rb +65 -6
  206. data/lib/cosmos/tools/test_runner/test_runner.rb +4 -4
  207. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +5 -0
  208. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_logfile_thread.rb +3 -0
  209. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +3 -2
  210. data/lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb +9 -6
  211. data/lib/cosmos/tools/tlm_viewer/widgets/array_widget.rb +1 -5
  212. data/lib/cosmos/tools/tlm_viewer/widgets/block_widget.rb +1 -5
  213. data/lib/cosmos/top_level.rb +86 -3
  214. data/lib/cosmos/version.rb +5 -5
  215. data/lib/cosmos/win32/win32_main.rb +7 -1
  216. data/spec/packet_logs/packet_log_reader_spec.rb +67 -7
  217. data/spec/packets/limits_spec.rb +19 -1
  218. data/spec/packets/telemetry_spec.rb +44 -1
  219. data/spec/script/commands_spec.rb +14 -0
  220. data/spec/script/scripting_spec.rb +5 -1
  221. data/spec/script/telemetry_spec.rb +38 -3
  222. data/spec/system/system_spec.rb +24 -4
  223. data/spec/tools/cmd_tlm_server/api_spec.rb +30 -0
  224. data/test/benchmarks/gsub_benchmark.rb +42 -4
  225. data/test/benchmarks/is_a_benchmark.rb +34 -0
  226. data/test/performance/config/data/crc.txt +161 -171
  227. data/test/performance/config/system/system_packets.txt +10 -10
  228. data/test/performance/config/system/system_threads.txt +30 -30
  229. data/test/performance/config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt +7 -2
  230. data/test/performance/config/targets/PACKET/cmd_tlm/packet_cmds.txt +20 -0
  231. data/test/performance/config/targets/PACKET/cmd_tlm/packet_tlm.txt +98 -0
  232. data/test/performance/config/targets/{EXAMPLE → PACKET}/cmd_tlm_server.txt +2 -2
  233. data/test/performance/config/targets/PACKET/lib/packet_interface.rb +22 -0
  234. data/test/performance/config/targets/PACKET/lib/packet_limits_response.rb +24 -0
  235. data/test/performance/config/targets/PACKET/screens/status.txt +25 -0
  236. data/test/performance/config/targets/PACKET/target.txt +28 -0
  237. data/test/performance/config/targets/{EXAMPLE/cmd_tlm/example_cmds.txt → THREAD/cmd_tlm/thread_cmds.txt} +1 -1
  238. data/test/performance/config/targets/{EXAMPLE/cmd_tlm/example_tlm.txt → THREAD/cmd_tlm/thread_tlm.txt} +1 -1
  239. data/test/performance/config/targets/THREAD/cmd_tlm_server.txt +6 -0
  240. data/test/performance/config/targets/{EXAMPLE/lib/example_interface.rb → THREAD/lib/thread_interface.rb} +1 -1
  241. data/test/performance/config/targets/THREAD/screens/status.txt +25 -0
  242. data/test/performance/config/targets/{EXAMPLE → THREAD}/target.txt +0 -0
  243. data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_packets.txt +24 -30
  244. data/test/performance/config/tools/cmd_tlm_server/cmd_tlm_server_threads.txt +31 -31
  245. data/test/performance/config/tools/launcher/launcher_packets.txt +16 -11
  246. data/test/performance/config/tools/launcher/launcher_threads.txt +41 -35
  247. data/test/performance/config/tools/tlm_grapher/tlm_grapher.txt +204 -0
  248. data/test/performance/config/tools/tlm_viewer/tlm_viewer.txt +10 -38
  249. data/test/performance/lib/packet_target.rb +126 -0
  250. data/test/performance/lib/{example_target.rb → thread_target.rb} +9 -9
  251. data/test/performance/tools/CmdTlmServerMemProf +1 -1
  252. data/test/performance/tools/{ExampleTarget → PacketTarget} +2 -2
  253. data/test/performance/tools/{ExampleTarget.bat → PacketTarget.bat} +0 -0
  254. data/test/performance/tools/ThreadTarget +14 -0
  255. data/test/performance/tools/ThreadTarget.bat +59 -0
  256. data/test/performance/tools/TlmGrapherMemProf +1 -1
  257. data/test/performance/tools/TlmViewerMemProf +19 -0
  258. data/{autohotkey/tools/Replay.bat → test/performance/tools/TlmViewerMemProf.bat} +1 -1
  259. metadata +107 -55
  260. data/test/performance/lib/example_background_task.rb +0 -57
  261. data/test/performance/lib/scpi_target.rb +0 -74
@@ -139,10 +139,16 @@ module Cosmos
139
139
  @tlm.update!("TGT1","PKT2","\x03\x03")
140
140
  @tlm.packet("TGT1","PKT2").check_limits
141
141
 
142
- # Ignore everything in pkt1
143
142
  @tlm.packet("TGT1","PKT1").set_stale
144
143
  expect(@limits.overall_limits_state).to eq :STALE
144
+ # Ignore several items in pkt1 but leave one off
145
+ expect(@limits.overall_limits_state([%w(TGT1 PKT1 ITEM1),%w(TGT1 PKT1 ITEM2),%w(TGT1 PKT1 ITEM3)])).to eq :STALE
146
+ # Ignore every item in pkt1
145
147
  expect(@limits.overall_limits_state([%w(TGT1 PKT1 ITEM1),%w(TGT1 PKT1 ITEM2),%w(TGT1 PKT1 ITEM3),%w(TGT1 PKT1 ITEM4)])).to eq :GREEN
148
+
149
+ # ignore the entire PKT1 packet
150
+ expect(@limits.overall_limits_state).to eq :STALE
151
+ expect(@limits.overall_limits_state([%w(TGT1 PKT1)])).to eq :GREEN
146
152
  end
147
153
 
148
154
  it "handles non-existant ignored telemetry items" do
@@ -171,6 +177,18 @@ module Cosmos
171
177
  @tlm.packet("TGT1","PKT1").check_limits(:TVAC)
172
178
  expect(@limits.overall_limits_state([%w(TGT1 PKT1 ITEM4),%w(TGT1 PKT1 ITEM3)])).to eq :GREEN
173
179
  end
180
+
181
+ it "ignores specified telemetry packets" do
182
+ # Cause packet 2 to be green
183
+ @tlm.update!("TGT1","PKT2","\x03\x03")
184
+ @tlm.packet("TGT1","PKT2").check_limits
185
+
186
+ # Cause packet 1 to have a YELLOW and a RED value but ignore the packet
187
+ @tlm.update!("TGT1","PKT1","\x0a\x0a\x07\x06\x00")
188
+ @tlm.packet("TGT1","PKT1").check_limits(:TVAC)
189
+ expect(@limits.overall_limits_state()).to eq :RED
190
+ expect(@limits.overall_limits_state([%w(TGT1 PKT1)])).to eq :GREEN
191
+ end
174
192
  end
175
193
 
176
194
  describe "enable_group" do
@@ -380,6 +380,49 @@ module Cosmos
380
380
  end
381
381
  end
382
382
 
383
+ describe "stale" do
384
+ it "complains about a non-existant target" do
385
+ expect { @tlm.stale(false, "TGTX") }.to raise_error(RuntimeError, "Telemetry target 'TGTX' does not exist")
386
+ end
387
+
388
+ it "returns the list of stale packets for a given target" do
389
+ p1 = @tlm.packet("TGT1","PKT1")
390
+ p2 = @tlm.packet("TGT1","PKT2")
391
+ p3 = @tlm.packet("TGT2","PKT1")
392
+ expect(@tlm.stale(false, "TGT2")).to include(p3)
393
+ @tlm.packet("TGT2","PKT1").check_limits
394
+ expect(@tlm.stale(false, "TGT2").size).to eql 0
395
+ expect(@tlm.stale(false, "TGT1").size).to eql 2
396
+ expect(@tlm.stale.size).to eql 2
397
+ end
398
+
399
+ it "returns the list of stale packets" do
400
+ p1 = @tlm.packet("TGT1","PKT1")
401
+ p2 = @tlm.packet("TGT1","PKT2")
402
+ p3 = @tlm.packet("TGT2","PKT1")
403
+ expect(@tlm.stale).to include(p1, p2, p3)
404
+ @tlm.packet("TGT1","PKT1").check_limits
405
+ expect(@tlm.stale).not_to include(p1)
406
+ expect(@tlm.stale).to include(p2, p3)
407
+ @tlm.packet("TGT1","PKT2").check_limits
408
+ expect(@tlm.stale).not_to include(p1, p2)
409
+ expect(@tlm.stale).to include(p3)
410
+ @tlm.packet("TGT2","PKT1").check_limits
411
+ expect(@tlm.stale.size).to eql 0
412
+ end
413
+
414
+ it "returns only stale packets which have limits" do
415
+ p1 = @tlm.packet("TGT1","PKT1")
416
+ p2 = @tlm.packet("TGT1","PKT2")
417
+ p3 = @tlm.packet("TGT2","PKT1")
418
+ expect(@tlm.stale(true)).to include(p1)
419
+ expect(@tlm.stale(true)).not_to include(p2,p3)
420
+ @tlm.packet("TGT1","PKT1").check_limits
421
+ expect(@tlm.stale(true).size).to eql 0
422
+ expect(@tlm.stale(false)).to include(p2,p3)
423
+ end
424
+ end
425
+
383
426
  describe "clear_counters" do
384
427
  it "clears each packet's receive count " do
385
428
  @tlm.packet("TGT1","PKT1").received_count = 1
@@ -414,7 +457,7 @@ module Cosmos
414
457
  end
415
458
  end
416
459
 
417
- describe "set_tlm" do
460
+ describe "set_value" do
418
461
  it "complains about non-existant targets" do
419
462
  expect { @tlm.set_value("TGTX","PKT1","ITEM1", 1) }.to raise_error(RuntimeError, "Telemetry target 'TGTX' does not exist")
420
463
  end
@@ -283,6 +283,20 @@ module Cosmos
283
283
  end
284
284
  end
285
285
 
286
+ describe "get_cmd_value, get_cmd_time" do
287
+ it "passes through to the cmd_tlm_server" do
288
+ expect {
289
+ get_cmd_value("INST", "COLLECT", "TYPE")
290
+ get_cmd_value("INST", "COLLECT", "RECEIVED_TIMEFORMATTED")
291
+ get_cmd_value("INST", "COLLECT", "RECEIVED_TIMESECONDS")
292
+ get_cmd_value("INST", "COLLECT", "RECEIVED_COUNT")
293
+ get_cmd_time("INST", "COLLECT")
294
+ get_cmd_time("INST")
295
+ get_cmd_time()
296
+ }.to_not raise_error
297
+ end
298
+ end
299
+
286
300
  end
287
301
  end
288
302
 
@@ -84,13 +84,17 @@ module Cosmos
84
84
  end
85
85
  end
86
86
 
87
- describe "prompt, prompt_message_box" do
87
+ describe "prompt, message_box, vertical_message_box, combo_box" do
88
88
  it "prompts the user for input" do
89
89
  $stdout = StringIO.new
90
90
  expect(self).to receive(:gets) { 'message' }
91
91
  expect(prompt("")).to eql 'message'
92
92
  expect(self).to receive(:gets) { 'b1' }
93
93
  expect(message_box("",["b1","b2"])).to eql 'b1'
94
+ expect(self).to receive(:gets) { 'b1' }
95
+ expect(vertical_message_box("",["b1","b2"])).to eql 'b1'
96
+ expect(self).to receive(:gets) { 'b1' }
97
+ expect(combo_box("",["b1","b2"])).to eql 'b1'
94
98
  $stdout = STDOUT
95
99
  end
96
100
  end
@@ -52,7 +52,7 @@ module Cosmos
52
52
  sleep(0.1)
53
53
  end
54
54
 
55
- describe "tlm, tlm_raw, tlm_formatted, tlm_with_units, tlm_variable, set_tlm, set_tlm_raw" do
55
+ describe "tlm, tlm_raw, tlm_formatted, tlm_with_units, tlm_variable" do
56
56
  it "passes through to the cmd_tlm_server" do
57
57
  expect {
58
58
  expect(tlm("INST HEALTH_STATUS TEMP1")).to eql -100.0
@@ -60,12 +60,47 @@ module Cosmos
60
60
  expect(tlm_formatted("INST HEALTH_STATUS TEMP1")).to eql "-100.000"
61
61
  expect(tlm_with_units("INST HEALTH_STATUS TEMP1")).to eql "-100.000 C"
62
62
  expect(tlm_variable("INST HEALTH_STATUS TEMP1", :RAW)).to eql 0
63
- set_tlm("INST HEALTH_STATUS TEMP1 = 1")
64
- set_tlm_raw("INST HEALTH_STATUS TEMP1 = 0")
65
63
  }.to_not raise_error
66
64
  end
67
65
  end
68
66
 
67
+ describe "set_tlm, set_tlm_raw" do
68
+ it "passes through to the cmd_tlm_server" do
69
+ expect {
70
+ set_tlm("INST HEALTH_STATUS TEMP3 = 1")
71
+ set_tlm("INST HEALTH_STATUS ASCIICMD = 'Hi'")
72
+ expect(tlm_raw("INST HEALTH_STATUS ASCIICMD")).to eql 'Hi'
73
+ set_tlm("INST HEALTH_STATUS ASCIICMD ='Hello'")
74
+ expect(tlm_raw("INST HEALTH_STATUS ASCIICMD")).to eql 'Hello'
75
+ set_tlm("INST HEALTH_STATUS ASCIICMD= 'Hello World'")
76
+ expect(tlm_raw("INST HEALTH_STATUS ASCIICMD")).to eql 'Hello World'
77
+ set_tlm("INST HEALTH_STATUS ASCIICMD='Hello World'")
78
+ expect(tlm_raw("INST HEALTH_STATUS ASCIICMD")).to eql 'Hello World'
79
+ set_tlm("INST HEALTH_STATUS ASCIICMD='Hello = World'")
80
+ expect(tlm_raw("INST HEALTH_STATUS ASCIICMD")).to eql 'Hello = World'
81
+ set_tlm_raw("INST HEALTH_STATUS TEMP3 = 0")
82
+ expect(tlm_raw("INST HEALTH_STATUS TEMP3")).to eql 0
83
+ set_tlm_raw("INST HEALTH_STATUS ASCIICMD = 'Hi'")
84
+ expect(tlm_raw("INST HEALTH_STATUS ASCIICMD")).to eql 'Hi'
85
+ set_tlm_raw("INST HEALTH_STATUS ASCIICMD ='Hello'")
86
+ expect(tlm_raw("INST HEALTH_STATUS ASCIICMD")).to eql 'Hello'
87
+ set_tlm_raw("INST HEALTH_STATUS ASCIICMD= 'Hello World'")
88
+ expect(tlm_raw("INST HEALTH_STATUS ASCIICMD")).to eql 'Hello World'
89
+ set_tlm_raw("INST HEALTH_STATUS ASCIICMD='Hello World'")
90
+ expect(tlm_raw("INST HEALTH_STATUS ASCIICMD")).to eql 'Hello World'
91
+ set_tlm_raw("INST HEALTH_STATUS ASCIICMD='Hello = World'")
92
+ expect(tlm_raw("INST HEALTH_STATUS ASCIICMD")).to eql 'Hello = World'
93
+ }.to_not raise_error
94
+ end
95
+
96
+ it "raises with bad syntax" do
97
+ error_msg = "ERROR: Set Telemetry Item must be specified as 'TargetName PacketName ItemName = Value'"
98
+ expect { set_tlm("INST HEALTH_STATUS = 5") }.to raise_error(/#{error_msg}/)
99
+ expect { set_tlm("INST HEALTH_STATUS TEMP3") }.to raise_error(/#{error_msg}/)
100
+ expect { set_tlm("INST HEALTH_STATUS TEMP3 = ") }.to raise_error(/#{error_msg}/)
101
+ end
102
+ end
103
+
69
104
  describe "get_tlm_packet" do
70
105
  it "gets the packet values" do
71
106
  expect(get_tlm_packet("INST", "HEALTH_STATUS", :RAW)).to include(["TEMP1", 0, :RED_LOW])
@@ -166,7 +166,8 @@ module Cosmos
166
166
  end
167
167
 
168
168
  # Load the original configuration
169
- original_config_name = System.load_configuration()
169
+ original_config_name, err = System.load_configuration
170
+ expect(err).to eql nil
170
171
  expect(System.telemetry.target_names).to eql %w(COSMOS OVERRIDE)
171
172
  original_pkts = System.telemetry.packets('COSMOS').keys
172
173
 
@@ -181,7 +182,8 @@ module Cosmos
181
182
  second_config_name = System.configuration_name
182
183
 
183
184
  # Now load the original configuration
184
- name = System.load_configuration(original_config_name)
185
+ name, err = System.load_configuration(original_config_name)
186
+ expect(err).to eql nil
185
187
  expect(original_config_name).to eql name
186
188
  expect(System.telemetry.packets('COSMOS').keys).not_to include "TEST1"
187
189
 
@@ -198,7 +200,8 @@ module Cosmos
198
200
 
199
201
  # Try loading something that doesn't exist
200
202
  # It should fail and reload the original configuration
201
- name = System.load_configuration("BLAH")
203
+ name, err = System.load_configuration("BLAH")
204
+ expect(err).to eql nil
202
205
  expect(name).to eql original_config_name
203
206
 
204
207
  # Now load the second configuration. It shouldn't have the most
@@ -206,6 +209,13 @@ module Cosmos
206
209
  System.load_configuration(second_config_name)
207
210
  expect(System.telemetry.packets('COSMOS').keys).to include "TEST1"
208
211
  expect(System.telemetry.packets('COSMOS').keys).not_to include "TEST2"
212
+
213
+ # Now remove system.txt from the third configuration and try to load it again to cause an error
214
+ third_config_path = System.instance.send(:find_configuration, third_config_name)
215
+ FileUtils.mv File.join(third_config_path, 'system.txt'), File.join(third_config_path, 'system2.txt')
216
+ result, err = System.load_configuration(third_config_name)
217
+ expect(result).to eql original_config_name
218
+ expect(err).to_not be_nil
209
219
  end
210
220
  end
211
221
  end
@@ -504,11 +514,21 @@ module Cosmos
504
514
  tf = Tempfile.new('unittest')
505
515
  tf.puts("DISABLE_DNS")
506
516
  tf.close
507
- expect(System.use_dns).to be true
517
+ expect(System.use_dns).to be false
508
518
  System.instance.process_file(tf.path)
509
519
  expect(System.use_dns).to be false
510
520
  tf.unlink
511
521
  end
522
+
523
+ it "enables dns lookups" do
524
+ tf = Tempfile.new('unittest')
525
+ tf.puts("ENABLE_DNS")
526
+ tf.close
527
+ expect(System.use_dns).to be false
528
+ System.instance.process_file(tf.path)
529
+ expect(System.use_dns).to be true
530
+ tf.unlink
531
+ end
512
532
  end
513
533
 
514
534
  context "with ALLOW_ACCESS" do
@@ -454,6 +454,36 @@ module Cosmos
454
454
  end
455
455
  end
456
456
 
457
+ describe "get_cmd_value" do
458
+ it "returns command values" do
459
+ time = Time.now
460
+ packet = System.commands.packet("INST", "COLLECT")
461
+ packet.received_time = time
462
+ packet.restore_defaults
463
+ packet.received_count = 5
464
+ expect(@api.get_cmd_value("INST", "COLLECT", "TYPE")).to eql 'NORMAL'
465
+ expect(@api.get_cmd_value("INST", "COLLECT", "RECEIVED_TIMEFORMATTED")).to eql time.formatted
466
+ expect(@api.get_cmd_value("INST", "COLLECT", "RECEIVED_TIMESECONDS")).to eql time.to_f
467
+ expect(@api.get_cmd_value("INST", "COLLECT", "RECEIVED_COUNT")).to eql 5
468
+ end
469
+ end
470
+
471
+ describe "get_cmd_time" do
472
+ it "returns command times" do
473
+ time = Time.now
474
+ time2 = Time.now + 2
475
+ packet = System.commands.packet("INST", "COLLECT")
476
+ packet.received_time = time
477
+ packet2 = System.commands.packet("COSMOS", "STARTLOGGING")
478
+ packet2.received_time = time2
479
+ expect(@api.get_cmd_time()).to eql ['COSMOS', 'STARTLOGGING', time2.tv_sec, time2.tv_usec]
480
+ expect(@api.get_cmd_time('INST')).to eql ['INST', 'COLLECT', time.tv_sec, time.tv_usec]
481
+ expect(@api.get_cmd_time('COSMOS')).to eql ['COSMOS', 'STARTLOGGING', time2.tv_sec, time2.tv_usec]
482
+ expect(@api.get_cmd_time('INST', 'COLLECT')).to eql ['INST', 'COLLECT', time.tv_sec, time.tv_usec]
483
+ expect(@api.get_cmd_time('COSMOS', 'STARTLOGGING')).to eql ['COSMOS', 'STARTLOGGING', time2.tv_sec, time2.tv_usec]
484
+ end
485
+ end
486
+
457
487
  def test_tlm_unknown(method)
458
488
  expect { @api.send(method,"BLAH HEALTH_STATUS COLLECTS") }.to raise_error(/does not exist/)
459
489
  expect { @api.send(method,"INST UNKNOWN COLLECTS") }.to raise_error(/does not exist/)
@@ -23,12 +23,39 @@ copy.gsub!(/>/,">")
23
23
  copy.gsub!(/</,"&lt;")
24
24
  puts copy
25
25
 
26
+ AMP = '&amp;'.freeze
27
+ BLANK = ''.freeze
28
+ GT = '&gt;'.freeze
29
+ LT = '&lt;'.freeze
30
+ mapping = {'&'=>AMP,"\n"=>BLANK,'>'=>GT,'<'=>LT}
31
+ regex1 = Regexp.new('[&\n><]')
32
+ regex2 = Regexp.union(mapping.keys)
33
+ copy = data.dup
34
+ puts copy.gsub(regex1, mapping)
35
+ puts copy.gsub(regex2, mapping)
36
+
26
37
  Benchmark.ips do |x|
38
+ x.report('gsub mapping1') do
39
+ copy = data.dup
40
+ copy.gsub(regex1, mapping)
41
+ end
42
+ x.report('gsub mapping2') do
43
+ copy = data.dup
44
+ copy.gsub(regex1, mapping)
45
+ end
46
+ x.report('gsub! mapping1') do
47
+ copy = data.dup
48
+ copy.gsub!(regex1, mapping)
49
+ end
50
+ x.report('gsub! mapping2') do
51
+ copy = data.dup
52
+ copy.gsub!(regex1, mapping)
53
+ end
54
+
27
55
  x.report('gsub') do
28
56
  copy = data.dup
29
57
  copy.gsub("&","&amp;").gsub("\n",'').gsub(">","&gt;").gsub("<","&lt;")
30
58
  end
31
-
32
59
  x.report('gsub!') do
33
60
  copy = data.dup
34
61
  copy.gsub!("&","&amp;")
@@ -41,7 +68,6 @@ Benchmark.ips do |x|
41
68
  copy = data.dup
42
69
  copy.gsub(/&/,"&amp;").gsub(/\n/,'').gsub(/>/,"&gt;").gsub(/</,"&lt;")
43
70
  end
44
-
45
71
  x.report('gsub! regex') do
46
72
  copy = data.dup
47
73
  copy.gsub!(/&/,"&amp;")
@@ -54,7 +80,6 @@ Benchmark.ips do |x|
54
80
  copy = data.dup
55
81
  copy.gsub("&".freeze,"&amp;".freeze).gsub("\n".freeze,''.freeze).gsub(">".freeze,"&gt;".freeze).gsub("<".freeze,"&lt;".freeze)
56
82
  end
57
-
58
83
  x.report('gsub! freeze') do
59
84
  copy = data.dup
60
85
  copy.gsub!("&".freeze,"&amp;".freeze)
@@ -67,7 +92,6 @@ Benchmark.ips do |x|
67
92
  copy = data.dup
68
93
  copy.gsub(/&/,"&amp;".freeze).gsub(/\n/,''.freeze).gsub(/>/,"&gt;".freeze).gsub(/</,"&lt;".freeze)
69
94
  end
70
-
71
95
  x.report('gsub! regex freeze') do
72
96
  copy = data.dup
73
97
  copy.gsub!(/&/,"&amp;".freeze)
@@ -77,6 +101,20 @@ Benchmark.ips do |x|
77
101
  end
78
102
  end
79
103
 
104
+ report = MemoryProfiler.report do
105
+ 10000.times do
106
+ copy = data.dup
107
+ copy.gsub(regex1, mapping)
108
+ end
109
+ end
110
+ File.open(File.build_timestamped_filename(%w(gsub mapping1)),'w') {|file| report.pretty_print(file) }
111
+ report = MemoryProfiler.report do
112
+ 10000.times do
113
+ copy = data.dup
114
+ copy.gsub(regex2, mapping)
115
+ end
116
+ end
117
+ File.open(File.build_timestamped_filename(%w(gsub mapping2)),'w') {|file| report.pretty_print(file) }
80
118
  report = MemoryProfiler.report do
81
119
  10000.times do
82
120
  copy = data.dup
@@ -0,0 +1,34 @@
1
+ require 'benchmark'
2
+
3
+ iterations = 10_000_000
4
+
5
+ value = "hi"
6
+
7
+ Benchmark.bm(30) do |x|
8
+ x.report("value.is_a?") { iterations.times { if value.is_a?(Integer); end } }
9
+ x.report("value.respond_to?") { iterations.times { if value.respond_to?(:abs); end } }
10
+ x.report("type === value") { iterations.times { if Integer === value; end} }
11
+ x.report("case when") do
12
+ iterations.times do
13
+ case value
14
+ when Integer
15
+ end
16
+ end
17
+ end
18
+ x.report("if x2") do
19
+ iterations.times do
20
+ if value.is_a?(Integer)
21
+ elsif value.is_a?(String)
22
+ end
23
+ end
24
+ end
25
+ x.report("case when x2") do
26
+ iterations.times do
27
+ case value
28
+ when Integer
29
+ when String
30
+ end
31
+ end
32
+ end
33
+ end
34
+
@@ -1,206 +1,196 @@
1
- "lib/example_background_task.rb" 0x01426696
2
- "lib/example_target.rb" 0xFBEF2AE3
3
- "lib/scpi_target.rb" 0x227D06B7
4
- "lib/user_version.rb" 0x8F282EE9
5
- "config/data/tada.wav" 0x1ABCFFD1
6
- "config/data/meta_init.txt" 0xFF5B7C60
7
- "config/data/hswitchoff.gif" 0xB051B6A3
8
- "config/data/poweron.gif" 0x137C8043
9
- "config/data/diamond.STL" 0xA96E4846
10
- "config/data/satellite.gif" 0x26888D25
11
- "config/data/vswitchon.gif" 0xD747AC45
12
- "config/data/hselectoff.gif" 0x8A0C192E
1
+ "lib/packet_target.rb" 0x59C31C58
2
+ "lib/thread_target.rb" 0x09C820AD
13
3
  "config/data/attitude.bin" 0xB6D17289
14
- "config/data/poweroff.gif" 0xF67A83D3
15
- "config/data/groundon.gif" 0x97D9A501
4
+ "config/data/diamond.STL" 0xA96E4846
16
5
  "config/data/groundoff.gif" 0x7BA45A4D
17
- "config/data/vswitchoff.gif" 0xFAE436C9
6
+ "config/data/groundon.gif" 0x97D9A501
7
+ "config/data/hselectoff.gif" 0x8A0C192E
8
+ "config/data/hselecton.gif" 0xA824E4FC
9
+ "config/data/hswitchoff.gif" 0xB051B6A3
18
10
  "config/data/hswitchon.gif" 0x79C96937
11
+ "config/data/meta_init.txt" 0xFF5B7C60
19
12
  "config/data/position.bin" 0x6EB90F11
20
- "config/data/hselecton.gif" 0xA824E4FC
21
- "config/system/system2.txt" 0xC75EBA65
22
- "config/system/system.txt" 0x1BAF7FCC
23
- "config/targets/SYSTEM/cmd_tlm/override.txt" 0x8FE016FF
24
- "config/targets/SYSTEM/cmd_tlm/limits_groups.txt" 0x16AF4BA3
25
- "config/targets/SYSTEM/screens/status.txt" 0x89B616E5
26
- "config/targets/INST/cmd_tlm/inst_tlm.txt" 0x41CB35D2
27
- "config/targets/INST/cmd_tlm/inst_cmds.txt" 0x5E6ADC2F
28
- "config/targets/INST/cmd_tlm_server.txt" 0x3FC45604
29
- "config/targets/INST/target.txt" 0x3C3A6F4A
30
- "config/targets/INST/screens/graphs.txt" 0x82EF35B4
31
- "config/targets/INST/screens/commanding.txt" 0xC0EDFAC3
32
- "config/targets/INST/screens/tabs.txt" 0x8C8BB548
33
- "config/targets/INST/screens/latest.txt" 0x9ED55CAF
34
- "config/targets/INST/screens/adcs.txt" 0xBF096628
35
- "config/targets/INST/screens/block.txt" 0x77C3F2F0
36
- "config/targets/INST/screens/hs.txt" 0x3FF100C3
37
- "config/targets/INST/screens/array.txt" 0x4E9CE715
38
- "config/targets/INST/screens/ground.txt" 0x2D89624D
39
- "config/targets/INST/screens/other.txt" 0x6E6541FA
40
- "config/targets/INST/doc/README.txt" 0x93B2C07E
41
- "config/targets/INST/lib/example_limits_response.rb" 0xB4A746B1
42
- "config/targets/INST/lib/sim_inst.rb" 0x7CEC7033
43
- "config/targets/META/cmd_tlm/meta_cmd.txt" 0x674D6D66
44
- "config/targets/META/cmd_tlm/meta_tlm.txt" 0x5FC12229
45
- "config/targets/EXAMPLE/cmd_tlm/example_cmds.txt" 0xB1A6D401
46
- "config/targets/EXAMPLE/cmd_tlm/example_tlm.txt" 0x52A3D7FF
47
- "config/targets/EXAMPLE/cmd_tlm_server.txt" 0x6139204A
48
- "config/targets/EXAMPLE/target.txt" 0x4ED5B5BC
49
- "config/targets/EXAMPLE/lib/example_interface.rb" 0x126C4586
50
- "config/targets/TEMPLATED/cmd_tlm/templated_tlm.txt" 0x4E6360AA
51
- "config/targets/TEMPLATED/cmd_tlm/templated_cmds.txt" 0x36D65799
52
- "config/targets/TEMPLATED/cmd_tlm_server.txt" 0x727CDBEB
53
- "config/targets/TEMPLATED/target.txt" 0xDE6DDA2D
54
- "config/targets/TEMPLATED/lib/templated_interface.rb" 0x924A3AFE
13
+ "config/data/poweroff.gif" 0xF67A83D3
14
+ "config/data/poweron.gif" 0x137C8043
15
+ "config/data/satellite.gif" 0x26888D25
16
+ "config/data/tada.wav" 0x1ABCFFD1
17
+ "config/data/vswitchoff.gif" 0xFAE436C9
18
+ "config/data/vswitchon.gif" 0xD747AC45
19
+ "config/system/system_packets.txt" 0xDA665B50
20
+ "config/system/system_threads.txt" 0x20F6E744
21
+ "config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt" 0x9589CE1D
55
22
  "config/targets/COSMOS/cmd_tlm/cosmos_server_tlm.txt" 0xC667CCD6
56
- "config/targets/COSMOS/cmd_tlm/cosmos_server_cmds.txt" 0xE2F62B11
57
23
  "config/targets/COSMOS/cmd_tlm_server.txt" 0xE53A4164
58
- "config/targets/COSMOS/target.txt" 0xB39D9281
59
24
  "config/targets/COSMOS/screens/limits_change.txt" 0xE8C47C54
60
25
  "config/targets/COSMOS/screens/version.txt" 0x393D4F72
61
- "config/tools/script_runner/script_runner.txt" 0x1EECD803
26
+ "config/targets/COSMOS/target.txt" 0xB39D9281
27
+ "config/targets/PACKET/cmd_tlm/packet_cmds.txt" 0xAF042065
28
+ "config/targets/PACKET/cmd_tlm/packet_tlm.txt" 0x03795B48
29
+ "config/targets/PACKET/cmd_tlm_server.txt" 0x7C18BA09
30
+ "config/targets/PACKET/lib/packet_interface.rb" 0x0BC1909F
31
+ "config/targets/PACKET/lib/packet_limits_response.rb" 0xA427D78E
32
+ "config/targets/PACKET/screens/status.txt" 0xD9B1DD08
33
+ "config/targets/PACKET/target.txt" 0x0B0338E4
34
+ "config/targets/SYSTEM/screens/status.txt" 0x89B616E5
35
+ "config/targets/THREAD/cmd_tlm/thread_cmds.txt" 0x8D82A34C
36
+ "config/targets/THREAD/cmd_tlm/thread_tlm.txt" 0xAF01DDA9
37
+ "config/targets/THREAD/cmd_tlm_server.txt" 0x37AE20AF
38
+ "config/targets/THREAD/lib/thread_interface.rb" 0x82FB49D8
39
+ "config/targets/THREAD/screens/status.txt" 0xD9B1DD08
40
+ "config/targets/THREAD/target.txt" 0x4ED5B5BC
41
+ "config/tools/cmd_tlm_server/cmd_tlm_server_packets.txt" 0x35E7315D
42
+ "config/tools/cmd_tlm_server/cmd_tlm_server_threads.txt" 0xBDC1510D
62
43
  "config/tools/data_viewer/data_viewer.txt" 0xCAC3B017
63
- "config/tools/launcher/launcher.txt" 0x1B96FE7C
64
- "config/tools/launcher/launcher2.txt" 0xB0B9B1D1
65
- "config/tools/tlm_extractor/tlm_extractor4.txt" 0x7BFDC27A
66
- "config/tools/tlm_extractor/tlm_extractor2.txt" 0x210DED6A
67
- "config/tools/tlm_extractor/tlm_extractor.txt" 0x51B791DF
68
- "config/tools/tlm_extractor/tlm_extractor3.txt" 0x3A25E012
69
- "config/tools/cmd_tlm_server/cmd_tlm_server.txt" 0x5F467E20
70
- "config/tools/cmd_tlm_server/cmd_tlm_server2.txt" 0xF1C5C3B4
71
- "config/tools/limits_monitor/README.txt" 0x93B2C07E
72
- "config/tools/table_manager/PPSSelectionTable_def.txt" 0xE7A1E70B
73
- "config/tools/table_manager/ConfigTables_def.txt" 0xC38DCB2A
74
- "config/tools/table_manager/ExampleTableDefinition.txt" 0x5476588C
75
- "config/tools/table_manager/MCConfigurationTable_fsw1_def.txt" 0x9DE18AEA
76
- "config/tools/table_manager/TLMMonitoringTable_def.txt" 0x70DABA45
77
- "config/tools/table_manager/MCConfigurationTable_fsw2_def.txt" 0x9DE18AEA
78
- "config/tools/opengl_builder/README.txt" 0x93B2C07E
79
- "config/tools/test_runner/test_runner.txt" 0x1EB7E49C
80
- "config/tools/tlm_grapher/README.txt" 0x93B2C07E
81
44
  "config/tools/handbook_creator/default_toc.xsl" 0x4122A040
82
45
  "config/tools/handbook_creator/handbook_creator.txt" 0xAA806C94
46
+ "config/tools/handbook_creator/templates/command_packets.html.erb" 0x9897CA7A
83
47
  "config/tools/handbook_creator/templates/command_toc.html.erb" 0x9159BCF9
84
- "config/tools/handbook_creator/templates/title.html.erb" 0xBC66E2BC
85
- "config/tools/handbook_creator/templates/pdf_cover.html.erb" 0x7AAB9A42
86
- "config/tools/handbook_creator/templates/pdf_header.html.erb" 0x3020FEE1
87
- "config/tools/handbook_creator/templates/telemetry_toc.html.erb" 0x610E3BC5
48
+ "config/tools/handbook_creator/templates/footer.html.erb" 0x0E1F9800
88
49
  "config/tools/handbook_creator/templates/header.html.erb" 0x1E490C2A
89
- "config/tools/handbook_creator/templates/telemetry_packets.html.erb" 0x44BD9695
90
- "config/tools/handbook_creator/templates/command_packets.html.erb" 0x9897CA7A
91
50
  "config/tools/handbook_creator/templates/limits_groups.html.erb" 0x40FDF34C
92
51
  "config/tools/handbook_creator/templates/nav.html.erb" 0xDF65AAEA
93
- "config/tools/handbook_creator/templates/footer.html.erb" 0x0E1F9800
94
- "config/tools/handbook_creator/templates/pdf_footer.html.erb" 0xF0D3EB77
95
52
  "config/tools/handbook_creator/templates/overview.html.erb" 0xDC4DD2B8
96
- "config/tools/tlm_viewer/tlm_viewer.txt" 0x825AF31C
97
- "tools/TlmGrapher" 0x4ECDFE31
98
- "tools/TestRunner.bat" 0xF1C468BA
99
- "tools/ExampleTarget.bat" 0xF7D93DD0
100
- "tools/PacketViewer.bat" 0xF1C468BA
101
- "tools/TlmViewer.bat" 0xF1C468BA
102
- "tools/TlmExtractor" 0x2EF21468
53
+ "config/tools/handbook_creator/templates/pdf_cover.html.erb" 0x7AAB9A42
54
+ "config/tools/handbook_creator/templates/pdf_footer.html.erb" 0xF0D3EB77
55
+ "config/tools/handbook_creator/templates/pdf_header.html.erb" 0x3020FEE1
56
+ "config/tools/handbook_creator/templates/telemetry_packets.html.erb" 0x44BD9695
57
+ "config/tools/handbook_creator/templates/telemetry_toc.html.erb" 0x610E3BC5
58
+ "config/tools/handbook_creator/templates/title.html.erb" 0xBC66E2BC
59
+ "config/tools/launcher/launcher_packets.txt" 0x51DC78DA
60
+ "config/tools/launcher/launcher_threads.txt" 0x878061C0
61
+ "config/tools/limits_monitor/README.txt" 0x93B2C07E
62
+ "config/tools/opengl_builder/README.txt" 0x93B2C07E
63
+ "config/tools/script_runner/script_runner.txt" 0x1EECD803
64
+ "config/tools/table_manager/ConfigTables_def.txt" 0xC38DCB2A
65
+ "config/tools/table_manager/ExampleTableDefinition.txt" 0x5476588C
66
+ "config/tools/table_manager/MCConfigurationTable_fsw1_def.txt" 0x9DE18AEA
67
+ "config/tools/table_manager/MCConfigurationTable_fsw2_def.txt" 0x9DE18AEA
68
+ "config/tools/table_manager/PPSSelectionTable_def.txt" 0xE7A1E70B
69
+ "config/tools/table_manager/TLMMonitoringTable_def.txt" 0x70DABA45
70
+ "config/tools/test_runner/test_runner.txt" 0x1EB7E49C
71
+ "config/tools/tlm_extractor/tlm_extractor.txt" 0x51B791DF
72
+ "config/tools/tlm_extractor/tlm_extractor2.txt" 0x210DED6A
73
+ "config/tools/tlm_extractor/tlm_extractor3.txt" 0x3A25E012
74
+ "config/tools/tlm_extractor/tlm_extractor4.txt" 0x7BFDC27A
75
+ "config/tools/tlm_grapher/README.txt" 0x93B2C07E
76
+ "config/tools/tlm_grapher/tlm_grapher.txt" 0x0ABC08EB
77
+ "config/tools/tlm_viewer/tlm_viewer.txt" 0xFA439F50
78
+ "tools/CmdExtractor" 0x54FD7420
79
+ "tools/CmdExtractor.bat" 0xF1C468BA
80
+ "tools/CmdSender" 0x0F0866C6
81
+ "tools/CmdSender.bat" 0xF1C468BA
82
+ "tools/CmdTlmServer" 0xB383F883
103
83
  "tools/CmdTlmServer.bat" 0xF1C468BA
104
- "tools/OpenGLBuilder" 0x96F7D2C2
105
- "tools/Replay" 0xA2C90DA4
106
- "tools/CmdSender" 0x8F2A9EC6
107
- "tools/PacketViewer" 0x019FC483
108
- "tools/TableManager.bat" 0xF1C468BA
109
- "tools/TlmExtractor.bat" 0xF1C468BA
84
+ "tools/CmdTlmServerMemProf" 0x10BCBBC2
85
+ "tools/CmdTlmServerMemProf.bat" 0xF1C468BA
86
+ "tools/DataViewer" 0x2F81335B
87
+ "tools/DataViewer.bat" 0xF1C468BA
88
+ "tools/ExampleTarget" 0xC7698E38
89
+ "tools/ExampleTarget.bat" 0xF7D93DD0
90
+ "tools/HandbookCreator" 0x7337665F
110
91
  "tools/HandbookCreator.bat" 0x4D5B6471
92
+ "tools/Launcher" 0xBB5DB49A
111
93
  "tools/Launcher.bat" 0xF1C468BA
112
- "tools/TestRunner" 0xDE0A3BD7
113
- "tools/CmdSender.bat" 0xF1C468BA
94
+ "tools/LimitsMonitor" 0x8227E66E
114
95
  "tools/LimitsMonitor.bat" 0xF1C468BA
115
- "tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns" 0x39862FA7
96
+ "tools/mac/CmdExtractor.app/Contents/Info.plist" 0x0E89084D
116
97
  "tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb" 0x9AD128F4
117
98
  "tools/mac/CmdExtractor.app/Contents/MacOS/main.sh" 0x52DD5B34
118
- "tools/mac/CmdExtractor.app/Contents/Info.plist" 0x0E89084D
119
- "tools/mac/TestRunner.app/Contents/Resources/appIcon.icns" 0xC8D32D55
120
- "tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb" 0xDE0A3BD7
121
- "tools/mac/TestRunner.app/Contents/MacOS/main.sh" 0xD486D22B
122
- "tools/mac/TestRunner.app/Contents/Info.plist" 0x482B3BA5
123
- "tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns" 0xCA324F50
124
- "tools/mac/TlmGrapher.app/Contents/MacOS/main.sh" 0x427E2ECF
125
- "tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb" 0x4ECDFE31
126
- "tools/mac/TlmGrapher.app/Contents/Info.plist" 0x3623B978
127
- "tools/mac/Launcher.app/Contents/Resources/appIcon.icns" 0x8857CD2B
99
+ "tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns" 0x39862FA7
100
+ "tools/mac/CmdSender.app/Contents/Info.plist" 0x87039019
101
+ "tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb" 0x8F2A9EC6
102
+ "tools/mac/CmdSender.app/Contents/MacOS/main.sh" 0x995D6C7D
103
+ "tools/mac/CmdSender.app/Contents/Resources/appIcon.icns" 0xEC403A52
104
+ "tools/mac/CmdTlmServer.app/Contents/Info.plist" 0x97E53674
105
+ "tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb" 0xEA490D20
106
+ "tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh" 0xB8D1BE6E
107
+ "tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns" 0x972CDCC6
108
+ "tools/mac/DataViewer.app/Contents/Info.plist" 0xB79CA16B
109
+ "tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb" 0xEC36C843
110
+ "tools/mac/DataViewer.app/Contents/MacOS/main.sh" 0xC7AC5AC6
111
+ "tools/mac/DataViewer.app/Contents/Resources/appIcon.icns" 0x3EC9B207
112
+ "tools/mac/HandbookCreator.app/Contents/Info.plist" 0x7591A548
113
+ "tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb" 0x0D82EDCA
114
+ "tools/mac/HandbookCreator.app/Contents/MacOS/main.sh" 0xD6BC144D
115
+ "tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns" 0xCEA7C465
116
+ "tools/mac/Launcher.app/Contents/Info.plist" 0x32A1EF14
128
117
  "tools/mac/Launcher.app/Contents/MacOS/Launcher.rb" 0xF992D0E5
129
118
  "tools/mac/Launcher.app/Contents/MacOS/main.sh" 0xB47BE66F
130
- "tools/mac/Launcher.app/Contents/Info.plist" 0x32A1EF14
131
- "tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns" 0x8DDBD837
132
- "tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb" 0x96F7D2C2
133
- "tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh" 0x5EF4D8E2
119
+ "tools/mac/Launcher.app/Contents/Resources/appIcon.icns" 0x8857CD2B
120
+ "tools/mac/LimitsMonitor.app/Contents/Info.plist" 0xAF650287
121
+ "tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb" 0x64186FBA
122
+ "tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh" 0xCC934478
123
+ "tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns" 0xC98BF799
134
124
  "tools/mac/OpenGLBuilder.app/Contents/Info.plist" 0x3C2E542D
135
- "tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns" 0xCEA7C465
136
- "tools/mac/HandbookCreator.app/Contents/MacOS/main.sh" 0xD6BC144D
137
- "tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb" 0x0D82EDCA
138
- "tools/mac/HandbookCreator.app/Contents/Info.plist" 0x7591A548
139
- "tools/mac/TableManager.app/Contents/Resources/appIcon.icns" 0xEBF5074E
125
+ "tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh" 0x5EF4D8E2
126
+ "tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb" 0x96F7D2C2
127
+ "tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns" 0x8DDBD837
128
+ "tools/mac/PacketViewer.app/Contents/Info.plist" 0x6934BF89
129
+ "tools/mac/PacketViewer.app/Contents/MacOS/main.sh" 0x0D28EF08
130
+ "tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb" 0x019FC483
131
+ "tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns" 0xDF373DAE
132
+ "tools/mac/Replay.app/Contents/Info.plist" 0x894AC4CF
133
+ "tools/mac/Replay.app/Contents/MacOS/main.sh" 0x211D29BB
134
+ "tools/mac/Replay.app/Contents/MacOS/Replay.rb" 0xA2C90DA4
135
+ "tools/mac/Replay.app/Contents/Resources/appIcon.icns" 0x0E6B32E5
136
+ "tools/mac/ScriptRunner.app/Contents/Info.plist" 0x1BC8C5E9
137
+ "tools/mac/ScriptRunner.app/Contents/MacOS/main.sh" 0xE3274772
138
+ "tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb" 0x43D56B62
139
+ "tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns" 0x9246743E
140
+ "tools/mac/TableManager.app/Contents/Info.plist" 0xF6A5877F
140
141
  "tools/mac/TableManager.app/Contents/MacOS/main.sh" 0x98E69D10
141
142
  "tools/mac/TableManager.app/Contents/MacOS/TableManager.rb" 0x2973832A
142
- "tools/mac/TableManager.app/Contents/Info.plist" 0xF6A5877F
143
- "tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns" 0x1CBA8EB3
144
- "tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb" 0x922D7C22
145
- "tools/mac/TlmViewer.app/Contents/MacOS/main.sh" 0x99FD781B
146
- "tools/mac/TlmViewer.app/Contents/Info.plist" 0x821041E0
147
- "tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns" 0xC98BF799
148
- "tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh" 0xCC934478
149
- "tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb" 0x64186FBA
150
- "tools/mac/LimitsMonitor.app/Contents/Info.plist" 0xAF650287
151
- "tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns" 0x0AC88876
152
- "tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb" 0x2EF21468
153
- "tools/mac/TlmExtractor.app/Contents/MacOS/main.sh" 0x4210EF0D
143
+ "tools/mac/TableManager.app/Contents/Resources/appIcon.icns" 0xEBF5074E
144
+ "tools/mac/TestRunner.app/Contents/Info.plist" 0x482B3BA5
145
+ "tools/mac/TestRunner.app/Contents/MacOS/main.sh" 0xD486D22B
146
+ "tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb" 0xDE0A3BD7
147
+ "tools/mac/TestRunner.app/Contents/Resources/appIcon.icns" 0xC8D32D55
154
148
  "tools/mac/TlmExtractor.app/Contents/Info.plist" 0x343784F4
155
- "tools/mac/DataViewer.app/Contents/Resources/appIcon.icns" 0x3EC9B207
156
- "tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb" 0xEC36C843
157
- "tools/mac/DataViewer.app/Contents/MacOS/main.sh" 0xC7AC5AC6
158
- "tools/mac/DataViewer.app/Contents/Info.plist" 0xB79CA16B
159
- "tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns" 0x972CDCC6
160
- "tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb" 0xEA490D20
161
- "tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh" 0xB8D1BE6E
162
- "tools/mac/CmdTlmServer.app/Contents/Info.plist" 0x97E53674
163
- "tools/mac/CmdSender.app/Contents/Resources/appIcon.icns" 0xEC403A52
164
- "tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb" 0x8F2A9EC6
165
- "tools/mac/CmdSender.app/Contents/MacOS/main.sh" 0x995D6C7D
166
- "tools/mac/CmdSender.app/Contents/Info.plist" 0x87039019
167
- "tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns" 0x9246743E
168
- "tools/mac/ScriptRunner.app/Contents/MacOS/main.sh" 0xE3274772
169
- "tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb" 0x43D56B62
170
- "tools/mac/ScriptRunner.app/Contents/Info.plist" 0x1BC8C5E9
171
- "tools/mac/Replay.app/Contents/Resources/appIcon.icns" 0x0E6B32E5
172
- "tools/mac/Replay.app/Contents/MacOS/Replay.rb" 0xA2C90DA4
173
- "tools/mac/Replay.app/Contents/MacOS/main.sh" 0x211D29BB
174
- "tools/mac/Replay.app/Contents/Info.plist" 0x894AC4CF
175
- "tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns" 0xDF373DAE
176
- "tools/mac/PacketViewer.app/Contents/MacOS/main.sh" 0x0D28EF08
177
- "tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb" 0x019FC483
178
- "tools/mac/PacketViewer.app/Contents/Info.plist" 0x6934BF89
179
- "tools/LimitsMonitor" 0x64186FBA
180
- "tools/HandbookCreator" 0x0D82EDCA
181
- "tools/Replay.bat" 0xF1C468BA
182
- "tools/Launcher" 0xF992D0E5
183
- "tools/CmdExtractor.bat" 0xF1C468BA
149
+ "tools/mac/TlmExtractor.app/Contents/MacOS/main.sh" 0x4210EF0D
150
+ "tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb" 0x2EF21468
151
+ "tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns" 0x0AC88876
152
+ "tools/mac/TlmGrapher.app/Contents/Info.plist" 0x3623B978
153
+ "tools/mac/TlmGrapher.app/Contents/MacOS/main.sh" 0x427E2ECF
154
+ "tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb" 0x4ECDFE31
155
+ "tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns" 0xCA324F50
156
+ "tools/mac/TlmViewer.app/Contents/Info.plist" 0x821041E0
157
+ "tools/mac/TlmViewer.app/Contents/MacOS/main.sh" 0x99FD781B
158
+ "tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb" 0x922D7C22
159
+ "tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns" 0x1CBA8EB3
160
+ "tools/OpenGLBuilder" 0x70C85B16
184
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
185
171
  "tools/ScriptRunner.bat" 0xF1C468BA
186
- "tools/ScpiTarget" 0xD9EB6791
187
- "tools/TableManager" 0x2973832A
188
- "tools/TlmViewer" 0x922D7C22
189
- "tools/CmdExtractor" 0x9AD128F4
190
- "tools/DataViewer.bat" 0xF1C468BA
191
- "tools/ExampleTarget" 0xE03083ED
192
- "tools/CmdTlmServer" 0xEA490D20
193
- "tools/ScriptRunner" 0x43D56B62
194
- "tools/DataViewer" 0xEC36C843
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
195
179
  "tools/TlmGrapher.bat" 0xF1C468BA
196
- "tools/ScpiTarget.bat" 0xF7D93DD0
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
+ "procedures/checks.rb" 0x34EEF3E2
187
+ "procedures/clear_util.rb" 0x5B3C1279
188
+ "procedures/collect.rb" 0x3E52C327
189
+ "procedures/collect_util.rb" 0x3952EB08
190
+ "procedures/cosmos_api_test.rb" 0x57AE9ED2
197
191
  "procedures/disconnect.rb" 0x5F3A18E5
192
+ "procedures/example_test.rb" 0x4FBA73C1
198
193
  "procedures/plot_test.rb" 0x0C2972E4
199
- "procedures/collect_util.rb" 0x3952EB08
194
+ "procedures/procedure.rb" 0xD5051B01
200
195
  "procedures/run_example_test.rb" 0x0F244140
201
- "procedures/clear_util.rb" 0x5B3C1279
202
- "procedures/example_test.rb" 0x4FBA73C1
203
- "procedures/cosmos_api_test.rb" 0x57AE9ED2
204
196
  "procedures/test.rb" 0xCE4DA55A
205
- "procedures/checks.rb" 0x34EEF3E2
206
- "procedures/collect.rb" 0x3E52C327