cosmos 4.5.0-java → 4.5.1-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +2 -1
  3. data/Rakefile +10 -8
  4. data/autohotkey/tools/cmd_extractor.ahk +11 -9
  5. data/autohotkey/tools/cmd_sender.ahk +1 -1
  6. data/autohotkey/tools/cmd_sequence.ahk +1 -1
  7. data/autohotkey/tools/data_viewer.ahk +1 -1
  8. data/autohotkey/tools/limits_monitor.ahk +1 -1
  9. data/autohotkey/tools/packet_viewer.ahk +1 -1
  10. data/autohotkey/tools/script_runner.ahk +1 -1
  11. data/autohotkey/tools/test_runner2.ahk +1 -1
  12. data/autohotkey/tools/tlm_grapher.ahk +1 -1
  13. data/autohotkey/tools/tlm_grapher3.ahk +1 -1
  14. data/autohotkey/tools/tlm_viewer.ahk +1 -1
  15. data/autohotkey/tools/tlm_viewer2.ahk +1 -1
  16. data/autohotkey/tools/tlm_viewer5.ahk +1 -1
  17. data/bin/xtce_converter +1 -1
  18. data/data/crc.txt +403 -403
  19. data/demo/Rakefile +4 -4
  20. data/demo/config/data/crc.txt +210 -210
  21. data/ext/cosmos/ext/buffered_file/buffered_file.c +2 -2
  22. data/ext/cosmos/ext/config_parser/config_parser.c +1 -2
  23. data/ext/cosmos/ext/line_graph/line_graph.c +53 -94
  24. data/ext/cosmos/ext/platform/platform.c +56 -21
  25. data/ext/cosmos/ext/polynomial_conversion/polynomial_conversion.c +4 -8
  26. data/ext/cosmos/ext/structure/structure.c +12 -0
  27. data/install/Rakefile +4 -4
  28. data/install/config/data/crc.txt +129 -129
  29. data/lib/cosmos/config/config_parser.rb +2 -10
  30. data/lib/cosmos/core_ext/class.rb +10 -0
  31. data/lib/cosmos/core_ext/time.rb +2 -2
  32. data/lib/cosmos/dart/lib/dart_common.rb +3 -3
  33. data/lib/cosmos/dart/spec/dart/dart_database_cleaner_spec.rb +2 -2
  34. data/lib/cosmos/gui/qt.rb +10 -10
  35. data/lib/cosmos/gui/qt_tool.rb +7 -0
  36. data/lib/cosmos/gui/text/completion_text_edit.rb +2 -0
  37. data/lib/cosmos/interfaces/tcpip_server_interface.rb +3 -3
  38. data/lib/cosmos/io/io_multiplexer.rb +6 -2
  39. data/lib/cosmos/io/json_drb.rb +1 -1
  40. data/lib/cosmos/packets/packet.rb +8 -8
  41. data/lib/cosmos/packets/packet_config.rb +1 -1
  42. data/lib/cosmos/packets/parsers/xtce_converter.rb +10 -10
  43. data/lib/cosmos/packets/parsers/xtce_parser.rb +3 -0
  44. data/lib/cosmos/packets/structure.rb +16 -12
  45. data/lib/cosmos/script/api_shared.rb +10 -0
  46. data/lib/cosmos/script/script.rb +2 -2
  47. data/lib/cosmos/tools/cmd_tlm_server/api.rb +10 -8
  48. data/lib/cosmos/tools/cmd_tlm_server/gui/logging_tab.rb +1 -1
  49. data/lib/cosmos/tools/cmd_tlm_server/interface_thread.rb +29 -26
  50. data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +1 -1
  51. data/lib/cosmos/tools/script_runner/script_runner_frame.rb +5 -2
  52. data/lib/cosmos/tools/test_runner/test.rb +1 -1
  53. data/lib/cosmos/tools/test_runner/test_runner.rb +4 -4
  54. data/lib/cosmos/tools/tlm_extractor/tlm_extractor.rb +3 -3
  55. data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +2 -0
  56. data/lib/cosmos/top_level.rb +1 -1
  57. data/lib/cosmos/utilities/simulated_target.rb +1 -1
  58. data/lib/cosmos/version.rb +4 -4
  59. data/spec/core_ext/class_spec.rb +54 -0
  60. data/spec/interfaces/serial_interface_spec.rb +1 -5
  61. data/spec/packet_logs/packet_log_reader_spec.rb +1 -1
  62. data/spec/system/system_spec.rb +1 -1
  63. data/spec/tools/cmd_tlm_server/api_spec.rb +12 -12
  64. data/spec/tools/cmd_tlm_server/background_tasks_spec.rb +2 -2
  65. data/spec/tools/cmd_tlm_server/interface_thread_spec.rb +4 -3
  66. data/spec/utilities/logger_spec.rb +3 -3
  67. data/test/performance/Rakefile +4 -4
  68. data/test/performance/config/data/crc.txt +67 -48
  69. metadata +2 -2
@@ -1,179 +1,179 @@
1
1
  "lib/user_version.rb" 0x8F282EE9
2
+ "config/dart/Gemfile" 0x97CC0D80
2
3
  "config/data/README.txt" 0x93B2C07E
4
+ "config/system/system.txt" 0x1DD3AB8A
3
5
  "config/targets/SYSTEM/cmd_tlm/meta_tlm.txt" 0x07CDABCB
4
6
  "config/targets/SYSTEM/target.txt" 0x07E82776
