openc3-cosmos-geosim 1.0.0 → 1.0.2

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