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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/data/config/_id_items.yaml +1 -1
  3. data/data/config/_id_params.yaml +1 -1
  4. data/data/config/_items.yaml +1 -1
  5. data/data/config/_params.yaml +1 -1
  6. data/data/config/cmd_tlm_server.yaml +14 -0
  7. data/data/config/command.yaml +2 -0
  8. data/data/config/command_modifiers.yaml +18 -0
  9. data/data/config/item_modifiers.yaml +39 -0
  10. data/data/config/param_item_modifiers.yaml +5 -0
  11. data/data/config/parameter_modifiers.yaml +36 -0
  12. data/data/config/protocols.yaml +22 -6
  13. data/data/config/system.yaml +17 -0
  14. data/data/config/target.yaml +9 -0
  15. data/data/config/telemetry.yaml +7 -0
  16. data/data/config/telemetry_modifiers.yaml +13 -0
  17. data/data/config/tlm_viewer.yaml +5 -0
  18. data/data/crc.txt +20 -20
  19. data/demo/config/data/crc.txt +3 -3
  20. data/demo/config/targets/INST/screens/hs.txt +1 -1
  21. data/demo/config/targets/SYSTEM/cmd_tlm/limits_groups.txt +5 -10
  22. data/demo/config/targets/SYSTEM/lib/limits_groups.rb +33 -17
  23. data/lib/cosmos/core_ext/string.rb +1 -1
  24. data/lib/cosmos/gui/utilities/script_module_gui.rb +3 -3
  25. data/lib/cosmos/interfaces/protocols/length_protocol.rb +1 -1
  26. data/lib/cosmos/interfaces/protocols/template_protocol.rb +37 -6
  27. data/lib/cosmos/interfaces/udp_interface.rb +3 -3
  28. data/lib/cosmos/packets/packet_config.rb +1 -0
  29. data/lib/cosmos/packets/parsers/format_string_parser.rb +1 -0
  30. data/lib/cosmos/packets/parsers/limits_parser.rb +1 -0
  31. data/lib/cosmos/packets/parsers/state_parser.rb +3 -0
  32. data/lib/cosmos/packets/telemetry.rb +1 -1
  33. data/lib/cosmos/tools/cmd_sequence/cmd_sequence.rb +1 -1
  34. data/lib/cosmos/tools/cmd_tlm_server/limits_groups_background_task.rb +4 -3
  35. data/lib/cosmos/tools/tlm_grapher/tabbed_plots_tool/tabbed_plots_config.rb +1 -1
  36. data/lib/cosmos/tools/tlm_viewer/screen.rb +3 -3
  37. data/lib/cosmos/tools/tlm_viewer/widgets/formatfontvalue_widget.rb +5 -10
  38. data/lib/cosmos/tools/tlm_viewer/widgets/limits_widget.rb +1 -1
  39. data/lib/cosmos/tools/tlm_viewer/widgets/matrixbycolumns_widget.rb +3 -1
  40. data/lib/cosmos/top_level.rb +2 -4
  41. data/lib/cosmos/utilities/csv.rb +1 -1
  42. data/lib/cosmos/version.rb +4 -4
  43. data/spec/interfaces/protocols/template_protocol_spec.rb +119 -15
  44. data/spec/interfaces/udp_interface_spec.rb +8 -2
  45. data/spec/packets/packet_config_spec.rb +11 -0
  46. data/spec/packets/parsers/format_string_parser_spec.rb +11 -0
  47. data/spec/packets/parsers/limits_parser_spec.rb +21 -10
  48. data/spec/packets/parsers/packet_item_parser_spec.rb +5 -5
  49. data/spec/packets/parsers/state_parser_spec.rb +33 -0
  50. data/spec/tools/cmd_tlm_server/limits_groups_background_task_spec.rb +4 -4
  51. metadata +2 -2
@@ -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
@@ -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
@@ -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
@@ -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" 0xD659E7DD
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" 0xEEFA7D92
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" 0x8015C5E3
94
- "lib/cosmos/packets/parsers/limits_parser.rb" 0xFCFB27D0
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" 0xCA3BFDFC
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" 0x7D392FC4
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" 0x23DCA3C4
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" 0xA53B2B2B
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" 0x37F74EC0
124
- "lib/cosmos/interfaces/protocols/length_protocol.rb" 0xB7E3F9FE
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" 0x8791286E
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" 0x92666931
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" 0x0E38F289
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" 0x24FF88A9
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" 0xBA3127ED
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" 0x6DE01FA2
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" 0x3D875105
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" 0xAC54DF44
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" 0xC48BDB0F
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" 0x14EE47F2
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
@@ -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" 0x64426D51
13
- "config/targets/SYSTEM/lib/limits_groups.rb" 0xB2D5A8DA
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" 0x1D5F0FCE
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 TEMP1
2
- LIMITS_GROUP_ITEM INST HEALTH_STATUS TEMP1
1
+ LIMITS_GROUP INST2_TEMP2
2
+ LIMITS_GROUP_ITEM INST2 HEALTH_STATUS TEMP2
3
3
 
4
- LIMITS_GROUP TEMP234
5
- LIMITS_GROUP_ITEM INST HEALTH_STATUS TEMP2
6
- LIMITS_GROUP_ITEM INST HEALTH_STATUS TEMP3
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
- super(initial_delay)
17
- @temp1_enable_code = Proc.new do
18
- enable_limits_group('GROUND')
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
- @temp1_disable_code = Proc.new do
21
- disable_limits_group('GROUND')
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
- def check_temp1
26
- process_group(3, @temp1_enable_code, @temp1_disable_code) do
27
- tlm("INST HEALTH_STATUS TEMP1") > 0
28
- end
29
- end
30
-
31
- def check_temp234
32
- process_group(5) do
33
- (tlm("INST HEALTH_STATUS TEMP2") > 0) ||
34
- (tlm("INST HEALTH_STATUS TEMP3") > 0) ||
35
- (tlm("INST HEALTH_STATUS TEMP4") > 0)
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 not be converted into
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 = nil
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 = button_text
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 = value }
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)]