5
- "config/system/system.txt" 0x1DD3AB8A
6
- "config/dart/Gemfile" 0x97CC0D80
7
- "config/tools/limits_monitor/README.txt" 0x93B2C07E
8
- "config/tools/tlm_grapher/README.txt" 0x93B2C07E
9
- "config/tools/launcher/launcher.txt" 0x6A3047DB
10
- "config/tools/script_runner/script_runner.txt" 0x1EECD803
11
- "config/tools/handbook_creator/templates/telemetry_toc.html.erb" 0x610E3BC5
12
- "config/tools/handbook_creator/templates/pdf_header.html.erb" 0x3020FEE1
13
- "config/tools/handbook_creator/templates/telemetry_packets.html.erb" 0x44BD9695
14
- "config/tools/handbook_creator/templates/limits_groups.html.erb" 0x40FDF34C
15
- "config/tools/handbook_creator/templates/command_toc.html.erb" 0x9159BCF9
16
- "config/tools/handbook_creator/templates/command_packets.html.erb" 0x9897CA7A
17
- "config/tools/handbook_creator/templates/overview.html.erb" 0xDC4DD2B8
18
- "config/tools/handbook_creator/templates/pdf_footer.html.erb" 0xF0D3EB77
19
- "config/tools/handbook_creator/templates/nav.html.erb" 0xDF65AAEA
20
- "config/tools/handbook_creator/templates/footer.html.erb" 0x0E1F9800
21
- "config/tools/handbook_creator/templates/header.html.erb" 0x1E490C2A
22
- "config/tools/handbook_creator/templates/pdf_cover.html.erb" 0x7AAB9A42
23
- "config/tools/handbook_creator/templates/title.html.erb" 0xBC66E2BC
24
- "config/tools/handbook_creator/handbook_creator.txt" 0x64E4B5CC
25
- "config/tools/handbook_creator/assets/css/bootstrap.css" 0x3F240B56
7
+ "config/tools/cmd_tlm_server/cmd_tlm_server.txt" 0x2A39E69F
8
+ "config/tools/data_viewer/data_viewer.txt" 0xAEE0B7DF
26
9
  "config/tools/handbook_creator/assets/css/bootstrap-theme.css" 0x446F3211
27
- "config/tools/handbook_creator/assets/css/bootstrap.min.css" 0x1BD3585F
28
10
  "config/tools/handbook_creator/assets/css/bootstrap-theme.min.css" 0xB49F966D
11
+ "config/tools/handbook_creator/assets/css/bootstrap.css" 0x3F240B56
12
+ "config/tools/handbook_creator/assets/css/bootstrap.min.css" 0x1BD3585F
13
+ "config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot" 0x50687BA4
29
14
  "config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.svg" 0x068A502C
30
- "config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff" 0x946BFB8C
31
15
  "config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.ttf" 0x063128D6
32
- "config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.eot" 0x50687BA4
33
- "config/tools/handbook_creator/assets/js/html5shiv.js" 0x15B5CD4D
34
- "config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js" 0xCDB86103
35
- "config/tools/handbook_creator/assets/js/respond.min.js" 0xD9168C21
36
- "config/tools/handbook_creator/assets/js/bootstrap.min.js" 0xB3ECDABF
37
- "config/tools/handbook_creator/assets/js/bootstrap.js" 0x013B0300
16
+ "config/tools/handbook_creator/assets/fonts/glyphicons-halflings-regular.woff" 0x946BFB8C
38
17
  "config/tools/handbook_creator/assets/img/ball_logo.bmp" 0xAD799C2E
39
18
  "config/tools/handbook_creator/assets/img/ball_logo.gif" 0xD8A3D76B
40
19
  "config/tools/handbook_creator/assets/img/ball_logo.jpg" 0xA15FB300
20
+ "config/tools/handbook_creator/assets/js/bootstrap.js" 0x013B0300
21
+ "config/tools/handbook_creator/assets/js/bootstrap.min.js" 0xB3ECDABF
22
+ "config/tools/handbook_creator/assets/js/html5shiv.js" 0x15B5CD4D
23
+ "config/tools/handbook_creator/assets/js/jquery-1.10.2.min.js" 0xCDB86103
24
+ "config/tools/handbook_creator/assets/js/respond.min.js" 0xD9168C21
41
25
  "config/tools/handbook_creator/default_toc.xsl" 0x00FD130E
26
+ "config/tools/handbook_creator/handbook_creator.txt" 0x64E4B5CC
27
+ "config/tools/handbook_creator/templates/command_packets.html.erb" 0x9897CA7A
28
+ "config/tools/handbook_creator/templates/command_toc.html.erb" 0x9159BCF9
29
+ "config/tools/handbook_creator/templates/footer.html.erb" 0x0E1F9800
30
+ "config/tools/handbook_creator/templates/header.html.erb" 0x1E490C2A
31
+ "config/tools/handbook_creator/templates/limits_groups.html.erb" 0x40FDF34C
32
+ "config/tools/handbook_creator/templates/nav.html.erb" 0xDF65AAEA
33
+ "config/tools/handbook_creator/templates/overview.html.erb" 0xDC4DD2B8
34
+ "config/tools/handbook_creator/templates/pdf_cover.html.erb" 0x7AAB9A42
35
+ "config/tools/handbook_creator/templates/pdf_footer.html.erb" 0xF0D3EB77
36
+ "config/tools/handbook_creator/templates/pdf_header.html.erb" 0x3020FEE1
37
+ "config/tools/handbook_creator/templates/telemetry_packets.html.erb" 0x44BD9695
38
+ "config/tools/handbook_creator/templates/telemetry_toc.html.erb" 0x610E3BC5
39
+ "config/tools/handbook_creator/templates/title.html.erb" 0xBC66E2BC
40
+ "config/tools/launcher/launcher.txt" 0x6A3047DB
41
+ "config/tools/limits_monitor/README.txt" 0x93B2C07E
42
42
  "config/tools/opengl_builder/README.txt" 0x93B2C07E
