cosmos 4.0.1-universal-java-1.8 → 4.0.2-universal-java-1.8
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.
- checksums.yaml +4 -4
- data/data/config/_id_items.yaml +1 -1
- data/data/config/_id_params.yaml +1 -1
- data/data/config/_items.yaml +1 -1
- data/data/config/_params.yaml +1 -1
- data/data/config/cmd_tlm_server.yaml +14 -0
- data/data/config/command.yaml +2 -0
- data/data/config/command_modifiers.yaml +18 -0
- data/data/config/item_modifiers.yaml +39 -0
- data/data/config/param_item_modifiers.yaml +5 -0
- data/data/config/parameter_modifiers.yaml +36 -0
- data/data/config/protocols.yaml +22 -6
- data/data/config/system.yaml +17 -0
- data/data/config/target.yaml +9 -0
- data/data/config/telemetry.yaml +7 -0
- data/data/config/telemetry_modifiers.yaml +13 -0
- data/data/config/tlm_viewer.yaml +5 -0
- data/data/crc.txt +20 -20
- data/demo/config/data/crc.txt +3 -3
- data/demo/config/targets/INST/screens/hs.txt +1 -1
- data/demo/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +5 -10
- data/demo/config/targets/SYSTEM/lib/limits_groups.rb +33 -17
- data/lib/cosmos/core_ext/string.rb +1 -1
- data/lib/cosmos/gui/utilities/script_module_gui.rb +3 -3
- data/lib/cosmos/interfaces/protocols/length_protocol.rb +1 -1
- data/lib/cosmos/interfaces/protocols/template_protocol.rb +37 -6
- data/lib/cosmos/interfaces/udp_interface.rb +3 -3
- data/lib/cosmos/packets/packet_config.rb +1 -0
- data/lib/cosmos/packets/parsers/format_string_parser.rb +1 -0
- data/lib/cosmos/packets/parsers/limits_parser.rb +1 -0
- data/lib/cosmos/packets/parsers/state_parser.rb +3 -0
- data/lib/cosmos/packets/telemetry.rb +1 -1
- data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +1 -1
- data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +4 -3
- data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb +1 -1
- data/lib/cosmos/tools/tlm_viewer/screen.rb +3 -3
- data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +5 -10
- data/lib/cosmos/tools/tlm_viewer/widgets/limits_widget.rb +1 -1
- data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +3 -1
- data/lib/cosmos/top_level.rb +2 -4
- data/lib/cosmos/utilities/csv.rb +1 -1
- data/lib/cosmos/version.rb +4 -4
- data/spec/interfaces/protocols/template_protocol_spec.rb +119 -15
- data/spec/interfaces/udp_interface_spec.rb +8 -2
- data/spec/packets/packet_config_spec.rb +11 -0
- data/spec/packets/parsers/format_string_parser_spec.rb +11 -0
- data/spec/packets/parsers/limits_parser_spec.rb +21 -10
- data/spec/packets/parsers/packet_item_parser_spec.rb +5 -5
- data/spec/packets/parsers/state_parser_spec.rb +33 -0
- data/spec/tools/cmd_tlm_server/limits_groups_background_task_spec.rb +4 -4
- metadata +2 -2
data/data/config/target.yaml
CHANGED
@@ -4,6 +4,7 @@ REQUIRE:
|
|
4
4
|
description: Ruby files must be required to be available to call in other code.
|
5
5
|
Files are first required from the target's lib folder. If no file is found the
|
6
6
|
Ruby system path is checked which includes the base COSMOS/lib folder.
|
7
|
+
example: REQUIRE limits_response.rb
|
7
8
|
parameters:
|
8
9
|
- name: Filename
|
9
10
|
required: true
|
@@ -20,6 +21,7 @@ IGNORE_PARAMETER:
|
|
20
21
|
when processing the command. For example, Command Sender and Command Sequence
|
21
22
|
will not display the parameter (by default) when showing the command and Script
|
22
23
|
Runner code completion will not display the parameter.
|
24
|
+
example: IGNORE_PARAMETER CCSDS_VERSION
|
23
25
|
parameters:
|
24
26
|
- name: Parameter Name
|
25
27
|
required: true
|
@@ -31,6 +33,7 @@ IGNORE_ITEM:
|
|
31
33
|
description: Hint to other COSMOS tools to hide or ignore this telemetry item
|
32
34
|
when processing the telemetry. For example, Packet Viewer will not display the
|
33
35
|
item (by default) when showing the packet.
|
36
|
+
example: IGNORE_ITEM CCSDS_VERSION
|
34
37
|
parameters:
|
35
38
|
- name: Item name
|
36
39
|
required: true
|
@@ -44,6 +47,9 @@ COMMANDS:
|
|
44
47
|
warning: Usage of this keyword overrides automatic command and telemetry file
|
45
48
|
discovery. If this keyword is used, you must also use the TELEMETRY keyword
|
46
49
|
to specify the telemetry files to process.
|
50
|
+
example: |
|
51
|
+
COMMANDS inst_cmds_v2.txt
|
52
|
+
TELEMETRY inst_tlm_v2.txt
|
47
53
|
parameters:
|
48
54
|
- name: Filename
|
49
55
|
required: true
|
@@ -56,6 +62,9 @@ TELEMETRY:
|
|
56
62
|
warning: Usage of this keyword overrides automatic command and telemetry file
|
57
63
|
discovery. If this keyword is used, you must also use the COMMAND keyword to
|
58
64
|
specify the command files to process.
|
65
|
+
example: |
|
66
|
+
COMMANDS inst_cmds_v2.txt
|
67
|
+
TELEMETRY inst_tlm_v2.txt
|
59
68
|
parameters:
|
60
69
|
- name: Filename
|
61
70
|
required: true
|
data/data/config/telemetry.yaml
CHANGED
@@ -3,6 +3,7 @@ TELEMETRY:
|
|
3
3
|
modifiers:
|
4
4
|
<%= MetaConfigParser.load('telemetry_modifiers.yaml').to_meta_config_yaml(4) %>
|
5
5
|
summary: Defines a new telemetry packet
|
6
|
+
example: TELEMETRY SYSTEM LIMITS_CHANGE BIG_ENDIAN "COSMOS limits change"
|
6
7
|
parameters:
|
7
8
|
- name: Target
|
8
9
|
required: true
|
@@ -27,6 +28,7 @@ SELECT_TELEMETRY:
|
|
27
28
|
summary: Selects an existing telemetry packet for editing
|
28
29
|
description: Typically used in a separate configuration file from where the original
|
29
30
|
telemetry is defined to override or add to the existing telemetry definition
|
31
|
+
example: SELECT_TELEMETRY SYSTEM LIMITS_CHANGE
|
30
32
|
parameters:
|
31
33
|
- name: Target Name
|
32
34
|
required: true
|
@@ -58,6 +60,11 @@ LIMITS_GROUP_ITEM:
|
|
58
60
|
configure multiple target items in a particular group you should put this information
|
59
61
|
in the config/SYSTEM/cmd_tlm/limits_groups.txt file. The SYSTEM target is processed
|
60
62
|
last and contains information that crosses target boundaries.
|
63
|
+
example: |
|
64
|
+
LIMITS_GROUP SUBSYSTEM
|
65
|
+
LIMITS_GROUP_ITEM INST HEALTH_STATUS TEMP1
|
66
|
+
LIMITS_GROUP_ITEM INST HEALTH_STATUS TEMP2
|
67
|
+
LIMITS_GROUP_ITEM INST HEALTH_STATUS TEMP3
|
61
68
|
parameters:
|
62
69
|
- name: Target Name
|
63
70
|
required: true
|
@@ -3,6 +3,9 @@ ITEM:
|
|
3
3
|
modifiers:
|
4
4
|
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
5
5
|
summary: Defines a telemetry item in the current telemetry packet
|
6
|
+
example: |
|
7
|
+
ITEM PKTID 112 16 UINT "Packet ID"
|
8
|
+
ITEM DATA 0 0 DERIVED "Derived data"
|
6
9
|
parameters:
|
7
10
|
- name: Name
|
8
11
|
required: true
|
@@ -19,6 +22,7 @@ APPEND_ITEM:
|
|
19
22
|
modifiers:
|
20
23
|
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
21
24
|
summary: Defines a telemetry item in the current telemetry packet
|
25
|
+
example: APPEND_ITEM PKTID 16 UINT "Packet ID"
|
22
26
|
parameters:
|
23
27
|
- name: Name
|
24
28
|
required: true
|
@@ -29,6 +33,7 @@ ID_ITEM:
|
|
29
33
|
modifiers:
|
30
34
|
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
31
35
|
summary: Defines a telemetry item in the current telemetry packet
|
36
|
+
example: ID_ITEM PKTID 112 16 UINT 1 "Packet ID which must be 1"
|
32
37
|
parameters:
|
33
38
|
- name: Name
|
34
39
|
required: true
|
@@ -45,6 +50,7 @@ APPEND_ID_ITEM:
|
|
45
50
|
modifiers:
|
46
51
|
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
47
52
|
summary: Defines a telemetry item in the current telemetry packet
|
53
|
+
example: APPEND_ID_ITEM PKTID 16 UINT 1 "Packet ID which must be 1"
|
48
54
|
parameters:
|
49
55
|
- name: Name
|
50
56
|
required: true
|
@@ -55,6 +61,7 @@ ARRAY_ITEM:
|
|
55
61
|
modifiers:
|
56
62
|
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
57
63
|
summary: Defines a telemetry item in the current telemetry packet that is an array
|
64
|
+
example: ARRAY_ITEM ARRAY 64 32 FLOAT 320 "Array of 10 floats"
|
58
65
|
parameters:
|
59
66
|
- name: Name
|
60
67
|
required: true
|
@@ -71,6 +78,7 @@ APPEND_ARRAY_ITEM:
|
|
71
78
|
modifiers:
|
72
79
|
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
73
80
|
summary: Defines a telemetry item in the current telemetry packedt that is an array
|
81
|
+
example: APPEND_ARRAY_ITEM ARRAY 32 FLOAT 320 "Array of 10 floats"
|
74
82
|
parameters:
|
75
83
|
- name: Name
|
76
84
|
required: true
|
@@ -81,6 +89,9 @@ SELECT_ITEM:
|
|
81
89
|
modifiers:
|
82
90
|
<%= MetaConfigParser.load('item_modifiers.yaml').to_meta_config_yaml(4) %>
|
83
91
|
summary: Selects an existing telemetry item for editing
|
92
|
+
example: |
|
93
|
+
SELECT_TELEMETRY SYSTEM LIMITS_CHANGE
|
94
|
+
SELECT_ITEM ITEM
|
84
95
|
parameters:
|
85
96
|
- name: Item
|
86
97
|
required: true
|
@@ -91,6 +102,7 @@ META:
|
|
91
102
|
description: Meta data is user specific data that can be used by custom tools
|
92
103
|
for various purposes. One example is to store additional information needed
|
93
104
|
to generate source code header files.
|
105
|
+
example: META FSW_TYPE "struct tlm_packet"
|
94
106
|
parameters:
|
95
107
|
- name: Meta Name
|
96
108
|
required: true
|
@@ -102,6 +114,7 @@ META:
|
|
102
114
|
values: .*
|
103
115
|
PROCESSOR:
|
104
116
|
summary: Defines a processor class that executes code every time a packet is received
|
117
|
+
example: PROCESSOR TEMP1HIGH watermark_processor.rb TEMP1
|
105
118
|
parameters:
|
106
119
|
- name: Processor Name
|
107
120
|
required: true
|
data/data/config/tlm_viewer.yaml
CHANGED
@@ -10,6 +10,11 @@ AUTO_TARGET:
|
|
10
10
|
all the screens defined in config/targets/COSMOS/screens will be added to a
|
11
11
|
single drop down selection labeled COSMOS.
|
12
12
|
warning: If AUTO_TARGETS is used this keyword does nothing
|
13
|
+
parameters:
|
14
|
+
- name: Target
|
15
|
+
required: true
|
16
|
+
description: Name of the target
|
17
|
+
values: <%= System.targets.keys %>
|
13
18
|
NEW_COLUMN:
|
14
19
|
summary: Creates a new column of drop down selections in Telemetry Viewer
|
15
20
|
description: All the AUTO_TARGET or SCREEN keywords after this keyword will be
|
data/data/crc.txt
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
"lib/cosmos/processors/processor.rb" 0x1FEB7030
|
18
18
|
"lib/cosmos/processors/statistics_processor.rb" 0xE732AE7F
|
19
19
|
"lib/cosmos/processors/watermark_processor.rb" 0x8829E260
|
20
|
-
"lib/cosmos/version.rb"
|
20
|
+
"lib/cosmos/version.rb" 0x127242E9
|
21
21
|
"lib/cosmos/conversions/new_packet_log_conversion.rb" 0x4AA03555
|
22
22
|
"lib/cosmos/conversions/segmented_polynomial_conversion.rb" 0xC498CE81
|
23
23
|
"lib/cosmos/conversions/processor_conversion.rb" 0xC72B73BD
|
@@ -82,7 +82,7 @@
|
|
82
82
|
"lib/cosmos/gui/qt.rb" 0x0EF93941
|
83
83
|
"lib/cosmos/gui/utilities/analyze_log.rb" 0x5E13ABB0
|
84
84
|
"lib/cosmos/gui/utilities/screenshot.rb" 0x11A32860
|
85
|
-
"lib/cosmos/gui/utilities/script_module_gui.rb"
|
85
|
+
"lib/cosmos/gui/utilities/script_module_gui.rb" 0x79C36668
|
86
86
|
"lib/cosmos/gui/choosers/file_chooser.rb" 0x4596F107
|
87
87
|
"lib/cosmos/gui/choosers/combobox_chooser.rb" 0x4CFBAC4E
|
88
88
|
"lib/cosmos/gui/choosers/float_chooser.rb" 0xA1DDC10B
|
@@ -90,21 +90,21 @@
|
|
90
90
|
"lib/cosmos/gui/choosers/string_chooser.rb" 0x1326AF82
|
91
91
|
"lib/cosmos/gui/choosers/value_chooser.rb" 0x2374B886
|
92
92
|
"lib/cosmos/gui/choosers/telemetry_chooser.rb" 0xF8DC6A15
|
93
|
-
"lib/cosmos/packets/parsers/format_string_parser.rb"
|
94
|
-
"lib/cosmos/packets/parsers/limits_parser.rb"
|
93
|
+
"lib/cosmos/packets/parsers/format_string_parser.rb" 0x38813037
|
94
|
+
"lib/cosmos/packets/parsers/limits_parser.rb" 0xD680A7A1
|
95
95
|
"lib/cosmos/packets/parsers/packet_item_parser.rb" 0x10F83156
|
96
96
|
"lib/cosmos/packets/parsers/limits_response_parser.rb" 0x05979119
|
97
97
|
"lib/cosmos/packets/parsers/macro_parser.rb" 0xE58A53CB
|
98
|
-
"lib/cosmos/packets/parsers/state_parser.rb"
|
98
|
+
"lib/cosmos/packets/parsers/state_parser.rb" 0xF8F43468
|
99
99
|
"lib/cosmos/packets/parsers/processor_parser.rb" 0xEC75BA88
|
100
100
|
"lib/cosmos/packets/parsers/packet_parser.rb" 0x26478943
|
101
|
-
"lib/cosmos/packets/telemetry.rb"
|
101
|
+
"lib/cosmos/packets/telemetry.rb" 0xD779DE95
|
102
102
|
"lib/cosmos/packets/binary_accessor.rb" 0xCD678EF6
|
103
103
|
"lib/cosmos/packets/packet.rb" 0x186A8824
|
104
104
|
"lib/cosmos/packets/structure.rb" 0xD98A1B1E
|
105
105
|
"lib/cosmos/packets/commands.rb" 0x4D4411BD
|
106
106
|
"lib/cosmos/packets/limits_response.rb" 0xB836D388
|
107
|
-
"lib/cosmos/packets/packet_config.rb"
|
107
|
+
"lib/cosmos/packets/packet_config.rb" 0x48956BD6
|
108
108
|
"lib/cosmos/packets/packet_item.rb" 0xE6734330
|
109
109
|
"lib/cosmos/packets/limits.rb" 0x93BE03A8
|
110
110
|
"lib/cosmos/packets/packet_item_limits.rb" 0xC4534EAB
|
@@ -116,12 +116,12 @@
|
|
116
116
|
"lib/cosmos/streams/stream.rb" 0xE35AFB89
|
117
117
|
"lib/cosmos/processors.rb" 0x5241327D
|
118
118
|
"lib/cosmos/utilities.rb" 0xBE9CEAF4
|
119
|
-
"lib/cosmos/interfaces/udp_interface.rb"
|
119
|
+
"lib/cosmos/interfaces/udp_interface.rb" 0x6B6BE34F
|
120
120
|
"lib/cosmos/interfaces/cmd_tlm_server_interface.rb" 0x8921CFC1
|
121
121
|
"lib/cosmos/interfaces/serial_interface.rb" 0x5042BC9B
|
122
122
|
"lib/cosmos/interfaces/stream_interface.rb" 0x621E6153
|
123
|
-
"lib/cosmos/interfaces/protocols/template_protocol.rb"
|
124
|
-
"lib/cosmos/interfaces/protocols/length_protocol.rb"
|
123
|
+
"lib/cosmos/interfaces/protocols/template_protocol.rb" 0xB32B8315
|
124
|
+
"lib/cosmos/interfaces/protocols/length_protocol.rb" 0xD4314327
|
125
125
|
"lib/cosmos/interfaces/protocols/preidentified_protocol.rb" 0xECCB350A
|
126
126
|
"lib/cosmos/interfaces/protocols/protocol.rb" 0xA3AE3AB8
|
127
127
|
"lib/cosmos/interfaces/protocols/terminated_protocol.rb" 0x975AA36F
|
@@ -155,10 +155,10 @@
|
|
155
155
|
"lib/cosmos/win32/win32.rb" 0xEF748B06
|
156
156
|
"lib/cosmos/win32/win32_main.rb" 0x722DDE0D
|
157
157
|
"lib/cosmos/packet_logs.rb" 0xDBC544CD
|
158
|
-
"lib/cosmos/top_level.rb"
|
158
|
+
"lib/cosmos/top_level.rb" 0xE16DEE8C
|
159
159
|
"lib/cosmos/interfaces.rb" 0x645A71F9
|
160
160
|
"lib/cosmos/core_ext/math.rb" 0xEFD1636D
|
161
|
-
"lib/cosmos/core_ext/string.rb"
|
161
|
+
"lib/cosmos/core_ext/string.rb" 0x4F30E09A
|
162
162
|
"lib/cosmos/core_ext/matrix.rb" 0x9DDBCA0B
|
163
163
|
"lib/cosmos/core_ext/objectspace.rb" 0x1383F0ED
|
164
164
|
"lib/cosmos/core_ext/hash.rb" 0x99038BE1
|
@@ -188,18 +188,18 @@
|
|
188
188
|
"lib/cosmos/tools/table_manager/table_parser.rb" 0x5948E3BA
|
189
189
|
"lib/cosmos/tools/replay/replay.rb" 0x17E51FF2
|
190
190
|
"lib/cosmos/tools/replay/replay_server.rb" 0x9FC9C364
|
191
|
-
"lib/cosmos/tools/cmd_sequence/cmd_sequence.rb"
|
191
|
+
"lib/cosmos/tools/cmd_sequence/cmd_sequence.rb" 0x4A741D69
|
192
192
|
"lib/cosmos/tools/cmd_sequence/sequence_list.rb" 0xB94C6022
|
193
193
|
"lib/cosmos/tools/cmd_sequence/sequence_item.rb" 0xADF1A63D
|
194
194
|
"lib/cosmos/tools/tlm_viewer/tlm_viewer_config.rb" 0x3EF6E9D9
|
195
195
|
"lib/cosmos/tools/tlm_viewer/tlm_viewer.rb" 0xE8F10BF3
|
196
196
|
"lib/cosmos/tools/tlm_viewer/widgets/labeltrendlimitsbar_widget.rb" 0xD8A2AADE
|
197
|
-
"lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb"
|
197
|
+
"lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb" 0xC65C7F90
|
198
198
|
"lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangecolumn_widget.rb" 0x5935BAC8
|
199
199
|
"lib/cosmos/tools/tlm_viewer/widgets/progressbar_widget.rb" 0x88E04062
|
200
200
|
"lib/cosmos/tools/tlm_viewer/widgets/rangecolumn_widget.rb" 0xBB050D05
|
201
201
|
"lib/cosmos/tools/tlm_viewer/widgets/layout_widget.rb" 0x799D4376
|
202
|
-
"lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb"
|
202
|
+
"lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb" 0xF1648FFA
|
203
203
|
"lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb" 0x2BFFD0E6
|
204
204
|
"lib/cosmos/tools/tlm_viewer/widgets/trendbar_widget.rb" 0xCC7F70CC
|
205
205
|
"lib/cosmos/tools/tlm_viewer/widgets/widget.rb" 0xACDB9307
|
@@ -246,7 +246,7 @@
|
|
246
246
|
"lib/cosmos/tools/tlm_viewer/widgets/textbox_widget.rb" 0x9208702E
|
247
247
|
"lib/cosmos/tools/tlm_viewer/widgets/button_widget.rb" 0x189ED964
|
248
248
|
"lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb" 0x9BCBE3C8
|
249
|
-
"lib/cosmos/tools/tlm_viewer/widgets/limits_widget.rb"
|
249
|
+
"lib/cosmos/tools/tlm_viewer/widgets/limits_widget.rb" 0xE47711AD
|
250
250
|
"lib/cosmos/tools/tlm_viewer/widgets/labelvaluerangebar_widget.rb" 0xEA9E63B6
|
251
251
|
"lib/cosmos/tools/tlm_viewer/widgets/formatvalue_widget.rb" 0x2D9BB6B1
|
252
252
|
"lib/cosmos/tools/tlm_viewer/widgets/valuelimitsbar_widget.rb" 0x6AB7A663
|
@@ -257,7 +257,7 @@
|
|
257
257
|
"lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb" 0x3B2B3BAD
|
258
258
|
"lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb" 0x14270A26
|
259
259
|
"lib/cosmos/tools/tlm_viewer/widgets.rb" 0x31655A9F
|
260
|
-
"lib/cosmos/tools/tlm_viewer/screen.rb"
|
260
|
+
"lib/cosmos/tools/tlm_viewer/screen.rb" 0x2A8B4B44
|
261
261
|
"lib/cosmos/tools/data_viewer/data_viewer.rb" 0x2B28E2AC
|
262
262
|
"lib/cosmos/tools/data_viewer/dump_component.rb" 0x6942C5D6
|
263
263
|
"lib/cosmos/tools/data_viewer/data_viewer_component.rb" 0xD25BA6EB
|
@@ -279,7 +279,7 @@
|
|
279
279
|
"lib/cosmos/tools/cmd_tlm_server/gui/interfaces_tab.rb" 0x290E51A6
|
280
280
|
"lib/cosmos/tools/cmd_tlm_server/commanding.rb" 0x48217D89
|
281
281
|
"lib/cosmos/tools/cmd_tlm_server/background_task.rb" 0xC2141E7E
|
282
|
-
"lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb"
|
282
|
+
"lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb" 0xEF3F9A26
|
283
283
|
"lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server_gui.rb" 0x7BC538F5
|
284
284
|
"lib/cosmos/tools/cmd_tlm_server/cmd_tlm_server.rb" 0xB57ABEFA
|
285
285
|
"lib/cosmos/tools/cmd_tlm_server/connections.rb" 0x6DC54689
|
@@ -315,7 +315,7 @@
|
|
315
315
|
"lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_realtime_thread.rb" 0xB7389588
|
316
316
|
"lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_plot_editor.rb" 0x55DDD0F5
|
317
317
|
"lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_tool.rb" 0xE1E3C58B
|
318
|
-
"lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb"
|
318
|
+
"lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb" 0x0528E044
|
319
319
|
"lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_logfile_thread.rb" 0x7A0CBD87
|
320
320
|
"lib/cosmos/tools/tlm_grapher/plot_editors/singlexy_plot_editor.rb" 0xA9B7CD4C
|
321
321
|
"lib/cosmos/tools/tlm_grapher/plot_editors/linegraph_plot_editor.rb" 0x38E79C34
|
@@ -339,7 +339,7 @@
|
|
339
339
|
"lib/cosmos/script.rb" 0x25BB611B
|
340
340
|
"lib/cosmos/config/config_parser.rb" 0x084A19DF
|
341
341
|
"lib/cosmos/config/meta_config_parser.rb" 0xE4521B6B
|
342
|
-
"lib/cosmos/utilities/csv.rb"
|
342
|
+
"lib/cosmos/utilities/csv.rb" 0x8AA02E71
|
343
343
|
"lib/cosmos/utilities/ruby_lex_utils.rb" 0x340218C1
|
344
344
|
"lib/cosmos/utilities/crc.rb" 0x4C5F0CD1
|
345
345
|
"lib/cosmos/utilities/low_fragmentation_array.rb" 0x265263E1
|
data/demo/config/data/crc.txt
CHANGED
@@ -9,8 +9,8 @@
|
|
9
9
|
"config/targets/SYSTEM/cmd_tlm/override.txt" 0x8FE016FF
|
10
10
|
"config/targets/SYSTEM/cmd_tlm/system_tlm.txt" 0xC44F7A0C
|
11
11
|
"config/targets/SYSTEM/cmd_tlm/meta_tlm.txt" 0x1637F68F
|
12
|
-
"config/targets/SYSTEM/cmd_tlm/limits_groups.txt"
|
13
|
-
"config/targets/SYSTEM/lib/limits_groups.rb"
|
12
|
+
"config/targets/SYSTEM/cmd_tlm/limits_groups.txt" 0x51C71B96
|
13
|
+
"config/targets/SYSTEM/lib/limits_groups.rb" 0x50F72919
|
14
14
|
"config/targets/TEMPLATED/target.txt" 0x4A59ED64
|
15
15
|
"config/targets/TEMPLATED/cmd_tlm_server.txt" 0xC53BB649
|
16
16
|
"config/targets/TEMPLATED/cmd_tlm/templated_cmds.txt" 0x36D65799
|
@@ -18,7 +18,7 @@
|
|
18
18
|
"config/targets/TEMPLATED/lib/templated_interface.rb" 0x471A587C
|
19
19
|
"config/targets/INST/sequences/sequence.tsv" 0xB7E64406
|
20
20
|
"config/targets/INST/target.txt" 0x0CA2BFF2
|
21
|
-
"config/targets/INST/screens/hs.txt"
|
21
|
+
"config/targets/INST/screens/hs.txt" 0xA7BFE34A
|
22
22
|
"config/targets/INST/screens/graphs.txt" 0x82EF35B4
|
23
23
|
"config/targets/INST/screens/commanding.txt" 0x8BFA8984
|
24
24
|
"config/targets/INST/screens/array.txt" 0x4E9CE715
|
@@ -21,7 +21,7 @@ VERTICAL
|
|
21
21
|
SECTIONHEADER "Temperatures"
|
22
22
|
LABELTRENDLIMITSBAR INST HEALTH_STATUS TEMP1 WITH_UNITS 5
|
23
23
|
LABELVALUELIMITSBAR INST HEALTH_STATUS TEMP2 CONVERTED 25
|
24
|
-
LABELVALUELIMITSBAR INST HEALTH_STATUS TEMP2 RAW 20
|
24
|
+
# LABELVALUELIMITSBAR INST HEALTH_STATUS TEMP2 RAW 20 # RAW is not allowed for LIMITSBAR widgets
|
25
25
|
LABELVALUELIMITSBAR INST HEALTH_STATUS TEMP2 FORMATTED
|
26
26
|
LABELVALUELIMITSBAR INST HEALTH_STATUS TEMP2 WITH_UNITS
|
27
27
|
LABELVALUELIMITSBAR INST HEALTH_STATUS TEMP3
|
@@ -1,11 +1,6 @@
|
|
1
|
-
LIMITS_GROUP
|
2
|
-
LIMITS_GROUP_ITEM
|
1
|
+
LIMITS_GROUP INST2_TEMP2
|
2
|
+
LIMITS_GROUP_ITEM INST2 HEALTH_STATUS TEMP2
|
3
3
|
|
4
|
-
LIMITS_GROUP
|
5
|
-
LIMITS_GROUP_ITEM
|
6
|
-
LIMITS_GROUP_ITEM
|
7
|
-
LIMITS_GROUP_ITEM INST HEALTH_STATUS TEMP4
|
8
|
-
|
9
|
-
LIMITS_GROUP GROUND
|
10
|
-
LIMITS_GROUP_ITEM INST HEALTH_STATUS GROUND1STATUS
|
11
|
-
LIMITS_GROUP_ITEM INST HEALTH_STATUS GROUND2STATUS
|
4
|
+
LIMITS_GROUP INST2_GROUND
|
5
|
+
LIMITS_GROUP_ITEM INST2 HEALTH_STATUS GROUND1STATUS
|
6
|
+
LIMITS_GROUP_ITEM INST2 HEALTH_STATUS GROUND2STATUS
|
@@ -11,28 +11,44 @@
|
|
11
11
|
require 'cosmos/tools/cmd_tlm_server/limits_groups_background_task'
|
12
12
|
|
13
13
|
module Cosmos
|
14
|
+
# Inheriting from the LimitsGroupsBackgroundTask provides a framework for
|
15
|
+
# automatically enabling and disabling limits groups based on telemetry.
|
14
16
|
class LimitsGroups < LimitsGroupsBackgroundTask
|
15
|
-
def initialize(initial_delay)
|
16
|
-
|
17
|
-
|
18
|
-
|
17
|
+
def initialize(initial_delay = 0, task_delay = 0.5)
|
18
|
+
# Initial delay upon starting the server before staring the group checks
|
19
|
+
# followed by the background task delay between check iterations
|
20
|
+
super(initial_delay, task_delay)
|
21
|
+
# Creating a Proc allows for arbitrary code to be executed when a group
|
22
|
+
# is enabled or disabled.
|
23
|
+
@temp2_enable_code = Proc.new do
|
24
|
+
enable_limits_group('INST2_GROUND') # Enable the INST2_GROUND group
|
19
25
|
end
|
20
|
-
@
|
21
|
-
disable_limits_group('
|
26
|
+
@temp2_disable_code = Proc.new do
|
27
|
+
disable_limits_group('INST2_GROUND') # Disable the INST2_GROUND group
|
22
28
|
end
|
23
29
|
end
|
24
30
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
# This method name is important. It must begin with 'check_' and end with
|
32
|
+
# the name of a Limits Group defined by the LIMITS_GROUP keyword. In the
|
33
|
+
# demo this is defined in config/targets/SYSTEM/cmd_tlm/limits_groups.txt.
|
34
|
+
# Note that there is a LIMITS_GROUP INST2_TEMP2 so we have a match.
|
35
|
+
def check_inst2_temp2
|
36
|
+
# Inside this method you must call process_group. The first parameter is
|
37
|
+
# the number of seconds to delay before enabling the group when the telemetry
|
38
|
+
# check is true. When the telemetry check is false the group is instantly
|
39
|
+
# disabled. The next two parameters are Proc objects which are called with
|
40
|
+
# the group is enabled and disabled respectively. We defined our Proc objects
|
41
|
+
# in the constructor to enable and disable the GROUND group.
|
42
|
+
process_group(0, @temp2_enable_code, @temp2_disable_code) do
|
43
|
+
val = tlm("INST2 HEALTH_STATUS TEMP2")
|
44
|
+
# The expression returns TRUE (to enable the group) when the value is
|
45
|
+
# not NAN and not Infinite. If the value is NAN or Infinite the group
|
46
|
+
# is disabled. Note that this can't prevent false positives because the
|
47
|
+
# value has to change to something invalid before we can turn off the group
|
48
|
+
# at which point it is too late. Typically you enable or disable a group
|
49
|
+
# based on some external telemetry point such as a power supply output
|
50
|
+
# to enable a group of items powered by the supply.
|
51
|
+
!val.nan? && !val.infinite?
|
36
52
|
end
|
37
53
|
end
|
38
54
|
end
|
@@ -203,7 +203,7 @@ class String
|
|
203
203
|
# @return Converts the String into either a Float, Integer, or Array
|
204
204
|
# depending on what the String represents. It can successfully convert
|
205
205
|
# floating point numbers in both fixed and scientific notation, integers
|
206
|
-
# in hexadecimal notation, and Arrays. If it can
|
206
|
+
# in hexadecimal notation, and Arrays. If it can't be converted into
|
207
207
|
# any of the above then the original String is returned.
|
208
208
|
def convert_to_value
|
209
209
|
return_value = self
|
@@ -221,7 +221,7 @@ module Cosmos
|
|
221
221
|
|
222
222
|
def prompt_vertical_message_box(string, buttons)
|
223
223
|
loop do
|
224
|
-
result =
|
224
|
+
result = buttons[0]
|
225
225
|
Qt.execute_in_main_thread(true, 0.05) do
|
226
226
|
dialog = _build_dialog(string)
|
227
227
|
|
@@ -239,7 +239,7 @@ module Cosmos
|
|
239
239
|
display_buttons.each do |button_text|
|
240
240
|
button = Qt::PushButton.new(button_text)
|
241
241
|
button.connect(SIGNAL('clicked()')) do
|
242
|
-
result
|
242
|
+
result.replace(button_text)
|
243
243
|
dialog.accept()
|
244
244
|
end
|
245
245
|
button_layout.addWidget(button)
|
@@ -272,7 +272,7 @@ module Cosmos
|
|
272
272
|
end
|
273
273
|
chooser = ComboboxChooser.new(dialog, "Select:", display_options)
|
274
274
|
chooser.setContentsMargins(11,11,11,11)
|
275
|
-
chooser.sel_command_callback = lambda { |value| result
|
275
|
+
chooser.sel_command_callback = lambda { |value| result.replace(value) }
|
276
276
|
dialog.layout.addWidget(chooser)
|
277
277
|
dialog.layout.addWidget(_build_dialog_buttons(dialog, true, cancel))
|
278
278
|
result = "Cancel" unless _exec_dialog(dialog, string, result)
|
@@ -135,7 +135,7 @@ module Cosmos
|
|
135
135
|
packet_length = (length * @length_bytes_per_count) + @length_value_offset
|
136
136
|
|
137
137
|
# Make sure we have enough data for the packet
|
138
|
-
return:STOP if @data.length < packet_length
|
138
|
+
return :STOP if @data.length < packet_length
|
139
139
|
|
140
140
|
# Reduce to packet data and setup current_data for next packet
|
141
141
|
packet_data = @data[0..(packet_length - 1)]
|