openc3-cosmos-geosim 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/microservices/GEOSIM/targets/GEOSAT/cmd_tlm/cmds.txt +0 -110
- data/microservices/GEOSIM/targets/GEOSAT/cmd_tlm/tlm.txt +0 -163
- data/microservices/GEOSIM/targets/GEOSAT/lib/sim_sat.rb +6 -379
- metadata +2 -4
- data/microservices/GEOSIM/targets/GEOSAT/data/attitude.bin +0 -0
- data/microservices/GEOSIM/targets/GEOSAT/data/position.bin +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e89fcaba782b9edd416bc892ff37e10a16b64df1d41041f785bcf0efafce8432
|
4
|
+
data.tar.gz: a1d5527330f925bfcd6cc502c063f3381358c1da4ebdc32b27b3c5228e0eaf3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1c5107657c7fcee85409953bbb1b52832d7b6054f505bbebed4f64d0f8312bd541bd33611989f8285f5664f95876c97d963394590e2bc25b2a3e1a250755c33
|
7
|
+
data.tar.gz: 0aef2be7641dad9901081cdd2cdd43670ff8998fc43651af7e4f07669ee0661a7745028f2df4e3b72956cfcf2c8457d59c6aa6b90e02ed7f98b2c65835a58f28
|
@@ -28,29 +28,6 @@ COMMAND GEOSAT COLLECT BIG_ENDIAN "Starts a collect on the GEOSAT target"
|
|
28
28
|
APPEND_PARAMETER TEMP 32 FLOAT 0.0 25.0 0.0 "Collect temperature"
|
29
29
|
UNITS Celsius C
|
30
30
|
|
31
|
-
COMMAND GEOSAT ABORT BIG_ENDIAN "Aborts a collect on the GEOSAT instrument"
|
32
|
-
PARAMETER CCSDSVER 0 3 UINT 0 0 0 "CCSDS primary header version number"
|
33
|
-
PARAMETER CCSDSTYPE 3 1 UINT 1 1 1 "CCSDS primary header packet type"
|
34
|
-
PARAMETER CCSDSSHF 4 1 UINT 0 0 0 "CCSDS primary header secondary header flag"
|
35
|
-
ID_PARAMETER CCSDSAPID 5 11 UINT 0 2047 3 "CCSDS primary header application id"
|
36
|
-
PARAMETER CCSDSSEQFLAGS 16 2 UINT 3 3 3 "CCSDS primary header sequence flags"
|
37
|
-
PARAMETER CCSDSSEQCNT 18 14 UINT 0 16383 0 "CCSDS primary header sequence count"
|
38
|
-
OVERFLOW TRUNCATE
|
39
|
-
PARAMETER CCSDSLENGTH 32 16 UINT MIN MAX 12 "CCSDS primary header packet length"
|
40
|
-
APPEND_PARAMETER IGNORE 8 UINT MIN MAX 0 "Ignored item"
|
41
|
-
|
42
|
-
COMMAND GEOSAT CLEAR BIG_ENDIAN "Clears counters on the GEOSAT instrument"
|
43
|
-
HAZARDOUS "Clearing counters may lose valuable information."
|
44
|
-
PARAMETER CCSDSVER 0 3 UINT 0 0 0 "CCSDS primary header version number"
|
45
|
-
PARAMETER CCSDSTYPE 3 1 UINT 1 1 1 "CCSDS primary header packet type"
|
46
|
-
PARAMETER CCSDSSHF 4 1 UINT 0 0 0 "CCSDS primary header secondary header flag"
|
47
|
-
ID_PARAMETER CCSDSAPID 5 11 UINT 0 2047 4 "CCSDS primary header application id"
|
48
|
-
PARAMETER CCSDSSEQFLAGS 16 2 UINT 3 3 3 "CCSDS primary header sequence flags"
|
49
|
-
PARAMETER CCSDSSEQCNT 18 14 UINT 0 16383 0 "CCSDS primary header sequence count"
|
50
|
-
OVERFLOW TRUNCATE
|
51
|
-
PARAMETER CCSDSLENGTH 32 16 UINT MIN MAX 12 "CCSDS primary header packet length"
|
52
|
-
APPEND_PARAMETER IGNORE 8 UINT MIN MAX 0 "Ignored item"
|
53
|
-
|
54
31
|
COMMAND GEOSAT SET_MODE BIG_ENDIAN "Change spacecraft mode"
|
55
32
|
PARAMETER CCSDSVER 0 3 UINT 0 0 0 "CCSDS primary header version number"
|
56
33
|
PARAMETER CCSDSTYPE 3 1 UINT 1 1 1 "CCSDS primary header packet type"
|
@@ -66,80 +43,6 @@ COMMAND GEOSAT SET_MODE BIG_ENDIAN "Change spacecraft mode"
|
|
66
43
|
STATE CHECKOUT 1
|
67
44
|
STATE OPERATE 2
|
68
45
|
|
69
|
-
COMMAND GEOSAT SLRPNLDEPLOY BIG_ENDIAN "Deploy solar array panel"
|
70
|
-
PARAMETER CCSDSVER 0 3 UINT 0 0 0 "CCSDS primary header version number"
|
71
|
-
PARAMETER CCSDSTYPE 3 1 UINT 1 1 1 "CCSDS primary header packet type"
|
72
|
-
PARAMETER CCSDSSHF 4 1 UINT 0 0 0 "CCSDS primary header secondary header flag"
|
73
|
-
ID_PARAMETER CCSDSAPID 5 11 UINT 0 2047 6 "CCSDS primary header application id"
|
74
|
-
PARAMETER CCSDSSEQFLAGS 16 2 UINT 3 3 3 "CCSDS primary header sequence flags"
|
75
|
-
PARAMETER CCSDSSEQCNT 18 14 UINT 0 16383 0 "CCSDS primary header sequence count"
|
76
|
-
OVERFLOW TRUNCATE
|
77
|
-
PARAMETER CCSDSLENGTH 32 16 UINT MIN MAX 12 "CCSDS primary header packet length"
|
78
|
-
APPEND_PARAMETER NUM 8 UINT 1 2 1 "Solar Array Number"
|
79
|
-
|
80
|
-
COMMAND GEOSAT SLRPNLSTOW BIG_ENDIAN "Stow solar array panel"
|
81
|
-
PARAMETER CCSDSVER 0 3 UINT 0 0 0 "CCSDS primary header version number"
|
82
|
-
PARAMETER CCSDSTYPE 3 1 UINT 1 1 1 "CCSDS primary header packet type"
|
83
|
-
PARAMETER CCSDSSHF 4 1 UINT 0 0 0 "CCSDS primary header secondary header flag"
|
84
|
-
ID_PARAMETER CCSDSAPID 5 11 UINT 0 2047 7 "CCSDS primary header application id"
|
85
|
-
PARAMETER CCSDSSEQFLAGS 16 2 UINT 3 3 3 "CCSDS primary header sequence flags"
|
86
|
-
PARAMETER CCSDSSEQCNT 18 14 UINT 0 16383 0 "CCSDS primary header sequence count"
|
87
|
-
OVERFLOW TRUNCATE
|
88
|
-
PARAMETER CCSDSLENGTH 32 16 UINT MIN MAX 12 "CCSDS primary header packet length"
|
89
|
-
APPEND_PARAMETER NUM 8 UINT 1 2 1 "Solar Array Number"
|
90
|
-
|
91
|
-
COMMAND GEOSAT SLRPNLANG BIG_ENDIAN "Set Solar Array Panel Angle"
|
92
|
-
PARAMETER CCSDSVER 0 3 UINT 0 0 0 "CCSDS primary header version number"
|
93
|
-
PARAMETER CCSDSTYPE 3 1 UINT 1 1 1 "CCSDS primary header packet type"
|
94
|
-
PARAMETER CCSDSSHF 4 1 UINT 0 0 0 "CCSDS primary header secondary header flag"
|
95
|
-
ID_PARAMETER CCSDSAPID 5 11 UINT 0 2047 8 "CCSDS primary header application id"
|
96
|
-
PARAMETER CCSDSSEQFLAGS 16 2 UINT 3 3 3 "CCSDS primary header sequence flags"
|
97
|
-
PARAMETER CCSDSSEQCNT 18 14 UINT 0 16383 0 "CCSDS primary header sequence count"
|
98
|
-
OVERFLOW TRUNCATE
|
99
|
-
PARAMETER CCSDSLENGTH 32 16 UINT MIN MAX 12 "CCSDS primary header packet length"
|
100
|
-
APPEND_PARAMETER NUM 8 UINT 1 2 1 "Solar Array Number"
|
101
|
-
APPEND_PARAMETER ANG 32 FLOAT 0 360 0 "Solar Array Angle"
|
102
|
-
UNITS DEGREES DEG
|
103
|
-
|
104
|
-
COMMAND GEOSAT TABLE_LOAD BIG_ENDIAN "Load table"
|
105
|
-
PARAMETER CCSDSVER 0 3 UINT 0 0 0 "CCSDS primary header version number"
|
106
|
-
PARAMETER CCSDSTYPE 3 1 UINT 1 1 1 "CCSDS primary header packet type"
|
107
|
-
PARAMETER CCSDSSHF 4 1 UINT 0 0 0 "CCSDS primary header secondary header flag"
|
108
|
-
ID_PARAMETER CCSDSAPID 5 11 UINT 0 2047 9 "CCSDS primary header application id"
|
109
|
-
PARAMETER CCSDSSEQFLAGS 16 2 UINT 3 3 3 "CCSDS primary header sequence flags"
|
110
|
-
PARAMETER CCSDSSEQCNT 18 14 UINT 0 16383 0 "CCSDS primary header sequence count"
|
111
|
-
OVERFLOW TRUNCATE
|
112
|
-
PARAMETER CCSDSLENGTH 32 16 UINT MIN MAX 12 "CCSDS primary header packet length"
|
113
|
-
APPEND_PARAMETER DATA 80 BLOCK "" "Table data"
|
114
|
-
|
115
|
-
COMMAND GEOSAT HTR_CTRL BIG_ENDIAN "Heater Control ON/OFF"
|
116
|
-
PARAMETER CCSDSVER 0 3 UINT 0 0 0 "CCSDS primary header version number"
|
117
|
-
PARAMETER CCSDSTYPE 3 1 UINT 1 1 1 "CCSDS primary header packet type"
|
118
|
-
PARAMETER CCSDSSHF 4 1 UINT 0 0 0 "CCSDS primary header secondary header flag"
|
119
|
-
ID_PARAMETER CCSDSAPID 5 11 UINT 0 2047 10 "CCSDS primary header application id"
|
120
|
-
PARAMETER CCSDSSEQFLAGS 16 2 UINT 3 3 3 "CCSDS primary header sequence flags"
|
121
|
-
PARAMETER CCSDSSEQCNT 18 14 UINT 0 16383 0 "CCSDS primary header sequence count"
|
122
|
-
OVERFLOW TRUNCATE
|
123
|
-
PARAMETER CCSDSLENGTH 32 16 UINT MIN MAX 12 "CCSDS primary header packet length"
|
124
|
-
APPEND_PARAMETER NUM 8 UINT 1 2 1 "Heater Number"
|
125
|
-
APPEND_PARAMETER STATE 8 UINT 0 1 0 "Desired State"
|
126
|
-
STATE OFF 0 HAZARDOUS
|
127
|
-
STATE ON 1
|
128
|
-
|
129
|
-
COMMAND GEOSAT HTR_STATE BIG_ENDIAN "Heater State ON/OFF"
|
130
|
-
PARAMETER CCSDSVER 0 3 UINT 0 0 0 "CCSDS primary header version number"
|
131
|
-
PARAMETER CCSDSTYPE 3 1 UINT 1 1 1 "CCSDS primary header packet type"
|
132
|
-
PARAMETER CCSDSSHF 4 1 UINT 0 0 0 "CCSDS primary header secondary header flag"
|
133
|
-
ID_PARAMETER CCSDSAPID 5 11 UINT 0 2047 11 "CCSDS primary header application id"
|
134
|
-
PARAMETER CCSDSSEQFLAGS 16 2 UINT 3 3 3 "CCSDS primary header sequence flags"
|
135
|
-
PARAMETER CCSDSSEQCNT 18 14 UINT 0 16383 0 "CCSDS primary header sequence count"
|
136
|
-
OVERFLOW TRUNCATE
|
137
|
-
PARAMETER CCSDSLENGTH 32 16 UINT MIN MAX 12 "CCSDS primary header packet length"
|
138
|
-
APPEND_PARAMETER NUM 8 UINT 1 2 1 "Heater Number"
|
139
|
-
APPEND_PARAMETER STATE 8 UINT 0 1 0 "Desired State"
|
140
|
-
STATE OFF 0
|
141
|
-
STATE ON 1
|
142
|
-
|
143
46
|
COMMAND GEOSAT HTR_SETPT BIG_ENDIAN "Heater Setpoint"
|
144
47
|
PARAMETER CCSDSVER 0 3 UINT 0 0 0 "CCSDS primary header version number"
|
145
48
|
PARAMETER CCSDSTYPE 3 1 UINT 1 1 1 "CCSDS primary header packet type"
|
@@ -151,16 +54,3 @@ COMMAND GEOSAT HTR_SETPT BIG_ENDIAN "Heater Setpoint"
|
|
151
54
|
PARAMETER CCSDSLENGTH 32 16 UINT MIN MAX 12 "CCSDS primary header packet length"
|
152
55
|
APPEND_PARAMETER NUM 8 UINT 1 2 1 "Heater Number"
|
153
56
|
APPEND_PARAMETER SETPT 32 FLOAT -100 100 0 "Setpoint"
|
154
|
-
|
155
|
-
COMMAND GEOSAT ADCS_CTRL BIG_ENDIAN "ADCS Control of Solar Panel Angle ON/OFF"
|
156
|
-
PARAMETER CCSDSVER 0 3 UINT 0 0 0 "CCSDS primary header version number"
|
157
|
-
PARAMETER CCSDSTYPE 3 1 UINT 1 1 1 "CCSDS primary header packet type"
|
158
|
-
PARAMETER CCSDSSHF 4 1 UINT 0 0 0 "CCSDS primary header secondary header flag"
|
159
|
-
ID_PARAMETER CCSDSAPID 5 11 UINT 0 2047 13 "CCSDS primary header application id"
|
160
|
-
PARAMETER CCSDSSEQFLAGS 16 2 UINT 3 3 3 "CCSDS primary header sequence flags"
|
161
|
-
PARAMETER CCSDSSEQCNT 18 14 UINT 0 16383 0 "CCSDS primary header sequence count"
|
162
|
-
OVERFLOW TRUNCATE
|
163
|
-
PARAMETER CCSDSLENGTH 32 16 UINT MIN MAX 12 "CCSDS primary header packet length"
|
164
|
-
APPEND_PARAMETER STATE 8 UINT 0 1 0 "Desired State"
|
165
|
-
STATE OFF 0 HAZARDOUS
|
166
|
-
STATE ON 1
|
@@ -79,68 +79,6 @@ TELEMETRY GEOSAT THERMAL BIG_ENDIAN "Thermal data"
|
|
79
79
|
ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
|
80
80
|
READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS
|
81
81
|
|
82
|
-
TELEMETRY GEOSAT ADCS BIG_ENDIAN "Position and attitude data"
|
83
|
-
APPEND_ITEM CCSDSVER 3 UINT "CCSDS packet version number (See CCSDS 133.0-B-1)"
|
84
|
-
APPEND_ITEM CCSDSTYPE 1 UINT "CCSDS packet type (command or telemetry)"
|
85
|
-
STATE TLM 0
|
86
|
-
STATE CMD 1
|
87
|
-
APPEND_ITEM CCSDSSHF 1 UINT "CCSDS secondary header flag"
|
88
|
-
STATE FALSE 0
|
89
|
-
STATE TRUE 1
|
90
|
-
APPEND_ID_ITEM CCSDSAPID 11 UINT 3 "CCSDS application process id"
|
91
|
-
APPEND_ITEM CCSDSSEQFLAGS 2 UINT "CCSDS sequence flags"
|
92
|
-
STATE FIRST 1
|
93
|
-
STATE CONT 0
|
94
|
-
STATE LAST 2
|
95
|
-
STATE NOGROUP 3
|
96
|
-
APPEND_ITEM CCSDSSEQCNT 14 UINT "CCSDS packet sequence count"
|
97
|
-
OVERFLOW TRUNCATE
|
98
|
-
APPEND_ITEM CCSDSLENGTH 16 UINT "CCSDS packet data length"
|
99
|
-
APPEND_ITEM TIMESEC 32 UINT "Seconds since epoch (January 1st, 1970, midnight)"
|
100
|
-
APPEND_ITEM TIMEUS 32 UINT "Microseconds of second"
|
101
|
-
ITEM POSX 128 32 FLOAT "Position X"
|
102
|
-
UNITS METERS M
|
103
|
-
ITEM POSY 160 32 FLOAT "Position Y"
|
104
|
-
UNITS METERS M
|
105
|
-
ITEM POSZ 192 32 FLOAT "Position Z"
|
106
|
-
UNITS METERS M
|
107
|
-
ITEM VELX 224 32 FLOAT "Velocity X"
|
108
|
-
UNITS METERS_PER_SECOND MPS
|
109
|
-
ITEM VELY 256 32 FLOAT "Velocity Y"
|
110
|
-
UNITS METERS_PER_SECOND MPS
|
111
|
-
ITEM VELZ 288 32 FLOAT "Velocity Z"
|
112
|
-
UNITS METERS_PER_SECOND MPS
|
113
|
-
ITEM Q1 320 32 FLOAT "Quaternion param 1"
|
114
|
-
FORMAT_STRING "%0.6f"
|
115
|
-
ITEM Q2 352 32 FLOAT "Quaternion param 2"
|
116
|
-
FORMAT_STRING "%0.6f"
|
117
|
-
ITEM Q3 384 32 FLOAT "Quaternion param 3"
|
118
|
-
FORMAT_STRING "%0.6f"
|
119
|
-
ITEM Q4 416 32 FLOAT "Quaternion param 4"
|
120
|
-
FORMAT_STRING "%0.6f"
|
121
|
-
ITEM BIASX 448 32 FLOAT "Body X rate bias"
|
122
|
-
FORMAT_STRING "%0.6f"
|
123
|
-
ITEM BIASY 480 32 FLOAT "Body Y rate bias"
|
124
|
-
FORMAT_STRING "%0.6f"
|
125
|
-
ITEM BIASZ 512 32 FLOAT "Body Z rate bias"
|
126
|
-
FORMAT_STRING "%0.6f"
|
127
|
-
APPEND_ITEM STAR1ID 16 UINT "Star 1 id"
|
128
|
-
APPEND_ITEM STAR2ID 16 UINT "Star 2 id"
|
129
|
-
APPEND_ITEM STAR3ID 16 UINT "Star 3 id"
|
130
|
-
APPEND_ITEM STAR4ID 16 UINT "Star 4 id"
|
131
|
-
APPEND_ITEM STAR5ID 16 UINT "Star 5 id"
|
132
|
-
ITEM POSPROGRESS 624 32 FLOAT "Position file progress"
|
133
|
-
FORMAT_STRING "%0.2f"
|
134
|
-
ITEM ATTPROGRESS 656 32 FLOAT "Attitude file progress"
|
135
|
-
FORMAT_STRING "%0.2f"
|
136
|
-
APPEND_ITEM SR_ANG_TO_SUN 32 FLOAT "Ideal Solar Array Angle to Point at Sun"
|
137
|
-
FORMAT_STRING "%0.2f"
|
138
|
-
APPEND_ITEM ADCS_CTRL 8 UINT "ADCS Control ON/OFF"
|
139
|
-
STATE OFF 0 YELLOW
|
140
|
-
STATE ON 1 GREEN
|
141
|
-
ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
|
142
|
-
READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS
|
143
|
-
|
144
82
|
TELEMETRY GEOSAT EVENT BIG_ENDIAN "Event packet"
|
145
83
|
APPEND_ITEM CCSDSVER 3 UINT "CCSDS packet version number (See CCSDS 133.0-B-1)"
|
146
84
|
APPEND_ITEM CCSDSTYPE 1 UINT "CCSDS packet type (command or telemetry)"
|
@@ -163,104 +101,3 @@ TELEMETRY GEOSAT EVENT BIG_ENDIAN "Event packet"
|
|
163
101
|
APPEND_ITEM MESSAGE 0 STRING "Event Message"
|
164
102
|
ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
|
165
103
|
READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS
|
166
|
-
|
167
|
-
TELEMETRY GEOSAT IMAGE BIG_ENDIAN "Packet with image data"
|
168
|
-
APPEND_ITEM CCSDSVER 3 UINT "CCSDS packet version number (See CCSDS 133.0-B-1)"
|
169
|
-
APPEND_ITEM CCSDSTYPE 1 UINT "CCSDS packet type (command or telemetry)"
|
170
|
-
STATE TLM 0
|
171
|
-
STATE CMD 1
|
172
|
-
APPEND_ITEM CCSDSSHF 1 UINT "CCSDS secondary header flag"
|
173
|
-
STATE FALSE 0
|
174
|
-
STATE TRUE 1
|
175
|
-
APPEND_ID_ITEM CCSDSAPID 11 UINT 5 "CCSDS application process id"
|
176
|
-
APPEND_ITEM CCSDSSEQFLAGS 2 UINT "CCSDS sequence flags"
|
177
|
-
STATE FIRST 1
|
178
|
-
STATE CONT 0
|
179
|
-
STATE LAST 2
|
180
|
-
STATE NOGROUP 3
|
181
|
-
APPEND_ITEM CCSDSSEQCNT 14 UINT "CCSDS packet sequence count"
|
182
|
-
OVERFLOW TRUNCATE
|
183
|
-
APPEND_ITEM CCSDSLENGTH 16 UINT "CCSDS packet data length"
|
184
|
-
APPEND_ITEM TIMESEC 32 UINT "Seconds since epoch (January 1st, 1970, midnight)"
|
185
|
-
APPEND_ITEM TIMEUS 32 UINT "Microseconds of second"
|
186
|
-
ITEM BYTES 128 32 UINT "First bytes"
|
187
|
-
FORMAT_STRING '0x%08x'
|
188
|
-
ITEM IMAGE 128 0 BLOCK "Image Data"
|
189
|
-
OVERLAP # Notify OpenC3 that this is intentionally overlapping the BYTES field
|
190
|
-
ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
|
191
|
-
READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS
|
192
|
-
|
193
|
-
TELEMETRY GEOSAT MECH BIG_ENDIAN "Mechanism status"
|
194
|
-
APPEND_ITEM CCSDSVER 3 UINT "CCSDS packet version number (See CCSDS 133.0-B-1)"
|
195
|
-
APPEND_ITEM CCSDSTYPE 1 UINT "CCSDS packet type (command or telemetry)"
|
196
|
-
STATE TLM 0
|
197
|
-
STATE CMD 1
|
198
|
-
APPEND_ITEM CCSDSSHF 1 UINT "CCSDS secondary header flag"
|
199
|
-
STATE FALSE 0
|
200
|
-
STATE TRUE 1
|
201
|
-
APPEND_ID_ITEM CCSDSAPID 11 UINT 6 "CCSDS application process id"
|
202
|
-
APPEND_ITEM CCSDSSEQFLAGS 2 UINT "CCSDS sequence flags"
|
203
|
-
STATE FIRST 1
|
204
|
-
STATE CONT 0
|
205
|
-
STATE LAST 2
|
206
|
-
STATE NOGROUP 3
|
207
|
-
APPEND_ITEM CCSDSSEQCNT 14 UINT "CCSDS packet sequence count"
|
208
|
-
OVERFLOW TRUNCATE
|
209
|
-
APPEND_ITEM CCSDSLENGTH 16 UINT "CCSDS packet data length"
|
210
|
-
APPEND_ITEM TIMESEC 32 UINT "Seconds since epoch (January 1st, 1970, midnight)"
|
211
|
-
APPEND_ITEM TIMEUS 32 UINT "Microseconds of second"
|
212
|
-
APPEND_ITEM SLRPNL1_ANG 32 FLOAT "Solar panel 1 angle"
|
213
|
-
UNITS DEGREES DEG
|
214
|
-
APPEND_ITEM SLRPNL2_ANG 32 FLOAT "Solar panel 2 angle"
|
215
|
-
UNITS DEGREES DEG
|
216
|
-
APPEND_ITEM SLRPNL1_STATE 8 UINT "Solar panel 1 state DEPLOYED/STOWED"
|
217
|
-
STATE STOWED 0 YELLOW
|
218
|
-
STATE DEPLOYED 1 GREEN
|
219
|
-
APPEND_ITEM SLRPNL2_STATE 8 UINT "Solar panel 2 state DEPLOYED/STOWED"
|
220
|
-
STATE STOWED 0 YELLOW
|
221
|
-
STATE DEPLOYED 1 GREEN
|
222
|
-
APPEND_ITEM SLRPNL1_PWR 32 FLOAT "Solar panel 1 power"
|
223
|
-
LIMITS DEFAULT 1 ENABLED 50 100 505 510
|
224
|
-
UNITS WATTS W
|
225
|
-
APPEND_ITEM SLRPNL2_PWR 32 FLOAT "Solar panel 2 power"
|
226
|
-
LIMITS DEFAULT 1 ENABLED 50 100 505 510
|
227
|
-
UNITS WATTS W
|
228
|
-
APPEND_ITEM BATTERY 32 FLOAT "Battery Percentage"
|
229
|
-
UNITS PERCENT %
|
230
|
-
LIMITS DEFAULT 1 ENABLED 10 50 105 110
|
231
|
-
FORMAT_STRING "%0.2f"
|
232
|
-
ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
|
233
|
-
READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS
|
234
|
-
|
235
|
-
TELEMETRY GEOSAT IMAGER BIG_ENDIAN "Imager Status"
|
236
|
-
APPEND_ITEM CCSDSVER 3 UINT "CCSDS packet version number (See CCSDS 133.0-B-1)"
|
237
|
-
APPEND_ITEM CCSDSTYPE 1 UINT "CCSDS packet type (command or telemetry)"
|
238
|
-
STATE TLM 0
|
239
|
-
STATE CMD 1
|
240
|
-
APPEND_ITEM CCSDSSHF 1 UINT "CCSDS secondary header flag"
|
241
|
-
STATE FALSE 0
|
242
|
-
STATE TRUE 1
|
243
|
-
APPEND_ID_ITEM CCSDSAPID 11 UINT 7 "CCSDS application process id"
|
244
|
-
APPEND_ITEM CCSDSSEQFLAGS 2 UINT "CCSDS sequence flags"
|
245
|
-
STATE FIRST 1
|
246
|
-
STATE CONT 0
|
247
|
-
STATE LAST 2
|
248
|
-
STATE NOGROUP 3
|
249
|
-
APPEND_ITEM CCSDSSEQCNT 14 UINT "CCSDS packet sequence count"
|
250
|
-
OVERFLOW TRUNCATE
|
251
|
-
APPEND_ITEM CCSDSLENGTH 16 UINT "CCSDS packet data length"
|
252
|
-
APPEND_ITEM TIMESEC 32 UINT "Seconds since epoch (January 1st, 1970, midnight)"
|
253
|
-
APPEND_ITEM TIMEUS 32 UINT "Microseconds of second"
|
254
|
-
APPEND_ITEM COLLECTS 16 UINT "Number of collects"
|
255
|
-
APPEND_ITEM DURATION 32 FLOAT "Most recent collect duration"
|
256
|
-
APPEND_ITEM COLLECT_TYPE 16 UINT "Most recent collect type"
|
257
|
-
STATE NORMAL 0
|
258
|
-
STATE SPECIAL 1
|
259
|
-
STATE ERROR ANY
|
260
|
-
APPEND_ITEM IMAGER_STATE 8 UINT "Imager State ON/OFF"
|
261
|
-
STATE OFF 0
|
262
|
-
STATE ON 1
|
263
|
-
APPEND_ITEM IMAGER_PWR 32 FLOAT "Image Power"
|
264
|
-
UNITS WATTS W
|
265
|
-
ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
|
266
|
-
READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS
|
@@ -27,46 +27,7 @@ module OpenC3
|
|
27
27
|
class SimSat < SimulatedTarget
|
28
28
|
def initialize(target_name)
|
29
29
|
super(target_name)
|
30
|
-
|
31
30
|
@target = System.targets[target_name]
|
32
|
-
position_filename = File.join(@target.dir, 'data', 'position.bin')
|
33
|
-
attitude_filename = File.join(@target.dir, 'data', 'attitude.bin')
|
34
|
-
@position_file = File.open(position_filename, 'rb')
|
35
|
-
@attitude_file = File.open(attitude_filename, 'rb')
|
36
|
-
@position_file_size = File.size(position_filename)
|
37
|
-
@attitude_file_size = File.size(attitude_filename)
|
38
|
-
@position_file_bytes_read = 0
|
39
|
-
@attitude_file_bytes_read = 0
|
40
|
-
|
41
|
-
@pos_packet = Structure.new(:BIG_ENDIAN)
|
42
|
-
@pos_packet.append_item('DAY', 16, :UINT)
|
43
|
-
@pos_packet.append_item('MSOD', 32, :UINT)
|
44
|
-
@pos_packet.append_item('USOMS', 16, :UINT)
|
45
|
-
@pos_packet.append_item('POSX', 32, :FLOAT)
|
46
|
-
@pos_packet.append_item('POSY', 32, :FLOAT)
|
47
|
-
@pos_packet.append_item('POSZ', 32, :FLOAT)
|
48
|
-
@pos_packet.append_item('SPARE1', 16, :UINT)
|
49
|
-
@pos_packet.append_item('SPARE2', 32, :UINT)
|
50
|
-
@pos_packet.append_item('SPARE3', 16, :UINT)
|
51
|
-
@pos_packet.append_item('VELX', 32, :FLOAT)
|
52
|
-
@pos_packet.append_item('VELY', 32, :FLOAT)
|
53
|
-
@pos_packet.append_item('VELZ', 32, :FLOAT)
|
54
|
-
@pos_packet.append_item('SPARE4', 32, :UINT)
|
55
|
-
@pos_packet.enable_method_missing
|
56
|
-
|
57
|
-
@att_packet = Structure.new(:BIG_ENDIAN)
|
58
|
-
@att_packet.append_item('DAY', 16, :UINT)
|
59
|
-
@att_packet.append_item('MSOD', 32, :UINT)
|
60
|
-
@att_packet.append_item('USOMS', 16, :UINT)
|
61
|
-
@att_packet.append_item('Q1', 32, :FLOAT)
|
62
|
-
@att_packet.append_item('Q2', 32, :FLOAT)
|
63
|
-
@att_packet.append_item('Q3', 32, :FLOAT)
|
64
|
-
@att_packet.append_item('Q4', 32, :FLOAT)
|
65
|
-
@att_packet.append_item('BIASX', 32, :FLOAT)
|
66
|
-
@att_packet.append_item('BIASY', 32, :FLOAT)
|
67
|
-
@att_packet.append_item('BIASZ', 32, :FLOAT)
|
68
|
-
@att_packet.append_item('SPARE', 32, :FLOAT)
|
69
|
-
@att_packet.enable_method_missing
|
70
31
|
|
71
32
|
# Initialize fixed parts of packets
|
72
33
|
packet = @tlm_packets['HEALTH_STATUS']
|
@@ -84,45 +45,9 @@ module OpenC3
|
|
84
45
|
packet.CcsdsSeqFlags = 'NOGROUP'
|
85
46
|
packet.CcsdsLength = packet.buffer.length - 7
|
86
47
|
|
87
|
-
packet = @tlm_packets['ADCS']
|
88
|
-
packet.enable_method_missing
|
89
|
-
packet.CcsdsSeqFlags = 'NOGROUP'
|
90
|
-
packet.CcsdsLength = packet.buffer.length - 7
|
91
|
-
|
92
|
-
packet = @tlm_packets['IMAGE']
|
93
|
-
packet.enable_method_missing
|
94
|
-
packet.CcsdsSeqFlags = 'NOGROUP'
|
95
|
-
packet.image = ("\x05" * 10000) + "The Secret is Astral Body"
|
96
|
-
packet.CcsdsLength = packet.buffer.length - 7
|
97
|
-
|
98
|
-
packet = @tlm_packets['MECH']
|
99
|
-
packet.enable_method_missing
|
100
|
-
packet.CcsdsSeqFlags = 'NOGROUP'
|
101
|
-
packet.CcsdsLength = packet.buffer.length - 7
|
102
|
-
|
103
|
-
packet = @tlm_packets['IMAGER']
|
104
|
-
packet.enable_method_missing
|
105
|
-
packet.CcsdsSeqFlags = 'NOGROUP'
|
106
|
-
packet.CcsdsLength = packet.buffer.length - 7
|
107
|
-
|
108
48
|
@get_count = 0
|
109
49
|
@queue = Queue.new
|
110
50
|
|
111
|
-
# ADCS
|
112
|
-
@trackStars = Array.new
|
113
|
-
@trackStars[0] = 1237
|
114
|
-
@trackStars[1] = 1329
|
115
|
-
@trackStars[2] = 1333
|
116
|
-
@trackStars[3] = 1139
|
117
|
-
@trackStars[4] = 1161
|
118
|
-
@trackStars[5] = 682
|
119
|
-
@trackStars[6] = 717
|
120
|
-
@trackStars[7] = 814
|
121
|
-
@trackStars[8] = 583
|
122
|
-
@trackStars[9] = 622
|
123
|
-
@adcs_ctrl = 'OFF'
|
124
|
-
@sr_ang_to_sun = 0
|
125
|
-
|
126
51
|
# HEALTH_STATUS
|
127
52
|
@cmd_acpt_cnt = 0
|
128
53
|
@cmd_rjct_cnt = 0
|
@@ -133,40 +58,19 @@ module OpenC3
|
|
133
58
|
# THERMAL
|
134
59
|
@temp1 = 0
|
135
60
|
@temp2 = 0
|
136
|
-
@heater1_ctrl = '
|
61
|
+
@heater1_ctrl = 'ON'
|
137
62
|
@heater1_state = 'OFF'
|
138
63
|
@heater1_setpt = 0.0
|
139
64
|
@heater1_pwr = 0.0
|
140
|
-
@heater2_ctrl = '
|
65
|
+
@heater2_ctrl = 'ON'
|
141
66
|
@heater2_state = 'OFF'
|
142
67
|
@heater2_setpt = 0.0
|
143
68
|
@heater2_pwr = 0.0
|
144
|
-
|
145
|
-
# MECH
|
146
|
-
@slrpnl1_ang = 180.0
|
147
|
-
@slrpnl2_ang = 180.0
|
148
|
-
@slrpnl1_state = 'STOWED'
|
149
|
-
@slrpnl2_state = 'STOWED'
|
150
|
-
@slrpnl1_pwr = 0.0
|
151
|
-
@slrpnl2_pwr = 0.0
|
152
|
-
@pwr_watt_seconds = INIT_PWR_WATT_SECONDS
|
153
|
-
@battery = (@pwr_watt_seconds.to_f / MAX_PWR_WATT_SECONDS.to_f) * 100.0
|
154
|
-
|
155
|
-
# IMAGER
|
156
|
-
@collects = 0
|
157
|
-
@duration = 10
|
158
|
-
@collect_type = 'NORMAL'
|
159
|
-
@imager_state = 'OFF'
|
160
|
-
@imager_pwr = 0.0
|
161
|
-
@collect_end_time = nil
|
162
69
|
end
|
163
70
|
|
164
71
|
def set_rates
|
165
|
-
set_rate('ADCS', 10)
|
166
72
|
set_rate('HEALTH_STATUS', 100)
|
167
73
|
set_rate('THERMAL', 100)
|
168
|
-
set_rate('MECH', 100)
|
169
|
-
set_rate('IMAGER', 100)
|
170
74
|
end
|
171
75
|
|
172
76
|
def accept_cmd(message = nil)
|
@@ -211,16 +115,6 @@ module OpenC3
|
|
211
115
|
reject_cmd("Mode must be OPERATE to collect images")
|
212
116
|
end
|
213
117
|
|
214
|
-
when 'ABORT'
|
215
|
-
@collect_end_time = nil
|
216
|
-
accept_cmd()
|
217
|
-
|
218
|
-
when 'CLEAR'
|
219
|
-
accept_cmd()
|
220
|
-
@collects = 0
|
221
|
-
@cmd_acpt_cnt = 0
|
222
|
-
@cmd_rjct_cnt = 0
|
223
|
-
|
224
118
|
when 'SET_MODE'
|
225
119
|
mode = packet.read('mode')
|
226
120
|
case mode
|
@@ -228,122 +122,13 @@ module OpenC3
|
|
228
122
|
@mode = mode
|
229
123
|
accept_cmd()
|
230
124
|
when 'CHECKOUT'
|
231
|
-
|
232
|
-
@mode = mode
|
233
|
-
accept_cmd()
|
234
|
-
else
|
235
|
-
reject_cmd("Cannot enter checkout if battery < 50.0%")
|
236
|
-
end
|
237
|
-
when 'OPERATE'
|
238
|
-
if @temp1 < 35.0 and @temp1 > 25.0 and @temp2 < 35.0 and @temp2 > 25.0
|
239
|
-
@mode = mode
|
240
|
-
accept_cmd()
|
241
|
-
else
|
242
|
-
reject_cmd("Cannot enter OPERATE unless temperatures are stable near 30.0")
|
243
|
-
end
|
244
|
-
else
|
245
|
-
reject_cmd("Invalid Mode: #{mode}")
|
246
|
-
end
|
247
|
-
|
248
|
-
when 'SLRPNLDEPLOY'
|
249
|
-
num = packet.read('NUM')
|
250
|
-
case num
|
251
|
-
when 1
|
252
|
-
@slrpnl1_state = 'DEPLOYED'
|
253
|
-
accept_cmd()
|
254
|
-
when 2
|
255
|
-
@slrpnl2_state = 'DEPLOYED'
|
256
|
-
accept_cmd()
|
257
|
-
else
|
258
|
-
reject_cmd("Invalid Solar Array Number: #{num}")
|
259
|
-
end
|
260
|
-
|
261
|
-
when 'SLRPNLSTOW'
|
262
|
-
num = packet.read('NUM')
|
263
|
-
case num
|
264
|
-
when 1
|
265
|
-
@slrpnl1_state = 'STOWED'
|
125
|
+
@mode = mode
|
266
126
|
accept_cmd()
|
267
|
-
when
|
268
|
-
@
|
127
|
+
when 'OPERATE'
|
128
|
+
@mode = mode
|
269
129
|
accept_cmd()
|
270
130
|
else
|
271
|
-
reject_cmd("Invalid
|
272
|
-
end
|
273
|
-
|
274
|
-
when 'SLRPNLANG'
|
275
|
-
num = packet.read('NUM')
|
276
|
-
ang = packet.read('ANG')
|
277
|
-
case num
|
278
|
-
when 1
|
279
|
-
case ang
|
280
|
-
when 0..360
|
281
|
-
@slrpnl1_ang = ang
|
282
|
-
accept_cmd()
|
283
|
-
else
|
284
|
-
reject_cmd("Invalid Solar Array Angle: #{setpt}")
|
285
|
-
end
|
286
|
-
when 2
|
287
|
-
case ang
|
288
|
-
when 0..360
|
289
|
-
@slrpnl2_ang = ang
|
290
|
-
accept_cmd()
|
291
|
-
else
|
292
|
-
reject_cmd("Invalid Solar Array Angle: #{setpt}")
|
293
|
-
end
|
294
|
-
else
|
295
|
-
reject_cmd("Invalid Solar Array Number: #{num}")
|
296
|
-
end
|
297
|
-
|
298
|
-
when 'TABLE_LOAD'
|
299
|
-
@table_data = packet.read('DATA')
|
300
|
-
|
301
|
-
when 'HTR_CTRL'
|
302
|
-
num = packet.read('NUM')
|
303
|
-
state = packet.read('STATE')
|
304
|
-
case num
|
305
|
-
when 1
|
306
|
-
case state
|
307
|
-
when 'ON', 'OFF'
|
308
|
-
@heater1_ctrl = state
|
309
|
-
accept_cmd()
|
310
|
-
else
|
311
|
-
reject_cmd("Invalid Heater Control: #{state}")
|
312
|
-
end
|
313
|
-
when 2
|
314
|
-
case state
|
315
|
-
when 'ON', 'OFF'
|
316
|
-
@heater2_ctrl = state
|
317
|
-
accept_cmd()
|
318
|
-
else
|
319
|
-
reject_cmd("Invalid Heater Control: #{state}")
|
320
|
-
end
|
321
|
-
else
|
322
|
-
reject_cmd("Invalid Heater Number: #{num}")
|
323
|
-
end
|
324
|
-
|
325
|
-
when 'HTR_STATE'
|
326
|
-
num = packet.read('NUM')
|
327
|
-
state = packet.read('STATE')
|
328
|
-
case num
|
329
|
-
when 1
|
330
|
-
case state
|
331
|
-
when 'ON', 'OFF'
|
332
|
-
@heater1_state = state
|
333
|
-
accept_cmd()
|
334
|
-
else
|
335
|
-
reject_cmd("Invalid Heater State: #{state}")
|
336
|
-
end
|
337
|
-
when 2
|
338
|
-
case state
|
339
|
-
when 'ON', 'OFF'
|
340
|
-
@heater2_state = state
|
341
|
-
accept_cmd()
|
342
|
-
else
|
343
|
-
reject_cmd("Invalid Heater State: #{state}")
|
344
|
-
end
|
345
|
-
else
|
346
|
-
reject_cmd("Invalid Heater Number: #{num}")
|
131
|
+
reject_cmd("Invalid Mode: #{mode}")
|
347
132
|
end
|
348
133
|
|
349
134
|
when 'HTR_SETPT'
|
@@ -370,15 +155,6 @@ module OpenC3
|
|
370
155
|
reject_cmd("Invalid Heater Number: #{num}")
|
371
156
|
end
|
372
157
|
|
373
|
-
when 'ADCS_CTRL'
|
374
|
-
state = packet.read('STATE')
|
375
|
-
case state
|
376
|
-
when 'ON', 'OFF'
|
377
|
-
@adcs_ctrl = state
|
378
|
-
accept_cmd()
|
379
|
-
else
|
380
|
-
reject_cmd("Invalid ADCS Control: #{state}")
|
381
|
-
end
|
382
158
|
end
|
383
159
|
end
|
384
160
|
|
@@ -398,73 +174,6 @@ module OpenC3
|
|
398
174
|
|
399
175
|
pending_packets.each do |packet|
|
400
176
|
case packet.packet_name
|
401
|
-
when 'ADCS'
|
402
|
-
# Read 44 Bytes for Position Data
|
403
|
-
pos_data = nil
|
404
|
-
begin
|
405
|
-
pos_data = @position_file.read(44)
|
406
|
-
@position_file_bytes_read += 44
|
407
|
-
rescue
|
408
|
-
# Do Nothing
|
409
|
-
end
|
410
|
-
|
411
|
-
if pos_data.nil? or pos_data.length == 0
|
412
|
-
# Assume end of file - close and reopen
|
413
|
-
@position_file.close
|
414
|
-
@position_file = File.open(File.join(@target.dir, 'data', 'position.bin'), 'rb')
|
415
|
-
pos_data = @position_file.read(44)
|
416
|
-
@position_file_bytes_read = 44
|
417
|
-
end
|
418
|
-
|
419
|
-
@pos_packet.buffer = pos_data
|
420
|
-
packet.posx = @pos_packet.posx
|
421
|
-
packet.posy = @pos_packet.posy
|
422
|
-
packet.posz = @pos_packet.posz
|
423
|
-
packet.velx = @pos_packet.velx
|
424
|
-
packet.vely = @pos_packet.vely
|
425
|
-
packet.velz = @pos_packet.velz
|
426
|
-
|
427
|
-
# Read 40 Bytes for Attitude Data
|
428
|
-
att_data = nil
|
429
|
-
begin
|
430
|
-
att_data = @attitude_file.read(40)
|
431
|
-
@attitude_file_bytes_read += 40
|
432
|
-
rescue
|
433
|
-
# Do Nothing
|
434
|
-
end
|
435
|
-
|
436
|
-
if att_data.nil? or att_data.length == 0
|
437
|
-
@attitude_file.close
|
438
|
-
@attitude_file = File.open(File.join(@target.dir, 'data', 'attitude.bin'), 'rb')
|
439
|
-
att_data = @attitude_file.read(40)
|
440
|
-
@attitude_file_bytes_read = 40
|
441
|
-
end
|
442
|
-
|
443
|
-
@att_packet.buffer = att_data
|
444
|
-
packet.q1 = @att_packet.q1
|
445
|
-
packet.q2 = @att_packet.q2
|
446
|
-
packet.q3 = @att_packet.q3
|
447
|
-
packet.q4 = @att_packet.q4
|
448
|
-
packet.biasx = @att_packet.biasx
|
449
|
-
packet.biasy = @att_packet.biasy
|
450
|
-
packet.biasy = @att_packet.biasz
|
451
|
-
|
452
|
-
packet.star1id = @trackStars[((@get_count / 100) + 0) % 10]
|
453
|
-
packet.star2id = @trackStars[((@get_count / 100) + 1) % 10]
|
454
|
-
packet.star3id = @trackStars[((@get_count / 100) + 2) % 10]
|
455
|
-
packet.star4id = @trackStars[((@get_count / 100) + 3) % 10]
|
456
|
-
packet.star5id = @trackStars[((@get_count / 100) + 4) % 10]
|
457
|
-
|
458
|
-
packet.posprogress = (@position_file_bytes_read.to_f / @position_file_size.to_f) * 100.0
|
459
|
-
packet.attprogress = (@attitude_file_bytes_read.to_f / @attitude_file_size.to_f) * 100.0
|
460
|
-
@sr_ang_to_sun = packet.posprogress * 3.6
|
461
|
-
packet.sr_ang_to_sun = @sr_ang_to_sun
|
462
|
-
packet.adcs_ctrl = @adcs_ctrl
|
463
|
-
|
464
|
-
packet.timesec = time.tv_sec
|
465
|
-
packet.timeus = time.tv_usec
|
466
|
-
packet.ccsdsseqcnt += 1
|
467
|
-
|
468
177
|
when 'HEALTH_STATUS'
|
469
178
|
packet.timesec = time.tv_sec
|
470
179
|
packet.timeus = time.tv_usec
|
@@ -535,88 +244,6 @@ module OpenC3
|
|
535
244
|
packet.heater2_pwr = @heater2_pwr
|
536
245
|
packet.temp1 = @temp1
|
537
246
|
packet.temp2 = @temp2
|
538
|
-
|
539
|
-
when 'MECH'
|
540
|
-
if @adcs_ctrl == 'ON'
|
541
|
-
@slrpnl1_ang = @sr_ang_to_sun
|
542
|
-
@slrpnl2_ang = @sr_ang_to_sun
|
543
|
-
end
|
544
|
-
|
545
|
-
delta_ang = (@sr_ang_to_sun - @slrpnl1_ang).abs
|
546
|
-
if delta_ang > 180.0
|
547
|
-
delta_ang = 360 - delta_ang
|
548
|
-
end
|
549
|
-
if @slrpnl1_state == 'DEPLOYED'
|
550
|
-
@slrpnl1_pwr = 500 * (1 - (delta_ang / 180.0))
|
551
|
-
else
|
552
|
-
@slrpnl1_pwr = 0
|
553
|
-
end
|
554
|
-
|
555
|
-
delta_ang = (@sr_ang_to_sun - @slrpnl2_ang).abs
|
556
|
-
if delta_ang > 180.0
|
557
|
-
delta_ang = 360 - delta_ang
|
558
|
-
end
|
559
|
-
if @slrpnl2_state == 'DEPLOYED'
|
560
|
-
@slrpnl2_pwr = 500 * (1 - (delta_ang / 180.0))
|
561
|
-
else
|
562
|
-
@slrpnl2_pwr = 0
|
563
|
-
end
|
564
|
-
|
565
|
-
incoming_pwr = @slrpnl1_pwr + @slrpnl2_pwr # Upto 1000 per second
|
566
|
-
|
567
|
-
used_pwr = @cpu_pwr + @imager_pwr + @heater1_pwr + @heater2_pwr # Up to 900 per second
|
568
|
-
delta_pwr = incoming_pwr - used_pwr
|
569
|
-
@pwr_watt_seconds += delta_pwr
|
570
|
-
if @pwr_watt_seconds < 0
|
571
|
-
@pwr_watt_seconds = 100
|
572
|
-
elsif @pwr_watt_seconds > MAX_PWR_WATT_SECONDS
|
573
|
-
@pwr_watt_seconds = MAX_PWR_WATT_SECONDS
|
574
|
-
end
|
575
|
-
@battery = (@pwr_watt_seconds.to_f / MAX_PWR_WATT_SECONDS.to_f) * 100.0
|
576
|
-
if @battery < 50.0
|
577
|
-
@mode = 'SAFE'
|
578
|
-
end
|
579
|
-
|
580
|
-
packet.timesec = time.tv_sec
|
581
|
-
packet.timeus = time.tv_usec
|
582
|
-
packet.ccsdsseqcnt += 1
|
583
|
-
packet.slrpnl1_ang = @slrpnl1_ang
|
584
|
-
packet.slrpnl2_ang = @slrpnl2_ang
|
585
|
-
packet.slrpnl1_state = @slrpnl1_state
|
586
|
-
packet.slrpnl2_state = @slrpnl2_state
|
587
|
-
packet.slrpnl1_pwr = @slrpnl1_pwr
|
588
|
-
packet.slrpnl2_pwr = @slrpnl2_pwr
|
589
|
-
packet.battery = @battery
|
590
|
-
|
591
|
-
when 'IMAGER'
|
592
|
-
if @collect_end_time
|
593
|
-
if @collect_end_time < Time.now
|
594
|
-
@imager_state = 'OFF'
|
595
|
-
@collect_end_time = nil
|
596
|
-
@imager_pwr = 0
|
597
|
-
image_packet = @tlm_packets['IMAGE']
|
598
|
-
time = Time.now
|
599
|
-
image_packet.timesec = time.tv_sec
|
600
|
-
image_packet.timeus = time.tv_usec
|
601
|
-
image_packet.ccsdsseqcnt += 1
|
602
|
-
@queue << image_packet.dup
|
603
|
-
else
|
604
|
-
@imager_state = 'ON'
|
605
|
-
@imager_pwr = 200
|
606
|
-
end
|
607
|
-
else
|
608
|
-
@imager_pwr = 0
|
609
|
-
end
|
610
|
-
|
611
|
-
packet.timesec = time.tv_sec
|
612
|
-
packet.timeus = time.tv_usec
|
613
|
-
packet.ccsdsseqcnt += 1
|
614
|
-
packet.collects = @collects
|
615
|
-
packet.duration = @duration
|
616
|
-
packet.collect_type = @collect_type
|
617
|
-
packet.imager_state = @imager_state
|
618
|
-
packet.imager_pwr = @imager_pwr
|
619
|
-
|
620
247
|
end
|
621
248
|
end
|
622
249
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openc3-cosmos-geosim
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Melton
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-01-
|
12
|
+
date: 2023-01-25 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: " cosmos-geosim plugin facilitating COSMOS config training\n"
|
15
15
|
email:
|
@@ -25,8 +25,6 @@ files:
|
|
25
25
|
- microservices/GEOSIM/geosat_target.rb
|
26
26
|
- microservices/GEOSIM/targets/GEOSAT/cmd_tlm/cmds.txt
|
27
27
|
- microservices/GEOSIM/targets/GEOSAT/cmd_tlm/tlm.txt
|
28
|
-
- microservices/GEOSIM/targets/GEOSAT/data/attitude.bin
|
29
|
-
- microservices/GEOSIM/targets/GEOSAT/data/position.bin
|
30
28
|
- microservices/GEOSIM/targets/GEOSAT/lib/sim_sat.rb
|
31
29
|
- microservices/GEOSIM/targets/GEOSAT/target.txt
|
32
30
|
- plugin.txt
|
Binary file
|
Binary file
|