43
+ "config/tools/script_runner/script_runner.txt" 0x1EECD803
43
44
  "config/tools/table_manager/README.txt" 0x93B2C07E
44
- "config/tools/cmd_tlm_server/cmd_tlm_server.txt" 0x2A39E69F
45
- "config/tools/data_viewer/data_viewer.txt" 0xAEE0B7DF
46
45
  "config/tools/test_runner/test_runner.txt" 0xD24409D2
47
- "config/tools/tlm_viewer/tlm_viewer.txt" 0xD9071527
48
46
  "config/tools/tlm_extractor/README.txt" 0x93B2C07E
49
- "tools/Launcher.bat" 0x2B98E027
47
+ "config/tools/tlm_grapher/README.txt" 0x93B2C07E
48
+ "config/tools/tlm_viewer/tlm_viewer.txt" 0xD9071527
49
+ "tools/CmdExtractor" 0x96E82AC3
50
+ "tools/CmdExtractor.bat" 0x2B98E027
51
+ "tools/CmdSender" 0x10346CF4
52
+ "tools/CmdSender.bat" 0x2B98E027
50
53
  "tools/CmdSequence" 0x4A13C82C
51
- "tools/ScriptRunner" 0x20F38758
54
+ "tools/CmdSequence.bat" 0x2B98E027
55
+ "tools/CmdTlmServer" 0x4C7A4FCB
56
+ "tools/CmdTlmServer.bat" 0x2B98E027
52
57
  "tools/ConfigEditor" 0xD1205371
53
- "tools/ToolLaunch.bat" 0x4E6549E0
54
- "tools/PacketViewer" 0xF23A40BB
55
- "tools/Launcher" 0xFD4E356C
58
+ "tools/ConfigEditor.bat" 0x2B98E027
56
59
  "tools/Dart" 0x19C73FBA
60
+ "tools/Dart.bat" 0x357107FB
61
+ "tools/DataViewer" 0x9D20734C
62
+ "tools/DataViewer.bat" 0x2B98E027
63
+ "tools/HandbookCreator" 0xD927814C
57
64
  "tools/HandbookCreator.bat" 0x2B98E027
58
- "tools/TestRunner" 0x0B0E0B8B
59
- "tools/TlmExtractor.bat" 0x2B98E027
60
- "tools/ScriptRunner.bat" 0x2B98E027
65
+ "tools/Launcher" 0xFD4E356C
66
+ "tools/Launcher.bat" 0x2B98E027
67
+ "tools/LimitsMonitor" 0x04FD96D8
68
+ "tools/LimitsMonitor.bat" 0x2B98E027
61
69
  "tools/OpenGLBuilder" 0x585EA691
62
- "tools/TlmViewer" 0xFE723189
63
- "tools/TableManager.bat" 0x2B98E027
70
+ "tools/OpenGLBuilder.bat" 0x2B98E027
71
+ "tools/PacketViewer" 0xF23A40BB
72
+ "tools/PacketViewer.bat" 0x2B98E027
73
+ "tools/Replay" 0xAC00D2AD
64
74
  "tools/Replay.bat" 0x2B98E027
65
- "tools/DataViewer" 0x9D20734C
66
- "tools/CmdExtractor.bat" 0x2B98E027
67
- "tools/LimitsMonitor" 0x04FD96D8
75
+ "tools/ScriptRunner" 0x20F38758
76
+ "tools/ScriptRunner.bat" 0x2B98E027
77
+ "tools/TableManager" 0x71F21C88
78
+ "tools/TableManager.bat" 0x2B98E027
79
+ "tools/TestRunner" 0x0B0E0B8B
80
+ "tools/TestRunner.bat" 0x2B98E027
68
81
  "tools/TlmExtractor" 0x1EC4639A
69
- "tools/CmdSender.bat" 0x2B98E027
70
- "tools/TlmViewer.bat" 0x2B98E027
71
- "tools/LimitsMonitor.bat" 0x2B98E027
82
+ "tools/TlmExtractor.bat" 0x2B98E027
72
83
  "tools/TlmGrapher" 0x9464F502
73
- "tools/Dart.bat" 0x357107FB
74
- "tools/ConfigEditor.bat" 0x2B98E027
75
- "tools/HandbookCreator" 0xD927814C
76
- "tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb" 0xF23A40BB
77
- "tools/mac/PacketViewer.app/Contents/MacOS/main.sh" 0x47F54F98
78
- "tools/mac/PacketViewer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
79
- "tools/mac/PacketViewer.app/Contents/Info.plist" 0x6934BF89
80
- "tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns" 0xDF373DAE
81
- "tools/mac/TlmViewer.app/Contents/MacOS/main.sh" 0xE2F1EAFE
82
- "tools/mac/TlmViewer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
83
- "tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb" 0xFE723189
84
- "tools/mac/TlmViewer.app/Contents/Info.plist" 0x821041E0
85
- "tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns" 0x1CBA8EB3
86
- "tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb" 0x585EA691
87
- "tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh" 0xAD05D35B
88
- "tools/mac/OpenGLBuilder.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
89
- "tools/mac/OpenGLBuilder.app/Contents/Info.plist" 0x3C2E542D
90
- "tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns" 0x8DDBD837
91
- "tools/mac/DataViewer.app/Contents/MacOS/main.sh" 0xD40D9D6C
92
- "tools/mac/DataViewer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
93
- "tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb" 0x9D20734C
94
- "tools/mac/DataViewer.app/Contents/Info.plist" 0xB79CA16B
95
- "tools/mac/DataViewer.app/Contents/Resources/appIcon.icns" 0x3EC9B207
84
+ "tools/TlmGrapher.bat" 0x2B98E027
85
+ "tools/TlmViewer" 0xFE723189
86
+ "tools/TlmViewer.bat" 0x2B98E027
87
+ "tools/ToolLaunch.bat" 0x4E6549E0
88
+ "tools/mac/CmdExtractor.app/Contents/Info.plist" 0x0E89084D
89
+ "tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb" 0x96E82AC3
90
+ "tools/mac/CmdExtractor.app/Contents/MacOS/main.sh" 0xEE3EC072
91
+ "tools/mac/CmdExtractor.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
92
+ "tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns" 0x39862FA7
93
+ "tools/mac/CmdSender.app/Contents/Info.plist" 0x87039019
96
94
  "tools/mac/CmdSender.app/Contents/MacOS/CmdSender.rb" 0x10346CF4
