cosmos 3.4.2 → 3.5.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 (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