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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa743efd88b1f40cbe8b30a4fe554250df894cd5504623922983bb022c94516a
|
4
|
+
data.tar.gz: ca495dc357053842b8d6cf0665a8583c46169b7cf8e7c9eb92b3829603e49258
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91e4cd22b79229e07263e2fd63245b992897d4bd6a08a2227aafd8063b8965654aa47fe9e016735aebc64829b9d32a971710c79e5e52675a94da532d7efe2c13
|
7
|
+
data.tar.gz: 769a8c98697a2bba14dc831e1204b7b890346578f14b09eb1bdd5a8486cce945e1439dc491bf907499860790cb3cb0e1e0fc1f85b7fbea0a14fd88b41e7db6e8
|
data/data/config/_id_items.yaml
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
- name: Data Type
|
10
10
|
required: true
|
11
11
|
description: Data Type of this telemetry item
|
12
|
-
values: <%= %w(INT UINT FLOAT STRING BLOCK
|
12
|
+
values: <%= %w(INT UINT FLOAT STRING BLOCK DERIVED) %>
|
13
13
|
- name: ID Value
|
14
14
|
required: true
|
15
15
|
description: The value of this telemetry item that uniquely identifies this telemetry packet
|
data/data/config/_id_params.yaml
CHANGED
data/data/config/_items.yaml
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
- name: Data Type
|
10
10
|
required: true
|
11
11
|
description: Data Type of this telemetry item
|
12
|
-
values: <%= %w(INT UINT FLOAT STRING BLOCK
|
12
|
+
values: <%= %w(INT UINT FLOAT STRING BLOCK DERIVED) %>
|
13
13
|
- name: Description
|
14
14
|
required: false
|
15
15
|
description: Description for this telemetry item which must be enclosed with quotes
|
data/data/config/_params.yaml
CHANGED
@@ -17,6 +17,12 @@ PACKET_LOG_WRITER:
|
|
17
17
|
to create log files.
|
18
18
|
warning: You should NOT override the default without consulting a COSMOS expert
|
19
19
|
as this may break the ability to successfully read and write log files.
|
20
|
+
example: |
|
21
|
+
PACKET_LOG_WRITER DEFAULT packet_log_writer.rb # Default
|
22
|
+
# The default logger filename will be <DATE>_cosmostlm.bin and will create a new log every 1MB
|
23
|
+
PACKET_LOG_WRITER DEFAULT packet_log_writer.rb cosmos true nil 1000000
|
24
|
+
# Create a logger named COSMOS_LOG which creates a new log every 5 min (600s)
|
25
|
+
PACKET_LOG_WRITER COSMOS_LOG packet_log_writer.rb cosmos true 600
|
20
26
|
parameters:
|
21
27
|
- name: Log Writer Name
|
22
28
|
required: true
|
@@ -40,6 +46,9 @@ AUTO_INTERFACE_TARGETS:
|
|
40
46
|
INTERFACE_TARGET or INTERFACE keyword.
|
41
47
|
INTERFACE_TARGET:
|
42
48
|
summary: Load the specified target's cmd_tlm_server.txt configuration file
|
49
|
+
example: |
|
50
|
+
INTERFACE_TARGET COSMOS # Look in the COSMOS target directory for cmd_tlm_server.txt
|
51
|
+
INTERFACE_TARGET COSMOS config.txt # Look in the COSMOS target directory for config.txt
|
43
52
|
parameters:
|
44
53
|
- name: Target Name
|
45
54
|
required: true
|
@@ -71,6 +80,8 @@ INTERFACE:
|
|
71
80
|
description: Ruby file to use when instantiating the interface.
|
72
81
|
values:
|
73
82
|
<%= MetaConfigParser.load('_interfaces.yaml').to_meta_config_yaml(8) %>
|
83
|
+
documentation: Additional parameters are required. Please see the [Interfaces](/docs/interfaces)
|
84
|
+
documentation for more details.
|
74
85
|
ROUTER:
|
75
86
|
modifiers:
|
76
87
|
<%= MetaConfigParser.load('interface_modifiers.yaml').to_meta_config_yaml(4) %>
|
@@ -89,6 +100,8 @@ ROUTER:
|
|
89
100
|
description: Ruby file to use when instantiating the interface.
|
90
101
|
values:
|
91
102
|
<%= MetaConfigParser.load('_interfaces.yaml').to_meta_config_yaml(8) %>
|
103
|
+
documentation: Additional parameters are required. Please see the [Interfaces](/docs/interfaces)
|
104
|
+
documentation for more details.
|
92
105
|
COLLECT_METADATA:
|
93
106
|
summary: Prompts the user for meta data when starting the Command and Telemetry Server
|
94
107
|
BACKGROUND_TASK:
|
@@ -98,6 +111,7 @@ BACKGROUND_TASK:
|
|
98
111
|
is only called once so if your background task is supposed to live on while the
|
99
112
|
Server is running, you must implement your code in a loop with a sleep to not
|
100
113
|
use all the CPU.
|
114
|
+
example: BACKGROUND_TASK example_background_task.rb
|
101
115
|
parameters:
|
102
116
|
- name: Filename
|
103
117
|
required: true
|
data/data/config/command.yaml
CHANGED
@@ -3,6 +3,7 @@ COMMAND:
|
|
3
3
|
modifiers:
|
4
4
|
<%= MetaConfigParser.load('command_modifiers.yaml').to_meta_config_yaml(4) %>
|
5
5
|
summary: Defines a new command packet
|
6
|
+
example: COMMAND SYSTEM STARTLOGGING BIG_ENDIAN "Starts logging both commands and telemetry for an interface"
|
6
7
|
parameters:
|
7
8
|
- name: Target
|
8
9
|
required: true
|
@@ -27,6 +28,7 @@ SELECT_COMMAND:
|
|
27
28
|
summary: Selects an existing command packet for editing
|
28
29
|
description: Typically used in a separate configuration file from where the original
|
29
30
|
command is defined to override or add to the existing command definition
|
31
|
+
example: SELECT_COMMAND SYSTEM STARTLOGGING
|
30
32
|
parameters:
|
31
33
|
- name: Target Name
|
32
34
|
required: true
|
@@ -3,6 +3,12 @@ PARAMETER:
|
|
3
3
|
modifiers:
|
4
4
|
<%= MetaConfigParser.load('parameter_modifiers.yaml').to_meta_config_yaml(4) %>
|
5
5
|
summary: Defines a command parameter in the current command packet
|
6
|
+
example: |
|
7
|
+
PARAMETER SYNC 0 32 UINT 0xDEADBEEF 0xDEADBEEF 0xDEADBEEF "Sync pattern"
|
8
|
+
PARAMETER DATA 32 32 INT MIN MAX 0 "Data value"
|
9
|
+
PARAMETER VALUE 64 32 FLOAT 0 10.5 2.5
|
10
|
+
PARAMETER LABEL 96 96 STRING "COSMOS" "The label to apply"
|
11
|
+
PARAMETER BLOCK 192 0 BLOCK '' "Block of binary data"
|
6
12
|
parameters:
|
7
13
|
- name: Name
|
8
14
|
required: true
|
@@ -19,6 +25,10 @@ APPEND_PARAMETER:
|
|
19
25
|
modifiers:
|
20
26
|
<%= MetaConfigParser.load('parameter_modifiers.yaml').to_meta_config_yaml(4) %>
|
21
27
|
summary: Defines a command parameter in the current command packet
|
28
|
+
example: |
|
29
|
+
APPEND_PARAMETER SYNC 32 UINT 0xDEADBEEF 0xDEADBEEF 0xDEADBEEF "Sync pattern"
|
30
|
+
APPEND_PARAMETER VALUE 32 FLOAT 0 10.5 2.5
|
31
|
+
APPEND_PARAMETER LABEL 0 STRING "COSMOS" "The label to apply"
|
22
32
|
parameters:
|
23
33
|
- name: Name
|
24
34
|
required: true
|
@@ -32,6 +42,7 @@ ID_PARAMETER:
|
|
32
42
|
description: ID parameters are used to identify the binary block of data as a
|
33
43
|
particular command. A command packet may have one or more ID_PARAMETERs and all
|
34
44
|
must match the binary data for the command to be identified.
|
45
|
+
example: ID_PARAMETER OPCODE 32 32 UINT 2 2 2 "Opcode identifier"
|
35
46
|
parameters:
|
36
47
|
- name: Name
|
37
48
|
required: true
|
@@ -51,6 +62,7 @@ APPEND_ID_PARAMETER:
|
|
51
62
|
description: ID parameters are used to identify the binary block of data as a
|
52
63
|
particular command. A command packet may have one or more ID_PARAMETERs and all
|
53
64
|
must match the binary data for the command to be identified.
|
65
|
+
example: APPEND_ID_PARAMETER OPCODE 32 UINT 2 2 2 "Opcode identifier"
|
54
66
|
parameters:
|
55
67
|
- name: Name
|
56
68
|
required: true
|
@@ -61,6 +73,7 @@ ARRAY_PARAMETER:
|
|
61
73
|
modifiers:
|
62
74
|
<%= MetaConfigParser.load('parameter_modifiers.yaml').to_meta_config_yaml(4) %>
|
63
75
|
summary: Defines a command parameter in the current command packet that is an array
|
76
|
+
example: ARRAY_PARAMETER ARRAY 64 64 FLOAT 640 "Array of 10 64bit floats"
|
64
77
|
parameters:
|
65
78
|
- name: Name
|
66
79
|
required: true
|
@@ -77,6 +90,7 @@ APPEND_ARRAY_PARAMETER:
|
|
77
90
|
modifiers:
|
78
91
|
<%= MetaConfigParser.load('parameter_modifiers.yaml').to_meta_config_yaml(4) %>
|
79
92
|
summary: Defines a command parameter in the current command packet that is an array
|
93
|
+
example: APPEND_ARRAY_PARAMETER ARRAY 64 FLOAT 640 "Array of 10 64bit floats"
|
80
94
|
parameters:
|
81
95
|
- name: Name
|
82
96
|
required: true
|
@@ -87,6 +101,9 @@ SELECT_PARAMETER:
|
|
87
101
|
modifiers:
|
88
102
|
<%= MetaConfigParser.load('parameter_modifiers.yaml').to_meta_config_yaml(4) %>
|
89
103
|
summary: Selects an existing command parameter for editing
|
104
|
+
example: |
|
105
|
+
SELECT_COMMAND SYSTEM STARTLOGGING
|
106
|
+
SELECT_PARAMETER LABEL
|
90
107
|
parameters:
|
91
108
|
- name: Parameter
|
92
109
|
required: true
|
@@ -107,6 +124,7 @@ META:
|
|
107
124
|
description: Meta data is user specific data that can be used by custom tools
|
108
125
|
for various purposes. One example is to store additional information needed
|
109
126
|
to generate source code header files.
|
127
|
+
example: META FSW_TYPE "struct command"
|
110
128
|
parameters:
|
111
129
|
- name: Meta Name
|
112
130
|
required: true
|
@@ -6,6 +6,14 @@ STATE:
|
|
6
6
|
you might define states for ON = 1 and OFF = 0. This allows the word ON to be
|
7
7
|
used rather than the number 1 when sending the telemetry item and allows
|
8
8
|
for much greater clarity and less chance for user error.
|
9
|
+
example: |
|
10
|
+
APPEND_ITEM ENABLE 32 UINT "Enable setting"
|
11
|
+
STATE FALSE 0
|
12
|
+
STATE TRUE 1
|
13
|
+
APPEND_ITEM STRING 1024 STRING "String"
|
14
|
+
STATE "NOOP" "NOOP" GREEN
|
15
|
+
STATE "ARM LASER" "ARM LASER" YELLOW
|
16
|
+
STATE "FIRE LASER" "FIRE LASER" RED
|
9
17
|
parameters:
|
10
18
|
- name: Key
|
11
19
|
required: true
|
@@ -29,6 +37,23 @@ READ_CONVERSION:
|
|
29
37
|
factor is applied to the raw value in the telemetry packet before it is displayed
|
30
38
|
to the user. The user still has the ability to see the raw unconverted value
|
31
39
|
in a details dialog.
|
40
|
+
example: |
|
41
|
+
READ_CONVERSION the_great_conversion.rb 1000
|
42
|
+
|
43
|
+
Defined in the_great_conversion.rb:
|
44
|
+
|
45
|
+
require 'cosmos/conversions/conversion'
|
46
|
+
module Cosmos
|
47
|
+
class TheGreatConversion < Conversion
|
48
|
+
def initialize(multiplier)
|
49
|
+
super()
|
50
|
+
@multiplier = multiplier
|
51
|
+
end
|
52
|
+
def call(value, packet, buffer)
|
53
|
+
return value * multiplier
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
32
57
|
parameters:
|
33
58
|
- name: Class File Name
|
34
59
|
required: true
|
@@ -47,6 +72,7 @@ POLY_READ_CONVERSION:
|
|
47
72
|
description: The conversion factor is applied to raw value in the telemetry
|
48
73
|
packet before it is displayed to the user. The user still has the ability
|
49
74
|
to see the raw unconverted value in a details dialog.
|
75
|
+
example: POLY_READ_CONVERSION 10 0.5 0.25
|
50
76
|
parameters:
|
51
77
|
- name: C0
|
52
78
|
required: true
|
@@ -64,6 +90,10 @@ SEG_POLY_READ_CONVERSION:
|
|
64
90
|
description: This conversion factor is applied to the raw value in the telemetry packet
|
65
91
|
before it is displayed to the user. The user still has the ability to see the raw
|
66
92
|
unconverted value in a details dialog.
|
93
|
+
example: |
|
94
|
+
SEG_POLY_READ_CONVERSION 0 10 0.5 0.25 # Apply the conversion to all values < 50
|
95
|
+
SEG_POLY_READ_CONVERSION 50 11 0.5 0.275 # Apply the conversion to all values >= 50 and < 100
|
96
|
+
SEG_POLY_READ_CONVERSION 100 12 0.5 0.3 # Apply the conversion to all values >= 100
|
67
97
|
parameters:
|
68
98
|
- name: Lower Bound
|
69
99
|
required: true
|
@@ -96,6 +126,11 @@ GENERIC_READ_CONVERSION_START:
|
|
96
126
|
warning: Generic conversions are not a good long term solution. Consider creating
|
97
127
|
a conversion class and using READ_CONVERSION instead. READ_CONVERSION is easier
|
98
128
|
to debug and higher performance.
|
129
|
+
example: |
|
130
|
+
APPEND_ITEM ITEM1 32 UINT
|
131
|
+
GENERIC_READ_CONVERSION_START
|
132
|
+
value * 1.5 # Convert the value by a scale factor
|
133
|
+
GENERIC_READ_CONVERSION_END
|
99
134
|
GENERIC_READ_CONVERSION_END:
|
100
135
|
summary: Complete a generic write conversion
|
101
136
|
LIMITS:
|
@@ -106,6 +141,9 @@ LIMITS:
|
|
106
141
|
The concept of "limits sets" is defined to allow for different limits values
|
107
142
|
in different environments. For example, you might want tighter or looser limits
|
108
143
|
on telemetry if your environment changes such as during thermal vacuum testing.
|
144
|
+
example: |
|
145
|
+
LIMITS DEFAULT 3 ENABLED -80.0 -70.0 60.0 80.0 -20.0 20.0
|
146
|
+
LIMITS TVAC 3 ENABLED -80.0 -30.0 30.0 80.0
|
109
147
|
parameters:
|
110
148
|
- name: Limits Set
|
111
149
|
required: true
|
@@ -159,6 +197,7 @@ LIMITS:
|
|
159
197
|
values: .+
|
160
198
|
LIMITS_RESPONSE:
|
161
199
|
summary: Defines a response class that is called when the limits state of the current item changes
|
200
|
+
example: LIMITS_RESPONSE example_limits_response.rb 10
|
162
201
|
parameters:
|
163
202
|
- name: Response Class Filename
|
164
203
|
required: true
|
@@ -1,6 +1,7 @@
|
|
1
1
|
---
|
2
2
|
FORMAT_STRING:
|
3
3
|
summary: Adds printf style formatting
|
4
|
+
example: FORMAT_STRING "0x%0X"
|
4
5
|
parameters:
|
5
6
|
- name: Format
|
6
7
|
required: true
|
@@ -9,6 +10,9 @@ FORMAT_STRING:
|
|
9
10
|
values: .*
|
10
11
|
UNITS:
|
11
12
|
summary: Add displayed units
|
13
|
+
example: |
|
14
|
+
UNITS Celcius C
|
15
|
+
UNITS Kilometers KM
|
12
16
|
parameters:
|
13
17
|
- name: Full Name
|
14
18
|
required: true
|
@@ -30,6 +34,7 @@ META:
|
|
30
34
|
description: Meta data is user specific data that can be used by custom tools
|
31
35
|
for various purposes. One example is to store additional information needed
|
32
36
|
to generate source code header files.
|
37
|
+
example: META TEST "This parameter is for test purposes only"
|
33
38
|
parameters:
|
34
39
|
- name: Meta Name
|
35
40
|
required: true
|
@@ -33,6 +33,14 @@ STATE:
|
|
33
33
|
you might define states for ON = 1 and OFF = 0. This allows the word ON to be
|
34
34
|
used rather than the number 1 when sending the command parameter and allows
|
35
35
|
for much greater clarity and less chance for user error.
|
36
|
+
example: |
|
37
|
+
APPEND_PARAMETER ENABLE 32 UINT 0 1 0 "Enable setting"
|
38
|
+
STATE FALSE 0
|
39
|
+
STATE TRUE 1
|
40
|
+
APPEND_PARAMETER STRING 1024 STRING "NOOP" "String parameter"
|
41
|
+
STATE "NOOP" "NOOP"
|
42
|
+
STATE "ARM LASER" "ARM LASER" HAZARDOUS "Arming the laser is an eye safety hazard"
|
43
|
+
STATE "FIRE LASER" "FIRE LASER" HAZARDOUS "WARNING! Laser will be fired!"
|
36
44
|
parameters:
|
37
45
|
- name: Key
|
38
46
|
required: true
|
@@ -60,6 +68,23 @@ WRITE_CONVERSION:
|
|
60
68
|
takes extra parameters and must always implement the call method. The conversion
|
61
69
|
factor is applied to the value entered by the user before it is written into
|
62
70
|
the binary command packet and sent.
|
71
|
+
example: |
|
72
|
+
WRITE_CONVERSION the_great_conversion.rb 1000
|
73
|
+
|
74
|
+
Defined in the_great_conversion.rb:
|
75
|
+
|
76
|
+
require 'cosmos/conversions/conversion'
|
77
|
+
module Cosmos
|
78
|
+
class TheGreatConversion < Conversion
|
79
|
+
def initialize(multiplier)
|
80
|
+
super()
|
81
|
+
@multiplier = multiplier
|
82
|
+
end
|
83
|
+
def call(value, packet, buffer)
|
84
|
+
return value * multiplier
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
63
88
|
parameters:
|
64
89
|
- name: Class File Name
|
65
90
|
required: true
|
@@ -77,6 +102,7 @@ POLY_WRITE_CONVERSION:
|
|
77
102
|
summary: Adds a polynomial conversion factor to the current command parameter
|
78
103
|
description: The conversion factor is applied to the value entered by the user
|
79
104
|
before it is written into the binary command packet and sent.
|
105
|
+
example: POLY_WRITE_CONVERSION 10 0.5 0.25
|
80
106
|
parameters:
|
81
107
|
- name: C0
|
82
108
|
required: true
|
@@ -93,6 +119,10 @@ SEG_POLY_WRITE_CONVERSION:
|
|
93
119
|
summary: Adds a segmented polynomial conversion factor to the current command parameter
|
94
120
|
description: This conversion factor is applied to the value entered by the user
|
95
121
|
before it is written into the binary command packet and sent.
|
122
|
+
example: |
|
123
|
+
SEG_POLY_WRITE_CONVERSION 0 10 0.5 0.25 # Apply the conversion to all values < 50
|
124
|
+
SEG_POLY_WRITE_CONVERSION 50 11 0.5 0.275 # Apply the conversion to all values >= 50 and < 100
|
125
|
+
SEG_POLY_WRITE_CONVERSION 100 12 0.5 0.3 # Apply the conversion to all values >= 100
|
96
126
|
parameters:
|
97
127
|
- name: Lower Bound
|
98
128
|
required: true
|
@@ -124,6 +154,11 @@ GENERIC_WRITE_CONVERSION_START:
|
|
124
154
|
warning: Generic conversions are not a good long term solution. Consider creating
|
125
155
|
a conversion class and using WRITE_CONVERSION instead. WRITE_CONVERSION is easier
|
126
156
|
to debug and higher performance.
|
157
|
+
example: |
|
158
|
+
APPEND_PARAMETER ITEM1 32 UINT 0 0xFFFFFFFF 0
|
159
|
+
GENERIC_WRITE_CONVERSION_START
|
160
|
+
(value * 1.5).to_i # Convert the value by a scale factor
|
161
|
+
GENERIC_WRITE_CONVERSION_END
|
127
162
|
GENERIC_WRITE_CONVERSION_END:
|
128
163
|
summary: Complete a generic write conversion
|
129
164
|
OVERFLOW:
|
@@ -136,6 +171,7 @@ OVERFLOW:
|
|
136
171
|
for that type. Finally you can specify 'ERROR_ALLOW_HEX' which will allow for
|
137
172
|
a maximum hex value to be writen, e.g. you can successfully write 255 to a 8
|
138
173
|
bit signed value.
|
174
|
+
example: OVERFLOW TRUNCATE
|
139
175
|
parameters:
|
140
176
|
- name: Behavior
|
141
177
|
required: true
|
data/data/config/protocols.yaml
CHANGED
@@ -224,8 +224,8 @@ TEMPLATE:
|
|
224
224
|
required: false
|
225
225
|
description: An initial delay after connecting after which the stream will
|
226
226
|
be read till empty and data dropped. Useful for discarding connect headers
|
227
|
-
and initial prompts. Default is nil (no initial read)
|
228
|
-
values:
|
227
|
+
and initial prompts. Default is nil (no initial read).
|
228
|
+
values: .+
|
229
229
|
- name: Response Lines
|
230
230
|
required: false
|
231
231
|
description: The number of lines that make up expected responses.
|
@@ -241,17 +241,33 @@ TEMPLATE:
|
|
241
241
|
description: The number of bytes to discard from the binary data after
|
242
242
|
reading from the stream. Note that this applies to bytes including the
|
243
243
|
sync pattern if the sync pattern is being used.
|
244
|
-
Default is 0 (do not discard bytes)
|
244
|
+
Default is 0 (do not discard bytes).
|
245
245
|
values: \d+
|
246
246
|
- name: Sync Pattern
|
247
247
|
required: false
|
248
248
|
description: Hex string representing a byte pattern that will be searched
|
249
249
|
for in the raw stream. This pattern represents a packet delimiter and all
|
250
250
|
data found including the sync pattern will be returned.
|
251
|
-
Default is nil (no sync pattern)
|
251
|
+
Default is nil (no sync pattern).
|
252
252
|
values: .+
|
253
253
|
- name: Fill Sync Pattern
|
254
254
|
required: false
|
255
|
-
description: Whether or not to fill in the sync pattern on outgoing packets
|
256
|
-
Default is false
|
255
|
+
description: Whether or not to fill in the sync pattern on outgoing packets.
|
256
|
+
Default is false.
|
257
257
|
values: ['false','true']
|
258
|
+
- name: Response Timeout
|
259
|
+
required: false
|
260
|
+
description: Number of seconds to wait before timing out when waiting for a response.
|
261
|
+
Default is 5 seconds.
|
262
|
+
values: .+
|
263
|
+
- name: Response Polling Period
|
264
|
+
required: false
|
265
|
+
description: Number of seconds to wait between polling for a response.
|
266
|
+
Default is 0.02 seconds.
|
267
|
+
values: .+
|
268
|
+
- name: Error Action
|
269
|
+
required: false
|
270
|
+
description: How to handle errors in the protocol like unexpected responses
|
271
|
+
or response timeouts. 'DISCONNECT' to disconnect after errors. The default
|
272
|
+
is 'LOG' to log an error and continue.
|
273
|
+
values: ['LOG','DISCONNECT']
|
data/data/config/system.yaml
CHANGED
@@ -12,6 +12,7 @@ DECLARE_TARGET:
|
|
12
12
|
description: Declare target is used in place of AUTO_DECLARE_TARGETS to give more
|
13
13
|
fine grained control over how the target folder is loaded and named within COSMOS.
|
14
14
|
This is required if AUTO_DECLARE_TARGET is not present.
|
15
|
+
example: DECLARE_TARGET INST INST2 inst.txt
|
15
16
|
parameters:
|
16
17
|
- name: Target Name
|
17
18
|
required: true
|
@@ -57,6 +58,10 @@ PORT:
|
|
57
58
|
It is not necessary to set this option unless you wish to override the defaults
|
58
59
|
(given in the example usage). Overriding ports is necessary if you want to run
|
59
60
|
two Command and Telemetry Servers on the same computer simultaneously.
|
61
|
+
example: |
|
62
|
+
PORT CTS_API 7777 # Default
|
63
|
+
PORT TLMVIEWER_API 7778 # Default
|
64
|
+
PORT CTS_PREIDENTIFIED 7779 # Default
|
60
65
|
parameters:
|
61
66
|
- name: Port Name
|
62
67
|
required: true
|
@@ -121,6 +126,13 @@ PATH:
|
|
121
126
|
warning: The PROCEDURES path must be set for Script Runner and Test Runner to locate your
|
122
127
|
procedure files. You can add multiple 'PATH PROCEDURES' lines to your configuration file
|
123
128
|
to set multiple locations.
|
129
|
+
example: |
|
130
|
+
PATH LOGS './logs' # Default location of system and tool log files
|
131
|
+
PATH TMP './tmp' # Default location of temporary marshal files
|
132
|
+
PATH SAVED_CONFIG './saved_config' # Default location of saved configurations (see note)
|
133
|
+
PATH TABLES './tables' # Default location of table files
|
134
|
+
PATH PROCEDURES './procedures' # Default location of Script procedure files
|
135
|
+
PATH HANDBOOKS './handbooks' # Default location to place handbook files
|
124
136
|
parameters:
|
125
137
|
- name: Path Name
|
126
138
|
required: true
|
@@ -134,6 +146,7 @@ DEFAULT_PACKET_LOG_WRITER:
|
|
134
146
|
summary: Set the class used when creating binary packet log files
|
135
147
|
warning: Overriding the default log writer can break the ability to write log
|
136
148
|
files that COSMOS can interpret. Proceed with caution!
|
149
|
+
example: DEFAULT_PACKET_LOG_WRITER packet_log_writer.rb # Default
|
137
150
|
parameters:
|
138
151
|
- name: Filename
|
139
152
|
required: true
|
@@ -148,6 +161,7 @@ DEFAULT_PACKET_LOG_READER:
|
|
148
161
|
summary: Set the class used when reading binary packet log file
|
149
162
|
warning: Overriding the default log read can break the ability to read log
|
150
163
|
files. Proceed with caution!
|
164
|
+
example: DEFAULT_PACKET_LOG_READER packet_log_reader.rb # Default
|
151
165
|
parameters:
|
152
166
|
- name: Filename
|
153
167
|
required: true
|
@@ -162,6 +176,7 @@ STALENESS_SECONDS:
|
|
162
176
|
summary: Number of seconds before marking the packet stale
|
163
177
|
description: A stale packet is identified in telemetry screens by all the telemetry
|
164
178
|
items in the stale packet being colored purple..
|
179
|
+
example: STALENESS_SECONDS 30 # Default
|
165
180
|
parameters:
|
166
181
|
- name: Seconds
|
167
182
|
required: true
|
@@ -186,6 +201,7 @@ ENABLE_SOUND:
|
|
186
201
|
since: 3.5.0
|
187
202
|
ALLOW_ACCESS:
|
188
203
|
summary: White list machines that are allowed to connect to the Server
|
204
|
+
example: ALLOW_ACCESS ALL # Default
|
189
205
|
parameters:
|
190
206
|
- name: Name or IP Address
|
191
207
|
required: true
|
@@ -223,6 +239,7 @@ ADD_MD5_FILE:
|
|
223
239
|
MD5 sum calculation. This means that a change in the file will cause COSMOS to
|
224
240
|
re-process the cmd/tlm defintions and create a new set of marshal files.
|
225
241
|
since: 4.0.0
|
242
|
+
example: ADD_MD5_FILE lib/user_version.rb
|
226
243
|
parameters:
|
227
244
|
- name: Filename
|
228
245
|
required: true
|