97
95
  "tools/mac/CmdSender.app/Contents/MacOS/main.sh" 0x707CA873
98
96
  "tools/mac/CmdSender.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
99
- "tools/mac/CmdSender.app/Contents/Info.plist" 0x87039019
100
97
  "tools/mac/CmdSender.app/Contents/Resources/appIcon.icns" 0xEC403A52
98
+ "tools/mac/CmdSequence.app/Contents/Info.plist" 0xF9BF98AD
99
+ "tools/mac/CmdSequence.app/Contents/MacOS/CmdSequence.rb" 0x4A13C82C
100
+ "tools/mac/CmdSequence.app/Contents/MacOS/main.sh" 0x11671716
101
+ "tools/mac/CmdSequence.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
102
+ "tools/mac/CmdSequence.app/Contents/Resources/appIcon.icns" 0xF819EAD4
103
+ "tools/mac/CmdTlmServer.app/Contents/Info.plist" 0x97E53674
104
+ "tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb" 0x4C7A4FCB
105
+ "tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh" 0x1F1443E6
106
+ "tools/mac/CmdTlmServer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
107
+ "tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns" 0x972CDCC6
108
+ "tools/mac/ConfigEditor.app/Contents/Info.plist" 0x5E9C6081
101
109
  "tools/mac/ConfigEditor.app/Contents/MacOS/ConfigEditor.rb" 0xD1205371
102
110
  "tools/mac/ConfigEditor.app/Contents/MacOS/main.sh" 0x7C087C20
103
111
  "tools/mac/ConfigEditor.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
104
- "tools/mac/ConfigEditor.app/Contents/Info.plist" 0x5E9C6081
105
112
  "tools/mac/ConfigEditor.app/Contents/Resources/appIcon.icns" 0xD9774799
106
- "tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb" 0x0B0E0B8B
107
- "tools/mac/TestRunner.app/Contents/MacOS/main.sh" 0x5A8D958C
108
- "tools/mac/TestRunner.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
109
- "tools/mac/TestRunner.app/Contents/Info.plist" 0x482B3BA5
110
- "tools/mac/TestRunner.app/Contents/Resources/appIcon.icns" 0xC8D32D55
113
+ "tools/mac/DataViewer.app/Contents/Info.plist" 0xB79CA16B
114
+ "tools/mac/DataViewer.app/Contents/MacOS/DataViewer.rb" 0x9D20734C
115
+ "tools/mac/DataViewer.app/Contents/MacOS/main.sh" 0xD40D9D6C
116
+ "tools/mac/DataViewer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
117
+ "tools/mac/DataViewer.app/Contents/Resources/appIcon.icns" 0x3EC9B207
118
+ "tools/mac/HandbookCreator.app/Contents/Info.plist" 0x7591A548
119
+ "tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb" 0xD927814C
120
+ "tools/mac/HandbookCreator.app/Contents/MacOS/main.sh" 0x358F92E1
121
+ "tools/mac/HandbookCreator.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
122
+ "tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns" 0xCEA7C465
123
+ "tools/mac/Launcher.app/Contents/Info.plist" 0x32A1EF14
111
124
  "tools/mac/Launcher.app/Contents/MacOS/Launcher.rb" 0xFD4E356C
112
125
  "tools/mac/Launcher.app/Contents/MacOS/main.sh" 0x0B32DAE8
113
126
  "tools/mac/Launcher.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
114
- "tools/mac/Launcher.app/Contents/Info.plist" 0x32A1EF14
115
127
  "tools/mac/Launcher.app/Contents/Resources/appIcon.icns" 0x8857CD2B
116
- "tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb" 0x20F38758
117
- "tools/mac/ScriptRunner.app/Contents/MacOS/main.sh" 0xCE8AE11F
118
- "tools/mac/ScriptRunner.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
119
- "tools/mac/ScriptRunner.app/Contents/Info.plist" 0x1BC8C5E9
120
- "tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns" 0x9246743E
121
- "tools/mac/CmdSequence.app/Contents/MacOS/CmdSequence.rb" 0x4A13C82C
122
- "tools/mac/CmdSequence.app/Contents/MacOS/main.sh" 0x11671716
123
- "tools/mac/CmdSequence.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
124
- "tools/mac/CmdSequence.app/Contents/Info.plist" 0xF9BF98AD
125
- "tools/mac/CmdSequence.app/Contents/Resources/appIcon.icns" 0xF819EAD4
128
+ "tools/mac/LimitsMonitor.app/Contents/Info.plist" 0xAF650287
129
+ "tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb" 0x04FD96D8
130
+ "tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh" 0xAAF1493C
131
+ "tools/mac/LimitsMonitor.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
132
+ "tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns" 0xC98BF799
133
+ "tools/mac/OpenGLBuilder.app/Contents/Info.plist" 0x3C2E542D
134
+ "tools/mac/OpenGLBuilder.app/Contents/MacOS/OpenGLBuilder.rb" 0x585EA691
135
+ "tools/mac/OpenGLBuilder.app/Contents/MacOS/main.sh" 0xAD05D35B
136
+ "tools/mac/OpenGLBuilder.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
137
+ "tools/mac/OpenGLBuilder.app/Contents/Resources/appIcon.icns" 0x8DDBD837
138
+ "tools/mac/PacketViewer.app/Contents/Info.plist" 0x6934BF89
139
+ "tools/mac/PacketViewer.app/Contents/MacOS/PacketViewer.rb" 0xF23A40BB
140
+ "tools/mac/PacketViewer.app/Contents/MacOS/main.sh" 0x47F54F98
141
+ "tools/mac/PacketViewer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
142
+ "tools/mac/PacketViewer.app/Contents/Resources/appIcon.icns" 0xDF373DAE
143
+ "tools/mac/Replay.app/Contents/Info.plist" 0x894AC4CF
126
144
  "tools/mac/Replay.app/Contents/MacOS/Replay.rb" 0xAC00D2AD
127
145
  "tools/mac/Replay.app/Contents/MacOS/main.sh" 0x42370A6F
128
146
  "tools/mac/Replay.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
129
- "tools/mac/Replay.app/Contents/Info.plist" 0x894AC4CF
130
147
  "tools/mac/Replay.app/Contents/Resources/appIcon.icns" 0x0E6B32E5
148
+ "tools/mac/ScriptRunner.app/Contents/Info.plist" 0x1BC8C5E9
149
+ "tools/mac/ScriptRunner.app/Contents/MacOS/ScriptRunner.rb" 0x20F38758
150
+ "tools/mac/ScriptRunner.app/Contents/MacOS/main.sh" 0xCE8AE11F
151
+ "tools/mac/ScriptRunner.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
152
+ "tools/mac/ScriptRunner.app/Contents/Resources/appIcon.icns" 0x9246743E
153
+ "tools/mac/TableManager.app/Contents/Info.plist" 0xF6A5877F
154
+ "tools/mac/TableManager.app/Contents/MacOS/TableManager.rb" 0x71F21C88
155
+ "tools/mac/TableManager.app/Contents/MacOS/main.sh" 0x68092BA9
156
+ "tools/mac/TableManager.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
157
+ "tools/mac/TableManager.app/Contents/Resources/appIcon.icns" 0xEBF5074E
158
+ "tools/mac/TestRunner.app/Contents/Info.plist" 0x482B3BA5
159
+ "tools/mac/TestRunner.app/Contents/MacOS/TestRunner.rb" 0x0B0E0B8B
160
+ "tools/mac/TestRunner.app/Contents/MacOS/main.sh" 0x5A8D958C
161
+ "tools/mac/TestRunner.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
162
+ "tools/mac/TestRunner.app/Contents/Resources/appIcon.icns" 0xC8D32D55
163
+ "tools/mac/TlmExtractor.app/Contents/Info.plist" 0x343784F4
131
164
  "tools/mac/TlmExtractor.app/Contents/MacOS/TlmExtractor.rb" 0x1EC4639A
132
165
  "tools/mac/TlmExtractor.app/Contents/MacOS/main.sh" 0x348F7440
133
166
  "tools/mac/TlmExtractor.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
134
- "tools/mac/TlmExtractor.app/Contents/Info.plist" 0x343784F4
135
167
  "tools/mac/TlmExtractor.app/Contents/Resources/appIcon.icns" 0x0AC88876
136
- "tools/mac/TableManager.app/Contents/MacOS/main.sh" 0x68092BA9
137
- "tools/mac/TableManager.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
138
- "tools/mac/TableManager.app/Contents/MacOS/TableManager.rb" 0x71F21C88
139
- "tools/mac/TableManager.app/Contents/Info.plist" 0xF6A5877F
140
- "tools/mac/TableManager.app/Contents/Resources/appIcon.icns" 0xEBF5074E
141
- "tools/mac/CmdTlmServer.app/Contents/MacOS/CmdTlmServer.rb" 0x4C7A4FCB
142
- "tools/mac/CmdTlmServer.app/Contents/MacOS/main.sh" 0x1F1443E6
143
- "tools/mac/CmdTlmServer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
144
- "tools/mac/CmdTlmServer.app/Contents/Info.plist" 0x97E53674
145
- "tools/mac/CmdTlmServer.app/Contents/Resources/appIcon.icns" 0x972CDCC6
168
+ "tools/mac/TlmGrapher.app/Contents/Info.plist" 0x3623B978
146
169
  "tools/mac/TlmGrapher.app/Contents/MacOS/TlmGrapher.rb" 0x9464F502
147
170
  "tools/mac/TlmGrapher.app/Contents/MacOS/main.sh" 0x7BE28DE6
148
171
  "tools/mac/TlmGrapher.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
149
- "tools/mac/TlmGrapher.app/Contents/Info.plist" 0x3623B978
150
172
  "tools/mac/TlmGrapher.app/Contents/Resources/appIcon.icns" 0xCA324F50
151
- "tools/mac/LimitsMonitor.app/Contents/MacOS/main.sh" 0xAAF1493C
152
- "tools/mac/LimitsMonitor.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
153
- "tools/mac/LimitsMonitor.app/Contents/MacOS/LimitsMonitor.rb" 0x04FD96D8
154
- "tools/mac/LimitsMonitor.app/Contents/Info.plist" 0xAF650287
155
- "tools/mac/LimitsMonitor.app/Contents/Resources/appIcon.icns" 0xC98BF799
156
- "tools/mac/HandbookCreator.app/Contents/MacOS/HandbookCreator.rb" 0xD927814C
157
- "tools/mac/HandbookCreator.app/Contents/MacOS/main.sh" 0x358F92E1
158
- "tools/mac/HandbookCreator.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
159
- "tools/mac/HandbookCreator.app/Contents/Info.plist" 0x7591A548
160
- "tools/mac/HandbookCreator.app/Contents/Resources/appIcon.icns" 0xCEA7C465
161
- "tools/mac/CmdExtractor.app/Contents/MacOS/main.sh" 0xEE3EC072
162
- "tools/mac/CmdExtractor.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
163
- "tools/mac/CmdExtractor.app/Contents/MacOS/CmdExtractor.rb" 0x96E82AC3
164
- "tools/mac/CmdExtractor.app/Contents/Info.plist" 0x0E89084D
165
- "tools/mac/CmdExtractor.app/Contents/Resources/appIcon.icns" 0x39862FA7
166
- "tools/CmdTlmServer" 0x4C7A4FCB
167
- "tools/TlmGrapher.bat" 0x2B98E027
168
- "tools/TableManager" 0x71F21C88
169
- "tools/OpenGLBuilder.bat" 0x2B98E027
170
- "tools/CmdSequence.bat" 0x2B98E027
171
- "tools/PacketViewer.bat" 0x2B98E027
173
+ "tools/mac/TlmViewer.app/Contents/Info.plist" 0x821041E0
174
+ "tools/mac/TlmViewer.app/Contents/MacOS/TlmViewer.rb" 0xFE723189
175
+ "tools/mac/TlmViewer.app/Contents/MacOS/main.sh" 0xE2F1EAFE
176
+ "tools/mac/TlmViewer.app/Contents/MacOS/tool_launch.rb" 0x0BDB6696
177
+ "tools/mac/TlmViewer.app/Contents/Resources/appIcon.icns" 0x1CBA8EB3
172
178
  "tools/tool_launch.rb" 0x0BDB6696
173
- "tools/Replay" 0xAC00D2AD
174
- "tools/CmdExtractor" 0x96E82AC3
175
- "tools/CmdTlmServer.bat" 0x2B98E027
176
- "tools/TestRunner.bat" 0x2B98E027
177
- "tools/CmdSender" 0x10346CF4
178
- "tools/DataViewer.bat" 0x2B98E027
179
179
  "procedures/README.txt" 0x93B2C07E
@@ -149,16 +149,8 @@ module Cosmos
149
149
  raise Error.new(self, "Partial name '#{template_name}' must begin with an underscore.") if File.basename(template_name)[0] != '_'
150
150
  b = binding
151
151
  if options[:locals]
152
- if RUBY_VERSION.split('.')[0..1].join.to_i >= 21
153
- options[:locals].each {|key, value| b.local_variable_set(key, value) }
154
- else
155
- options[:locals].each do |key, value|
156
- if value.is_a? String
157
- b.eval("#{key} = '#{value}'")
158
- else
159
- b.eval("#{key} = #{value}")
160
- end
161
- end
152
+ options[:locals].each do |key, value|
153
+ b.local_variable_set(key, value)
162
154
  end
163
155
  end
164
156
  # Assume the file is there. If not we raise a pretty obvious error
@@ -35,6 +35,11 @@ class Class
35
35
  # instance variables with class method readers
36
36
  def instance_attr_reader(*args)
37
37
  args.each do |arg|
38
+ # Non-word characters (letter, number, underscore) are disallowed
39
+ raise ArgumentError, "Non-word characters characters parsed" if arg =~ /\W/
40
+
41
+ # Fortify: Dynamic Code Evaluation: Code Injection
42
+ # This is true but we're whitelisting the input above
38
43
  self.class_eval("def #{arg};@#{arg};end")
39
44
  self.instance_eval("def #{arg};self.instance.#{arg};end")
40
45
  end
@@ -44,6 +49,11 @@ class Class
44
49
  # instance variables with class method accessors (read and write)
45
50
  def instance_attr_accessor(*args)
46
51
  args.each do |arg|
52
+ # Non-word characters (letter, number, underscore) are disallowed
53
+ raise ArgumentError, "Non-word characters characters parsed" if arg =~ /\W/
54
+
55
+ # Fortify: Dynamic Code Evaluation: Code Injection
56
+ # This is true but we're whitelisting the input above
47
57
  self.class_eval("def #{arg};@#{arg};end")
48
58
  self.instance_eval("def #{arg};self.instance.#{arg};end")
49
59
  self.class_eval("def #{arg}=(arg);@#{arg} = arg;end")
@@ -88,9 +88,9 @@ class Time
88
88
  # use_utc flag.
89
89
  def sys
90
90
  if @@use_utc
91
- self.utc
91
+ self.dup.utc
92
92
  else
93
- self.localtime
93
+ self.dup.localtime
94
94
  end
95
95
  end
96
96
 
@@ -291,11 +291,11 @@ module DartCommon
291
291
  reader.open(packet_log.filename)
292
292
  @plr_cache[packet_log.id] = reader
293
293
  end
294
- packet = reader.read_at_offset(ple.data_offset)
294
+ packet = reader.read_at_offset(ple.data_offset)
295
295
  unless packet
296
296
  Cosmos::Logger.error("Failed to read at offset #{ple.data_offset} (file offset: #{reader.bytes_read}) with file size #{reader.size}")
297
297
  end
298
- return packet
298
+ return packet
299
299
  rescue Exception => error
300
300
  Cosmos::Logger.error("Error Reading Packet Log Entry:\n#{error.formatted}")
301
301
  return nil
@@ -668,7 +668,7 @@ module DartCommon
668
668
  end
669
669
  model.reset_column_information
670
670
  model_name = table_name.upcase
671
- Cosmos.send(:remove_const, model_name) if Cosmos.const_defined?(model_name)
671
+ Cosmos.public_send(:remove_const, model_name) if Cosmos.const_defined?(model_name)
672
672
  Cosmos.const_set(model_name, model)
673
673
  end
674
674
 
@@ -189,7 +189,7 @@ describe DartDatabaseCleaner do
189
189
  end
190
190
  model.reset_column_information
191
191
  model_name = table_name.upcase
192
- Cosmos.send(:remove_const, model_name) if Cosmos.const_defined?(model_name)
192
+ Cosmos.public_send(:remove_const, model_name) if Cosmos.const_defined?(model_name)
193
193
  Cosmos.const_set(model_name, model)
194
194
 
195
195
  expect(model.column_names).to include("delete_me")
@@ -205,7 +205,7 @@ describe DartDatabaseCleaner do
205
205
  end
206
206
  model.reset_column_information
207
207
  model_name = table_name.upcase
208
- Cosmos.send(:remove_const, model_name) if Cosmos.const_defined?(model_name)
208
+ Cosmos.public_send(:remove_const, model_name) if Cosmos.const_defined?(model_name)
209
209
  Cosmos.const_set(model_name, model)
210
210
 
211
211
  expect(model.column_names).to include("delete_me")
data/lib/cosmos/gui/qt.rb CHANGED
@@ -101,22 +101,22 @@ module Cosmos
101
101
  return color_r if (color_r.is_a? Qt::Color) || (color_r.is_a? Qt::Pen) || (color_r.is_a? Qt::LinearGradient)
102
102
 
103
103
  color = nil
104
- key = color_r
105
- key = key.to_i if key.is_a? Qt::Enum
104
+ color_key = color_r
105
+ color_key = color_key.to_i if color_key.is_a? Qt::Enum
106
106
 
107
107
  if color_r && color_g && color_b
108
- key = (color_r.to_i << 24) + (color_g.to_i << 16) + (color_b.to_i << 8)
108
+ color_key = (color_r.to_i << 24) + (color_g.to_i << 16) + (color_b.to_i << 8)
109
109
  end
110
110
 
111
- if Cosmos::COLORS[key]
112
- color = Cosmos::COLORS[key]
111
+ if Cosmos::COLORS[color_key]
112
+ color = Cosmos::COLORS[color_key]
113
113
  else
114
114
  if color_r && color_g && color_b
115
115
  color = Qt::Color.new(color_r.to_i, color_g.to_i, color_b.to_i)
116
116
  else
117
117
  color = Qt::Color.new(color_r)
118
118
  end
119
- Cosmos::COLORS[key] = color
119
+ Cosmos::COLORS[color_key] = color
120
120
  end
121
121
  color
122
122
  end
@@ -214,12 +214,12 @@ module Cosmos
214
214
  end
215
215
 
216
216
  def self.getCursor(shape)
217
- key = shape
218
- key = shape.to_i if shape.is_a? Qt::Enum
219
- cursor = CURSORS[key]
217
+ shape_key = shape
218
+ shape_key = shape.to_i if shape.is_a? Qt::Enum
219
+ cursor = CURSORS[shape_key]
220
220
  unless cursor
221
221
  cursor = Qt::Cursor.new(shape)
222
- CURSORS[key] = cursor
222
+ CURSORS[shape_key] = cursor
223
223
  end
224
224
  cursor
225
225
  end
@@ -61,6 +61,7 @@ module Cosmos
61
61
  @stylesheet = File.read(app_style) if File.exist? app_style
62
62
 
63
63
  self.class.normalize_config_options(@options)
64
+ setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint) if @options.stay_on_top
64
65
 
65
66
  # Add a banner based on system configuration
66
67
  add_classification_banner
@@ -350,6 +351,7 @@ module Cosmos
350
351
  options.remember_geometry = true
351
352
  options.restore_position = true
352
353
  options.restore_size = true
354
+ options.stay_on_top = false
353
355
  options.redirect_io = true
354
356
  options.title = "COSMOS Tool"
355
357
  options.config_file = nil
@@ -401,6 +403,11 @@ module Cosmos
401
403
  options.startup_state = :DEFAULT
402
404
  end
403
405
 
406
+ # Create the defaultsize option
407
+ option_parser.on("--stay-on-top", "Force the tool to stay on top of all other windows") do |arg|
408
+ options.stay_on_top = true
409
+ end
410
+
404
411
  # Create the x and y position options
405
412
  option_parser.separator("")
406
413
  option_parser.separator("Window X & Y Position Options:")
@@ -17,6 +17,7 @@ module Cosmos
17
17
  # This calss also includes many helper methods to access various
18
18
  # lines, indent selections, highlight lines and center the view.
19
19
  class CompletionTextEdit < Qt::PlainTextEdit
20
+ attr_accessor :read_only
20
21
  # Create a signal so users of CompletionTextEdit don't have to
21
22
  # subclass in order to listen to keyPressEvents
22
23
  signals 'key_pressed(QKeyEvent*)'
@@ -47,6 +48,7 @@ module Cosmos
47
48
 
48
49
  @last_hightlighted_line = 1
49
50
  @code_completion = nil
51
+ @read_only = false
50
52
  begin
51
53
  @code_completion = Completion.new(self)
52
54
  rescue
@@ -298,10 +298,10 @@ module Cosmos
298
298
  def change_raw_logging(method)
299
299
  if @raw_logger_pair
300
300
  @write_interface_infos.each do |interface_info|
301
- interface_info.interface.raw_logger_pair.send(method) if interface_info.interface.raw_logger_pair
301
+ interface_info.interface.raw_logger_pair.public_send(method) if interface_info.interface.raw_logger_pair
302
302
  end
303
303
  @read_interface_infos.each do |interface_info|
304
- interface_info.interface.raw_logger_pair.send(method) if interface_info.interface.raw_logger_pair
304
+ interface_info.interface.raw_logger_pair.public_send(method) if interface_info.interface.raw_logger_pair
305
305
  end
306
306
  end
307
307
  end
@@ -590,7 +590,7 @@ module Cosmos
590
590
  need_disconnect = false
591
591
  begin
592
592
  interface_bytes_written = interface_info.interface.bytes_written
593
- interface_info.interface.send(method, packet_or_data)
593
+ interface_info.interface.public_send(method, packet_or_data)
594
594
  diff = interface_info.interface.bytes_written - interface_bytes_written
595
595
  @written_raw_data_time = interface_info.interface.written_raw_data_time
596
596
  @written_raw_data = interface_info.interface.written_raw_data
@@ -40,11 +40,15 @@ module Cosmos
40
40
  result = nil
41
41
  @streams.each do |stream|
42
42
  if first
43
- result = stream.send(method_name, *args)
43
+ # Fortify Access Specifier Manipulation
44
+ # We're forwarding only public methods to the stream
45
+ result = stream.public_send(method_name, *args)
44
46
  result = self if result == stream
45
47
  first = false
46
48
  else
47
- stream.send(method_name, *args)
49
+ # Fortify Access Specifier Manipulation
50
+ # We're forwarding only public methods to the stream
51
+ stream.public_send(method_name, *args)
48
52
  end
49
53
  end
50
54
  result
@@ -262,7 +262,7 @@ module Cosmos
262
262
  if (@method_whitelist and @method_whitelist.include?(request.method.downcase())) or
263
263
  (!@method_whitelist and !JsonRpcRequest::DANGEROUS_METHODS.include?(request.method.downcase()))
264
264
  begin
265
- result = @object.send(request.method.downcase().intern, *request.params)
265
+ result = @object.public_send(request.method.downcase().intern, *request.params)
266
266
  if request.id
267
267
  response = JsonRpcSuccessResponse.new(result, request.id)
268
268
  end
@@ -186,9 +186,9 @@ module Cosmos
186
186
  @read_conversion_cache.clear if @read_conversion_cache
187
187
  @received_count
188
188
  end
189
-
190
- end # if RUBY_ENGINE != 'ruby' or ENV['COSMOS_NO_EXT']
191
-
189
+
190
+ end # if RUBY_ENGINE != 'ruby' or ENV['COSMOS_NO_EXT']
191
+
192
192
  # Tries to identify if a buffer represents the currently defined packet. It
193
193
  # does this by iterating over all the packet items that were created with
194
194
  # an ID value and checking whether that ID value is present at the correct
@@ -216,7 +216,7 @@ module Cosmos
216
216
 
217
217
  true
218
218
  end
219
-
219
+
220
220
  # Reads the values from a buffer at the position of each id_item defined
221
221
  # in the packet.
222
222
  #
@@ -226,7 +226,7 @@ module Cosmos
226
226
  return [] unless buffer
227
227
  return [] unless @id_items
228
228
  values = []
229
-
229
+
230
230
  @id_items.each do |item|
231
231
  begin
232
232
  values << read_item(item, :RAW, buffer)
@@ -234,10 +234,10 @@ module Cosmos
234
234
  values << nil
235
235
  end
236
236
  end
237
-
237
+
238
238
  values
239
239
  end
240
-
240
+
241
241
  # Returns @received_time unless a packet item called PACKET_TIME exists that returns
242
242
  # a Ruby Time object that represents a different timestamp for the packet
243
243
  def packet_time
@@ -259,7 +259,7 @@ module Cosmos
259
259
  end
260
260
 
261
261
  # Use the hashing algorithm established by Cosmos::System
262
- digest = Digest.const_get(System.hashing_algorithm).send('new')
262
+ digest = Digest.const_get(System.hashing_algorithm).public_send('new')
263
263
  digest << string
264
264
  @config_name = digest.hexdigest
265
265
  @config_name
@@ -443,7 +443,7 @@ module Cosmos
443
443
  klass = params[0].filename_to_class_name.to_class
444
444
  raise parser.error("#{params[0].filename_to_class_name} class not found. Did you require the file in target.txt?", usage) unless klass
445
445
  conversion = klass.new(*params[1..(params.length - 1)])
446
- @current_item.send("#{keyword.downcase}=".to_sym, conversion)
446
+ @current_item.public_send("#{keyword.downcase}=".to_sym, conversion)
447
447
  if klass != ProcessorConversion and (conversion.converted_type.nil? or conversion.converted_bit_size.nil?)
448
448
  msg = "Read Conversion #{params[0].filename_to_class_name} on item #{@current_item.name} does not specify converted type or bit size. Will not be supported by DART"
449
449
  @warnings << msg