Compare commits

...

1599 Commits

Author SHA1 Message Date
3ba05d46f3 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-07-19 09:10:13 +02:00
6820fb729a mekf for detumble state machine 2024-07-19 09:10:05 +02:00
ea6dbb6454 Merge pull request 'prep v8.2.0' (#907) from prep-release into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #907
2024-06-26 15:49:20 +02:00
bfa9a3c1fe prep v8.2.0
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-06-26 15:45:20 +02:00
0166ebb185 Merge pull request 'Different Rot Rate Source for Detumble' (#902) from use-different-rot-rate-for-detumble into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #902
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-06-26 15:36:31 +02:00
2ba1d0f629 Merge remote-tracking branch 'origin/main' into use-different-rot-rate-for-detumble
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-26 13:34:14 +02:00
ca14429a62 Merge pull request 'Adjust dataset frequency' (#906) from reduce-dataset-freq into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #906
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-06-26 13:30:34 +02:00
00ce2fe611 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-25 13:45:03 +02:00
64ec2ffd84 acs ctrl controller datasets to 30s at or below idle and 10s above idle
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-25 13:29:32 +02:00
30bb5d1ac7 str solution dataset to 30s 2024-06-25 13:17:43 +02:00
640e316e5e rw status dataset to 30s 2024-06-25 13:13:09 +02:00
fe4ef398ed gnss ctrl core dataset to 60s 2024-06-25 13:10:13 +02:00
09f282cfd5 mtq datasets to 60s 2024-06-25 13:09:02 +02:00
709be2cd24 acs ctrl sensor datasets to 60s 2024-06-25 13:05:50 +02:00
54e4d27fe1 this is cleaner
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-24 13:26:56 +02:00
ce7d1441de whoopsies
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-24 13:19:25 +02:00
6727950eac Merge branch 'main' into use-different-rot-rate-for-detumble
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-24 11:23:56 +02:00
5c951f3e49 Merge pull request 'might be an important fix' (#904) from possible-fix-mpsoc-take-pic into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #904
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-06-24 11:23:09 +02:00
c65ad4ab4f Merge branch 'main' into possible-fix-mpsoc-take-pic 2024-06-24 11:22:47 +02:00
8da305b247 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-24 11:18:49 +02:00
1731b21953 set quest to invalid if sun vector and mgm vector nearly align 2024-06-24 11:02:54 +02:00
4b99be7316 Merge branch 'main' into use-different-rot-rate-for-detumble 2024-06-24 10:59:32 +02:00
bfcd149574 Merge pull request 'SUS Ass B-Side as Nom' (#905) from change-sus-ass-to-b-side into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #905
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-06-20 10:55:49 +02:00
90701a0723 Merge branch 'main' into change-sus-ass-to-b-side
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-20 09:15:00 +02:00
1a9a054567 changelog 2024-06-20 09:10:50 +02:00
511f7275f2 sus ass b-side as nominal 2024-06-20 09:10:43 +02:00
80ce299d37 Merge pull request 'Use STR for MEKF as default' (#899) from allow-mekf-str into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #899
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-06-20 09:10:05 +02:00
6782b4394b Merge remote-tracking branch 'origin/main' into possible-fix-mpsoc-take-pic
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-17 16:12:12 +02:00
a35b28fc57 might be an important fix
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-17 16:09:55 +02:00
8034982067 and that one
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-12 17:04:13 +02:00
e44f1974cd missed that one
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-06-12 16:53:35 +02:00
b47e8b1ddd fix enum
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-06-12 16:45:33 +02:00
e305d77b32 changelog
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-06-12 16:34:00 +02:00
abbbb0cabb make detumble relevant rotational rate always observable 2024-06-12 16:32:47 +02:00
f19b129609 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-10 15:51:10 +02:00
f2d7f32952 changed source 2024-06-10 15:50:47 +02:00
e267b69045 Merge branch 'main' into allow-mekf-str
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-10 15:36:04 +02:00
60922ccc0d Merge pull request 'prepare patch release' (#901) from prep-patch-release into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #901
2024-06-05 13:29:59 +02:00
3ec0509bd4 prepare patch release
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2024-06-05 13:28:08 +02:00
a73c36c237 Merge pull request 'MPSoC Update Retry Logic' (#900) from supv-retry-logic into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #900
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-06-05 13:27:18 +02:00
5dd0c2a5cb let's not do that for now..
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-05 12:47:17 +02:00
1f8dc67922 some minor improvements
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-05 12:36:31 +02:00
e43a86432b start adding re-try logic for SUPV
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2024-06-04 15:10:54 +02:00
585c49780f changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-06-04 11:25:07 +02:00
1429aa56a4 enable use of STR for MEKF by default 2024-06-04 11:23:50 +02:00
467ee0028a Merge pull request 'PLOC SUPV bugfix' (#898) from ploc-supv-bugfix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #898
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-05-29 10:38:15 +02:00
98a92a6b88 Merge remote-tracking branch 'origin/main' into ploc-supv-bugfix
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-05-29 10:13:52 +02:00
e1f2514596 Merge pull request 'Fix MEKF Inits' (#896) from fix-mekf-inits into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #896
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-05-29 10:12:35 +02:00
f255feb819 Merge remote-tracking branch 'origin/main' into fix-mekf-inits 2024-05-29 10:11:53 +02:00
6d27da4939 Merge pull request 'small fix for MPSoC transition failure' (#897) from transition-failure-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #897
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-05-29 10:11:01 +02:00
a3ac2505fe small tweak
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-28 15:38:16 +02:00
6350e0db0a changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-28 15:36:49 +02:00
db9e83cbc8 PLOC SUPV bugfix
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-28 15:33:13 +02:00
42ae9eafb7 bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-23 14:45:18 +02:00
0475ab872d changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-23 14:23:16 +02:00
225d037c66 small fix for MPSoC transition failure
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
2024-05-23 14:22:07 +02:00
aa5a148800 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-15 11:07:46 +02:00
4720ab9a35 corrected str sigma
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-15 11:07:12 +02:00
ba219fbe7d changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-15 10:05:32 +02:00
32271a98ff go home compiler, you're drunk
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2024-05-15 10:04:04 +02:00
6025ea5663 fixed ub with initalization 2024-05-14 15:35:20 +02:00
5af43ca29b Merge pull request 'prep v8.0.0' (#895) from prep_v8.0.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #895
2024-05-13 14:19:59 +02:00
822df9658f prep v8.0.0
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-05-13 14:08:35 +02:00
765e3d6b5b Merge pull request 'MPSoC Fixes' (#894) from mpsoc-fixes into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #894
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-05-13 14:03:11 +02:00
0b3c928886 combining those is acutally problematic..
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-08 11:11:21 +02:00
73279a0bf3 minor fix for periodic HK generation
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2024-05-08 10:54:24 +02:00
4559d24c62 changelog
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2024-05-08 10:04:34 +02:00
b54f8e7738 some fixes for MPSoC 2024-05-08 10:03:32 +02:00
6bb12f28a1 Merge pull request 'MPSoC Overhaul' (#892) from mpsoc-overhaul into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #892
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-05-06 14:20:46 +02:00
7e8d995b52 changelog and tmtc 2024-05-06 14:20:13 +02:00
215f2189a6 better name for split file command
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-05-06 14:17:25 +02:00
8103b2fa0d events
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-06 13:48:32 +02:00
b579cd86c1 make marius extremely happy
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-06 13:30:28 +02:00
4fdec7a74c impl proper NORMAL mode for MPSoC
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-06 13:19:15 +02:00
744a94704c removed TODOs which are done
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-05-02 15:42:14 +02:00
f7f14ff021 Merge branch 'main' into mpsoc-overhaul
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-30 15:57:34 +02:00
fe729f1df0 Merge pull request 'Fix Target Rotation Rate' (#893) from tgt-rot-rate-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #893
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-04-30 15:52:05 +02:00
7734d1066a Merge branch 'main' into tgt-rot-rate-fix 2024-04-30 15:51:39 +02:00
4a0acbf158 further reduce printout
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-30 15:37:53 +02:00
65476f4c98 reduce printouts
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-30 15:18:15 +02:00
aa2bfb7d0e Re-work MPSoC handler module
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-30 15:14:22 +02:00
fa01afe0fa fixed build after EM build was created
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2024-04-30 11:37:46 +02:00
a6ce06e3f5 Merge branch 'main' into tgt-rot-rate-fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-29 11:47:07 +02:00
75070b5e66 i am smart
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-29 10:42:52 +02:00
26341743a8 changelog
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-29 10:26:12 +02:00
7c10f4b1cd fix calculation of target rotation 2024-04-29 10:24:53 +02:00
c1b8e891c5 Merge pull request 'add new payload module' (#889) from payload-module into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #889
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-04-22 09:32:27 +02:00
18cf46ea31 Merge remote-tracking branch 'origin/main' into payload-module
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-17 15:11:58 +02:00
2d7356b9ed Merge pull request 'Nah' (#891) from i-hate-it-here into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #891
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-04-11 14:04:51 +02:00
675dda8e9e bump version
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
2024-04-11 14:00:30 +02:00
5bb1bd8946 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2024-04-11 13:58:57 +02:00
eff9116aec ???
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2024-04-11 13:57:40 +02:00
4ed516e0bc Merge pull request 'Prep v7.8.0' (#890) from prep-v7.8.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #890
2024-04-10 12:48:14 +02:00
e2ee6a492c changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-04-10 11:57:17 +02:00
a6422f2d73 bump version 2024-04-10 11:56:19 +02:00
ceb2130726 bumped tmtc
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
2024-04-10 11:54:17 +02:00
fcd3b7815c reran gens
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
2024-04-10 11:53:21 +02:00
1067abba9a Merge pull request 'Improve device FDIR' (#885) from improve-dev-fdir into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #885
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-04-10 11:43:30 +02:00
53376fd9ed fix changelog 2024-04-10 11:43:06 +02:00
c2d05b2045 Merge branch 'main' into improve-dev-fdir 2024-04-10 11:41:51 +02:00
48914a2aba Merge pull request 'GNSS Ctrl Improvements' (#871) from gnss-ctrl-improvements into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #871
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-04-10 11:40:24 +02:00
ef8736bd81 Merge branch 'main' into gnss-ctrl-improvements 2024-04-10 11:40:04 +02:00
584a16a67c Merge pull request 'Fix Error Quaternion' (#883) from error-quat-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #883
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-04-10 11:38:35 +02:00
addfadddb6 Merge branch 'main' into improve-dev-fdir
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-04-10 11:30:15 +02:00
df392d3319 Merge branch 'main' into error-quat-fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-10 10:49:59 +02:00
b079ce85f2 Merge pull request 'Update for PWR CTRL Limits' (#884) from change-pwr-ctrl-limits into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #884
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-04-10 10:48:12 +02:00
bc9b8efdb8 Merge branch 'main' into change-pwr-ctrl-limits
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-10 08:57:07 +02:00
51dcb56583 Merge remote-tracking branch 'origin/main' into payload-module
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 17:42:01 +02:00
df0c8eefab bump tmtc 2024-04-09 17:41:34 +02:00
5a7df626ab Merge branch 'main' into improve-dev-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 17:36:37 +02:00
7b53275d61 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 15:06:23 +02:00
709c53d533 Merge branch 'main' into gnss-ctrl-improvements
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 14:49:36 +02:00
3a70155105 Merge pull request 'Enable MEKF for PTG as Default' (#888) from enable-mekf into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #888
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-04-09 14:45:10 +02:00
7a12c1c8fe the first fix should trigger an event
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 14:43:47 +02:00
0f1c41e828 Merge branch 'main' into enable-mekf
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-04-09 14:33:36 +02:00
c4340c3515 re-point tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 14:33:02 +02:00
eec934e1b0 bump submodules
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 14:32:00 +02:00
b01d4f6363 bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 14:30:11 +02:00
d9789a48d8 Merge remote-tracking branch 'origin/main' into improve-dev-fdir 2024-04-09 14:29:54 +02:00
c3237cae3c Merge pull request 'impl relative timeshift in framework' (#886) from relative-timeshift into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #886
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-04-09 14:29:28 +02:00
427c53df8c better
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 14:04:20 +02:00
c89e81cac9 Merge branch 'main' into enable-mekf
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 13:55:11 +02:00
fb54d976d2 Merge branch 'main' into relative-timeshift
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 13:41:34 +02:00
25a1e4ea25 Merge remote-tracking branch 'origin/main' into improve-dev-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 13:41:10 +02:00
a63eb331eb Merge pull request 'Revert lower PLOC OP Limits' (#887) from ploc-op-limit into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #887
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-04-09 13:34:37 +02:00
1793b325ec compiles again
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 13:33:56 +02:00
1c36f36b1f this seems better
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 13:31:27 +02:00
0f3eeb42d6 15 should be enough 2024-04-09 13:30:22 +02:00
887f165484 ye maybe dont hold the reset pin for 3h 2024-04-09 13:29:42 +02:00
6cc1d86018 add new payload module
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-04-09 13:19:52 +02:00
d4eb124cdf missing reset
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 11:26:55 +02:00
47cedb90f9 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 11:07:05 +02:00
f3d4e09487 improved event comment
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 09:59:21 +02:00
2057ab9c10 some cleanup
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-09 09:58:05 +02:00
1f0e2d99e9 fix comment block
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-08 13:38:35 +02:00
35181a2693 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-08 13:36:21 +02:00
e1b5625086 update events 2024-04-08 13:35:42 +02:00
72626582f6 bump submodules
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-08 13:27:08 +02:00
3e6d26669a bump submodules
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-08 11:37:43 +02:00
69f378f8b6 changelog
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-08 10:48:03 +02:00
a46f6f34d6 allow mekf to be used for ptg laws as default 2024-04-08 10:47:14 +02:00
e6855120f3 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-08 10:28:57 +02:00
e59235fd75 reverted values 2024-04-08 10:28:36 +02:00
3875ddf92b bump fsfw again
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-03 16:24:07 +02:00
4171b11928 impl relative timeshift in framework
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-03 16:20:18 +02:00
43de097812 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-03 15:06:37 +02:00
56512fae0d bump fsfw again
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-04-03 12:52:40 +02:00
76d00ddd37 bump fsfw
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2024-04-03 12:48:12 +02:00
539221a458 updated limits within the pwr ctrl
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-27 09:24:41 +01:00
9f03341108 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-22 11:40:00 +01:00
4193a565a4 i hate this 2024-03-22 11:39:18 +01:00
c1c254330b Merge pull request 'Prep v7.7.4' (#882) from prep-v7.7.4 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #882
2024-03-21 10:47:20 +01:00
c46c6cd28b changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-21 10:18:03 +01:00
aeb8b92bc4 bump version 2024-03-21 10:16:47 +01:00
8011686fbe Merge pull request 'GS Target Pointing Limit Change' (#881) from ptg-improv into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #881
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-03-21 10:10:44 +01:00
58be09bd4b Merge branch 'main' into ptg-improv
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-21 09:15:53 +01:00
ad82573a35 Merge pull request 'Fix for Current Calculation in PWR Ctrl' (#880) from fix-soc into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #880
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-03-21 09:14:52 +01:00
a1be15e939 lets rather be gentle here
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-21 09:14:35 +01:00
ba7c9e1c26 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-20 16:19:20 +01:00
46c125d9fe rot rate limit change 2024-03-20 16:18:03 +01:00
889dd04c6b changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-20 16:01:20 +01:00
c52746a2df fix 2024-03-20 15:53:51 +01:00
f2f856e227 cleanup
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-18 17:21:08 +01:00
0cbac07f15 this might work 2024-03-18 17:20:55 +01:00
18d3c8fa91 not sure why this was ever archived 2024-03-18 17:20:40 +01:00
3e1ef8bcaf Merge branch 'main' into gnss-ctrl-improvements
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-03-18 16:55:04 +01:00
d1fc876f03 Merge pull request 'Prep v7.7.3' (#879) from prep-v7.7.3 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #879
2024-03-18 12:34:10 +01:00
0278aabee0 Merge branch 'main' into prep-v7.7.3
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-03-18 11:37:09 +01:00
a9f5b6d2c7 Merge pull request 'TCS Ctrl Time Limit not for Heaters in External Control' (#878) from tcs-ctrl-ignores-ext-ctrl into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #878
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-03-18 11:36:32 +01:00
80ea0b341b changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-03-18 11:14:10 +01:00
9740831755 bumped version 2024-03-18 11:14:00 +01:00
c4e18432e2 Merge branch 'main' into tcs-ctrl-ignores-ext-ctrl
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-03-18 11:05:23 +01:00
f9f5ba5d46 Merge pull request 'Improve GS PTG' (#876) from gs-ptr-improv into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #876
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-03-18 11:04:01 +01:00
3b521966a9 bumped fsfw 2024-03-18 11:03:44 +01:00
c58bae5aa5 Merge branch 'main' into gs-ptr-improv 2024-03-18 11:03:06 +01:00
67e6ccf4ae cleanup
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-03-18 11:00:29 +01:00
b795beef85 Merge pull request 'Parameter for STR for MEKF' (#877) from no-str-for-mekf into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #877
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-03-18 10:58:53 +01:00
311ecd7fd2 changelog 2024-03-18 10:58:19 +01:00
950e86ce4b cleaner solution
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-18 10:56:57 +01:00
096328aadc backup heater will not be chosen if heater is on ext ctrl and on
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-18 10:34:21 +01:00
36edd3e324 changed lower op limits for ploc 2024-03-18 10:33:51 +01:00
c65e813e94 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-16 13:53:22 +01:00
1c93f51f69 prevent switching of heaters in external control 2024-03-16 13:48:49 +01:00
7a43e1bc67 better but still not fixed
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-03-15 14:54:16 +01:00
dade2d519a changelog
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-15 13:21:01 +01:00
c4680f85bb added param to disable str input for mekf
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2024-03-15 13:16:38 +01:00
6c9a7c3ee5 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-13 17:01:17 +01:00
346f4ff9de prevent sign jump
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2024-03-13 16:59:55 +01:00
ad5282ca4a bump fsfw 2024-03-13 16:59:37 +01:00
3c869e5215 idk what i am doing here
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-03-13 16:08:21 +01:00
8374a02ae2 lets wait a bit longer
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-03-13 13:54:49 +01:00
f2d1e16697 Merge branch 'main' into gnss-ctrl-improvements
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-03-13 13:48:34 +01:00
158927ce5c Merge pull request 'Fix inverted X-Axis for PTG Target' (#875) from fix-tgt-ptg into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #875
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-03-06 13:33:07 +01:00
e97105820a version bump
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-03-06 13:31:39 +01:00
88102b26a6 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-03-06 13:30:22 +01:00
7e689c9f55 well ...
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-06 13:07:55 +01:00
97ada32f33 Merge pull request 'Prep v7.1.1' (#874) from prep-v7.1.1 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #874
2024-03-06 11:37:05 +01:00
244c364f60 bumped version
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-06 11:16:02 +01:00
c0c3576131 changelog 2024-03-06 11:15:40 +01:00
c2a4578b81 Merge pull request 'Fix NaN for Limiting Rotation Rates' (#872) from limit-rot-rate-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #872
2024-03-06 11:13:01 +01:00
781feffc90 bumped submodules
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-03-06 11:10:35 +01:00
7efd48c695 make robin happy 2024-03-06 11:09:23 +01:00
d0765fdcce Merge branch 'main' into limit-rot-rate-fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-06 10:18:15 +01:00
be0bae58ac Merge pull request 'Fix Dimension Error in MEKF' (#873) from fix-mekf-dim into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #873
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-03-06 10:17:10 +01:00
616803c6a8 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-06 09:47:47 +01:00
3501763cf0 fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-06 09:47:06 +01:00
efaf48beff we should actually use this 2024-03-06 09:46:51 +01:00
e052470cf4 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-06 09:08:31 +01:00
2364f7d5d9 fix of the century
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-05 17:35:06 +01:00
c52818a5ce changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-05 15:49:11 +01:00
fb8a92ecb5 bumped fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-05 14:30:13 +01:00
39032249b2 -
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-05 14:10:32 +01:00
aa4bfa8d88 we might want an OK 2024-03-05 14:09:40 +01:00
c2d8ef9fe4 should be enough
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-05 13:48:09 +01:00
440d989490 whoops
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-05 13:08:29 +01:00
85ed8420fd act cmd
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-05 11:51:02 +01:00
2a2a173ebd prep for leap seconds
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-03-05 09:06:48 +01:00
cda2a9df33 use existing function
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-04 11:57:10 +01:00
6da37c0fa4 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-01 15:29:14 +01:00
141f82d0a9 prevent ctrl values from becoming NaN
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2024-03-01 15:27:13 +01:00
b7bf927288 boop
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-03-01 11:31:01 +01:00
8fe7307a58 remove whatever this is
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-03-01 10:59:37 +01:00
7e7d8c249e between how many beers was this written
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-03-01 10:09:49 +01:00
ffce866ad0 small fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-29 16:09:16 +01:00
236916bf67 this should remove the fix changed spam
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-29 16:06:55 +01:00
9a8c059e05 Merge pull request 'Prep v7.7.0' (#870) from prep-v7.7.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #870
2024-02-29 13:29:26 +01:00
48d37783dd bumped tmtc and changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-29 13:27:14 +01:00
d20c8258da reran gens
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-29 13:17:57 +01:00
bd46a607f0 bump version number
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-29 13:10:06 +01:00
bdb7f29b99 Merge pull request 'MEKF Fixes' (#843) from mekf-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #843
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-02-29 13:08:24 +01:00
c6a308b308 Merge branch 'main' into mekf-fix
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-29 13:07:41 +01:00
b9d4d2f3a3 Merge pull request 'Add blob stats TM' (#869) from add-blob-stats-tm into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #869
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-02-29 13:06:08 +01:00
e908ee119e Merge branch 'main' into add-blob-stats-tm
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-29 12:58:06 +01:00
f6e99f171a Merge pull request 'Fix Desaturation for Faulty Wheels' (#865) from fix-desaturation into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #865
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-02-29 12:56:18 +01:00
5876ad1f56 yes totally on purpose. nothing to see here. please move on
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-29 12:42:59 +01:00
9cc991e600 bumped sagittactl and tmtc
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-29 12:40:17 +01:00
d0f8b7981f changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-29 12:31:22 +01:00
6d5f86ff77 bump tmtc again
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-29 12:27:39 +01:00
e77e403e38 STR bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-29 12:14:47 +01:00
6609ac85e3 bugfix and tmtc bump
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-29 12:07:33 +01:00
e97970ef64 that should be all necessary changes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-29 11:51:06 +01:00
af6acb035c changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-29 10:57:36 +01:00
dbb5d6d359 small improv
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-29 10:33:25 +01:00
efd17a971f to keep it in line
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-29 10:28:08 +01:00
557051ba37 detumble fixes and improvements
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-29 10:25:02 +01:00
21ef879cae changelog fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-28 09:25:21 +01:00
e9a665ee90 Merge branch 'main' into mekf-fix 2024-02-28 09:23:51 +01:00
a2a360c1d7 Merge branch 'main' into fix-desaturation
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-28 09:23:30 +01:00
d43d1c4f65 almost done
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-28 09:22:05 +01:00
b8a07a3299 continue with new set 2024-02-28 09:22:05 +01:00
dc730bb6de stupid new set 2024-02-28 09:22:05 +01:00
61555aa5cf Merge pull request 'Unlock STR secondary slot' (#864) from str-secondary-fw-slot-update into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #864
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-02-28 09:21:28 +01:00
a7b05f60a7 Merge branch 'main' into str-secondary-fw-slot-update
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-02-28 09:12:06 +01:00
8749e4cf6e changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-27 16:28:42 +01:00
97a54c6691 smoll improv 2024-02-27 16:28:30 +01:00
2d0f13b6e6 bumped tmtc 2024-02-27 16:27:54 +01:00
352053f1d2 this mekf should work
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-27 16:05:05 +01:00
f382bd3e61 Merge branch 'main' into mekf-fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-27 13:48:37 +01:00
b987b6e70c Merge pull request 'Prevent STR Blinding' (#859) from prevent-str-blinding into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #859
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-02-27 13:48:18 +01:00
4cf34cb99a bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-27 12:51:20 +01:00
2ac9f972da remove debug printout
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-27 10:58:23 +01:00
69f4b6de06 I LOVE STATIC_CAST. I LOVE TYPING A LOT
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-27 10:55:53 +01:00
c434882e37 code review
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-27 10:54:26 +01:00
9e89482298 Merge branch 'main' into prevent-str-blinding
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-26 16:28:56 +01:00
9e1e286b97 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-26 16:27:14 +01:00
9c73e89cbb Merge branch 'main' into mekf-fix
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-02-26 15:12:41 +01:00
386430b9f2 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-26 14:06:59 +01:00
ab71014f67 bumped tmtc 2024-02-26 14:06:23 +01:00
fc40c5cc83 Merge branch 'main' into str-secondary-fw-slot-update 2024-02-26 14:05:32 +01:00
21ecbaaa7b Merge pull request 'PSB update' (#862) from psb-update into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #862
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-02-26 13:59:41 +01:00
4c589e0c1b changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-26 13:58:47 +01:00
f4d1dbb5df bump fsfw 2024-02-26 13:57:57 +01:00
18a7705d97 Merge branch 'main' into mekf-fix
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-02-26 13:25:25 +01:00
3aa3810cac Merge branch 'main' into prevent-str-blinding
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-26 13:18:45 +01:00
2965c63bf6 fixed changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-26 13:16:17 +01:00
7066939d76 Merge branch 'main' into psb-update 2024-02-26 13:15:34 +01:00
c04be384a1 Merge branch 'main' into str-secondary-fw-slot-update
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-26 13:14:36 +01:00
64f6f92ce6 Merge branch 'main' into fix-desaturation
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-26 13:14:09 +01:00
a1570e94e7 Merge pull request 'PTG Ctrl Strat Priority' (#866) from change-ptg-strat-prios into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #866
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-02-26 13:13:37 +01:00
962df7e86f fix changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-26 13:13:06 +01:00
f11240deb4 Merge branch 'main' into change-ptg-strat-prios 2024-02-26 13:12:01 +01:00
8df720e940 Merge pull request 'Fused Rotation Rate for Safe Mode' (#867) from fused-rot-rate-safe into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #867
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-02-26 13:11:41 +01:00
3c389cb069 Merge branch 'main' into fused-rot-rate-safe 2024-02-26 13:10:58 +01:00
b2faa77ebe Merge pull request 'RW Cmd Antistiction Fix' (#868) from rw-antistiction-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #868
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-02-26 13:10:03 +01:00
96acca4847 removed redundant variable
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-26 10:14:15 +01:00
d14b83fab9 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-26 09:44:09 +01:00
7517b33d83 if this doesnt fix the invalid speeds ... 2024-02-26 09:39:13 +01:00
3313f58905 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-23 14:56:02 +01:00
9adb4af0e5 update params 2024-02-23 14:53:53 +01:00
13aa6f50ff ignore rotation rates from quest and str for safe mode 2024-02-23 14:53:28 +01:00
585b8043e6 changed ptg strat prios
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-23 14:44:59 +01:00
688943cacb thanks for automatically not updating the references eclipse
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-23 11:35:49 +01:00
a8172e641f bump fsfw
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-23 11:34:03 +01:00
2e08f3b393 not that we need this right now
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-23 11:27:01 +01:00
ff3bf4e291 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-23 11:22:59 +01:00
4d5ac727a8 changed sus filter param 2024-02-23 11:22:03 +01:00
2f43f58792 cleanup
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-23 11:10:52 +01:00
75654277b2 pain
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-23 11:05:10 +01:00
58a8c5869c some fixes and debug stuff
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-22 16:59:26 +01:00
5e6b0f5ea2 changelog 2024-02-22 15:08:27 +01:00
e445f8942a limit rotation 2024-02-22 15:04:30 +01:00
1fd6db8138 Merge branch 'main' into psb-update
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-19 17:25:43 +01:00
2d92368240 small bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-19 17:23:02 +01:00
9a1d91c261 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-19 17:16:56 +01:00
dbb530e27b Unlock STR second firmware slot 2024-02-19 17:16:08 +01:00
026776c1ec desaturation cares about disabled wheels now
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-19 14:54:17 +01:00
7d4b97d977 Merge branch 'main' into prevent-str-blinding
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-14 16:23:28 +01:00
77527c631c Merge pull request 'Fix no Sensors for Control FDIR' (#858) from fix-no-sensors-fdir into main
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
Reviewed-on: #858
2024-02-14 10:45:50 +01:00
43cca9ed0c PSB update
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-14 10:36:53 +01:00
2b09ec8bc0 fixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-14 10:09:39 +01:00
9124cb85fa nvm this is since c++ 23 lol
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-14 09:06:39 +01:00
124ae6cc7e as i dont like being surprised by implicit stuff ...
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-14 09:04:56 +01:00
b9e4c51d82 set stuff const that should be const
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-13 16:59:50 +01:00
f60fe1ed02 added normalization of sun model vector
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-13 16:58:40 +01:00
79a659bc39 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-13 16:47:03 +01:00
efc0be104c acs ctrl triggers event now
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-13 16:45:59 +01:00
7314c71062 Merge branch 'main' into fix-no-sensors-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-13 16:11:21 +01:00
9d6206302a changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-13 16:09:35 +01:00
d467953c18 Merge branch 'main' into prevent-str-blinding
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-13 16:06:14 +01:00
cf7fbcef97 Merge pull request 'PLOC SUPV set bugfix' (#860) from ploc-supv-set-bugfix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #860
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-02-13 16:05:08 +01:00
16255a91dc gs pointing with sun/earth avoidance
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-13 15:58:44 +01:00
d32f7b31c3 bump fsfw 2024-02-13 15:58:18 +01:00
236ca64de3 whole lot of cleanup
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-12 14:43:34 +01:00
b68bbe64a3 bump fsfw 2024-02-12 14:43:17 +01:00
f56d1c2b12 Merge branch 'mekf-fix' into prevent-str-blinding
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-02-12 13:28:17 +01:00
c064d1f625 ???
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-12 11:09:14 +01:00
3954d4dabe Merge branch 'main' into mekf-fix
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-02-12 11:01:07 +01:00
16d909bd5b Merge branch 'main' into fix-no-sensors-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-12 11:00:56 +01:00
1b2dd328ca Merge branch 'main' into prevent-str-blinding
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-12 10:59:16 +01:00
2346866ba2 Merge branch 'main' into ploc-supv-set-bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-12 10:59:03 +01:00
779bb4a277 Merge pull request 'small MPSoC bugfix' (#861) from small-mpsoc-bugfix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #861
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-02-12 10:48:46 +01:00
a562a45445 oops
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-02-12 10:42:45 +01:00
b5a7db4e66 CHANGELOG
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-02-12 10:41:58 +01:00
b3785628a7 changelog 2024-02-09 11:25:36 +01:00
36658d07f0 small MPSoC bugfix
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-08 14:26:16 +01:00
617b956ac9 bugfix
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-08 12:26:09 +01:00
ff76f99ad9 some fun with parameters
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-07 10:00:32 +01:00
13c180902d Merge branch 'main' into fix-no-sensors-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-06 15:12:36 +01:00
4929cad198 Merge pull request 'PLOC SUPV bugfixes' (#855) from smaller-ploc-tweaks into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #855
2024-02-06 15:10:50 +01:00
393d50a54f bump tmtc 2024-02-06 15:09:15 +01:00
3399620ba3 Merge branch 'main' into smaller-ploc-tweaks
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-02-06 15:05:52 +01:00
b7f62ac3e2 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-06 15:02:52 +01:00
6cbd873a97 fix 2024-02-06 15:01:20 +01:00
27c824eaec Merge pull request 'Prep v7.6.1' (#857) from prep-v7.6.1 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #857
2024-02-05 11:14:33 +01:00
b4ace906bc Merge branch 'main' into mekf-fix
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-02-05 10:12:13 +01:00
681aebe011 bump version
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-05 10:11:01 +01:00
484dba7eb6 changelog 2024-02-05 10:10:41 +01:00
5ae97d7c09 Merge pull request 'PTG Something' (#856) from fix-your-rfs into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #856
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-02-05 10:08:01 +01:00
01fde7193d Merge branch 'main' into fix-your-rfs
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-02-05 10:06:59 +01:00
db9afe4a62 Merge pull request 'Improve Detumble State Machine' (#854) from detumble-state-machine-vs-mode-change into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #854
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-02-05 10:02:25 +01:00
ecc147ca7f changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-05 09:43:20 +01:00
6ca1dda807 fix my ocd
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-05 09:39:35 +01:00
6f3876d204 fixed quaternion multiplication bug
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-05 09:24:41 +01:00
f0e551fa54 fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-02 15:08:55 +01:00
15cddfdeb7 try to point STR away from earth during idle
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-02-02 15:04:26 +01:00
e7dc9cddfd nadir target lul
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-02 14:33:50 +01:00
84ba6262a8 cleanup
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-02 14:32:12 +01:00
8be94cf2dc overloading is fun (but should be done right)
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-02-02 12:38:16 +01:00
cc47114891 ups
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-31 17:11:42 +01:00
0eebc4b00f Merge remote-tracking branch 'origin/main' into smaller-ploc-tweaks
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-31 17:11:13 +01:00
6da0c8fe1a changelog
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-31 16:57:18 +01:00
2c9e857060 PLOC SUPV latchup report bugfixes 2024-01-31 16:56:34 +01:00
c85bef6de4 Merge branch 'main' into mekf-fix
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-31 16:46:12 +01:00
8b9c0d3abf changelog
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-31 15:41:56 +01:00
4d22f7f889 make detumble state machine robust agains mode changes 2024-01-31 15:41:21 +01:00
aa521e89f6 Merge pull request 'prep-v7.6.0' (#853) from prep-v7.6.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #853
2024-01-30 09:39:02 +01:00
467ab39ad9 frmt
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-30 09:28:46 +01:00
0d80e2a8ec changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-30 09:27:53 +01:00
3cfde3071c bump tmtc 2024-01-30 09:27:44 +01:00
7dc69d3473 gens
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-30 09:10:30 +01:00
e3f7cda69a whoops 2024-01-30 09:09:35 +01:00
ef4d3066e9 gens
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-30 09:07:27 +01:00
07e4a6bc5a make rtvals readable for generators (not sure why the other way did not work) 2024-01-30 09:07:04 +01:00
da5890f99a gens
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 17:13:46 +01:00
8b91c91a7a bump version
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
2024-01-29 17:08:51 +01:00
e301b19aba changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
2024-01-29 17:08:12 +01:00
ac06947078 Merge pull request 'Fixes for Pointing Modes' (#851) from ptg-fixes into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #851
2024-01-29 17:05:45 +01:00
84401cc427 Merge branch 'main' into ptg-fixes
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-01-29 17:04:18 +01:00
20920fe22f Merge branch 'detumble-fix' into ptg-fixes
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-01-29 17:03:19 +01:00
83fc8a633e Merge pull request 'Always trigger Detumble' (#846) from detumble-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #846
2024-01-29 17:02:29 +01:00
e17ef1bcfd Merge branch 'main' into detumble-fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 14:23:05 +01:00
e3ad08d987 bumped fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 14:21:43 +01:00
a4d514fbb5 Merge branch 'main' into ptg-fixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 14:18:24 +01:00
8390a02690 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 14:15:16 +01:00
d065f6257e Merge pull request 'Fixes for RW Commanding' (#852) from cmd-rw-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #852
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-01-29 14:13:32 +01:00
96b74574b0 forgot that one
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 11:12:40 +01:00
64d105cf87 fix
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-29 11:11:47 +01:00
f7c997980c this makes more sense 2024-01-29 11:08:47 +01:00
0064cf13cb Merge branch 'main' into ptg-fixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 10:55:41 +01:00
62c11798e5 Merge branch 'main' into cmd-rw-fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 10:53:16 +01:00
79efca3a66 Merge pull request 'Smaller PLOC tweaks' (#836) from smaller-ploc-tweaks into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #836
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-01-29 10:51:53 +01:00
3cc6fce575 Merge branch 'main' into smaller-ploc-tweaks
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-01-29 10:51:17 +01:00
5c7f712bf2 Merge branch 'smaller-ploc-tweaks' of https://egit.irs.uni-stuttgart.de/eive/eive-obsw into smaller-ploc-tweaks
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-01-29 10:40:19 +01:00
72b937f223 Merge pull request 'stupid PCDU' (#849) from pcdu-store-issue into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #849
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-01-29 10:40:08 +01:00
c4d0203846 changelog 2024-01-29 10:39:50 +01:00
16fa3d1e26 Merge branch 'main' into smaller-ploc-tweaks
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2024-01-29 10:38:54 +01:00
5ec173f8c9 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2024-01-29 10:38:29 +01:00
8dbbb7b9ec Merge branch 'main' into cmd-rw-fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 10:35:46 +01:00
87a22abf24 Merge branch 'main' into ptg-fixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 10:29:10 +01:00
68b0e3b20a changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 10:25:23 +01:00
01735d79f7 Merge branch 'main' into detumble-fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 10:19:39 +01:00
0a7454029d Merge branch 'main' into pcdu-store-issue
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 10:18:09 +01:00
c7ac5904f8 Merge pull request 'Add new parameter to skip SUPV commanding' (#850) from ploc-mpsoc-skip-supv-commanding-param into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #850
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2024-01-29 10:16:54 +01:00
bec57f98c0 handle fallback to safe in case of rate violation
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-29 10:10:59 +01:00
3441365c65 some fixes 2024-01-29 10:10:36 +01:00
c67f65369c acs ctrl state machine done
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-29 09:32:01 +01:00
ba6eac505e we prob need a state machine here
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-27 13:58:17 +01:00
ec2b026103 fix?
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-27 12:50:58 +01:00
060217fbb4 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-27 11:33:33 +01:00
0d7f5d5dca prevent use of if_id of DHB for rw rtvals 2024-01-27 11:32:23 +01:00
398ddd1a3f typo
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-27 11:30:37 +01:00
c4297975ff changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-27 10:47:42 +01:00
772e8f1149 enableAntistiction must not be optional as it prevents the ACS ctrl from sending invalid speed cmds 2024-01-27 10:45:00 +01:00
315365921e changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-27 10:37:39 +01:00
6cf746463b is of type int
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-27 10:35:33 +01:00
5f388d53a6 reset RW cmds to 0 if they are not used anymore
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-27 10:33:49 +01:00
26f69d611e never try sending invalid command
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-26 15:45:24 +01:00
ec3523e5ad cleanup
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-26 15:36:01 +01:00
2f296c3c8c whoopsies 2024-01-26 13:37:30 +01:00
588612875d this is not not funny 2024-01-26 13:36:51 +01:00
944dfb6f81 convert target rot rate into body rf
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-26 13:16:27 +01:00
291c9ea99b calculate the rotation rate in normal way
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-26 11:16:59 +01:00
c1e7ac7e9a bump fsfw 2024-01-26 11:12:28 +01:00
7daeb9a148 better rw failure handling and use new classid location 2024-01-26 10:59:57 +01:00
10841a01b7 class id is defined here now 2024-01-26 10:59:15 +01:00
42b94ab581 we can only use the nullspace if all rws are available
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-26 10:50:11 +01:00
ff5e1cd76b reset guidance if lost
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-25 13:25:11 +01:00
3892276a5c reset guidance on mode change
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-25 13:19:59 +01:00
edf2f889c1 forgot this one
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-25 13:15:10 +01:00
6c90777e4b imagine being a newspace company and not even knowing what a mathematically positive sense of rotation is
Some checks failed
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-25 11:32:37 +01:00
a778daacfd changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-25 11:14:57 +01:00
e4f8f20d78 allow slightly more time for on cmd
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-25 11:13:37 +01:00
5df5c30e30 skip param works
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-25 11:02:39 +01:00
928dd9e2e0 some fixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-24 14:34:34 +01:00
05b88dd294 add new parameter to skip SUPV commanding
Some checks failed
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-24 14:20:15 +01:00
3c3babdd4b Merge branch 'main' into pcdu-store-issue
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-24 10:50:18 +01:00
82dd505194 Merge branch 'main' into detumble-fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-22 14:10:19 +01:00
54187e47c1 Merge pull request 'Prep v7.5.5' (#848) from prep-v7.5.5 into main
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
Reviewed-on: #848
2024-01-22 10:58:36 +01:00
39b9f770ac Merge branch 'main' into prep-v7.5.5
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-22 10:37:06 +01:00
a71c12c9ce Merge pull request 'Target Quaternion Fix' (#847) from target-quaternion-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #847
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2024-01-22 10:36:32 +01:00
4fcb7fc8c6 bump version
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-22 10:06:57 +01:00
65502c0107 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-22 10:05:05 +01:00
392a97bb65 better safe than sorry
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-19 16:17:37 +01:00
367e879d91 this should be it
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2024-01-19 16:15:22 +01:00
ef730022a0 isnt finished
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-19 15:18:15 +01:00
d8ae45b352 trigger transition into detumble no matter which mode we are in 2024-01-19 15:16:46 +01:00
4e8776ff68 i shouldnt be doing this
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-19 14:19:02 +01:00
883ff4f6de never needed this anyways 2024-01-19 14:18:12 +01:00
13f3739386 some cleanup
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2024-01-19 14:13:00 +01:00
21fc431bc6 Merge pull request 'prep v7.5.4' (#844) from prep-v7.5.4 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #844
2024-01-16 17:07:19 +01:00
68f8759233 bump version
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-16 16:54:22 +01:00
d3e08c36a2 changelog 2024-01-16 16:53:55 +01:00
d4f45a6dd8 Merge pull request 'Fix for Pointing Control Strategy Handling' (#842) from ptg-strat-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #842
2024-01-16 16:50:13 +01:00
0fe6c1397d changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-16 16:36:17 +01:00
31fc559d8e this is an error case as well 2024-01-16 16:35:45 +01:00
ebe4ca8084 datasets are now always written in pointing modes
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-16 16:28:53 +01:00
777b61376c small fix
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2024-01-16 15:51:37 +01:00
f4ed981003 cleanup
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-16 15:49:58 +01:00
0ae8b4e85e stupid PCDU
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2024-01-01 17:19:07 +01:00
632b813bdb Merge pull request 'prep next patch' (#841) from prep_v7.5.3 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #841
2023-12-19 13:00:43 +01:00
2abfb4a6b3 prep next patch
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-19 11:55:48 +01:00
649949ce0a Merge pull request 'STR tweak' (#840) from str-tweak into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #840
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-12-19 11:43:29 +01:00
c0358d29ce update CHANGELOG
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-19 11:29:59 +01:00
1308c546fd STR tweak
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-19 11:07:45 +01:00
e51dd33d82 Merge pull request 'prep v7.5.2' (#838) from prep_v7.5.2 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #838
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-12-14 10:13:14 +01:00
262cc78e7e prep v7.5.2
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-12-14 10:00:59 +01:00
26b9343ca4 Merge pull request 'Quest Fix III' (#837) from i-should-quit into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #837
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-12-14 09:59:28 +01:00
4701276523 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-13 16:53:35 +01:00
9833a4e043 and i wasted a day for this little shit bug
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-12-13 16:52:42 +01:00
561fe5aa3c Merge branch 'main' into smaller-ploc-tweaks
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-13 11:55:23 +01:00
51ccbc6898 Merge pull request 'prepare v7.5.1' (#835) from prep_v7.5.1 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #835
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-12-13 11:35:20 +01:00
9ceaa6817c bump tmtc version
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-12-13 11:32:19 +01:00
5cdb8db42a prep v7.5.1
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
2023-12-13 11:31:59 +01:00
8ab6296abf Merge pull request 'increase max num of scheduled commands to 4000' (#832) from allow-more-scheduled-commands into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #832
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-12-13 11:24:36 +01:00
d8bd52b4e3 Merge branch 'main' into allow-more-scheduled-commands 2023-12-13 11:24:29 +01:00
1e58de635c Merge pull request 'QUEST Fix II' (#834) from quest-fix2 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #834
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-12-13 11:24:21 +01:00
be2c4379a7 smoll refactor
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-13 10:31:29 +01:00
f9b56d206e changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-13 10:13:21 +01:00
1dfcc238ed ...
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-12-13 10:12:29 +01:00
795b63c34f Merge remote-tracking branch 'origin/main' into allow-more-scheduled-commands
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-13 10:01:43 +01:00
a13fbe6f54 Merge pull request 'QUEST Fixes' (#833) from quest-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #833
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-12-12 17:56:47 +01:00
b000f77f4b smaller PLOC tweaks
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-12-12 17:55:09 +01:00
9723bf70a0 changelog update
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-12 17:54:29 +01:00
4858c1ea57 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-12 17:03:58 +01:00
8a50746251 i blame robin for not finding this in his review
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-12 16:01:30 +01:00
46ffee3e5d bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-12 11:34:20 +01:00
efc4e83857 make robin happy
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-12 11:16:13 +01:00
cda88cdc56 increase max num of scheduled commands to 1500
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-12 10:40:18 +01:00
cb6992e0f3 Merge pull request 'v7.5.0' (#828) from dev-7.5.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #828
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-12-06 17:44:22 +01:00
30fb60bd2b OH MY GOD
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-12-06 17:43:57 +01:00
91a12a7b72 changelog shenanigans
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-12-06 17:43:00 +01:00
fe0ceac9b4 something went wrong here
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-12-06 17:42:30 +01:00
acf693636a auto-formatting
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-06 17:27:43 +01:00
87798f9e52 bump minor version 2023-12-06 17:27:23 +01:00
30f8c31ad0 repoint tmtc submodule
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-06 17:23:25 +01:00
160159ff8d bump eive-tmtc version 2023-12-06 17:21:52 +01:00
b4886822eb re-run generators
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-06 17:20:20 +01:00
2c9500c7aa Merge pull request 'Higher ACS Modes STR Only' (#818) from higher-acs-modes-only-str into dev-7.5.0
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
Reviewed-on: #818
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-12-06 17:15:51 +01:00
d762a2b703 fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-06 16:02:08 +01:00
8cd773d18b maybe this makes him happy
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-06 15:56:15 +01:00
42036f45f9 Merge branch 'dev-7.5.0' into higher-acs-modes-only-str
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-06 15:43:31 +01:00
f05d380ad3 Merge remote-tracking branch 'origin/main' into dev-7.5.0
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-06 15:32:11 +01:00
4cad1176d0 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-06 14:46:36 +01:00
71193495f3 welp i guess i also deleted stuff i still needed
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-06 14:36:23 +01:00
fafec82908 auto-formatter
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-12-06 13:35:37 +01:00
09aa7bb439 Merge branch 'dev-7.5.0' into higher-acs-modes-only-str
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-06 13:06:38 +01:00
215bc8022b Merge branch 'main' into dev-7.5.0
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-06 13:04:51 +01:00
2aca517f71 Merge pull request 'SCEX is back!' (#831) from scex-back-in-the-house into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #831
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-12-06 12:09:35 +01:00
0931d0ebac it works
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-06 11:54:28 +01:00
263ac1f663 wtf is this 2023-12-06 11:44:28 +01:00
7d54ecaee3 small CMake fix
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-12-06 11:36:35 +01:00
3294cc85fc bump patch version
Some checks failed
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-12-06 11:33:13 +01:00
ddeb9d37bd it's back! 2023-12-06 11:31:39 +01:00
c6a0518515 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-06 10:41:51 +01:00
6c6b7ff53f this is less confusing
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-05 15:11:22 +01:00
dab10596f6 fixes 2023-12-05 15:02:17 +01:00
a05fd75828 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-05 13:12:42 +01:00
f22236b419 fixed datasets
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-04 18:07:22 +01:00
fec4f64a07 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-04 17:54:21 +01:00
9f5a198c5d small fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-04 17:13:41 +01:00
b0b279e313 Merge branch 'dev-7.5.0' into higher-acs-modes-only-str
Some checks failed
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 There was a failure building this commit
2023-12-04 13:19:28 +01:00
d0588b144a Merge branch 'dev-7.5.0' into higher-acs-modes-only-str
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-04 13:15:25 +01:00
5b5d891131 Merge pull request 'Once upon a time Robin was made happy' (#800) from make-robin-happy-about-timestuff into dev-7.5.0
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
Reviewed-on: #800
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-12-04 11:21:51 +01:00
41c8d7e0dd replaced one ToDo with another one
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-04 11:15:08 +01:00
4ea1e16880 cpu goes brrrr
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-04 10:59:44 +01:00
064200e730 yesyes clangd shush now
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-04 09:58:37 +01:00
08d0619b11 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-01 15:20:30 +01:00
aab705ca04 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-01 14:22:10 +01:00
6d2bfbcfe6 this is cleaner
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-01 14:20:11 +01:00
6540d85c99 Merge branch 'dev-7.5.0' into make-robin-happy-about-timestuff
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-01 13:08:44 +01:00
64069aa5c1 Merge pull request 'Store TLE presistent' (#789) from persistent-tle-store into dev-7.5.0
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
Reviewed-on: #789
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-12-01 13:04:56 +01:00
b86ee21da0 fix for failed handling
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-01 12:56:31 +01:00
d22a2abf64 added action cmd to read tle from file
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-01 11:42:27 +01:00
c28ff551db small fix 2023-12-01 11:41:35 +01:00
f9ab7962cd Merge branch 'dev-7.5.0' into persistent-tle-store
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-01 10:30:06 +01:00
03b43da57f Merge branch 'main' into persistent-tle-store
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-12-01 10:23:13 +01:00
c6d0357ac9 changelog fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-01 10:22:52 +01:00
99195565f6 Merge branch 'main' into dev-7.5.0
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-12-01 10:21:14 +01:00
fa727b1e44 bump tmtc to v5.11.0
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-11-30 15:47:12 +01:00
cdfdb9a053 Merge pull request 'prep v7.4.0' (#830) from prep_v7.4.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #830
2023-11-30 15:45:28 +01:00
325a6ff70b prep v7.4.0
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-30 15:20:50 +01:00
3c24dfad8c Merge branch 'dev-7.5.0' into persistent-tle-store
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-11-30 11:51:17 +01:00
cf6c86fabc Merge pull request 'Set B-Side as Default for ACS Board' (#822) from acs-board-b-as-default into dev-7.5.0
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
Reviewed-on: #822
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-11-30 11:49:29 +01:00
7239b2e26d small fixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-11-30 11:43:12 +01:00
c475c8fd8d Merge branch 'dev-7.5.0' into acs-board-b-as-default
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-11-29 18:51:25 +01:00
3969d05476 Merge branch 'main' into persistent-tle-store
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-11-29 17:13:07 +01:00
f395c71fd0 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-11-29 17:12:10 +01:00
a481fc23f2 bump fsfw 2023-11-29 17:11:46 +01:00
ce620243ce Merge branch 'main' into make-robin-happy-about-timestuff 2023-11-29 17:11:01 +01:00
882c5ce598 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-11-29 17:03:34 +01:00
370eff5204 get correct sd card
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-11-29 16:59:03 +01:00
3c8b0d1a71 bump fsfw 2023-11-29 16:58:43 +01:00
bbcb10c2d9 Merge pull request 'run afmt, re-run generators' (#829) from afmt-generators into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
Reviewed-on: #829
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-11-29 15:49:46 +01:00
89b6a2de2d run afmt, re-run generators
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-29 15:15:29 +01:00
4d21d2761f Merge pull request 'Disable Order Check PL PCDU' (#825) from disable-order-check-plpcdu into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #825
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-11-29 15:13:57 +01:00
e1e8b525b3 Merge branch 'main' into disable-order-check-plpcdu
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-11-29 15:13:37 +01:00
64cb3c6a6c Merge pull request 'revert some changes in com IF' (#826) from revert-str-com-if-changes into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #826
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-11-29 15:13:27 +01:00
faf213d3b8 Merge branch 'main' into revert-str-com-if-changes
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-11-29 15:13:19 +01:00
a5bbc33e1c Merge pull request 'bugfix for virt channel: clear invalid state' (#827) from virt-channel-bugfix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #827
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-11-29 15:13:07 +01:00
d553afcc5b Merge branch 'main' into revert-str-com-if-changes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-29 14:57:05 +01:00
6b6793d93f Merge remote-tracking branch 'origin/main' into disable-order-check-plpcdu
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-29 14:56:44 +01:00
30964a9648 Merge remote-tracking branch 'origin/main' into virt-channel-bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-29 14:52:40 +01:00
66d4fa1806 Merge pull request 'PLOC SUPV extensions' (#821) from ploc-supv-extensions into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #821
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-11-29 14:52:08 +01:00
210ee7b6d9 Merge remote-tracking branch 'origin/main' into ploc-supv-extensions
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-29 14:24:01 +01:00
8c1e7ae418 bump fsfw and tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-29 14:23:29 +01:00
2fd30a2f38 Merge remote-tracking branch 'origin/main' into virt-channel-bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-29 14:21:40 +01:00
f23debceac Merge pull request 'Persistent TM store delete time range' (#823) from persistent-tm-store-delete-time-range into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #823
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-11-29 14:20:41 +01:00
e6278c7a23 Merge remote-tracking branch 'origin/main' into ploc-supv-extensions
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-29 14:18:12 +01:00
178da2fec1 changelog update
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-29 14:17:17 +01:00
5bad2a46a8 Merge remote-tracking branch 'origin/main' into persistent-tm-store-delete-time-range
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-29 14:11:19 +01:00
edf7b5325d Merge pull request 'Variable STR CFG path' (#824) from str-variable-cfg-path-q7s into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #824
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-11-29 14:09:08 +01:00
3b4ff437c0 Merge branch 'main' into persistent-tle-store
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-11-29 11:14:19 +01:00
6ed3dc1b50 one of those days ...
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-11-29 10:43:10 +01:00
bd71446e05 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-dev-7.5.0 This commit looks good
2023-11-29 10:42:36 +01:00
14e545618c typo
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-28 15:42:36 +01:00
f92642623e update changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-28 15:38:57 +01:00
5714abda10 remove duplicate constants 2023-11-28 15:37:25 +01:00
a765e67b53 remove some printouts
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-28 15:32:08 +01:00
112fa2b8ff important bugfix 2023-11-28 15:31:37 +01:00
b987566947 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-27 15:41:58 +01:00
f321d7f0b6 bump tmtc again
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-27 12:20:14 +01:00
aef8db62b1 bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-27 12:19:00 +01:00
b0f81d1cce this should fix the param setting
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-27 12:04:55 +01:00
c0b4761ba0 smaller bugfixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-27 11:22:23 +01:00
e3271b6b4d bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-27 11:15:39 +01:00
14e56aa5d0 low pass for quest 2023-11-27 10:52:30 +01:00
70be396b62 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-27 10:41:21 +01:00
2f3335403b oh my poggers 2023-11-27 10:37:40 +01:00
f0247a9ab3 select the according quaternion and rotational rate
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-24 11:45:10 +01:00
7ef55dcab1 small fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-24 11:32:15 +01:00
c7ec9726c4 this should work
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-24 11:30:27 +01:00
647d5fda7c this is much better
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-24 10:52:36 +01:00
9e31c06563 changelog update
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-23 17:47:44 +01:00
ef948af5f3 small possible fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-23 17:22:36 +01:00
352043cb51 printout improvements 2023-11-23 17:20:55 +01:00
4a67f9ffe5 this is a mess
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-23 16:56:36 +01:00
314df7a021 bugfix for virt channel: clear invalid state
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-23 16:48:40 +01:00
b7ff78712c revert some changes in com IF
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-23 13:18:05 +01:00
886dd17e4a dataset output
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-23 11:50:26 +01:00
0aa09bd516 this is better
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-22 13:56:33 +01:00
a45e96b772 quest attitude estimation
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-22 13:36:04 +01:00
fa21790003 bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 17:49:08 +01:00
66619909a6 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 17:44:51 +01:00
3a76e24fc2 dsable debug flag
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 17:43:17 +01:00
8b5ca26cf1 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 17:40:25 +01:00
73ed59928e check TM before normal periodic OP
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-21 17:37:26 +01:00
1176c4397d more bugfixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 17:20:41 +01:00
b1ddf1d4fd clear active action cmds on OFF mode
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 16:49:37 +01:00
19594bc173 update generated files
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 16:45:35 +01:00
a07018bdd4 clear debug flag
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 16:36:36 +01:00
92bae9049f decline commands in wrong mode
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 16:35:34 +01:00
1aef8b6973 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 15:26:21 +01:00
518b265b4a remove the printouts, done
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 15:22:24 +01:00
cdad099f32 PLEASE WORK 2023-11-21 14:54:21 +01:00
f9d2d35f86 this is stupid
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 14:34:15 +01:00
a648b4be37 better thread and startup handling 2023-11-21 14:17:19 +01:00
8c51f53a26 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 12:55:05 +01:00
bd383cfe04 bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 12:54:36 +01:00
949401e247 less trashy mode checker
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 12:51:39 +01:00
ed8f2c75bf this should do the job
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-21 11:28:08 +01:00
5348188f6b changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-16 17:11:19 +01:00
9010d1d202 add new command to reload the JSON file
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-16 17:07:47 +01:00
3be9cae8a5 variable cfg path
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-16 16:57:36 +01:00
699cbb98cc add additional allowed subservice
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-16 11:01:56 +01:00
4a86d4ba4b changed fdir to new variant
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-15 16:54:54 +01:00
05d6025dcc bsp hosted fixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-15 15:41:51 +01:00
457acc3bdb improve structure
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-15 15:27:12 +01:00
f0536a9d77 this should do the job
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-15 15:21:00 +01:00
cae76e17f5 more improvements and bugfixes
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-15 14:38:09 +01:00
0e6d2dc79b this should work better
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-15 14:17:43 +01:00
03a6a06e48 some more improvements
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-15 11:46:08 +01:00
14813441dc bump fsfw
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-15 11:39:16 +01:00
e8bb8fd8f0 cleaning up
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-15 11:33:53 +01:00
bd74b95ffd on and normal mode finally work
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-15 11:31:57 +01:00
193c45ee33 another small fix 2023-11-15 08:48:31 +01:00
4f6a594707 OOPS
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-14 18:37:09 +01:00
3898e2d66f almost there.. I think
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-14 18:20:52 +01:00
9482f3cae9 fdir needs to change
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-14 16:57:55 +01:00
5512605cd7 param to enable/disable STR for rot rate calc
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-14 16:23:12 +01:00
c465558543 Merge branch 'main' into higher-acs-modes-only-str
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-14 16:07:22 +01:00
74e7785c68 calc rot rate from STR
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-14 16:07:14 +01:00
2563432171 somethings wrong
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-14 15:28:27 +01:00
bb20def961 Added new payload PST
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-14 13:25:53 +01:00
c155f399b1 .
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-14 13:22:35 +01:00
4638415264 b-side as default
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-14 13:21:03 +01:00
bd4449d7dd Fresh Supv handler
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-14 11:49:13 +01:00
e41e2e62e0 rewrite almost done
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-13 16:32:40 +01:00
8714948788 this is what device handler writing should have been
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-13 15:43:32 +01:00
134073fd84 continue PLOC SUPV
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-13 15:33:11 +01:00
94f654de53 Merge branch 'ploc-supv-extensions' of https://egit.irs.uni-stuttgart.de/eive/eive-obsw into ploc-supv-extensions
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-13 11:40:18 +01:00
53a743f19f continue ploc supv 2023-11-13 11:39:13 +01:00
876bde16e2 looking good
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-09 17:19:28 +01:00
42cc9c0fa8 add required fields
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-09 11:57:49 +01:00
bdf6baa9fc start adding data pool stuff
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-09 11:44:00 +01:00
92071b8e0e first structure
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-09 11:35:28 +01:00
2d686b3a26 come on indexer, do sth
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-09 11:11:47 +01:00
5be3af3515 robustness changes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-08 18:49:57 +01:00
6ae9e12cf9 what is going on with that thing?
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-08 18:43:11 +01:00
d8e0f9ffce stupid
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-08 18:19:24 +01:00
b623f01bea PLOC SUPV extensions
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-08 10:46:59 +01:00
49a87224e7 changelog update
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-07 09:13:21 +01:00
5862c1bb40 auto-formatter 2023-11-07 09:12:44 +01:00
6380a1def3 Merge pull request 'v7.3.0' (#820) from prep_v7.3.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #820
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-11-07 09:11:46 +01:00
3fe2c44955 Merge branch 'main' into prep_v7.3.0
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-06 15:36:04 +01:00
366a447b22 Merge pull request 'always add PLOC code' (#819) from always-add-ploc-code into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #819
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-11-06 15:34:57 +01:00
93c5e542bd bump release date
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-06 14:44:01 +01:00
4986955a0f bump changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-11-06 14:43:31 +01:00
b081766829 always add PLOC code
Some checks failed
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-06 14:37:13 +01:00
60a348a08f this gonna be fun
Some checks failed
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-11-02 16:59:09 +01:00
65f907448c Merge branch 'make-robin-happy-about-timestuff' into higher-acs-modes-only-str 2023-11-02 16:30:54 +01:00
b29c9c6e9c Merge branch 'make-robin-happy-about-timestuff' of egit.irs.uni-stuttgart.de:eive/eive-obsw into make-robin-happy-about-timestuff 2023-11-02 16:28:43 +01:00
3158f2341c update version number
Some checks failed
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-30 16:11:51 +01:00
c11867323c changelog 2023-10-30 16:11:36 +01:00
43af25891c Merge pull request 'Change PDEC addresses' (#813) from pdec-changed-addrs into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #813
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-30 15:54:37 +01:00
b8672d3453 Merge branch 'main' into make-robin-happy-about-timestuff
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-30 15:47:52 +01:00
15f3a2ce42 Merge branch 'main' into pdec-changed-addrs
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-30 15:02:34 +01:00
872215ce61 Merge pull request 'PLOC SUPV debug mode' (#815) from ploc-supv-debug-mode into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #815
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-30 14:57:33 +01:00
3c383f6d01 Merge branch 'main' into make-robin-happy-about-timestuff
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-30 14:47:38 +01:00
e45f9899ff changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-30 14:46:46 +01:00
b2791bb7db Merge remote-tracking branch 'origin/main' into pdec-changed-addrs
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-30 14:44:01 +01:00
2b1ed2be53 Merge remote-tracking branch 'origin/main' into ploc-supv-debug-mode
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-30 14:43:44 +01:00
3e5b9d6650 Merge pull request 'Prep v7.2.0' (#816) from prep_v7.2.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #816
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-30 13:13:31 +01:00
37853f8fe2 Merge branch 'main' into prep_v7.2.0
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-30 10:32:12 +01:00
bd60246f9a Merge pull request 'Update Internal Resistance' (#817) from update-internal-resistance into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #817
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-10-30 10:32:04 +01:00
a2090448ff changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-30 08:52:18 +01:00
ad6fa66daf update internal resistance
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 15:37:45 +02:00
647a394150 eive-tmtc version
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 15:04:11 +02:00
dca6cade11 bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 15:03:02 +02:00
43e981dfed prep v7.2.0
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 14:24:59 +02:00
49b2bef8f4 Merge pull request 'PL PCDU JSON update' (#812) from plpcdu-json-file-update into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #812
2023-10-27 14:17:06 +02:00
0c778b66f9 Merge pull request 'Reduce SUS FDIR Events' (#806) from sus-fdir-reduce-events into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #806
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-10-27 14:16:46 +02:00
68763e327b Merge remote-tracking branch 'origin/main' into plpcdu-json-file-update
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 14:05:45 +02:00
3c55a07404 Merge branch 'main' into sus-fdir-reduce-events
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 14:05:05 +02:00
2e7a1c1cb5 Merge pull request 'Swap RTD9 and RTD11 chip selects' (#814) from swap-rtd-9-and-11 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #814
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-27 14:00:14 +02:00
febb36f0eb Merge branch 'main' into swap-rtd-9-and-11
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 13:50:28 +02:00
1ba1946728 Merge pull request 'STR extensions' (#798) from str-extensions into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #798
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-27 13:50:12 +02:00
d2b5384f05 make marius happy
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 12:54:32 +02:00
5a67ce56aa changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 12:43:32 +02:00
65bb860fb2 Merge branch 'main' into sus-fdir-reduce-events
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 12:39:39 +02:00
6459a945ea Merge remote-tracking branch 'origin/main' into plpcdu-json-file-update
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 12:35:55 +02:00
b30c85866f Merge remote-tracking branch 'origin/main' into swap-rtd-9-and-11
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 12:34:52 +02:00
a877edf40b bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 12:34:33 +02:00
656c69f858 bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 12:32:59 +02:00
db582febb7 Merge remote-tracking branch 'origin/main' into str-extensions 2023-10-27 12:32:49 +02:00
c48f0678f1 Merge pull request 'Added CFDP fault handler events' (#809) from cfdp-fault-handler-event into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #809
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-27 12:32:17 +02:00
dcdceba07e wrapping up
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 12:17:54 +02:00
f8eb4fdd6f add contrast set
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 11:24:51 +02:00
964d47b909 bugfix for reset function
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 09:59:15 +02:00
35e7fba576 smoll fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-27 09:50:40 +02:00
44d9541e52 Merge branch 'main' into sus-fdir-reduce-events 2023-10-27 09:41:50 +02:00
0beac793a1 some more important bugfixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-26 20:45:36 +02:00
1c7545bffa fix 2023-10-26 19:59:16 +02:00
599ff256ff Merge remote-tracking branch 'origin/main' into str-extensions 2023-10-26 19:18:28 +02:00
be9d00be04 Merge remote-tracking branch 'origin/main' into cfdp-fault-handler-event
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-26 13:46:11 +02:00
c06cd710cf Merge remote-tracking branch 'origin/main' into swap-rtd-9-and-11
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-26 13:45:10 +02:00
02fcd0c423 disable printout mode
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-26 13:42:27 +02:00
27d6760322 add optional printout mode for PLOC SUPV 2023-10-26 13:41:52 +02:00
534ddde9e8 ploc supv debug mode
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-10-26 11:19:21 +02:00
54c2fc9646 validity handling
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-26 09:52:25 +02:00
1e284463ac Merge pull request 'State of Charge FDIR improvements' (#810) from eive-system-fdir into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #810
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-26 09:36:47 +02:00
7c765d037b compile fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-25 18:17:51 +02:00
ef2e62e418 changelog clarification
Some checks failed
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-25 17:51:41 +02:00
b7e33ebcb6 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-10-25 17:49:31 +02:00
93e3f3578d swap RTDs 2023-10-25 17:48:28 +02:00
f8d4eb04a5 slight improvement
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-25 17:47:51 +02:00
c784d1251b remove old code
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-25 09:54:29 +02:00
d5ca0f9f5e should not delete that
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-25 09:45:16 +02:00
94f3d89f7b smaller tweak
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-25 09:11:45 +02:00
817182b45f finished addr change
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-25 09:10:04 +02:00
f55b475f7e add new addrs
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-25 08:23:36 +02:00
ec903abd49 pdec handler start addr change
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-24 15:00:10 +02:00
70747e1864 bump PL PCDU handler
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-23 17:28:20 +02:00
c67a9fa2c2 this might be a bugfix
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-10-23 17:10:37 +02:00
3e5fae4458 Merge remote-tracking branch 'origin/main' into str-extensions
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-23 13:53:01 +02:00
feb6459878 might wanna push this
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-19 14:54:12 +02:00
1f203e9f76 improvements for SoC FDIR
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-19 14:20:40 +02:00
f4abb3fed6 instructions unclear, wrote a whole state machine
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-19 13:42:54 +02:00
3d04fb05ee updated obj ID
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-19 11:29:52 +02:00
7906274204 obj ID fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-19 11:29:23 +02:00
0854ec878b added CFDP fault handler events
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-19 11:27:21 +02:00
4ee84c0a78 Merge pull request 'CFDP source handler' (#776) from cfdp-source-handler into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #776
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-19 11:11:29 +02:00
fc626a2ad6 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-19 11:05:07 +02:00
4295b6b987 Merge branch 'main' into str-extensions
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-19 09:37:26 +02:00
440375e64b add cmd 2023-10-19 09:37:01 +02:00
58d9678613 woops 2023-10-19 09:32:21 +02:00
12909cb3b9 now for the fun part
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-19 09:26:28 +02:00
b3f9a82064 changelog update
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-18 18:16:32 +02:00
09aa5b9e1b Merge pull request 'CFDP Source Handler Tweaks' (#808) from cfdp-source-handler-testing into cfdp-source-handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
Reviewed-on: #808
2023-10-18 18:14:57 +02:00
ca33e2987f disable debugging
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler Build queued...
2023-10-18 18:14:02 +02:00
aa47881cec this is sufficient to sustain even the high rate
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-10-18 18:11:56 +02:00
6e3a60f9c5 fine tweaking
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-10-18 17:24:44 +02:00
e911d8b13e i guess we do this
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-18 16:15:33 +02:00
0f4fd6b452 auto blob
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-18 16:09:36 +02:00
d1ee938ade store still not large enough? 2023-10-18 16:07:00 +02:00
07ddaa2692 Merge pull request 'more testing' (#807) from cfdp-source-handler-testing into cfdp-source-handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
Reviewed-on: #807
2023-10-18 15:38:46 +02:00
6621b20aef changelog 2023-10-18 14:36:34 +02:00
8b6fa63c60 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-18 14:29:33 +02:00
696d8e4e4c threw out other debug output
All checks were successful
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-18 14:12:16 +02:00
978dd4a1de larger size
All checks were successful
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-18 14:10:57 +02:00
be6d52ff4a throw out stuff
All checks were successful
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-18 14:07:33 +02:00
665b7d95f7 actually lets keep this
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-18 13:35:18 +02:00
c139457661 reduce sus fdir events
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-18 13:32:09 +02:00
ace75919ca more testing
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-18 12:24:22 +02:00
d5e57501be div by 0 check
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-18 11:03:52 +02:00
77a555debc small improvement
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-18 11:00:43 +02:00
8d8eb6bd88 Merge branch 'main' into make-robin-happy-about-timestuff
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-18 10:57:47 +02:00
9482ceb206 noice
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-17 17:01:29 +02:00
e194071936 Merge remote-tracking branch 'origin/main' into cfdp-source-handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-17 10:47:53 +02:00
0f6d33e9f8 Merge pull request 'MPSoC robustness tweaks and debug mode' (#805) from mpsoc-debug-mode into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #805
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-17 09:48:51 +02:00
043d259fe4 Merge branch 'main' into mpsoc-debug-mode
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-17 09:05:10 +02:00
823aa70954 fixed deprecated functions
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-16 17:01:42 +02:00
dc0c24ce96 Merge branch 'main' into make-robin-happy-about-timestuff
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-16 16:54:36 +02:00
b0f047d76e Merge pull request 'Small bugfix for Power CTRL set handling' (#804) from power-ctrl-custom-tranisition into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #804
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-16 16:38:58 +02:00
a66004044a Merge remote-tracking branch 'origin/main' into str-extensions
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-16 15:45:57 +02:00
c268977b3d changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-16 15:30:17 +02:00
718277da28 remove dcommented code
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-16 15:18:32 +02:00
31bf896a6c disable debug mode
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-16 15:06:02 +02:00
d1f7b92eaa Merge branch 'power-ctrl-custom-tranisition' into mpsoc-debug-mode
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-16 14:47:01 +02:00
aaf99b52b4 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-16 14:46:45 +02:00
0ada956285 some more debugging
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-10-16 14:46:02 +02:00
f4c82d4a1b Merge branch 'power-ctrl-custom-tranisition' into mpsoc-debug-mode 2023-10-16 14:45:44 +02:00
b8e7363744 mpsoc debug opt
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-10-16 14:36:30 +02:00
f0cafedda7 this is better
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-16 14:10:51 +02:00
04c081f4aa transition
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-10-16 13:52:56 +02:00
17c253d19b this might just work
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-16 13:26:56 +02:00
25354ee7b4 i hope i get a medal from Robin for this
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-16 11:50:31 +02:00
f61da1002f breaking the ACS controller only for Robin
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-16 11:38:07 +02:00
e7276f282a Merge branch 'main' into make-robin-happy-about-timestuff
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-16 10:12:56 +02:00
ffba0b371c added another fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-13 17:28:31 +02:00
0f5f147b8d changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-13 17:12:35 +02:00
471d2c5b85 Merge pull request 'CFDP Source Handler Testing' (#803) from cfdp-source-handler-testing into cfdp-source-handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
Reviewed-on: #803
2023-10-13 17:10:43 +02:00
c5c9692ded lets leave it like this.
Some checks are pending
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler Build started...
2023-10-13 17:09:50 +02:00
f14d792658 this should work as well now
All checks were successful
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-13 16:56:10 +02:00
d486c04634 better docs
All checks were successful
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-13 16:55:19 +02:00
ce60a639ce small tweak
All checks were successful
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-13 16:48:43 +02:00
6c4149571d debug flags
All checks were successful
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-13 16:47:16 +02:00
e7709b7091 this is even better
All checks were successful
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-13 16:42:13 +02:00
a47ad98d90 delete some old code
All checks were successful
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-13 16:29:02 +02:00
2f25ac8e7d remove old printouts
All checks were successful
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-13 16:25:40 +02:00
b8beddc11b gens
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-cfdp-source-handler This commit looks good
2023-10-13 15:24:06 +02:00
4431883b4d okay, PAPB IF caches packet now 2023-10-13 15:10:52 +02:00
2279eab5e7 maybe this works better?
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-10-13 14:20:50 +02:00
be1fb22e39 somethings wrong, i can feel it 2023-10-13 14:00:44 +02:00
c95964ce0f lets see if this works better
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-10-13 13:21:28 +02:00
5bcd171108 lot of debugging and trying out
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
EIVE/eive-obsw/pipeline/head This commit looks good
2023-10-13 11:42:13 +02:00
9f600a24ff refactored throttle handling
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-13 10:57:58 +02:00
031be000d4 printout correction
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-13 10:04:03 +02:00
5bc468f13f Merge branch 'refactor-fix-ptme' into cfdp-source-handler
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-13 09:45:21 +02:00
8dbc5cad48 more bugfixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
EIVE/eive-obsw/pipeline/head This commit looks good
2023-10-13 09:39:50 +02:00
7c42e05c23 wait duration fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-13 09:29:57 +02:00
99192606a2 bugfixes for PAPB IF
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-13 09:27:24 +02:00
ffe1281eb9 fix PTME
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-10-13 09:20:51 +02:00
8f4c9b272c important bugfix for SSC field
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-12 18:26:55 +02:00
433373e6b7 Merge pull request 'Xiphos WDT' (#797) from add-xiphos-wdt-handling into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #797
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-11 19:49:59 +02:00
ebe67a38a9 bump minor version
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-10-11 19:49:24 +02:00
bb4e495199 changelog correcion
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 19:40:16 +02:00
c35fe58b15 Merge remote-tracking branch 'origin/main' into add-xiphos-wdt-handling
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 19:38:09 +02:00
62305ec39b bump tmtc 2023-10-11 19:38:03 +02:00
867d43b508 Merge pull request 'prep next release' (#801) from prep_v7.0.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #801
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-11 18:20:16 +02:00
a381efc5d9 prep next release
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-10-11 18:16:36 +02:00
9265f27af9 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 15:02:59 +02:00
4e3229f018 cache wdt state
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 15:00:15 +02:00
eb1b9c837f comment
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 14:53:10 +02:00
8cb4661006 higher timeout (max value) 2023-10-11 14:51:55 +02:00
78e70dafc3 Merge remote-tracking branch 'origin/main' into str-extensions
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 14:48:06 +02:00
740167ce99 monotonic for pwr ctrl
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 14:30:57 +02:00
e12ce62f5c Merge remote-tracking branch 'origin/main' into add-xiphos-wdt-handling
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 14:28:32 +02:00
fd0c186669 Merge pull request 'SCEX bugfix' (#799) from scex-bugfix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #799
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-10-11 14:16:25 +02:00
5283607441 changelog update
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 13:59:11 +02:00
3cd9f2bfc7 Merge remote-tracking branch 'origin/main' into str-extensions
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 13:57:45 +02:00
fddae1bfc6 compile fixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 13:56:05 +02:00
d84528e643 CFDP file segment len is configurable via definitions.h now
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 13:47:38 +02:00
7b6d1c99ff Merge remote-tracking branch 'origin/main' into cfdp-source-handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 12:59:27 +02:00
ee6cdaf619 bump submodules 2023-10-11 12:57:42 +02:00
c3cdcaf9f4 bump tmtc and gens
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-11 10:58:25 +02:00
b5cd64ea00 Merge remote-tracking branch 'origin/main' into add-xiphos-wdt-handling 2023-10-11 10:54:16 +02:00
0ee708f496 Merge remote-tracking branch 'origin/main' into scex-bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 10:51:59 +02:00
42d5d74e6a Merge pull request 'SoC Calculator' (#754) from soc-calculator into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #754
2023-10-11 10:50:46 +02:00
6cada9bfc0 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 09:31:32 +02:00
ac784b5899 bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 09:27:11 +02:00
4d98b2f5d3 Merge branch 'soc-calculator' of egit.irs.uni-stuttgart.de:eive/eive-obsw into soc-calculator
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-11 09:25:25 +02:00
eb24749abe emObjectFactory fix 2023-10-11 09:25:12 +02:00
a0c246b1da rw dummy fix 2023-10-11 09:24:48 +02:00
b9f05a14f7 removed debug stuff 2023-10-11 09:24:36 +02:00
9a283b0f98 add action cmds
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-10 19:15:52 +02:00
d1e0d74072 robustness fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-10 18:44:13 +02:00
7f82dd91e2 changelog
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-10 16:20:51 +02:00
a29805cb68 SCEX bugfix 2023-10-10 16:18:35 +02:00
9a80af9b95 update tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-10 13:51:41 +02:00
0da1fecf39 updatr submodules
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-10 13:50:15 +02:00
4b4c78c3fa lets go back to 60 seconds
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-10 12:19:42 +02:00
2c30efa821 aaand we revert
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-10 11:54:32 +02:00
98a1ce5380 this should work 2023-10-10 11:53:54 +02:00
8fc560f9de what is this? 2023-10-10 11:34:18 +02:00
b635e02f2d gens
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-10 10:07:01 +02:00
000077f327 corrected logic 2023-10-10 10:06:32 +02:00
33d3e7686c right we need dummies ... 2023-10-10 10:06:10 +02:00
93939f9541 that should do the job
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-09 15:56:48 +02:00
5f9247ee1e this does not work
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-09 15:36:49 +02:00
e65352818f added logic for secondary TM handling
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-09 15:29:04 +02:00
9421b22098 remove from target table
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-09 15:21:53 +02:00
25a5e187f6 object factory changes 2023-10-09 15:21:38 +02:00
8fe4a85998 missing API calls
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-09 15:18:40 +02:00
cc1be69764 finished STR extensions TMTC
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-09 15:16:48 +02:00
706c5be7f7 stop the spam
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-09 14:03:57 +02:00
47b15bec93 not needed as all PL components are set to faulty anyways
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-09 14:03:13 +02:00
bd8cb7c26f what is dis
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-09 11:42:42 +02:00
e9ad8d956a i need a vacation ...
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-09 09:33:37 +02:00
e9e8a93cf4 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-06 11:41:03 +02:00
f2ee6995f9 compile fixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-06 11:35:57 +02:00
d64372833c added blob tm
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-06 11:23:31 +02:00
a46f712538 STR handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-04 10:44:03 +02:00
5e7f0e729b merge main
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-04 09:53:04 +02:00
6a6789ae99 STR extensions
Some checks failed
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-10-02 16:11:17 +02:00
34100e6c95 small robustness tweak
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-02 14:49:29 +02:00
404a1009ed that should get the job done
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-02 14:47:41 +02:00
9c1eee075c well that was fast
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-10-02 14:15:50 +02:00
0e48721655 spam protection
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-29 15:56:07 +02:00
59bc783045 ploc supervisor mode change soc check
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-29 15:37:47 +02:00
cbfcee0b1c ploc mpsoc mode change soc check
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-29 15:33:09 +02:00
2966ee5005 boop 2023-09-29 15:32:38 +02:00
2a66f335f2 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-29 15:27:03 +02:00
8847ed611d cam switcher mode change soc check 2023-09-29 15:26:21 +02:00
b66b202373 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-29 14:31:14 +02:00
fda76e24ae pl pcdu mode change soc check 2023-09-29 14:30:57 +02:00
509243a47f eive system event handling
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-29 14:18:42 +02:00
9472faf899 set plFlag to invalid if PWR ctrl is in on
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-29 10:30:26 +02:00
9f8e7b6673 enable dataset to be called by non-owner 2023-09-29 10:29:52 +02:00
69f5529ade added dataset for flag for pl usage
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-29 10:16:23 +02:00
1abc503614 bump tmtc 2023-09-29 10:15:34 +02:00
758add2928 improved events, allowed all modes, removed debug output 2023-09-29 09:50:48 +02:00
49102463f5 ran generators 2023-09-29 09:49:52 +02:00
61ebe5ed99 scheduled EPS subsystem 2023-09-29 09:49:21 +02:00
eb84b5bb87 schedule pwr ctrl with bpx again
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-28 13:09:53 +02:00
a3ed2791b7 remove comments for mode handling
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-28 12:00:48 +02:00
173ee62d39 connect pwr ctrl to eps
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-28 12:00:04 +02:00
6a77635bfb soc calculation fixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-27 16:36:09 +02:00
c486bb2cf3 pwr ctrl fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-27 14:46:45 +02:00
1973bd2c5b fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-27 13:07:18 +02:00
063a7efc6b fixed include
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-27 13:00:29 +02:00
b7ccb8b41d cmake 2023-09-27 13:00:18 +02:00
23b15cf302 add EPS to transitions
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-27 11:55:33 +02:00
8275c10b69 Merge branch 'main' into soc-calculator
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-27 11:35:13 +02:00
7d1d913220 Merge pull request 'Tweaks for MPSoC startup and shutdown code' (#796) from mpsoc-tweaks into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #796
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-09-27 11:32:30 +02:00
209e0c68fb fixes
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-26 11:56:04 +02:00
4ba3e394f9 increase boot time slightly
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-25 18:07:54 +02:00
50809e35a9 some nullptr checks
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-25 18:07:28 +02:00
eb538a789a changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-25 17:53:25 +02:00
b3233abde9 update tmtc and gen files
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-25 17:50:13 +02:00
08dbab9daa another missing small tweak
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-25 17:48:30 +02:00
624d454464 delete wait cycles member
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-25 17:43:54 +02:00
244d59e6c0 bump tmtc
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-09-25 17:42:26 +02:00
ff7e475391 this appears to be the boot time
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-09-25 17:21:28 +02:00
75f08175f6 more debugging necessary here
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-09-25 17:10:13 +02:00
a2246f9d3d this is odd
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-09-25 16:44:10 +02:00
0d0a98220a improve MPSoC boot and shutdown process
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-09-25 16:36:35 +02:00
35fd2c72d8 slightly better printout
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-09-25 15:17:09 +02:00
0ad3f508a9 further fixes
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-22 16:07:26 +02:00
6b9e191988 fixed voltage bugs
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-22 10:08:04 +02:00
654d9b1536 Merge branch 'main' into soc-calculator
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-20 09:19:53 +02:00
5036836b44 use bpx voltage instead
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-20 09:19:09 +02:00
f2e15bb134 fixed wrong type 2023-09-20 09:18:52 +02:00
78a7b29f8b Merge pull request 'prep v6.6.0' (#795) from prep_v6.6.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #795
2023-09-19 11:09:38 +02:00
d4a87ee789 prep v6.6.0
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-18 16:32:22 +02:00
34a82b6e6c Merge pull request 'PDEC DTB update' (#794) from pdec-dtb-update into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #794
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-09-18 16:24:57 +02:00
1d51bfba3d boop
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-15 13:34:16 +02:00
09951edbba removed deprecated input
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-15 10:05:04 +02:00
e40dd74f39 lets see if this robin guy knows what he is talking about
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-14 13:54:05 +02:00
623427035d Merge branch 'main' into persistent-tle-store 2023-09-14 13:22:03 +02:00
592561b287 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-14 12:29:11 +02:00
fa7443d4a9 bump tmtc, small tweaks 2023-09-14 12:28:40 +02:00
8071a5713f these queue sizes are sufficient
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-14 10:38:43 +02:00
9243f917cc STOOOPID bug
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-14 10:23:00 +02:00
ca4e90ad97 important fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-13 18:13:16 +02:00
a1a1c3aef9 biggest changes possible
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-13 16:29:54 +02:00
634f6c6001 introduction of eps subsystem object
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-13 14:34:10 +02:00
6fa2cbbbb1 large regular live channel queue size
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-13 13:38:40 +02:00
e415c35987 Merge branch 'cfdp-source-handler' of https://egit.irs.uni-stuttgart.de/eive/eive-obsw into cfdp-source-handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-13 13:09:35 +02:00
98e1beafdf implemented missing queue handling 2023-09-13 13:09:07 +02:00
2195beb045 Merge branch 'main' into soc-calculator
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-13 13:07:43 +02:00
8871146e88 remove commented code
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-12 14:35:10 +02:00
51dafa56be remove obsolete TODOs
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-12 14:32:11 +02:00
b6f28eb239 wrong API call
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-12 14:29:42 +02:00
24de951038 reduce duplicate code
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-12 14:27:14 +02:00
0a455183f4 fix FM build
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-12 14:22:18 +02:00
b753d32b2b Merge remote-tracking branch 'origin/main' into cfdp-source-handler
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-12 14:19:25 +02:00
695f5fa5bc changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-12 13:31:03 +02:00
a697368297 remove diagnostic printouts
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-12 13:18:49 +02:00
d0effc50b1 Merge remote-tracking branch 'origin/main' into pdec-dtb-update 2023-09-12 13:18:33 +02:00
c226d971c2 Merge pull request 'prep next patch' (#793) from bump-tmtc into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #793
2023-09-12 13:15:50 +02:00
1bda30773f prep next patch
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-09-12 13:08:16 +02:00
cdf63f0d42 PDEC DTB update
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-09-12 12:54:24 +02:00
fdd635e43f bump tmtc
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-12 10:52:47 +02:00
ba158e3826 Merge remote-tracking branch 'origin/main' into cfdp-source-handler
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-12 10:52:25 +02:00
db74d0490b Merge pull request 'prep v6.5.0' (#792) from prep_v6.5.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #792
2023-09-12 10:49:06 +02:00
c209c71d5f prep v6.5.0
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-12 10:17:29 +02:00
2e83627139 Merge pull request 'Relax SUS FDIR' (#677) from relax-sus-fdir into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #677
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-09-12 10:16:06 +02:00
3cb9cd124d bump tmtc
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-09-12 10:08:28 +02:00
fc23438e5d update gen files
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-12 10:07:00 +02:00
52ae402594 missing include
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-11 20:21:14 +02:00
6771d656bb beautiful
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-11 20:16:54 +02:00
5d8b81e131 miight be able to work with this
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-11 19:27:39 +02:00
6fe4c71cee this is useable 2023-09-11 19:23:48 +02:00
33d503aef9 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-11 16:23:52 +02:00
aa4bf5f293 Merge branch 'main' into relax-sus-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-11 16:11:01 +02:00
7c6cd12f14 Merge pull request 'this might fix the device' (#791) from mgm3100-cfg-adaptions into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #791
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-09-11 15:48:49 +02:00
e26338e4cb adapt event severities
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-11 15:39:21 +02:00
55dcb3595b this might fix the device
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-07 16:28:55 +02:00
101cf54745 fix Q7S builds
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-07 16:20:31 +02:00
2b841d2f37 some tweaks for error handling code
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-07 16:19:01 +02:00
4af406b294 changelog
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-07 16:14:20 +02:00
35f287ff23 Merge remote-tracking branch 'origin/main' into cfdp-source-handler
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-07 16:13:46 +02:00
0337104173 another small bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-07 16:09:43 +02:00
5a1b2470f0 some structure clean up
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-07 16:07:59 +02:00
c51fbb9074 add recovery handling
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-07 16:05:51 +02:00
58961efb3f that should get the job done
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-07 16:03:36 +02:00
f9f6ac27e8 Merge remote-tracking branch 'origin/main' into relax-sus-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-07 15:41:59 +02:00
1b295139a0 Merge pull request 'Features for v6.5.0' (#790) from features-v6.5.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #790
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-09-07 15:12:14 +02:00
0fb837323d works properly now
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-06 21:03:08 +02:00
48f3ff05dc bump fsfw
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-06 20:54:45 +02:00
cfbd6d3b1e changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-06 14:38:19 +02:00
63b6db258c params for new safe mode 2023-09-06 14:37:04 +02:00
c709bd0881 changelog 2023-09-06 14:35:40 +02:00
a81eae7726 exchange nominal and 1st redundancy sensor for ploc mission board 2023-09-06 14:34:15 +02:00
c64f1f8693 a lot of good stuff
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-09-06 13:40:38 +02:00
a7ac383423 stooopid stuff
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-06 10:11:33 +02:00
9c36898dcd increase TM store size a bit
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-05 16:05:28 +02:00
b7558e9542 update retvals
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-04 11:20:21 +02:00
c7b27c0092 source transactions now working
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-09-04 11:03:32 +02:00
7e9648eabf CFDP handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-31 15:20:19 +02:00
6f2eaee50a trigger a useful event
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-31 15:10:43 +02:00
ea2a137aec add error message
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-30 13:10:51 +02:00
fa43c5480b that should cause a transaction start
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-30 11:58:21 +02:00
b6b342bf99 introduce queue for put requests
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-30 11:47:39 +02:00
2f6565621b bump tmtc for bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-30 11:38:01 +02:00
0c1eae3382 auto-formatting
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-30 11:35:06 +02:00
2acb6d8132 bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-30 10:56:32 +02:00
8e41885ca1 tle gets stored presistent now
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-23 15:21:40 +02:00
a39da169d8 Merge pull request 'Bump Submodules' (#788) from bump-submodules into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #788
2023-08-21 18:53:54 +02:00
4f335ea270 bump tmtc
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-08-21 18:49:49 +02:00
90b4a4d8c0 bump fsfw 2023-08-21 18:36:01 +02:00
3acdb54fab Merge pull request 'Prep v6.4.1' (#787) from prep-v6.4.1 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #787
2023-08-21 18:23:12 +02:00
6048ffe656 prep
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-21 16:01:56 +02:00
5060de1f6d Merge pull request 'Fix for MAG Field Vector calculation' (#786) from mgm4-disabled-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #786
2023-08-21 14:51:29 +02:00
26bf178b2a changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-21 14:41:16 +02:00
b9167c7e22 valid check now includes allowed use of mgm4
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-21 14:33:55 +02:00
b97afc9f1c Merge pull request 'PDEC Corrupted Config Event Parameters' (#785) from meier/pdec-event-params into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #785
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-21 09:20:30 +02:00
a1d360502f changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-21 09:14:16 +02:00
ddbf4a5ff0 run auto formatter
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-19 06:37:39 +02:00
6febf6242a pdec config corrupted event, readback config used as parameters
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-08-19 06:33:31 +02:00
033babf50a bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-17 16:45:29 +02:00
da71aea101 Merge pull request 'event fix for file corruption' (#784) from persistent-tm-store-event-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #784
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-17 16:45:12 +02:00
df397f6dee changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-17 10:28:55 +02:00
e148e95471 event fix for file corruption
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-17 10:27:33 +02:00
b11461c2f7 Merge pull request 'missing changelog entry' (#783) from ploc-supv-changelog into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #783
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-16 13:58:04 +02:00
2b5dcf99dc changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-16 13:36:34 +02:00
d6fd28e124 fix hosted build
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-16 13:35:09 +02:00
8186a3ef4f proxy request should now arrive at the handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-16 13:22:05 +02:00
f62a4ee2b4 this should make proxy op forwarding work
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-16 13:16:14 +02:00
c47995a0eb Merge remote-tracking branch 'origin/main' into cfdp-source-handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-16 11:38:16 +02:00
952e1c16e5 improve structure of CFPD mission code 2023-08-16 11:38:00 +02:00
1748d18852 missing changelog entry
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-16 10:57:02 +02:00
8a1e6bc5d2 Merge pull request 'date correction' (#782) from prep_v6.4.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #782
2023-08-16 10:54:50 +02:00
72fc99dc49 date correction
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
2023-08-16 10:54:02 +02:00
3652b6cfad Merge pull request 'PLOC SUPV periodic HK' (#781) from ploc-supv-periodic-hk into main
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
EIVE/eive-obsw/pipeline/head Build started...
Reviewed-on: #781
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-15 18:56:11 +02:00
d1a446d445 hopefully dont need this const
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-15 14:43:23 +02:00
e64e9daed1 bump eive-tmtc
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-08-15 14:42:12 +02:00
963ca0c939 PLOC SUPV
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-08-15 14:34:10 +02:00
2d18ce4ff1 adapt changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-15 13:59:59 +02:00
0b35585449 Merge branch 'prep_v6.4.0' into ploc-supv-periodic-hk 2023-08-15 13:59:47 +02:00
af5f51928b PLOC SUPV periodic HK
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-15 13:49:06 +02:00
6919ab9455 Merge pull request 'new event, bump tmtc' (#779) from new-event into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #779
2023-08-15 13:32:44 +02:00
e4545d0515 new event, bump tmtc
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-08-15 13:29:46 +02:00
fb2995575b prep next version
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-15 13:26:45 +02:00
77e3b8c359 Merge pull request 'PDEC corrupted Config Event' (#773) from meier/pdec-config-readback into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #773
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-15 13:24:02 +02:00
63b483b71a Merge remote-tracking branch 'origin/main' into meier/pdec-config-readback
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-08-15 13:22:42 +02:00
e24212207f Merge remote-tracking branch 'origin/main' into meier/pdec-config-readback
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-08-15 13:21:53 +02:00
2ed010327f Merge pull request 'Improve Safe Strat State Machine' (#777) from safe-strat-improvement into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #777
2023-08-15 13:19:14 +02:00
181d355741 bump tmtc
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-08-15 13:17:08 +02:00
0fb57064d3 Merge remote-tracking branch 'origin/main' into safe-strat-improvement 2023-08-15 13:16:58 +02:00
2526873be2 Merge pull request 'Rework PDEC FDIR' (#772) from rework-pdec-fdir into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #772
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-15 11:23:54 +02:00
bda57d9bd1 Merge remote-tracking branch 'origin/main' into meier/pdec-config-readback
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-15 10:50:02 +02:00
6fc50f164e Merge remote-tracking branch 'origin/main' into rework-pdec-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-15 10:49:17 +02:00
41ff0cc9ac Merge remote-tracking branch 'origin/main' into safe-strat-improvement
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-15 10:48:49 +02:00
cc4795c657 Merge pull request 'Flag for MGM4 Usage' (#778) from delete-mgm4-from-existance into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #778
2023-08-15 10:31:13 +02:00
196781ed4a changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-15 09:39:59 +02:00
7ab8fb8cb9 added parameter to disable usage of mgm4 2023-08-15 09:37:54 +02:00
0a42093de3 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-15 09:20:00 +02:00
d82a6ece5a use safeCtrl even if SUS and MGM vectors are too close
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-15 09:11:57 +02:00
c09c0ee947 clean up handler a bit
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 21:22:01 +02:00
d2ae8e9362 better naming
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 21:06:49 +02:00
360911e5eb continue source handler integration
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 20:48:37 +02:00
ede0805ee8 instantiated source handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 16:29:51 +02:00
693c183dcc bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 16:07:16 +02:00
fe0d2bf832 Merge remote-tracking branch 'origin/main' into meier/pdec-config-readback 2023-08-14 16:06:59 +02:00
37b6c32d15 Merge remote-tracking branch 'origin/main' into rework-pdec-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 16:06:27 +02:00
288b09766d Merge remote-tracking branch 'origin/main' into cfdp-source-handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 15:59:20 +02:00
a7c1b19db4 Merge remote-tracking branch 'origin/main' into cfdp-source-handler
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 15:58:33 +02:00
88286eaca0 this compiles
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 15:58:12 +02:00
8447b3c41e Merge pull request 'Use SGP4 Propagator for GPS' (#770) from use-sgp4-propagator into main
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
Reviewed-on: #770
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-08-14 15:47:32 +02:00
93896557aa fuck math.h
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 15:36:20 +02:00
36b38dd5bf Merge branch 'main' into use-sgp4-propagator
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-08-14 15:34:20 +02:00
639fddcdef Merge pull request 'Cleaner Calculation of MGM and SUS Rate' (#775) from mgm-sus-rate-calc into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #775
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-08-14 15:28:33 +02:00
6f8484be2a Merge branch 'main' into mgm-sus-rate-calc
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-08-14 15:28:22 +02:00
424f3c5247 changelog and re-run generators
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 15:09:45 +02:00
e2b54ddb8e Merge remote-tracking branch 'origin/main' into meier/pdec-config-readback
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 15:06:58 +02:00
567d68107d auto-formatting
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 15:06:22 +02:00
dd5b858666 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 14:59:56 +02:00
c63093d6cf bump fsfw
Some checks failed
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-08-14 14:57:18 +02:00
acc140412d Merge branch 'use-sgp4-propagator' of https://egit.irs.uni-stuttgart.de/eive/eive-obsw into use-sgp4-propagator
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 12:48:47 +02:00
15421240f1 naming 2023-08-14 12:48:22 +02:00
84f7642411 Merge remote-tracking branch 'origin/main' into use-sgp4-propagator
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 12:21:53 +02:00
4851c6fdb0 Merge pull request 'Add debug GPS dataset including more data' (#771) from more-gps-tm into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #771
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-08-14 12:20:40 +02:00
d65c63b58f Merge branch 'main' into use-sgp4-propagator
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 10:50:04 +02:00
819f5c299d Merge branch 'main' into mgm-sus-rate-calc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 10:40:29 +02:00
2af1b6b698 Merge branch 'main' into more-gps-tm
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 10:40:07 +02:00
35fe0c909a Merge pull request 'ENOUGH IS ENOUGH' (#774) from ENOUGH-IS-ENOUGH into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #774
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-08-14 10:39:49 +02:00
da25d650d9 bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 10:34:06 +02:00
73e9bc9598 Merge remote-tracking branch 'origin/main' into rework-pdec-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 10:32:55 +02:00
0095397b4f that should do the job
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 10:30:46 +02:00
9ba8c02e91 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 10:20:28 +02:00
a99895a2b6 cleanup
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 10:15:33 +02:00
110c822f41 cleaner calculation of sus rate
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 10:08:51 +02:00
5a7f0d08a4 cleaner calculation of mgm rate
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-14 09:53:33 +02:00
d28ec2c31a config word functions pass value now by reference and return returnvalue
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main This commit looks good
EIVE/eive-obsw/pipeline/head Build started...
2023-08-11 16:15:56 +02:00
9201095644 typos
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-09 13:44:10 +02:00
653d13960f ability to disable usage of sgp4 2023-08-09 13:42:54 +02:00
b4c3553965 changelog 2023-08-09 13:41:41 +02:00
e2cce1cb51 added event for TLE being too old 2023-08-09 13:41:25 +02:00
d9879013e6 fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-09 11:44:17 +02:00
a467dd790f CHANGELOG
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-09 11:32:05 +02:00
185d86245b HOW CAN ANYONE WORK WITH THIS SHITTY SPAM
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-09 11:29:52 +02:00
f3e18f1313 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-09 11:04:59 +02:00
a9fe166b32 do not use raw gps data anywhere
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-09 10:46:43 +02:00
1069572392 removed debug output 2023-08-09 10:46:24 +02:00
38a8327be0 i hate it here
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-09 10:13:19 +02:00
8a707a2664 Merge branch 'main' into use-sgp4-propagator
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-08-09 09:17:20 +02:00
8e2c6a95e0 debug galore
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-08-08 15:06:35 +02:00
8da08bd328 fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-08 14:24:26 +02:00
11578b9d9a i hate myself
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-08 13:47:44 +02:00
04dde604db Merge branch 'main' into more-gps-tm
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-08 09:32:55 +02:00
78f4bbc3a7 Merge pull request 'GPS Changes' (#767) from gps-changes into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #767
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-08 09:10:11 +02:00
c3bca9bb54 added event which is triggered when config of pdec is corrupted
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-07 17:08:33 +02:00
8f8c3fd4a2 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-07 17:00:19 +02:00
99dbab9311 Merge branch 'main' into gps-changes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-07 16:58:46 +02:00
fa3d5cbc3e handling of which GPS result to use
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-07 16:44:03 +02:00
dfa20545e4 yes ofc i know what every one of these equations does 2023-08-07 16:43:31 +02:00
947eef7170 just in case we ever do this
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-07 13:45:06 +02:00
04c9013c64 feedback of spg4 usage to dataset
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-07 13:37:05 +02:00
e631ab55e6 enum for gps source 2023-08-07 13:36:40 +02:00
a81d911f8e init source pool var 2023-08-07 13:36:12 +02:00
2b03c41305 i guess i had to edit it here, thanks mr cmake god
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-07 13:35:32 +02:00
e261d3609b use spg4 2023-08-07 11:36:30 +02:00
2a0b139f70 spg4 into navigation
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-08-07 11:23:10 +02:00
f9befaebd0 action command to update TLE
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-08-07 10:43:00 +02:00
4b90d26445 add source flag for GPS data
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-07 10:39:20 +02:00
ad6e0e9946 add source flag
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-08-07 10:31:26 +02:00
ef8409d4a8 apparently FLP is part of the cool kids who store their paramenters as datasets
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-07 09:38:35 +02:00
1e9d772d37 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-04 16:28:06 +02:00
27cf93e6ab lets actually downlink both datasets
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-04 15:54:03 +02:00
9f176e1959 doc correction
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-04 14:28:58 +02:00
e4632b2538 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-04 14:26:13 +02:00
669c3630a9 reworked PDEC FDIR 2023-08-04 14:23:10 +02:00
d91a71fb51 remove debug output
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-04 12:22:47 +02:00
2952f1feb1 fix 2023-08-04 12:22:31 +02:00
0c25b37c7b gps satellites signals to dataset
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-04 10:50:19 +02:00
348b720885 well this was easy
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-03 20:56:46 +02:00
080b729f11 wow so much progress
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-03 14:41:35 +02:00
05fbff2e6d Merge remote-tracking branch 'origin/main' into relax-sus-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-03 13:37:36 +02:00
b2d9582a46 Merge pull request 'prep v6.3.0' (#769) from prep_v6.3.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #769
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-03 13:17:53 +02:00
155bf9eed0 prep v6.3.0
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-08-03 13:15:57 +02:00
15618a4c18 Merge pull request 'Fix Calculation of Fused Rotation Rate during Eclipse' (#768) from fused-rot-rate-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #768
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-08-03 13:11:04 +02:00
d07568bbe1 Merge branch 'main' into fused-rot-rate-fix
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-08-03 13:10:15 +02:00
1267097368 Merge pull request 'PL PCDU tweaks' (#766) from pl-pcdu-tweaks into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #766
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-03 13:07:10 +02:00
e746c151d3 tweaks
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-08-03 13:03:10 +02:00
5958560d00 cleanup
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-03 11:34:29 +02:00
e258193713 changelog 2023-08-03 11:32:16 +02:00
8f0b0f47c9 not sure if we need it here but doesnot matter 2023-08-03 11:32:08 +02:00
97f40232d7 changelog typo
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-03 10:16:51 +02:00
7c3329abb2 this is more correct
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-03 10:16:11 +02:00
acc50ca7aa fused rotation rate calculation during eclipse can be disabled
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-03 10:09:43 +02:00
6f8ad08e9b changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-03 10:06:10 +02:00
1f02c0ef57 set set to 0 for OFF cmd
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-03 10:05:10 +02:00
093f7f3a31 re-introduce proper bounds checking
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-03 09:59:08 +02:00
a0e4f0a438 Merge branch 'main' into pl-pcdu-tweaks
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-03 09:23:54 +02:00
81311770e8 this might be the fix
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 16:26:57 +02:00
8441c49fe6 big gps victory
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 16:00:27 +02:00
ff6cb2a2e3 Merge remote-tracking branch 'origin/main' into gps-changes
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-08-02 15:32:01 +02:00
2132f6bb1f Merge pull request 'SCEX filesystem usage fixes' (#765) from scex-fs-usage-improvements into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #765
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-02 15:31:48 +02:00
d2c0c1709e that should do the job
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 15:29:13 +02:00
b23ae2e152 logiically it works..
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 14:17:32 +02:00
eae63a8dc9 add PL PCDU for EM
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 14:08:10 +02:00
388dc0a813 gps event spam fix?
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-08-02 13:40:51 +02:00
a88725070b more robust code
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-08-02 13:40:37 +02:00
39c299e55d Merge remote-tracking branch 'origin/main' into scex-fs-usage-improvements
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 13:13:55 +02:00
0bbcfb34e8 tweaks for pin handling
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-08-02 11:14:35 +02:00
7f3c71f4dc Merge pull request 'Bugfixes for Detumble Mode' (#764) from acs-detumble-bugfixes into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #764
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-08-02 10:43:59 +02:00
03e0cb4ca4 Merge branch 'main' into acs-detumble-bugfixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 10:28:58 +02:00
5f82b05d3e how many changelog commits will it be
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 10:27:14 +02:00
004c60030b changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 10:24:24 +02:00
c08024bd0b changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 10:23:02 +02:00
6bdafe62ad thank god we never needed this before 2023-08-02 10:22:15 +02:00
7fe676fed9 add event function CALL
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 09:44:22 +02:00
2fda3e127e changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 09:42:24 +02:00
beb79d2fb4 that should do the job
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 09:41:54 +02:00
f0bbc1d090 added filesystem down event
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 09:39:42 +02:00
c120ce8617 remove newline 2023-08-02 09:29:55 +02:00
58c19e90eb changelog fix 2023-08-02 09:29:28 +02:00
833166cc78 Merge remote-tracking branch 'origin/main' into scex-fs-usage-improvements 2023-08-02 09:29:04 +02:00
0ea0322e45 Merge pull request 'EIVE system changes for reboot handling' (#763) from pdec-reboot-target-self-image into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #763
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-02 09:27:26 +02:00
949ac8942d small corrections
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-08-02 09:25:01 +02:00
6d18e21edf removed stray return
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-08-02 09:23:00 +02:00
d9a010f6bd changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-08-02 09:21:53 +02:00
971fd5b4a3 improve SCEX FS usage code 2023-08-02 09:20:36 +02:00
4b4dd35b55 this is the cleanest solution
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-08-02 09:19:43 +02:00
988da377b1 pause the tasks waiting for a reboot
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-02 09:00:45 +02:00
77ffc62236 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-01 16:41:37 +02:00
bea918e861 added fused rotation calculation to detumble and write detumble strat to dataset
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-01 16:37:42 +02:00
8105e5f689 more robust code
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-01 09:36:08 +02:00
b27694321f update changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-08-01 09:29:34 +02:00
a884176773 improvements for reboot FDIR
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-08-01 09:26:06 +02:00
1f61f7d2e8 Merge pull request 'Small SCEX fix' (#761) from small-scex-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #761
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-08-01 09:08:25 +02:00
f1cb2caa3a cool
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-31 13:32:40 +02:00
2eba5d52da don't need those anymore
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-31 13:28:54 +02:00
f8a7179de6 this is overengineered af
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-31 13:27:14 +02:00
40ee5ddade what if everyone was a returnvalue
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-31 13:14:04 +02:00
bc9bb06f2d further improvements
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-31 11:51:03 +02:00
0bfd31bc7e missed that one
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-28 11:38:35 +02:00
2caf81640c Merge branch 'main' into soc-calculator
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-28 11:37:14 +02:00
a0025030f1 first bits of cleanup
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-28 11:36:20 +02:00
85dc977796 changelog
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-27 10:12:06 +02:00
5615f51ae7 Merge remote-tracking branch 'origin/main' into small-scex-fix
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-07-27 10:11:12 +02:00
9219d2bc8c small fix 2023-07-27 10:10:54 +02:00
88a8969142 basics
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-26 17:01:48 +02:00
85a12f071f Merge pull request 'CHANGELOG: HK generation is countdown based' (#760) from fsfw-changelog into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #760
2023-07-26 15:00:58 +02:00
1ae2f692ba HK generation is countdown based
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 14:32:13 +02:00
3f73ad86eb Merge pull request 'bump minor version' (#759) from prep-v6.2.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #759
2023-07-26 14:04:48 +02:00
a0735b4fff bump minor version
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 13:37:21 +02:00
a71f773f63 Merge pull request 'ACS downwards compatibility' (#758) from acs-downwards-compat into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #758
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-26 13:27:42 +02:00
f7dccdc4c6 bump tmtc again
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-07-26 13:20:32 +02:00
3ebb83b4c0 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-07-26 13:18:36 +02:00
ee43c0fbd7 Merge remote-tracking branch 'origin/main' into acs-downwards-compat
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-07-26 13:18:13 +02:00
91208c2808 bump tmtc, small tweak for definitions 2023-07-26 13:17:54 +02:00
1dc545c5f0 Merge pull request 'Bump events and tmtc' (#757) from bump-events-and-tmtc into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #757
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-26 13:17:29 +02:00
55c5df0519 ensure downwards compatibilitiy for enum
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-07-26 13:07:14 +02:00
e74ae18763 Merge branch 'main' into bump-events-and-tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 12:58:51 +02:00
e5b19a4463 Merge pull request 'cmake.xml' (#756) from cmake-update into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #756
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-26 12:58:21 +02:00
1f658ceee3 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-07-26 12:58:12 +02:00
6ef05767c5 events and tmtc 2023-07-26 12:57:39 +02:00
9726c283ef Merge branch 'main' into cmake-update
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 12:48:09 +02:00
2110c54d96 Merge pull request 'Simplify image protection code' (#755) from simplify-image-prot-code into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #755
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-26 11:54:03 +02:00
7c0ee9114b changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-07-26 11:26:21 +02:00
e52195e195 bugfix in test
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 11:25:28 +02:00
8c97ad0213 Merge branch 'main' into soc-calculator
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 11:19:37 +02:00
5a69b52b20 datasets
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 11:18:15 +02:00
4d195a1b8e bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 11:17:26 +02:00
8c54802e7a Merge remote-tracking branch 'origin/main' into simplify-image-prot-code
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 11:12:46 +02:00
8cd959f55a Merge pull request 'SD shutdown handling non-blocking' (#753) from sd-shutdown-non-blocking into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #753
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-26 11:09:47 +02:00
001630cece Merge remote-tracking branch 'origin/main' into sd-shutdown-non-blocking
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-26 11:09:24 +02:00
dbb3434cd9 Merge pull request 'New Safe Mode Controller' (#748) from acs-safe-flp-v2 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #748
Reviewed-by: Robin Müller <muellerr@irs.uni-stuttgart.de>
2023-07-26 11:08:11 +02:00
61e73a4be9 docs
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 11:07:04 +02:00
81bb47a6d8 this is a lot better
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-07-26 11:05:36 +02:00
2480229dcb objectFactory and scheduling
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 10:37:41 +02:00
72ca1be6e2 I was told this was not nice
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 10:08:40 +02:00
56fb2c0e1e Merge branch 'main' into soc-calculator
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 09:57:13 +02:00
a5c799180e bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 09:51:56 +02:00
f5a9a4973c Merge remote-tracking branch 'origin/main' into acs-safe-flp-v2
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 09:51:24 +02:00
f60c754c61 changelog typo
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-26 00:33:49 +02:00
ff05181dd3 another evil bug found 2023-07-26 00:30:09 +02:00
7014ab517d some info output 2023-07-25 23:53:39 +02:00
d59ea6eb3d fixed some bugs 2023-07-25 23:48:22 +02:00
abbf170ce2 core controller doing weird things
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-25 16:54:40 +02:00
6767e9a543 cmake.xml
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-25 16:32:22 +02:00
bf730060b5 SD shutdown handling non-blocking
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-25 16:25:00 +02:00
011f4bf5d9 Merge branch 'main' into acs-safe-flp-v2
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-25 09:58:23 +02:00
942b459066 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-25 09:56:35 +02:00
10dfa07cd9 aluli 2023-07-25 09:55:34 +02:00
61b3ef790a lets pretend this makes it all better
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-24 10:14:38 +02:00
c6294cadbd improved readability?
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-24 10:10:26 +02:00
e2926e25f6 bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-24 09:52:08 +02:00
7e1e02c2bc ????
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-21 14:24:52 +02:00
afc72c0d97 Merge pull request 'active SD Info event' (#752) from active-sd-info-event into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #752
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-21 13:56:13 +02:00
4539d25518 Merge branch 'main' into active-sd-info-event
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-21 11:52:32 +02:00
f989af51f2 Merge pull request 'RAD sensor delay after pulling pin high' (#751) from rad-sensor-delay-after-gpio into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #751
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-21 11:50:48 +02:00
566c1534ee bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-21 11:47:57 +02:00
5f75b22cec new event 2023-07-21 11:36:39 +02:00
7bedb1d307 even more useful events
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-21 11:15:35 +02:00
f736489430 bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-21 11:10:09 +02:00
7ac19c8ea8 Merge remote-tracking branch 'origin/main' into active-sd-info-event
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-21 10:27:27 +02:00
8251f28cda re-run generators 2023-07-21 10:26:57 +02:00
4e2989d2bd active SD Info event
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-21 10:23:35 +02:00
6efee8d4da whoops
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-21 09:51:14 +02:00
59e07d9b47 Merge branch 'main' into rad-sensor-delay-after-gpio
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-20 17:16:06 +02:00
880c09c510 changelog 2023-07-20 17:16:14 +02:00
7cc95be900 RAD sensor delay after pulling pin high
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-20 17:12:50 +02:00
5e9fd332d9 Merge pull request 'Reduced rad sensor polling' (#747) from rad-sensor-polling-update into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #747
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-20 16:26:53 +02:00
753b9f8a0e better detumble exit
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-20 14:43:43 +02:00
07e002ccd2 detumble from fusedRotRate
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-20 14:22:45 +02:00
53d2e7965a seems more logical 2023-07-20 14:22:24 +02:00
d618e913af old safe mode is default safe mode
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-20 13:53:19 +02:00
5f481fd4d0 keep going people, nothing to see here
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-20 13:09:49 +02:00
b26600ac64 no bugs to see here, please move on
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-20 11:36:44 +02:00
0d501e5064 extended state machine and corrected controller calls
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-20 11:32:36 +02:00
32e2d87143 Merge branch 'main' into acs-safe-flp-v2
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-20 11:10:46 +02:00
7b0a47b010 use calculation
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-20 11:09:46 +02:00
300a6c5ff2 use datasets 2023-07-20 11:09:34 +02:00
d90fd07ba3 a new dataset a day keeps the doctor away
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-20 09:32:48 +02:00
800e29bcb9 missing param
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-19 16:34:02 +02:00
beaacc251b new class YAY
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-19 16:25:03 +02:00
b80c96a02c Merge branch 'main' into rad-sensor-polling-update
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-19 16:14:03 +02:00
a52d116857 move CD reset
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-19 15:36:06 +02:00
1c8fea409a Merge pull request 'small fix for PL PCDU' (#749) from pl-pcdu-small-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #749
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-19 15:34:36 +02:00
f61301db13 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-19 15:34:16 +02:00
c48be8f37b stuff
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-19 15:30:54 +02:00
9dfc8a0e93 new params 2023-07-19 14:41:09 +02:00
8db131f4ab the good fix
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-19 14:38:45 +02:00
e50aa2b620 small fix for PL PCDU
Some checks are pending
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-19 14:01:08 +02:00
8451a2f8ef extended state machine
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-19 13:24:37 +02:00
ebedb59929 new safe params 2023-07-19 13:24:21 +02:00
0f532e8511 more strats 2023-07-19 13:23:55 +02:00
fbff57dd45 filter galore
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-19 11:47:23 +02:00
910addc27a reset the timer
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-18 18:26:57 +02:00
b2d2c38c58 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-18 18:24:36 +02:00
a4a5800cba that should do the job
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-18 11:01:53 +02:00
2c9df747e8 Merge pull request 'Add RAD sensor dummy' (#745) from add-rad-sensor-dummy into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #745
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-18 10:52:05 +02:00
4fe921b2cc Merge branch 'main' into add-rad-sensor-dummy
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-18 10:14:33 +02:00
e5f8b08e4b Merge pull request 'sus dummy bugfix' (#746) from small-sus-dummy-bugfix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #746
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-18 10:10:01 +02:00
ba0fe5f7da bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-18 10:08:04 +02:00
c9a4cf53ca changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-18 10:06:35 +02:00
fa10b6fd95 sus dummy bugfix
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-18 10:04:31 +02:00
5102bd4d69 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-18 10:03:15 +02:00
ba6f55b93b map rad sensor set
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-18 10:02:14 +02:00
2b8a44f390 always schedule rad sensor
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-07-18 09:57:24 +02:00
08c98bd354 add rad sensor dummy
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-07-18 09:52:26 +02:00
0587f40874 add rad sensor dummy
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-07-18 09:44:44 +02:00
320b460179 Merge pull request 'small FSFW bump' (#744) from small-fsfw-bump into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #744
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-17 13:11:31 +02:00
1510de19a6 small FSFW bump
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-17 10:43:48 +02:00
6ae72db32d Merge pull request 'Add SCEX handler for EM' (#743) from add-scex-for-em into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #743
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-14 15:16:12 +02:00
88d1f9940f changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-14 15:16:08 +02:00
8c4a35fc42 some adaptions for SCEX
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-14 14:31:02 +02:00
e7c8d15773 add SCEX for EM 2023-07-14 14:04:23 +02:00
19a86ac29e Merge pull request 'STR Auto Threshold Config' (#742) from str-auto-threshold-cfg into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #742
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-14 14:03:52 +02:00
1d4e2a70a2 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-14 12:49:24 +02:00
f1028eb1d9 bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-14 12:47:35 +02:00
c028a696ce Merge branch 'main' into str-auto-threshold-cfg
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-14 12:44:08 +02:00
f832c4522e Merge pull request 'STR time' (#611) from str_set_time into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #611
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-14 12:43:19 +02:00
4e58614c56 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 21:21:42 +02:00
93ea8519b0 works
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 21:19:30 +02:00
16dbba6545 done
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-07-13 21:14:39 +02:00
9a451e3d5f COM error event 2023-07-13 21:09:27 +02:00
7870a2015e add auto threshold config
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-07-13 20:49:42 +02:00
80155285c8 remove an unnecessary tweak
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 17:37:13 +02:00
c61b0f55a4 some tweaks
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 17:35:12 +02:00
6d220692d5 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 17:33:04 +02:00
db61358639 Merge branch 'smaller-str-fix' into str_set_time
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 17:31:53 +02:00
fec85ffa6c correct fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
EIVE/eive-obsw/pipeline/head This commit looks good
2023-07-13 17:30:43 +02:00
462da5228a back to default FDIR
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 17:23:46 +02:00
e9d4104f88 some further investigation
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 17:03:56 +02:00
39022ce2f6 different max missed reply thresholds for STR FDIR
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 16:52:33 +02:00
0cefef8a35 rough but possible fix..
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 16:38:20 +02:00
d3f3a3efd0 Merge branch 'smaller-str-fix' into str_set_time
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 14:57:53 +02:00
6398532462 only enable STR set for normal mode
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 14:57:24 +02:00
16f26d7758 afmt
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 14:52:32 +02:00
0e3980dc37 this works
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 14:52:07 +02:00
cc7e39c484 Merge remote-tracking branch 'origin/main' into str_set_time
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 13:26:41 +02:00
448e24e69f Merge branch 'str_set_time' of https://egit.irs.uni-stuttgart.de/eive/eive-obsw into str_set_time 2023-07-13 13:21:56 +02:00
70c4f8f3fd Merge pull request 'v6.1.0' (#740) from prep_v6.1.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/pr-v6.0.0-branch This commit looks good
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #740
2023-07-13 13:07:07 +02:00
1f44533b3e bump minor version
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 12:00:57 +02:00
863c0af2a1 what the hell is wrong with the thing?
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 10:53:58 +02:00
0fb85883a5 always add STR, rename set field
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 10:16:52 +02:00
965c8d21cc Merge branch 'main' into str_set_time
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-13 10:09:38 +02:00
546053f95a Merge pull request 'STR tests' (#739) from startracker-tests into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #739
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-13 09:33:03 +02:00
608eecb091 this is realy buggy somewhere.. 2023-07-12 18:33:02 +02:00
ff432a4194 what the hell is wrong here..
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-12 18:17:00 +02:00
e9d48687d7 i hate this stupid class
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-12 17:59:07 +02:00
735c60d4c2 Merge branch 'startracker-tests' into str_set_time
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-12 17:11:15 +02:00
770d9b7ad3 Merge remote-tracking branch 'origin/main' into str_set_time
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-12 17:06:18 +02:00
86f7d05526 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-12 17:03:17 +02:00
8cc5220dd0 remove printout
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-12 17:02:52 +02:00
a800ad6c9a Merge remote-tracking branch 'origin/main' into startracker-tests
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-12 16:58:49 +02:00
887bfc87c3 Merge pull request 'use correct clock API in TCS CTRL' (#738) from small-tcs-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #738
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-12 10:29:47 +02:00
54309b512f use correct clock API
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-11 17:29:27 +02:00
74859dd5c6 Merge pull request 'TCS Observability' (#733) from tcs-observability into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #733
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-11 16:47:58 +02:00
13e965948c TCS observability
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-11 13:52:41 +02:00
46bb602c96 bump tmtc
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-11 11:01:32 +02:00
72dbc34936 Merge remote-tracking branch 'origin/main' into tcs-observability
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-11 11:00:03 +02:00
55affe5a42 Merge pull request 'TCS heater upper burn limit' (#732) from tcs-heater-upper-limit into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #732
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-11 10:56:42 +02:00
914a22f642 Merge branch 'main' into tcs-heater-upper-limit
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-11 10:46:02 +02:00
ed7d75a777 thermal controller
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-11 10:44:46 +02:00
9443d3844a Merge pull request 'fsfw bump and changelog' (#737) from bump-fsfw into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #737
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-11 10:38:59 +02:00
8800b20409 Merge remote-tracking branch 'origin/main' into tcs-heater-upper-limit
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-11 09:45:01 +02:00
690f8cb49a Merge remote-tracking branch 'origin/main' into bump-fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-11 09:41:44 +02:00
dbc3868f47 Merge pull request 'minor tweaks for XADC code' (#736) from minor-xadc-tweak into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #736
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-11 09:40:05 +02:00
852f1203c6 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-11 09:39:21 +02:00
643f8c5b54 Merge branch 'main' into minor-xadc-tweak
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-11 09:38:14 +02:00
3fb083fd87 Merge pull request 'TCS improvements' (#735) from tcs-tweaks into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #735
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-11 09:37:57 +02:00
fdf1c7a611 seems to work now
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 18:29:55 +02:00
cf582dd6a4 Merge branch 'bump-fsfw' into tcs-observability
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 17:52:56 +02:00
c7f716c433 fsfw bump and changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 17:51:37 +02:00
d2dfc22373 Merge branch 'tcs-heater-upper-limit' into tcs-observability
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 16:33:42 +02:00
53d53e8771 disable test case
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 16:33:29 +02:00
84e37d8b7b bump tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 16:30:18 +02:00
7c4f98ec22 add back with other name and comment
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 15:23:04 +02:00
a61d7901bf Merge branch 'tcs-heater-upper-limit' into tcs-observability
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 14:58:16 +02:00
7e01a9602e TCS improvements
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 14:46:35 +02:00
be1d1cf5bf minor tweaks for XADC code
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 14:15:56 +02:00
ce2755e161 that should be it
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 13:56:30 +02:00
33de08eafc this should be better
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 13:28:36 +02:00
106d73238b Merge remote-tracking branch 'origin/main' into tcs-heater-upper-limit 2023-07-10 13:07:26 +02:00
3f4a34d616 Merge pull request 'Make OBSW compatible to prospective FW v5.0.0' (#734) from tmp-devs-to-q7-i2c into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #734
2023-07-10 11:19:35 +02:00
268f10ced5 COMPILE
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-10 11:14:19 +02:00
647f3d00bb this should do the job
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-10 11:03:17 +02:00
2210ec3737 Merge branch 'tcs-heater-upper-limit' into tcs-observability
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 16:21:42 +02:00
df3755d6cc done
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 16:18:16 +02:00
a351dcf99e changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 15:59:15 +02:00
06fe113d7f that should be sufficient
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 15:33:48 +02:00
43d86c9aad resolve merge conflicts properly
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 12:24:48 +02:00
c0ae25a973 Merge branch 'tcs-heater-upper-limit' into tcs-observability 2023-07-07 12:23:00 +02:00
fa85cc4d78 pls compile
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 12:22:37 +02:00
f7c49adea5 Merge branch 'tcs-heater-upper-limit' into tcs-observability
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-07 12:06:51 +02:00
b662e220e1 bump tmtc
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-07 12:06:39 +02:00
7337595d47 add event
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-07 12:05:29 +02:00
f2f73b088d add event
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-07 12:03:34 +02:00
fce16cc695 Merge branch 'tcs-heater-upper-limit' into tcs-observability
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-07 11:58:24 +02:00
ff7d0b3989 compile fixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 11:57:00 +02:00
6bf9fd5969 changelog
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-07 11:51:11 +02:00
a7ab26d804 Merge branch 'tcs-heater-upper-limit' into tcs-observability
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-07 11:50:32 +02:00
977e9f366f Merge remote-tracking branch 'origin/main' into tcs-heater-upper-limit
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-07 11:47:58 +02:00
b3d2fdc277 Merge pull request 'Another TCS fix' (#731) from another-tcs-fix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #731
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-07 11:47:27 +02:00
7388c4f661 Merge remote-tracking branch 'origin/main' into tcs-heater-upper-limit
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-07 11:47:05 +02:00
a6461fcaf8 Merge remote-tracking branch 'origin/main' into another-tcs-fix
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-07 11:45:22 +02:00
6ae0fdf191 Merge pull request 'TCS CTRL bugfix' (#730) from tcs-ctrl-bugfix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #730
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-07 11:44:38 +02:00
3087049726 Merge branch 'main' into tcs-ctrl-bugfix 2023-07-07 11:44:27 +02:00
8255869f2d Merge pull request 'Some TCS tweaks' (#729) from some-more-tcs-tweaks into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #729
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-07 11:44:08 +02:00
603ddcef9c Merge branch 'tcs-heater-upper-limit' into tcs-observability
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-07 11:14:42 +02:00
0b673fcdec Merge remote-tracking branch 'origin/main' into tcs-heater-upper-limit
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-07 11:07:35 +02:00
908cf8dcc3 Merge remote-tracking branch 'origin/main' into another-tcs-fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 11:03:20 +02:00
ec39dc05ae Merge remote-tracking branch 'origin/main' into tcs-ctrl-bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 11:02:43 +02:00
bd33a51bf1 Merge remote-tracking branch 'origin/main' into some-more-tcs-tweaks
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 11:00:45 +02:00
06a24da2b9 Merge pull request 'Add TCS CTRL heater events' (#728) from add-tcs-ctrl-heater-events into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #728
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-07 10:59:36 +02:00
2bad2a142b changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 10:58:42 +02:00
b0b43b3ecc Merge branch 'main' into some-more-tcs-tweaks
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-07 10:56:50 +02:00
c1a23e0d73 Merge remote-tracking branch 'origin/main' into add-tcs-ctrl-heater-events
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-07 10:56:38 +02:00
377cc64d0f bump tmtc
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-07 10:55:39 +02:00
351c33e504 changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-07 10:55:13 +02:00
a7a530cb59 Merge pull request 'More TMP1075 bugfixes' (#727) from more-tmp-bugfixes into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #727
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-07 10:53:07 +02:00
f1ca4b174f comment
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-06 23:07:54 +02:00
027955597f done 2023-07-06 23:06:50 +02:00
c558a117b0 some docs
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-06 22:21:00 +02:00
fc697732b4 Merge branch 'another-tcs-fix' into tcs-heater-upper-limit 2023-07-06 22:07:06 +02:00
ce19f30325 continue max heater duration 2023-07-06 22:06:54 +02:00
faffca0c2c compile fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-06 20:19:05 +02:00
7b611810df there are actually 8 heaters
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-06 20:13:33 +02:00
3e92d175d5 form fix
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-06 20:01:57 +02:00
64ca329d5a update changelog
Some checks failed
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-06 19:58:24 +02:00
12ff365433 TCS ctrl bugfix
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-07-06 19:57:23 +02:00
5ea3bfeb7b Merge branch 'main' into some-more-tcs-tweaks
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-06 19:12:01 +02:00
785c1c65a0 add new events
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-06 19:01:49 +02:00
3c9eec7b3f heater events for TCS ctrl
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-07-06 18:58:57 +02:00
5630ae4962 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-06 17:28:12 +02:00
61ea80f92c remove some cruft
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-06 17:26:09 +02:00
6182218813 this works but is kind of ugly
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-07-06 17:23:55 +02:00
b7e4953126 the TCS subsystem does not work on the EM..
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-07-06 16:00:39 +02:00
ee4285075a Merge pull request 'Swap PL and PS I2C' (#725) from swap-pl-ps-i2c into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #725
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-06 15:05:53 +02:00
bda2ba79bf Merge remote-tracking branch 'origin/main' into swap-pl-ps-i2c
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
make marius extremely happy
2023-07-06 14:34:12 +02:00
0c47513e98 Merge pull request 'set dataset invalid on OFF mode' (#726) from tmp-1075-set-sets-invalid into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #726
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-07-06 14:27:04 +02:00
f4f365b110 pool read guard
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-06 13:56:43 +02:00
1d4b815452 this is better to read..
Some checks are pending
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-07-06 12:04:36 +02:00
1e98fcbbd5 that really should not cause issues though..
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-07-06 12:01:48 +02:00
52eba5cae6 small fix/tweaks
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-05 17:20:42 +02:00
cd9cb48b04 set dataset invalid on OFF mode
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-05 16:31:41 +02:00
5c430212e7 that should fix the host build
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-03 17:32:35 +02:00
d8ab6abc49 FM should build again
Some checks failed
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-07-03 17:16:51 +02:00
d1b9608a14 that should do the job
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-07-03 17:13:11 +02:00
25c7058da5 changelog
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-07-03 16:56:36 +02:00
9ece676313 lets see if this works 2023-07-03 16:55:45 +02:00
697a3e8577 Merge remote-tracking branch 'origin/main' into swap-pl-ps-i2c
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-07-03 16:34:04 +02:00
dea3077f29 changelog, prep v6.0.0
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-07-02 14:44:15 +02:00
d687715bcb Merge pull request 'v6.0.0' (#724) from main-v6 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #724
2023-07-02 14:43:24 +02:00
e2cd822e9c Merge branch 'main' into main-v6
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-02 14:30:50 +02:00
0e9035d6c1 changelog, prep v5.2.0
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-07-02 14:21:35 +02:00
c80eff4922 Merge pull request 'EM ACS board' (#723) from add-back-em-acs-brd into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #723
2023-07-02 14:19:54 +02:00
a5c9e1481b changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-02 14:04:29 +02:00
e19ddcfbd8 EM ACS board
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-07-02 14:02:37 +02:00
add079a7c6 Merge pull request 'Updates for new firmware' (#721) from complete-fw-tests into main-v6
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #721
2023-07-01 13:30:26 +02:00
9cdcd47b1a Merge remote-tracking branch 'origin/main-v6' into complete-fw-tests
All checks were successful
EIVE/eive-obsw/pipeline/pr-main-v6 This commit looks good
2023-06-30 10:45:16 +02:00
d14e256901 STR tests
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-29 16:40:21 +02:00
dd5270e974 Merge pull request 'Important bugfix for live channel' (#720) from live-channel-bugfix into main-v6
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #720
2023-06-29 16:39:09 +02:00
56ea9af615 add documentation of initial delay
All checks were successful
EIVE/eive-obsw/pipeline/pr-main-v6 This commit looks good
2023-06-29 15:06:25 +02:00
4fc999e102 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main-v6 This commit looks good
2023-06-29 15:03:45 +02:00
04d24e74b1 q7s-package version specification
All checks were successful
EIVE/eive-obsw/pipeline/pr-main-v6 This commit looks good
2023-06-29 15:01:54 +02:00
8137c9ea25 Merge remote-tracking branch 'origin/main-v6' into complete-fw-tests
All checks were successful
EIVE/eive-obsw/pipeline/pr-main-v6 This commit looks good
2023-06-29 15:00:49 +02:00
723b4bba3f Merge remote-tracking branch 'origin/main-v6' into live-channel-bugfix 2023-06-29 15:00:20 +02:00
8cff2fd6f7 Merge remote-tracking branch 'origin/main' into live-channel-bugfix 2023-06-29 15:00:11 +02:00
a1f7f77e01 Merge remote-tracking branch 'origin/main' into main-v6
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-29 14:59:18 +02:00
f3aab775f3 Merge pull request 'Core controller bugfix' (#719) from core-ctrl-init-bugfix into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #719
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-29 14:58:28 +02:00
59d542ab39 Merge remote-tracking branch 'origin/main' into core-ctrl-init-bugfix 2023-06-29 14:58:13 +02:00
7b0285c4ce Merge pull request 'Only reset PTME on rate change' (#716) from only-reset-ptme-on-rate-change into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #716
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-29 14:56:35 +02:00
0a77ee0508 Merge remote-tracking branch 'origin/main' into only-reset-ptme-on-rate-change
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-06-29 14:51:15 +02:00
51cbe46cf5 why indeed
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-06-29 14:49:57 +02:00
26fc4b8add Merge pull request 'small fix for persistent TM store' (#722) from persistent-tm-stores-fixes into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #722
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-29 14:46:50 +02:00
825de04f3b changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-29 10:15:36 +02:00
33985937b7 typo
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-29 09:44:09 +02:00
ba36b5f091 Merge branch 'main-v6' into live-channel-bugfix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main-v6 This commit looks good
2023-06-29 08:55:09 +02:00
4f5903227e changelog
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main-v6 Build queued...
2023-06-29 08:54:58 +02:00
2173d89047 changelog 2023-06-29 08:54:34 +02:00
0a12dbf2be changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-29 08:53:08 +02:00
ad3c0e2a0e small fix for persistent TM store
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-29 01:28:40 +02:00
03e772246f less cycles..
All checks were successful
EIVE/eive-obsw/pipeline/pr-main-v6 This commit looks good
2023-06-29 00:35:06 +02:00
25da131653 seems to work well
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main-v6 This commit looks good
2023-06-29 00:33:58 +02:00
4c6b098f42 Merge branch 'live-channel-bugfix' into only-reset-ptme-on-rate-change-v6
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-28 17:49:06 +02:00
b57283101b important bugfix for live channel
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-28 17:46:21 +02:00
9dfdf38822 important bugfix for live channel
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-28 17:20:10 +02:00
c6240285e2 Merge branch 'core-ctrl-init-bugfix' into only-reset-ptme-on-rate-change-v6
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-28 15:51:48 +02:00
87c05705ec core ctrl bugfix
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-28 15:43:44 +02:00
c881b36630 prevent warning
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-28 15:28:27 +02:00
a380ff5ac9 Merge branch 'main-v6' into only-reset-ptme-on-rate-change-v6
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-28 15:24:20 +02:00
4d17184fba Merge remote-tracking branch 'origin/main' into only-reset-ptme-on-rate-change
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-28 15:18:05 +02:00
d8efd05a88 Merge branch 'main' into main-v6
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-28 15:08:38 +02:00
109856eef8 Merge pull request 'prep v5.1.0' (#718) from prep_v5.1.0 into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #718
2023-06-28 13:57:04 +02:00
90bafa717b prep v5.1.0
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-06-28 13:41:51 +02:00
0cdb850f69 Merge pull request 'Seq Count Persistent + MSG type counter' (#711) from sequence-counter-persistent-msg-type-count-support into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #711
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-28 13:37:14 +02:00
4c63fed69d that is annoying
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-28 13:35:38 +02:00
eb27ab4bb0 fix and optimization
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-28 13:32:35 +02:00
b0a38136c1 Merge remote-tracking branch 'origin/main' into only-reset-ptme-on-rate-change 2023-06-28 13:28:00 +02:00
6c2548fb56 Merge branch 'main' into sequence-counter-persistent-msg-type-count-support
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-06-28 13:26:55 +02:00
7d3f9ada18 Merge pull request 'higher rx set rate during pass' (#715) from rx-dataset-higher-rate-during-pass into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #715
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-28 13:26:42 +02:00
b5cc430b5b Merge remote-tracking branch 'origin/main' into only-reset-ptme-on-rate-change
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-06-28 13:21:33 +02:00
52fedb94e8 bump fsfw and tmtc
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-28 13:20:50 +02:00
cdabf113ca Merge remote-tracking branch 'origin/main' into rx-dataset-higher-rate-during-pass
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-06-28 13:18:45 +02:00
c3e66f5320 changelogge
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-28 13:18:00 +02:00
2d2c1d8721 Merge branch 'main' into sequence-counter-persistent-msg-type-count-support
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-28 10:07:51 +02:00
9e8a417115 Merge pull request 'various improvements for heater handler' (#717) from only-one-heater-cmd-at-a-time into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #717
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-28 10:01:20 +02:00
fba87cc0e8 changelog typos
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-27 18:09:38 +02:00
50a8a6fffe more changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-27 18:02:49 +02:00
1e767afa11 only handle one message per cycle 2023-06-27 17:55:49 +02:00
15a67b81f9 various improvements
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-27 17:36:52 +02:00
bf25266055 Merge branch 'main' into rx-dataset-higher-rate-during-pass
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-27 11:05:56 +02:00
ef08f348dc Merge remote-tracking branch 'origin/main' into sequence-counter-persistent-msg-type-count-support
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 18:26:08 +02:00
47ff8a418e Merge pull request 'Internal Error Reporter Set' (#702) from internal-error-reporter-set into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #702
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-26 18:25:13 +02:00
f0fbed1593 Merge remote-tracking branch 'origin/main' into internal-error-reporter-set
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 18:13:44 +02:00
8b2bf21025 Merge remote-tracking branch 'origin/main' into sequence-counter-persistent-msg-type-count-support
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-06-26 18:12:45 +02:00
0764646d2b Merge pull request 'Ordered dumps' (#706) from ordered-dumps into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #706
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-26 18:11:07 +02:00
e752cdcc67 bump fsfw
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 18:10:41 +02:00
91c53df2c9 Merge remote-tracking branch 'origin/main' into internal-error-reporter-set
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 18:03:06 +02:00
c6231d2337 Merge remote-tracking branch 'origin/main' into sequence-counter-persistent-msg-type-count-support
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 17:59:26 +02:00
0dfe68eb8d Merge remote-tracking branch 'origin/main' into ordered-dumps
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 17:57:26 +02:00
b273729b10 Merge pull request 'create a v5.0.0 snapshot' (#714) from prep_v5.0.0-release into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #714
2023-06-26 17:55:28 +02:00
67024ec933 that was already pulled in
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 17:39:41 +02:00
3a20748ff6 create a v5.0.0 snapshot
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 17:36:47 +02:00
516898b7b2 Merge pull request 'prep v5.0.0' (#713) from v5.0.0-dev into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #713
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-26 17:34:45 +02:00
27f77799a6 bump major version
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-26 17:33:17 +02:00
9080e7cbe4 Merge branch 'v5.0.0-dev' into main-v6 2023-06-26 17:33:01 +02:00
bd4e05c944 bump version specifier
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-06-26 17:30:30 +02:00
72ffa365d4 version constraints for PL I2C reset pin
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-06-26 17:29:53 +02:00
52f5b088bf add version constraints for FW version read
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 17:21:57 +02:00
6c39e7dd0c and go back to newest version here
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-26 17:08:39 +02:00
73498ac9af prepare v5.0.0, revert firmware interfacing changes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 16:53:54 +02:00
1f18904810 bump tmtc
Some checks are pending
EIVE/eive-obsw/pipeline/pr-main-v3 This commit looks good
EIVE/eive-obsw/pipeline/head Build queued...
2023-06-26 15:38:37 +02:00
1703f7a714 Merge remote-tracking branch 'origin/main' into internal-error-reporter-set
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 15:36:23 +02:00
13bb572348 Merge remote-tracking branch 'origin/main' into sequence-counter-persistent-msg-type-count-support
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 15:35:22 +02:00
3e21f9c259 Merge remote-tracking branch 'origin/main' into ordered-dumps
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 15:34:58 +02:00
239410e2dc Merge pull request 'New total reboot counter handling' (#708) from total-boot-counter-file into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #708
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-26 15:33:21 +02:00
fca6834d17 higher rx set rate during pass
Some checks are pending
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main Build queued...
2023-06-26 15:32:52 +02:00
1cc62238c2 only reset PTME on rate change init
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-06-26 14:39:03 +02:00
05a5c63765 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 11:20:33 +02:00
c806aa81f0 what does the new compiler want?
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-26 11:14:11 +02:00
93fb207032 C++ insanity..
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-06-25 13:12:39 +02:00
80160e8291 that was hopefully the last set of fixes
Some checks failed
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-06-25 13:07:31 +02:00
5a15d39a1d important order bugfix
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-06-25 12:49:51 +02:00
e036ed2bff now its complete
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-06-25 12:47:28 +02:00
0db7b5251c Merge branch 'total-boot-counter-file' into sequence-counter-persistent-msg-type-count-support
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-06-25 12:45:34 +02:00
873316d012 sequence counter isn ow persistent, msg type count support 2023-06-25 12:41:20 +02:00
0f818a5596 Merge remote-tracking branch 'origin/main' into internal-error-reporter-set
All checks were successful
EIVE/eive-obsw/pipeline/pr-v4.1.0-dev This commit looks good
2023-06-25 11:12:10 +02:00
dc89350ac7 Merge remote-tracking branch 'origin/main' into total-boot-counter-file
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-25 11:09:24 +02:00
8b13337845 Merge branch 'ordered-dumps' of https://egit.irs.uni-stuttgart.de/eive/eive-obsw into ordered-dumps
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-25 11:07:47 +02:00
76933671a6 changelog 2023-06-25 11:07:41 +02:00
491a341efe Merge branch 'main' into ordered-dumps
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-25 11:06:24 +02:00
5a642b7d2f update core ctrl
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-25 11:04:13 +02:00
6b9aa8eb7b Merge branch 'total-boot-counter-file' of https://egit.irs.uni-stuttgart.de/eive/eive-obsw into total-boot-counter-file
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-06-25 10:45:12 +02:00
3ee2e72652 better name for function 2023-06-25 10:45:04 +02:00
91106feb82 Merge pull request 'update .cproject file' (#710) from update-project-file into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #710
2023-06-25 10:41:15 +02:00
7a68188140 Merge branch 'main' into total-boot-counter-file
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-25 10:30:28 +02:00
d88ffb1734 small fix
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-25 10:24:27 +02:00
c2b415bdd6 update .cproject file
Some checks are pending
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main Build started...
2023-06-25 01:01:21 +02:00
b4778f3ce9 Merge remote-tracking branch 'origin/main' into ordered-dumps
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-24 21:01:35 +02:00
c50a74d117 delete ordering 2023-06-24 21:00:57 +02:00
25d10e3877 that was all the fixes (hopefully) 2023-06-24 20:57:54 +02:00
facfad3367 v3.1.1 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-v3.3.0-dev This commit looks good
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-24 20:12:37 +02:00
d95ecc3678 changelog
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-24 19:57:16 +02:00
966faf51b5 last important bugfixes
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-24 19:55:56 +02:00
5c9d7a43ab that reboot was not graceful..
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-24 19:22:25 +02:00
4465170747 i hope that is the last bug..
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-24 19:00:09 +02:00
5420e322f7 this is annoying to test..
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-24 18:52:29 +02:00
6040cd2d1e some important tweaks
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-24 18:48:12 +02:00
4e7b774d32 some legacy/backword compatiblity additions
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-24 18:37:58 +02:00
7f36455857 fix project file, continue core ctrl 2023-06-24 18:06:58 +02:00
07df6eb95f continuing
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-24 17:29:23 +02:00
88e8268c26 start refactoring reboot wd handling 2023-06-24 17:14:56 +02:00
04f4eedb78 that should make it work
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-24 12:01:12 +02:00
53b48ad99b this is tricky
Some checks failed
EIVE/eive-obsw/pipeline/pr-main There was a failure building this commit
2023-06-24 11:46:56 +02:00
a8ab40674f seems to work well
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-24 11:08:50 +02:00
18b67d18a7 seems to work now
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-24 02:07:11 +02:00
97d41a125b Merge remote-tracking branch 'origin/main' into ordered-dumps
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-24 01:24:24 +02:00
2e041c3013 some more fixes
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-23 17:07:07 +02:00
9023405b96 some fxes
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-23 16:05:38 +02:00
1d047f3c92 implement ordered sets
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-23 14:55:51 +02:00
253af8193f fix unittest
All checks were successful
EIVE/eive-obsw/pipeline/pr-v4.1.0-dev This commit looks good
2023-06-22 18:43:04 +02:00
3d07814efb Merge remote-tracking branch 'origin/main' into internal-error-reporter-set
Some checks failed
EIVE/eive-obsw/pipeline/pr-v4.1.0-dev There was a failure building this commit
2023-06-22 18:39:34 +02:00
32b074b86e that should fix the build
Some checks failed
EIVE/eive-obsw/pipeline/pr-v4.1.0-dev There was a failure building this commit
2023-06-22 16:29:52 +02:00
461782acdb Merge branch 'v4.0.0-dev' into internal-error-reporter-set
Some checks failed
EIVE/eive-obsw/pipeline/pr-v4.0.0-dev There was a failure building this commit
2023-06-22 16:11:33 +02:00
74e945ddff changelog
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
2023-06-22 16:10:07 +02:00
a3b140b680 internal error reporter extension 2023-06-22 16:09:24 +02:00
df4e657ec3 create TCS CTRL TMP1075 PLCDU 1 se tdynamically
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-06-18 17:36:50 +02:00
8f7d3dd815 changelog
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-06-18 17:24:19 +02:00
97268af555 another tmp FDIR fix
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-06-18 17:11:38 +02:00
322151acf8 tmp fdir bugfix: use strange reply counter 2023-06-18 16:34:07 +02:00
ecb8de1550 need to verify some things here later.. 2023-06-18 16:23:08 +02:00
0cd5526de4 always add TMP devs now 2023-06-18 14:19:19 +02:00
07bb293816 tmp1075 workssssss
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-06-18 13:38:00 +02:00
727050520b that should do the job
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-06-17 17:24:51 +02:00
269d5f6a0a stupid tmps 2023-06-17 17:01:01 +02:00
d6dd943ebf tmp is back in the house
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
2023-06-17 15:28:05 +02:00
31fdbac8c0 Merge remote-tracking branch 'origin/main' into swap-pl-ps-i2c 2023-06-17 14:29:38 +02:00
3e9accfa7b Merge remote-tracking branch 'origin/v4.0.0-dev' into swap-pl-ps-i2c
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-16 16:52:05 +02:00
1b919ceaec swap i2cs
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-16 13:54:50 +02:00
a53f1be710 guess i never pushed this
All checks were successful
EIVE/eive-obsw/pipeline/pr-v4.0.0-dev This commit looks good
EIVE/eive-obsw/pipeline/head This commit looks good
2023-06-15 17:51:32 +02:00
a023fe2c7d Merge remote-tracking branch 'origin/main' into relax-sus-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-14 03:43:38 +02:00
2a4d86de54 Merge remote-tracking branch 'origin/main' into relax-sus-fdir
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-14 03:41:34 +02:00
8062c5edad removed old comment
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-13 07:58:40 +02:00
0788a3d551 changelog typo
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-13 07:57:28 +02:00
b2b6e2e797 comment
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-13 07:55:00 +02:00
5e79293d38 Merge remote-tracking branch 'origin/main' into relax-sus-fdir
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
2023-06-13 07:49:28 +02:00
196823b2e0 relax sus fdir 2023-06-13 07:48:32 +02:00
824f445ee1 boop 2023-06-10 15:14:20 +02:00
1dd38acee4 object factory stuff
Some checks failed
EIVE/eive-obsw/pipeline/pr-v4.0.0-dev There was a failure building this commit
EIVE/-/pipeline/pr-v4.0.0-dev Build queued...
2023-06-07 14:30:58 +02:00
809d25890e init
Some checks failed
EIVE/eive-obsw/pipeline/head There was a failure building this commit
EIVE/eive-obsw/pipeline/pr-v4.0.0-dev There was a failure building this commit
2023-06-07 11:33:09 +02:00
3aad452357 fix this some other time
Some checks are pending
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
EIVE/eive-obsw/pipeline/head Build queued...
EIVE/eive-obsw/pipeline/pr-main This commit looks good
EIVE/-/pipeline/pr-main Build queued...
2023-04-16 11:35:30 +02:00
67351d5ada set time for star tracker
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
2023-04-16 11:25:10 +02:00
272 changed files with 17415 additions and 6788 deletions

4
.gitignore vendored
View File

@ -22,3 +22,7 @@ __pycache__
!/.idea/cmake.xml
generators/*.db
# Clangd LSP
/compile_commands.json
/.cache

3
.idea/cmake.xml generated
View File

@ -2,7 +2,7 @@
<project version="4">
<component name="CMakeSharedSettings">
<configurations>
<configuration PROFILE_NAME="Debug Q7S" ENABLED="true" CONFIG_NAME="Debug" TOOLCHAIN_NAME="Q7S" GENERATION_OPTIONS="-DTGT_BSP=&quot;arm/q7s&quot;" NO_GENERATOR="true">
<configuration PROFILE_NAME="Debug Q7S" ENABLED="true" CONFIG_NAME="Debug" TOOLCHAIN_NAME="Default" GENERATION_OPTIONS="-DTGT_BSP=&quot;arm/q7s&quot;" NO_GENERATOR="true">
<ADDITIONAL_GENERATION_ENVIRONMENT>
<envs>
<env name="ZYNQ_7020_ROOTFS" value="/opt/xiphos/sdk/ark/sysroots/cortexa9hf-neon-xiphos-linux-gnueabi" />
@ -10,6 +10,7 @@
</envs>
</ADDITIONAL_GENERATION_ENVIRONMENT>
</configuration>
<configuration PROFILE_NAME="Debug" ENABLED="true" CONFIG_NAME="Debug" NO_GENERATOR="true" />
</configurations>
</component>
</project>

View File

@ -16,6 +16,718 @@ will consitute of a breaking change warranting a new major release:
# [unreleased]
## Changed
- Readded rotation rate from the `MEKF` to the detumble state machine.
# [v8.2.0] 2024-06-26
## Changed
- STR quaternions are now used by the `MEKF` by default
- Changed nominal `SUS Assembly` side to `B Side`.
- Changed source for state machine of detumbling to SUS and MGM only.
- Changed `FusedRotRateData` dataset to always display rotation rate from SUS and MGM.
- Solution from `QUEST` will be set to invalid if sun vector and magnetic field vector are too close
to each other.
- Changed collection intervals of dataset collection
- `GPS Controller`: `GPS Set` to 60s
- `MTQ Handler`: `HK with Torque`, `HK without Torque` to 60s
- `RW Handler`: `Status Set` to 30s
- `STR Handler`: `Solution Set` to 30s
- `ACS Controller`: `MGM Sensor`, `MGM Processed`, `SUS Sensor`, `SUS Processed`, `GYR Sensor`,
`GPS Processed` to 60s
- `ACS Controller` at or below `IDLE`: `CTRL Values`, `ACT Commands`, `Attitude Estimation`,
`Fused Rotation Rate` to 30s
- `ACS Controller` above `IDLE`: `CTRL Values`, `ACT Commands`, `Attitude Estimation`,
`Fused Rotation Rate` to 10s
## Fixed
- Added null termination for PLOC MPSoC image taking command which could possibly lead to
default target filenames.
# [v8.1.1] 2024-06-05
## Added
- PLOC SUPV MPSoC update re-try logic for the `WRITE_MEMORY` command. These packets form > 98%
of all packets required for a software update, but the update mechanism is not tolerant against
occasional glitches on the RS485 communication to the PLOC SUPV. A simple re-try mechanism which
tries to re-attempt packet handling up to three times for those packets is introduced.
# [v8.1.0] 2024-05-29
## Fixed
- Small fix for transition failure handling of the MPSoC when the `START_MPSOC` action command
to the supervisor fails.
- Fixed inits of arrays within the `MEKF` not being zeros.
- Important bugfix for PLOC SUPV: The SUPV previously was able to steal packets from the special
communication helper, for example during software updates.
- Corrected sigma of STR for `MEKF`.
## Added
- Added new command to cancel the PLOC SUPV special communication helper.
# [v8.0.0] 2024-05-13
- `eive-tmtc` v7.0.0
## Fixed
- Fixed calculation for target rotation rate during pointing modes.
- Possible fix for MPSoC file read algorithm.
## Changed
- Reworked MPSoC handler to be compatible to new MPSoC software image and use
new device handler base class. This should increase the reliability of the communication
significantly.
- MPSoC device modes IDLE, SNAPSHOT and REPLAY are now modelled using submodes.
- Commanding a submode the device is already in will not result in a completion failure
anymore.
## Added
- Added `VERIFY_BOOT` command for MPSoC.
- New command for MPSoC to store camera image in chunks.
# [v7.8.1] 2024-04-11
## Fixed
- Reverted fix for wrong order in quaternion multiplication for computation of the error quaternion.
# [v7.8.0] 2024-04-10
## Changed
- Reverted lower OP limit of `PLOC` to -10°C.
- All pointing laws are now allowed to use the `MEKF` per default.
- Changed limits in `PWR Controller`.
- PUS time service: Now dumps the time before and after relative timeshift or setting absolute time
- The `GPS Controller` does not set itself to `OFF` anymore, if it has not detected a valid fix for
some time. Instead it attempts to reset both GNSS devices once.
- The maximum time to reach a fix is shortened from 30min to 15min.
- The time the reset pin of the GNSS devices is pulled is prolonged from 5ms to 10s.
- A `GPS FIX HAS CHANGED` is now only triggered if no fix change has been detected within the past
2min. This means, this event might be thrown with a 2min delay. It is instantly thrown, if the mode
of the controller is changed. As arguments it now displays the new fix and the numer of fix changes
missed.
- The number of satellites seen and used is reset to 0, in case they are set to invalid.
- Altitude, latitude and longitude messages are not checked anymore, in case the mode message was
already invalid.
## Added
- PUS timeservice relative timeshift.
## Fixed
- Fixed wrong order in quaternion multiplication for computation of the error quaternion.
- Re-worked some FDIR logic in the FSFW. The former logic prevented events with a severity
higher than INFO if the device was in EXTERNAL CONTROL. The new logic will allow to trigger
events but still inhibit FDIR reactions if the device is in EXTERNAL CONTROL.
# [v7.7.4] 2024-03-21
## Changed
- Rotational rate limit for the GS target pointing is now seperated from controller limit. It
is also reduced to 0.75°/s now.
## Fixed
- Fixed wrong sign in calculation of total current within the `PWR Controller`.
# [v7.7.3] 2024-03-18
- Bumped `eive-fsfw`
## Added
- Added parameter to disable STR input for MEKF.
## Changed
- If a primary heater is set to `EXTERNAL CONTROL` and `ON`, the `TCS Controller` will no
try to control the temperature of that object.
- Set lower OP limit of `PLOC` to -5°C.
## Fixed
- Added prevention of sign jump for target quaternion of GS pointing, which would reduce the
performance of the controller.
- Heaters set to `EXTERNAL CONTROL` no longer can be switched off by the `TCS Controller`, if
they violate the maximum burn duration of the controller.
# [v7.7.2] 2024-03-06
## Fixed
- Camera and E-band antenna now point towards the target instead of away from the target for the
pointing target mode.
# [v7.7.1] 2024-03-06
- Bumped `eive-tmtc` to v6.1.1
- Bumped `eive-fsfw`
## Added
- The `CoreController` now sets the leap seconds on initalization. They are stored in a persistent
file. If the file does yet not exist, it will be created. The leap seconds can be updated using an
action command. This will also update the file.
## Fixed
- Fixed wrong dimension of a matrix within the `MEKF`, which would lead to a seg fault, if the
star tracker was available.
- Fixed case in which control values within the `AcsController` could become NaN.
# [v7.7.0] 2024-02-29
- Bumped `eive-tmtc` to v6.1.0
- Bumped `eive-fsfw`
## Fixed
- PLOC SUPV sets: Added missing `PoolReadGuard` instantiations when reading boot status report
and latchup status report.
- PLOC SUPV latchup report could not be handled previously.
- Bugfix in PLOC SUPV latchup report parsing.
- Bugfix in PLOC MPSoC HK set: Set and variables were not set valid.
- The `PTG_CTRL_NO_ATTITUDE_INFORMATION` will now actually trigger a fallback into safe mode
and is triggered by the `AcsController` now.
- Fixed a corner case, in which an invalid speed command could be sent to the `RwHandler`.
- Fixed calculation of desaturation torque for faulty RWs.
- Fixed bugs within the `MEKF` and simplified the code.
## Changed
- `FusedRotationRate` now only uses rotation rate from QUEST and STR in higher modes
- QUEST and STR rates are now allowed per default
- Changed PTG Strat priorities to favor STR before MEKF.
- Increased message queue depth and maximum number of handled messages per cycle for
`PusServiceBase` based classes (especially PUS scheduler).
- `MathOperations` functions were moved to their appropriate classes within the `eive-fsfw`
- Changed pointing strategy for target groundstation mode to prevent blinding of the STR. This
also limits the rotation for the reference target quaternion to prevent spikes in required
rotation rates.
- Updated QUEST and Sun Vector Params to new values.
- Removed the satellites's angular momentum from desaturation calculation.
- Bumped internal `sagittactl` library to v11.11.
## Added
- Updated STR handler to unlock and allow using the secondary firmware slot.
- STR handling for new BlobStats TM set.
- Added new action command to update the standard deviations within the `MEKF` from the
`AcsParameters`.
# [v7.6.1] 2024-02-05
## Changed
- Guidance now uses the coordinate functions from the FSFW.
- Idle should now point the STR away from the earth
## Fixed
- Fixed bugs in `Guidance::comparePtg` and corrected overloading
- Detumbling State Machine is now robust to commanded mode changes.
# [v7.6.0] 2024-01-30
- Bumped `eive-tmtc` to v5.13.0
- Bumped `eive-fsfw`
## Added
- Added new parameter for MPSoC which allows to skip SUPV commanding.
## Changed
- Increased allowed mode transition time for PLOC SUPV.
- Detumbling can now be triggered from all modes of the `AcsController`. In case the
current mode is a higher pointing mode, the STR will be set to faulty, to trigger a
transition to safe first. Then, in a second step, a transition to detumble is triggered.
## Fixed
- If the PCDU handler fails reading data from the IPC store, it will
not try to do a deserialization anymore.
- All action commands sent by the PLOC SUPV to itself will have no sender now.
- RW speed commands get reset to 0 RPM, if the `AcsController` has changed its mode
to Safe
- Antistiction for RWs will set commanded speed to 0 RPM, if a wheel is detected as not
working
- Removed parameter to disable antistiction, as deactivating it would result in the
`AcsController` being allowed sending invalid speed commands to the RW Handler, which
would then trigger FDIR and turning off the functioning device
- `RwHandler` returnvalues would use the `INTERFACE_ID` of the `DeviceHandlerBase`
- The `AcsController` will reset its stored guidance values on mode change and lost
orientation.
- The nullspace controller will only be used if all RWs are available.
- Calculation of required rotation rate in pointing modes has been fixed to actual
calculation of rotation rate from two quaternions.
- Fixed alignment matrix and pseudo inverses of RWs, to match the wrong definition of
positive rotation.
# [v7.5.5] 2024-01-22
## Fixed
- Calculation of error quaternion was done with inverse of the required target quaternion.
# [v7.5.4] 2024-01-16
## Fixed
- Pointing strategy now actually uses fused rotation rate source instead of its valid flag.
- All datasets now get updated during pointing mode, even if the strategy is a fault one.
# [v7.5.3] 2023-12-19
## Fixed
- Set STR quaternions to invalid in device handler if the solution is not trustworthy.
# [v7.5.2] 2023-12-14
## Fixed
- Fixed faulty scaling within the QUEST algorithm.
# [v7.5.1] 2023-12-13
- `eive-tmtc` v5.12.1
## Changed
- Increased the maximum number of scheduled telecommands from 500 to 4000. Merry Christmas!
## Fixed
- Faulty mapping of input values for QUEST algorithm.
- Fixed validity check for QUEST algorithm.
# [v7.5.0] 2023-12-06
- `eive-tmtc` v5.12.0
## Changed
- ACS-Board default side changed to B-Side
- The TLE uploaded now gets stored in a file on the filesystem. It will always be stored on
the current active SD Card. After a reboot, the TLE will be read from the filesystem.
A filesystem change via `prefSD` on bootup, can lead to the TLE not being read, even
though it is there.
- Added action cmd to read the currently stored TLE.
- Both the `AcsController` and the `PwrController` now use the monotonic clock to calculate
the time difference.
- `ACS Controller` now has the function `performAttitudeControl` which is called prior to passing
on to the relevant mode functions. It handles all telemetry relevant functions, which were
always called, regardless of the mode.
## Added
- Higher ACS modes can now be entered without a running `MEKF`. Higher modes will collect their
quaternion and rotational rate depending on the available sources.
- `QUEST` attitude estimation was added to the `AcsController`.
- The fused rotational rate can now be estimated from `QUEST` and the `STR`.
# [v7.4.1] 2023-12-06
## Fixed
- Schedule SCEX again. Scheduling was removed accidentaly when Payload Task was converted to a PST.
- SCEX transition was previously 0 seconds.. which did not lead to bugs? In any case it is 5
seconds now.
# [v7.4.0] 2023-11-30
- `eive-tmtc` v5.11.0
## Changed
- Rewrote the PLOC Supervisor Handler, which is now based on a new device handler base class.
Added ADC and Logging Counters telemetry set support.
## Fixed
- Increase allowed time for PTME writers to finish partial transfers. A duration of 200 ms was
not sufficient for cases where 3 writers write concurrently.
- Fixed state issue for PTME writer object where the writer was not reset properly after a timeout
of a partial transfer. This was a major bug blocking the whole VC if it occured.
- STR config path was previously hardcoded to `/mnt/sd0/startracker/flight-config.json`.
A new abstraction was introduces which now uses the active SD card to build the correct
config path when initializing the star tracker.
## Added
- PL PCDU: Add command to enable and disable channel order checks.
- Added new PUS 15 subservice `DELETE_BY_TIME_RANGE` which allows to also specify a deletion
start time when deleting packets from the persistent TM store.
- Introduced a new `RELOAD_JSON_CFG_FILE` command for the STR to reload the JSON configuration
data based on the current output of the config file path getter function. A reboot of the
device is still necessary to load the configuration to the STR.
# [v7.3.0] 2023-11-07
## Changed
- Changed PDEC addresses depending on which firmware version is used. It is suspected that
the previous addresses were invalid and not properly covered by the Linux memory protection.
The OBSW will use the old addresses for older FW versions.
- Reverted some STR ComIF behaviour back to an older software version.
## Added
- Always add PLOC MPSoC and PLOC SUPV components for the EM as well.
# [v7.2.0] 2023-10-27
- `eive-tmtc` v5.10.1
## Added
- STR: Added new TM sets: Blob, Blobs, MatchedCentroids, Contrast, AutoBlob, Centroid, Centroids
- STR: Added new mechanism where the secondary TM which is polled can now be a set instead of
being temperature only. An API is exposed which allows to add a data set to that set of secondary
telemetry, reset it back to temperature only, and read the whole set. This allows more debugging
capability.
- CFDP source handler, which allows file downlink using the standardized
CFDP interface.
- Proper back pressure handling for the CFDP handler, where the `LiveTmTask` is able to throttle
the CFDP handler.
- Added CFDP fault handler events.
- The EIVE system will command the payload OFF explicitely again when receiving the
`power::POWER_LEVEL_CRITICAL` event.
## Fixed
- If the PTME is driven in a way where it fills faster than it can be emptied, the interface
can become full during the process of a regular packet write. The interface of the PAPB VC
was adapted to be stateful now. Packet generation is started with a `write` call while
write transfers are advanced and completed with the `advanceWrite` call if they can not be
completed immediately.
- CFDP Space Packets SSC is now generated properly, was always 0 before.
- Host build fixes
- PL Enable set of the power controller is now set to invalid properly if the power controller
is not in normal mode.
- MPSoC debug mode.
- Possible bugfix for PL PCDU parameter JSON handling which might not have been initialized
properly from the JSON file.
## Changed
- Swapped RTD 9 (PLOC HPA Sensor) and RTD 11 (PLOC MPA Sensor) chip select definitions. It is
strongly suspected the cables for those devices were swapped during integration. This is probably
the easiest way to fix the issue without the need to tweak ground or other OBSW or controller
code.
- Added a 3 second delay in the EIVE system between commanding all PL components except the SUPV,
and the SUPV itself OFF when the power level becomes low or critical.
- SUS FDIR should now trigger less events. The finish event is now only triggered once the
SUS has been working properly for a minute again. It will then display the number of periods
during which the SUS was not working as well as the maximum amount of invalid messages.
- Updated battery internal resistance to new value
# [v7.1.0] 2023-10-11
- Bumped `eive-tmtc` to v5.8.0.
- Activate Xiphos WDT with a timeout period of 80 seconds using the `libxiphos` API. The WDT
calls are done by the new `XiphosWdtHandler` object.
# [v7.0.0] 2023-10-11
- Bumped `eive-tmtc` to v5.7.1.
- Bumped `eive-fsfw`
## Added
- EPS Subsystem has been added to EIVE System Tree
- Power Controller for calculating the State of Charge and FDIR regarding low SoC has been
introduced.
## Changed
- Changed internals for MPSoC boot process to make the code more understandable and some
parameters better configurable. This should not affect the behaviour of the OBSW, but might
make it more reliable and fix some corner cases.
## Fixed
- Missing `nullptr` checks for PLOC Supervisor handler, which could lead to crashes.
- SCEX bugfix for normal and transition commanding.
# [v6.6.0] 2023-09-18
## Changed
- Changed the memory initialized for the PDEC Config Memory and the PDEC RAM by using `mmap`
directly and ignoring UIO. This makes the OBSW compatible to a device tree update, where those
memory segments are marked reserved and are thus not properly accessible through the UIO API
anymore. This change should be downwards compatible to older device trees.
# [v6.5.1] 2023-09-12
- Bumped `eive-tmtc` to v5.5.0.
# [v6.5.0] 2023-09-12
## Changed
- Relaxed SUS FDIR. The devices have shown to be glitchy in orbit, but still seem to deliver
sensible raw values most of the time. Some further testing is necessary, but some changes in the
code should cause the SUS devices to remain healthy for now.
- The primary and the secondary temperature sensors for the PLOC mission boards are exchanged.
- ACS parameters for the SUSMGM (FLP) safe mode have been adjusted. This safe mode is now the
default one.
- MGM3100 Startup Configuration: Ignore bit 1 of the CMM reply, which is sometimes set to
1 in the reply for some reason.
# [v6.4.1] 2023-08-21
## Fixed
- `PDEC_CONFIG_CORRUPTED` event now actually contains the readback instead of the expected
config
- Magnetic field vector was not calculated if only MGM4 was available, but still written to
the dataset. This would result in a NaN vector. Allowance for usage of MGM4 is now checked
before entering calculation.
# [v6.4.0] 2023-08-16
- `eive-tmtc`: v5.4.3
## Fixed
- The handling function of the GPS data is only called once per GPS read. This should remove
the fake fix-has-changed events.
- Fix for PLOC SUPV HK set parsing.
- The timestamp for the `POSSIBLE_FILE_CORRUPTION` event will be generated properly now.
## Changed
- PDEC FDIR rework: A full PDEC reboot will now only be performed after a regular PDEC reset has
failed 10 times. The mechanism will reset after no PDEC reset has happended for 2 minutes.
The PDEC reset will be performed when counting 4 dirty frame events 10 seconds after the count
was incremented initially.
- GPS Fix has changed event is no longer triggered for the EM
- MGM and SUS rates now will only be calculated, if 2 valid consecutive datapoints are available.
The stored value of the last timestep will now be reset, if no actual value is available.
## Added
- The PLOC SUPV HK set is requested and downlinked periodically if the SUPV is on now.
- SGP4 Propagator is now used for propagating the position of EIVE. It will only work once
a TLE has been uploaded with the newly added action command for the ACS Controller. In
return the actual GPS data will be ignored once SPG4 is running. However, by setting the
according parameter, the ACS Controller can be directed to ignore the SGP4 solution.
- Skyview dataset for more GPS TM has been added
- `PDEC_CONFIG_CORRUPTED` event which is triggered when the PDEC configuration does not match the
expected configuration. P1 will contain the readback of the first word and P2 will contain the
readback of the second word.
- The MGM and SUS vectors being too close together does not prevent the usage of the safe
mode controller anymore.
- Parameter to disable usage of MGM4, which is part of the MTQ and therefore cannot be
disabled without disabling the MTQ itself.
# [v6.3.0] 2023-08-03
## Fixed
- Small SCEX fix: The temperatur check option was not passed
on for commands with a user data size larger than 1.
- SCEX: Properly check whether filesystem is usable for filesystem checks.
- ACS Controller strategy is now actually written to the dataset for detumbling.
- During detumble the fused rotation rate is now calculated.
- Detumbling is now exited when its exit value is undercut and not its entry value.
- Rotation rate of last cycle is now stored in all cases for the fused rotational rate
calculation.
- Fused rotation rate estimation during eclipse can be disabled. This will also prevent
detumbling during eclipse, as no relevant rotational rate is available for now.
- `EiveSystem`: Add a small delay between triggering an event for FDIR reboots and sending the
command to the core controller.
- PL PDU: Fixed bounds checking logic. Bound checks will only be performed for modules which are
enabled.
## Changed
- SCEX: Only perform filesystem checks when not in OFF mode.
- The `EiveSystem` now only sends reboot commands targetting the same image.
- Added 200 ms delay between switching HPA/MPA/TX/X8 and DRO GPIO pin OFF.
- PL PCDU ADC set is now automatically enabled for `NORMAL` mode transitions. It is automatically
disabled for `OFF` mode transitions.
## Added
- PL PCDU for EM build.
- SCEX: Add warning event if filesystem is unusable.
# [v6.2.0] 2023-07-26
- `eive-tmtc`: v5.3.1
## Changed
- STR missed reply handling is now moved to DHB rather than the COM interface. The COM IF will
still trigger an event if a reply is taking too long, and FDIR should still work via reply
timeouts.
- Re-ordered some functions of the core controller in the initialize function.
- Rad sensor is now only polled every 30 minutes instead of every device cycle to reduce wear of
the RADFET electronics.
- The SD cards will still be switched OFF on a reboot, but this is done in a non-blocking manner
now with a timeout of 10 seconds where the reboot will be performed in any case.
- ACS Controller now includes the safe mode from FLP, which will calculate its rotational rate
from SUS and MGM measurements. To accommodate these changes, low-pass filters for SUS
measurements and rates as well as MGM measurements and rates are included. Usage of the new
controller as well as settings of the low-pass filters can be handled via parameter commands.
- Simplify and fix the chip and copy protection functions in the core controller. This mechanism
now is always performed for the target chip and target copy in the reboot handlers.
- Improvement in FSFW: HK generation is now countdown based.
## Added
- 5 ms delay after pulling RADFET enable pin high before starting
the ADC conversion.
- Set STR time in configuration sequence to firmware mode.
- The STR `AutoThreshold` parameters are now set from the configuration JSON file at STR
startup.
- The STR handler can now handle the COM error reply and triggers an low severity event accordingly.
- Add SCEX handler for EM.
- Radiation sensor handler dummy for the EM.
- Added event for SD card information in core controller initialize function. This event will also
be triggered after the SD state machine has run, so the event will generally be triggered twice
at system boot, and once after commanding SD card switches.
## Fixed
- General bugs in the SD card state machine. This might fix some other known bugs for certain
combinations of switching ON and OFF SD cards and also makes the whole state machine a lot more
robust against hanging up.
- SUS dummy handler went to `MODE_NORMAL` for ON commands.
- PL PCDU dummy went to `MODE_NORMAL` for ON commands.
# [v6.1.0] 2023-07-13
- `eive-tmtc`: v5.2.0
## Changed
- TCS: Remove OBC IF board thermal module, which is exactly identical to OBC module and therefore
obsolete.
- Swapped PL and PS I2C, BPX battery and MGT are connected to PS I2C now for firmware versions
equal or above v4. However, this software version is compatible to both v3 and v4 of the firmware.
- The firmware version variables are global statics inititalized early during the program
runtime now. This makes it possible to check the firmware version earlier.
- The TCS controller will now always command heaters OFF when being blind for thermal
components (no sensors available), irrespective of current switch state.
- Make OBSW compatible to prospective FW version v5.0.0, where the Q7 I2C devices were
moved to a PL I2C block and the TMP sensor devices were moved to the PS I2C0.
- Made `Xadc` code a little bit more robust against errors.
## Fixed
- TMP1075: Set dataset invalid on shutdown explicitely
- Small fixes for TMP1075 FDIR: Use strange and missed reply counters.
- TCS controller: Last heater (S-band heater) was skipped for transition completion
checks.
- TCS controller: A helper member to track the elapsed heater control cycles was not reset
properly, which could lead to switch transitions being completed immediately. This can
lead to weird bugs like heaters being commanded ON twice and can potentially lead to
other bugs.
- TMP1075: Devices did not go to OFF mode when being set faulty.
- Update PL PCDU 1 in TCS mode tree on the EM.
- TMP1075: Possibly ignored health commands.
- Bugfix in FSFW where certain packet types could only be sent with source data fields with a
maximum size of 255 bytes.
- TCS CTRL: Limit number of heater handler messages sent in case there are not sensors available
anymore.
- Fix to allow adding real STR device for EM.
# Added
- Two events for heaters being commanded ON and OFF by the TCS controller
- Upper limit for burn time of TCS heaters. Currently set to 1 hour for each heater.
This mechanism will only track the burn time for heaters which were commanded by the
TCS controller.
- TCS controller is now observable by introducing a new HK dataset which exposes some internal
fields related to TCS control.
# [v6.0.0] 2023-07-02
- `q7s-package` version v3.2.0
- Important bugfixes for PTME. See `q7s-package` CHANGELOG.
## Changed
- Added back PTME busy bit polling. This is necessary due to changes to the AXI APB interface
to the PTME core.
## Fixed
- For the live channel (VC0), telemetry was still only dumped if the transmitter is active.
Please note that this fix will lead to crashes for FW versions below v3.2.
However, it might not be an issue for the oldest firmware on the satellite (v2.5.1).
# [v5.2.0] 2023-07-02
## Fixed
- The firmware information event was not triggered even when possible because of an ordering
bug in the initializer function.
- Empty dumps (no TM in time range) will now correctly be completed immediately
## Changed
- PTME was always reset on submode changes. The reset will now only be performed if the actual data
rate changes.
- Add back ACS board code for the EM. Now that the radiation sensor was removed, the image switching
issue has disappeared and adding back the ACS board is worth it for the GPS timekeeping.
# [v5.1.0] 2023-06-28
- `eive-tmtc` version v5.1.0
## Changed
- Persistent TM store dumps are now performed in chronological order.
- Increase Syrlinks RX HK rate to 5.0 seconds during a pass.
- Various robustness improvements for the heater handler. The heater handler will now only
process the command queue if it is not busy with switch commanding which reduces the amount
of possible bugs.
- The heater handler is only able to process messages stricly sequentially now but is scheduled
twice in a 0.5 second slot so something like a consecutive heater ON or OFF command can still
be handled relatively quickly.
## Added
- Sequence counters for PUS and CFDP packets are now stored persistently across graceful reboots.
- The PUS packet message type counter will now be incremented properly for each PUS service.
- Internal error reporter set is now enabled by default and generated every 120 seconds.
# [v5.0.0] 2023-06-26
v3.3.1 and all following version will now be moved to v5.0.0 with the additional changes listed
here. This was done because the firmware update (v4.0.0) is not working right now and it is not
known when and how it will be fixed. Because of that, all updates to make the SW work with the new
firmware, which are limited to a few files will be moved to a dev branch so regular development
compatible to the old firmware can continue.
TLDR: This version is compatible to the old firmware and some changes which only work with the new
firmware have been reverted.
## Changed
- Added `sync` syscall in graceful shutdown handler
- Graceful shutdown is now performed by the reboot watchdog
- There is now a separate file for the total reboot counter. The reboot watchdog has its own local
counters to determine whether a reboot is necessary.
# [v4.0.1] 2023-06-24
## Fixed
@ -52,6 +764,17 @@ will consitute of a breaking change warranting a new major release:
restore the PL I2C.
- Core controller now announces firmware version as well when requesting a version info event
# [v3.3.1] 2023-06-22
## Fixed
- `PusLiveDemux` packet demultiplexing bugfix where the demultiplexing did not work when there was
only one destination available.
## Fixed
- Fixed H parameter in SUS converter from 1 mm to 2.5 mm.
# [v3.3.0] 2023-06-21
Like v3.2.0 but without the custom FM changes related to VC0.
@ -333,7 +1056,7 @@ This is the version which will fly on the satellite for the initial launch phase
This gives other tasks some time to register the SD cards being unusable, and therefore provides
a way for them to perform any re-initialization tasks necessary after SD card switches.
- TCS controller now only has an OFF mode and an ON mode
- The TCS controller pauses operations related to the TCS board assembly (reading sensors and
- The TCS controller pauses operations related to the TCS board assembly (reading sensors and
the primary control loop) while a TCS board recovery is on-going.
- Allow specifying custom OBSW update filename. This allowed keeping a cleaner file structure
where each update has a name including the version
@ -1398,8 +2121,8 @@ Syrlinks PR: PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/353
- Syrlinks Handler: Read RX frequency shift as 24 bit signed number now. Also include
validity handling for datasets.
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/350
- `GyroADIS1650XHandler`: Changed calculation of angular rate to be sensitivity based instead of
max. range based, as previous fix still left an margin of error between ADIS16505 sensors
- `GyroADIS1650XHandler`: Changed calculation of angular rate to be sensitivity based instead of
max. range based, as previous fix still left an margin of error between ADIS16505 sensors
and L3GD20 sensors.
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/346

View File

@ -9,9 +9,9 @@
# ##############################################################################
cmake_minimum_required(VERSION 3.13)
set(OBSW_VERSION_MAJOR 4)
set(OBSW_VERSION_MINOR 0)
set(OBSW_VERSION_REVISION 1)
set(OBSW_VERSION_MAJOR 8)
set(OBSW_VERSION_MINOR 2)
set(OBSW_VERSION_REVISION 0)
# set(CMAKE_VERBOSE TRUE)
@ -64,7 +64,7 @@ include(EiveHelpers)
option(EIVE_ADD_ETL_LIB "Add ETL library" ON)
option(EIVE_ADD_JSON_LIB "Add JSON library" ON)
set(OBSW_MAX_SCHEDULED_TCS 500)
set(OBSW_MAX_SCHEDULED_TCS 4000)
if(EIVE_Q7S_EM)
set(OBSW_Q7S_EM
@ -93,7 +93,7 @@ set(OBSW_ADD_BPX_BATTERY_HANDLER
1
CACHE STRING "Add BPX battery module")
set(OBSW_ADD_STAR_TRACKER
${INIT_VAL}
1
CACHE STRING "Add Startracker module")
set(OBSW_ADD_SUN_SENSORS
${INIT_VAL}
@ -105,7 +105,7 @@ set(OBSW_ADD_THERMAL_TEMP_INSERTER
${OBSW_Q7S_EM}
CACHE STRING "Add thermal sensor temperature inserter")
set(OBSW_ADD_ACS_BOARD
${INIT_VAL}
1
CACHE STRING "Add ACS board module")
set(OBSW_ADD_GPS_CTRL
${INIT_VAL}
@ -126,13 +126,13 @@ set(OBSW_ADD_HEATERS
1
CACHE STRING "Add TCS heaters")
set(OBSW_ADD_PLOC_SUPERVISOR
${INIT_VAL}
1
CACHE STRING "Add PLOC supervisor handler")
set(OBSW_ADD_SA_DEPL
${INIT_VAL}
CACHE STRING "Add SA deployment handler")
set(OBSW_ADD_PLOC_MPSOC
${INIT_VAL}
1
CACHE STRING "Add MPSoC handler")
set(OBSW_ADD_ACS_CTRL
${INIT_VAL}
@ -144,13 +144,13 @@ set(OBSW_ADD_RAD_SENSORS
${INIT_VAL}
CACHE STRING "Add Rad Sensor module")
set(OBSW_ADD_PL_PCDU
${INIT_VAL}
1
CACHE STRING "Add Payload PCDU modukle")
set(OBSW_ADD_SYRLINKS
1
CACHE STRING "Add Syrlinks module")
set(OBSW_ADD_TMP_DEVICES
${INIT_VAL}
1
CACHE STRING "Add TMP devices")
set(OBSW_ADD_GOMSPACE_PCDU
1
@ -162,7 +162,7 @@ set(OBSW_ADD_RW
${INIT_VAL}
CACHE STRING "Add RW modules")
set(OBSW_ADD_SCEX_DEVICE
${INIT_VAL}
1
CACHE STRING "Add Solar Cell Experiment module")
set(OBSW_SYRLINKS_SIMULATED
0
@ -240,6 +240,9 @@ set(FSFW_WARNING_SHADOW_LOCAL_GCC OFF)
set(EIVE_ADD_LINUX_FILES OFF)
set(FSFW_ADD_TMSTORAGE ON)
set(FSFW_ADD_COORDINATES ON)
set(FSFW_ADD_SGP4_PROPAGATOR ON)
# Analyse different OS and architecture/target options, determine BSP_PATH,
# display information about compiler etc.
pre_source_hw_os_config()

View File

@ -964,6 +964,12 @@ used by other software components to read the current chip and copy.
This is a configuration scripts which runs after the Network Time Protocol has run. This script
currently sets the static IP address `192.168.133.10` and starts the `can` interface.
## Initial boot delay
You can create a file named `boot_delays_secs.txt` inside the home folder to delay the OBSW boot
for 6 seconds if the file is empty of for the number of seconds specified inside the file. This
can be helpful if something inside the OBSW leads to an immediate crash of the OBC.
## PCDU
Connect to serial console of P60 Dock

View File

@ -2,14 +2,15 @@
#include <linux/payload/PlocMpsocHandler.h>
#include <linux/payload/plocSupvDefs.h>
#include <sstream>
#include "OBSWConfig.h"
#include "fsfw/datapool/PoolReadGuard.h"
#include "fsfw/globalfunctions/CRC.h"
#include "fsfw/ipc/QueueFactory.h"
#include "fsfw/parameters/HasParametersIF.h"
PlocMpsocHandler::PlocMpsocHandler(object_id_t objectId, object_id_t uartComIFid,
CookieIF* comCookie, PlocMpsocSpecialComHelper* plocMPSoCHelper,
CookieIF* comCookie,
PlocMpsocSpecialComHelperLegacy* plocMPSoCHelper,
Gpio uartIsolatorSwitch, object_id_t supervisorHandler)
: DeviceHandlerBase(objectId, uartComIFid, comCookie),
hkReport(this),
@ -20,9 +21,8 @@ PlocMpsocHandler::PlocMpsocHandler(object_id_t objectId, object_id_t uartComIFid
if (comCookie == nullptr) {
sif::error << "PlocMPSoCHandler: Invalid communication cookie" << std::endl;
}
eventQueue = QueueFactory::instance()->createMessageQueue(EventMessage::EVENT_MESSAGE_SIZE * 5);
commandActionHelperQueue =
QueueFactory::instance()->createMessageQueue(EventMessage::EVENT_MESSAGE_SIZE * 5);
eventQueue = QueueFactory::instance()->createMessageQueue(10);
commandActionHelperQueue = QueueFactory::instance()->createMessageQueue(10);
spParams.maxSize = sizeof(commandBuffer);
spParams.buf = commandBuffer;
}
@ -54,24 +54,26 @@ ReturnValue_t PlocMpsocHandler::initialize() {
return result;
}
result = manager->subscribeToEvent(
eventQueue->getId(), event::getEventId(PlocMpsocSpecialComHelper::MPSOC_FLASH_WRITE_FAILED));
eventQueue->getId(),
event::getEventId(PlocMpsocSpecialComHelperLegacy::MPSOC_FLASH_WRITE_FAILED));
if (result != returnvalue::OK) {
return ObjectManagerIF::CHILD_INIT_FAILED;
}
result = manager->subscribeToEvent(
eventQueue->getId(),
event::getEventId(PlocMpsocSpecialComHelper::MPSOC_FLASH_WRITE_SUCCESSFUL));
event::getEventId(PlocMpsocSpecialComHelperLegacy::MPSOC_FLASH_WRITE_SUCCESSFUL));
if (result != returnvalue::OK) {
return ObjectManagerIF::CHILD_INIT_FAILED;
}
result = manager->subscribeToEvent(
eventQueue->getId(),
event::getEventId(PlocMpsocSpecialComHelper::MPSOC_FLASH_READ_SUCCESSFUL));
event::getEventId(PlocMpsocSpecialComHelperLegacy::MPSOC_FLASH_READ_SUCCESSFUL));
if (result != returnvalue::OK) {
return ObjectManagerIF::CHILD_INIT_FAILED;
}
result = manager->subscribeToEvent(
eventQueue->getId(), event::getEventId(PlocMpsocSpecialComHelper::MPSOC_FLASH_READ_FAILED));
eventQueue->getId(),
event::getEventId(PlocMpsocSpecialComHelperLegacy::MPSOC_FLASH_READ_FAILED));
if (result != returnvalue::OK) {
return ObjectManagerIF::CHILD_INIT_FAILED;
}
@ -91,6 +93,8 @@ ReturnValue_t PlocMpsocHandler::initialize() {
void PlocMpsocHandler::performOperationHook() {
if (commandIsPending and cmdCountdown.hasTimedOut()) {
sif::warning << "PlocMpsocHandler: Command " << getPendingCommand() << " has timed out"
<< std::endl;
commandIsPending = false;
// TODO: Better returnvalue?
cmdDoneHandler(false, returnvalue::FAILED);
@ -137,7 +141,7 @@ ReturnValue_t PlocMpsocHandler::executeAction(ActionId_t actionId, MessageQueueI
}
if (specialComHelperExecuting) {
return MPSoCReturnValuesIF::MPSOC_HELPER_EXECUTING;
return mpsoc::MPSOC_HELPER_EXECUTING;
}
switch (actionId) {
@ -188,79 +192,33 @@ void PlocMpsocHandler::doStartUp() {
startupState = StartupState::HW_INIT;
}
if (startupState == StartupState::HW_INIT) {
#ifdef XIPHOS_Q7S
#if not OBSW_MPSOC_JTAG_BOOT == 1
switch (powerState) {
case PowerState::OFF:
commandActionHelper.commandAction(supervisorHandler, supv::START_MPSOC);
powerState = PowerState::BOOTING;
return;
case PowerState::ON:
uartIsolatorSwitch.pullHigh();
startupState = StartupState::WAIT_CYCLES;
break;
default:
return;
}
#else
uartIsolatorSwitch.pullHigh();
startupState = StartupState::WAIT_CYCLES;
#endif /* not MSPOC_JTAG_BOOT == 1 */
#else
startupState = StartupState::WAIT_CYCLES;
powerState = PowerState::ON;
#endif /* XIPHOS_Q7S */
}
// Need to wait, MPSoC still not booted properly, requesting HK without these wait cycles does
// not work, no replies..
if (startupState == StartupState::WAIT_CYCLES) {
waitCycles++;
if (waitCycles >= 8) {
if (handleHwStartup()) {
startupState = StartupState::DONE;
waitCycles = 0;
}
}
if (startupState == StartupState::DONE) {
setMode(_MODE_TO_ON);
hkReport.setReportingEnabled(true);
powerState = PowerState::IDLE;
startupState = StartupState::IDLE;
}
}
void PlocMpsocHandler::doShutDown() {
#ifdef XIPHOS_Q7S
#if not OBSW_MPSOC_JTAG_BOOT == 1
if (powerState == PowerState::ON) {
uartIsolatorSwitch.pullLow();
commandActionHelper.commandAction(supervisorHandler, supv::SHUTDOWN_MPSOC);
powerState = PowerState::SHUTDOWN;
return;
} else if (powerState == PowerState::SHUTDOWN) {
// Wait till power state is OFF.
return;
if (handleHwShutdown()) {
hkReport.setReportingEnabled(false);
setMode(_MODE_POWER_DOWN);
commandIsPending = false;
sequenceCount = 0;
powerState = PowerState::IDLE;
startupState = StartupState::IDLE;
}
#else
uartIsolatorSwitch.pullLow();
powerState = PowerState::OFF;
#endif
#endif
if (specialComHelper != nullptr) {
specialComHelper->stopProcess();
}
hkReport.setReportingEnabled(false);
setMode(_MODE_POWER_DOWN);
commandIsPending = false;
sequenceCount = 0;
specialComHelperExecuting = false;
startupState = StartupState::IDLE;
}
ReturnValue_t PlocMpsocHandler::buildNormalDeviceCommand(DeviceCommandId_t* id) {
if (not commandIsPending and not specialComHelperExecuting) {
*id = mpsoc::TC_GET_HK_REPORT;
commandIsPending = true;
cmdCountdown.resetTimer();
return buildCommandFromCommand(*id, nullptr, 0);
}
return NOTHING_TO_SEND;
@ -397,6 +355,11 @@ ReturnValue_t PlocMpsocHandler::scanForReply(const uint8_t* start, size_t remain
SpacePacketReader spacePacket;
spacePacket.setReadOnlyData(start, remainingSize);
if (DEBUG_MPSOC_COMMUNICATION) {
sif::debug << "RECV MPSOC packet. APID 0x" << std::hex << std::setw(3) << spacePacket.getApid()
<< std::dec << " Size " << spacePacket.getFullPacketLen() << " SSC "
<< spacePacket.getSequenceCount() << std::endl;
}
if (spacePacket.isNull()) {
return returnvalue::FAILED;
}
@ -447,7 +410,7 @@ ReturnValue_t PlocMpsocHandler::scanForReply(const uint8_t* start, size_t remain
sif::debug << "PlocMPSoCHandler::scanForReply: Reply has invalid APID 0x" << std::hex
<< std::setfill('0') << std::setw(2) << apid << std::dec << std::endl;
*foundLen = remainingSize;
return MPSoCReturnValuesIF::INVALID_APID;
return mpsoc::INVALID_APID;
}
}
@ -484,7 +447,7 @@ ReturnValue_t PlocMpsocHandler::interpretDeviceReply(DeviceCommandId_t id, const
}
case (mpsoc::TM_FLASH_DIRECTORY_CONTENT): {
result = verifyPacket(packet, foundPacketLen);
if (result == MPSoCReturnValuesIF::CRC_FAILURE) {
if (result == mpsoc::CRC_FAILURE) {
sif::warning << "PLOC MPSoC: Flash directory content reply invalid CRC" << std::endl;
}
/** Send data to commanding queue */
@ -512,7 +475,7 @@ void PlocMpsocHandler::setNormalDatapoolEntriesInvalid() {
hkReport.setValidity(false, true);
}
uint32_t PlocMpsocHandler::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 10000; }
uint32_t PlocMpsocHandler::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 15000; }
ReturnValue_t PlocMpsocHandler::initializeLocalDataPool(localpool::DataPool& localDataPoolMap,
LocalDataPoolManager& poolManager) {
@ -596,7 +559,7 @@ ReturnValue_t PlocMpsocHandler::prepareTcMemRead(const uint8_t* commandData,
ReturnValue_t PlocMpsocHandler::prepareTcFlashDelete(const uint8_t* commandData,
size_t commandDataLen) {
if (commandDataLen > config::MAX_PATH_SIZE + config::MAX_FILENAME_SIZE) {
return MPSoCReturnValuesIF::NAME_TOO_LONG;
return mpsoc::NAME_TOO_LONG;
}
ReturnValue_t result = returnvalue::OK;
mpsoc::TcFlashDelete tcFlashDelete(spParams, sequenceCount);
@ -745,12 +708,19 @@ ReturnValue_t PlocMpsocHandler::finishTcPrep(mpsoc::TcBase& tcBase) {
rawPacket = commandBuffer;
rawPacketLen = tcBase.getFullPacketLen();
sequenceCount++;
if (DEBUG_MPSOC_COMMUNICATION) {
sif::debug << "SEND MPSOC packet. APID 0x" << std::hex << std::setw(3) << tcBase.getApid()
<< " Size " << std::dec << tcBase.getFullPacketLen() << " SSC "
<< tcBase.getSeqCount() << std::endl;
}
cmdCountdown.resetTimer();
return returnvalue::OK;
}
ReturnValue_t PlocMpsocHandler::verifyPacket(const uint8_t* start, size_t foundLen) {
if (CRC::crc16ccitt(start, foundLen) != 0) {
return MPSoCReturnValuesIF::CRC_FAILURE;
return mpsoc::CRC_FAILURE;
}
return returnvalue::OK;
}
@ -759,12 +729,12 @@ ReturnValue_t PlocMpsocHandler::handleAckReport(const uint8_t* data) {
ReturnValue_t result = returnvalue::OK;
result = verifyPacket(data, mpsoc::SIZE_ACK_REPORT);
if (result == MPSoCReturnValuesIF::CRC_FAILURE) {
if (result == mpsoc::CRC_FAILURE) {
sif::warning << "PlocMPSoCHandler::handleAckReport: CRC failure" << std::endl;
nextReplyId = mpsoc::NONE;
replyRawReplyIfnotWiretapped(data, mpsoc::SIZE_ACK_REPORT);
triggerEvent(MPSOC_HANDLER_CRC_FAILURE);
sendFailureReport(mpsoc::ACK_REPORT, MPSoCReturnValuesIF::CRC_FAILURE);
sendFailureReport(mpsoc::ACK_REPORT, mpsoc::CRC_FAILURE);
disableAllReplies();
return IGNORE_REPLY_DATA;
}
@ -803,7 +773,7 @@ ReturnValue_t PlocMpsocHandler::handleExecutionReport(const uint8_t* data) {
ReturnValue_t result = returnvalue::OK;
result = verifyPacket(data, mpsoc::SIZE_EXE_REPORT);
if (result == MPSoCReturnValuesIF::CRC_FAILURE) {
if (result == mpsoc::CRC_FAILURE) {
sif::warning << "PlocMPSoCHandler::handleExecutionReport: CRC failure" << std::endl;
nextReplyId = mpsoc::NONE;
return result;
@ -824,9 +794,9 @@ ReturnValue_t PlocMpsocHandler::handleExecutionReport(const uint8_t* data) {
uint16_t status = mpsoc::getStatusFromRawData(data);
sif::warning << "MPSoC EXE Failure: " << mpsoc::getStatusString(status) << std::endl;
triggerEvent(EXE_FAILURE, commandId, status);
sendFailureReport(mpsoc::EXE_REPORT, MPSoCReturnValuesIF::RECEIVED_EXE_FAILURE);
sendFailureReport(mpsoc::EXE_REPORT, mpsoc::RECEIVED_EXE_FAILURE);
result = IGNORE_REPLY_DATA;
cmdDoneHandler(false, MPSoCReturnValuesIF::RECEIVED_EXE_FAILURE);
cmdDoneHandler(false, mpsoc::RECEIVED_EXE_FAILURE);
break;
}
default: {
@ -842,7 +812,7 @@ ReturnValue_t PlocMpsocHandler::handleExecutionReport(const uint8_t* data) {
ReturnValue_t PlocMpsocHandler::handleMemoryReadReport(const uint8_t* data) {
ReturnValue_t result = returnvalue::OK;
result = verifyPacket(data, tmMemReadReport.rememberRequestedSize);
if (result == MPSoCReturnValuesIF::CRC_FAILURE) {
if (result == mpsoc::CRC_FAILURE) {
sif::warning << "PlocMPSoCHandler::handleMemoryReadReport: Memory read report has invalid crc"
<< std::endl;
}
@ -1030,12 +1000,13 @@ ReturnValue_t PlocMpsocHandler::handleGetHkReport(const uint8_t* data) {
if (result != returnvalue::OK) {
return result;
}
hkReport.setValidity(true, true);
return returnvalue::OK;
}
ReturnValue_t PlocMpsocHandler::handleCamCmdRpt(const uint8_t* data) {
ReturnValue_t result = verifyPacket(data, foundPacketLen);
if (result == MPSoCReturnValuesIF::CRC_FAILURE) {
if (result == mpsoc::CRC_FAILURE) {
sif::warning << "PlocMPSoCHandler::handleCamCmdRpt: CRC failure" << std::endl;
}
SpacePacketReader packetReader(data, foundPacketLen);
@ -1247,15 +1218,11 @@ void PlocMpsocHandler::stepFailedReceived(ActionId_t actionId, uint8_t step,
switch (actionId) {
case supv::START_MPSOC: {
sif::warning << "PlocMPSoCHandler::stepFailedReceived: Failed to start MPSoC" << std::endl;
// This usually happens when the supervisor handler is in off mode
powerState = PowerState::OFF;
setMode(MODE_OFF);
break;
}
case supv::SHUTDOWN_MPSOC: {
triggerEvent(MPSOC_SHUTDOWN_FAILED);
sif::warning << "PlocMPSoCHandler::stepFailedReceived: Failed to shutdown MPSoC" << std::endl;
powerState = PowerState::OFF;
break;
}
default:
@ -1263,6 +1230,7 @@ void PlocMpsocHandler::stepFailedReceived(ActionId_t actionId, uint8_t step,
<< std::endl;
break;
}
powerState = PowerState::SUPV_FAILED;
}
void PlocMpsocHandler::dataReceived(ActionId_t actionId, const uint8_t* data, uint32_t size) {
@ -1270,18 +1238,26 @@ void PlocMpsocHandler::dataReceived(ActionId_t actionId, const uint8_t* data, ui
}
void PlocMpsocHandler::completionSuccessfulReceived(ActionId_t actionId) {
if (actionId != supv::EXE_REPORT) {
sif::debug << "PlocMPSoCHandler::completionSuccessfulReceived: Did not expect this action "
<< "ID" << std::endl;
if (actionId == supv::ACK_REPORT) {
// I seriously don't know why this happens..
// sif::warning
// << "PlocMpsocHandler::completionSuccessfulReceived: Only received ACK report. Consider
// "
// "increasing the MPSoC boot timer."
// << std::endl;
} else if (actionId != supv::EXE_REPORT) {
sif::warning << "PlocMpsocHandler::completionSuccessfulReceived: Did not expect the action "
<< "ID " << actionId << std::endl;
return;
}
switch (powerState) {
case PowerState::BOOTING: {
powerState = PowerState::ON;
case PowerState::PENDING_STARTUP: {
mpsocBootTransitionCd.resetTimer();
powerState = PowerState::DONE;
break;
}
case PowerState::SHUTDOWN: {
powerState = PowerState::OFF;
case PowerState::PENDING_SHUTDOWN: {
powerState = PowerState::DONE;
break;
}
default: {
@ -1409,36 +1385,121 @@ void PlocMpsocHandler::disableExeReportReply() {
info->command->second.expectedReplies = 0;
}
void PlocMpsocHandler::stopSpecialComHelper() {
if (specialComHelper != nullptr) {
specialComHelper->stopProcess();
}
specialComHelperExecuting = false;
}
bool PlocMpsocHandler::handleHwStartup() {
#if OBSW_MPSOC_JTAG_BOOT == 1
uartIsolatorSwitch.pullHigh();
startupState = StartupState::WAIT_CYCLES;
return true;
#endif
if (powerState == PowerState::IDLE) {
if (skipSupvCommandingToOn) {
powerState = PowerState::DONE;
} else {
if (supv::SUPV_ON) {
commandActionHelper.commandAction(supervisorHandler, supv::START_MPSOC);
supvTransitionCd.resetTimer();
powerState = PowerState::PENDING_STARTUP;
} else {
triggerEvent(SUPV_NOT_ON, 1);
// Set back to OFF for now, failing the transition.
setMode(MODE_OFF);
}
}
}
if (powerState == PowerState::SUPV_FAILED) {
setMode(MODE_OFF);
powerState = PowerState::IDLE;
return false;
}
if (powerState == PowerState::PENDING_STARTUP) {
if (supvTransitionCd.hasTimedOut()) {
// Process with transition nonetheless..
triggerEvent(SUPV_REPLY_TIMEOUT);
powerState = PowerState::DONE;
} else {
return false;
}
}
if (powerState == PowerState::DONE) {
if (mpsocBootTransitionCd.hasTimedOut()) {
// Wait a bit for the MPSoC to fully boot.
uartIsolatorSwitch.pullHigh();
powerState = PowerState::IDLE;
} else {
return false;
}
}
return true;
}
bool PlocMpsocHandler::handleHwShutdown() {
stopSpecialComHelper();
uartIsolatorSwitch.pullLow();
#if OBSW_MPSOC_JTAG_BOOT == 1
powerState = PowerState::DONE;
return true;
#endif
if (powerState == PowerState::IDLE) {
if (supv::SUPV_ON) {
commandActionHelper.commandAction(supervisorHandler, supv::SHUTDOWN_MPSOC);
supvTransitionCd.resetTimer();
powerState = PowerState::PENDING_SHUTDOWN;
} else {
triggerEvent(SUPV_NOT_ON, 0);
powerState = PowerState::DONE;
}
}
if (powerState == PowerState::PENDING_SHUTDOWN) {
if (supvTransitionCd.hasTimedOut()) {
powerState = PowerState::DONE;
// Process with transition nonetheless..
triggerEvent(SUPV_REPLY_TIMEOUT);
return true;
} else {
// Wait till power state is OFF.
return false;
}
}
return true;
}
void PlocMpsocHandler::handleActionCommandFailure(ActionId_t actionId) {
switch (actionId) {
case supv::ACK_REPORT:
case supv::EXE_REPORT:
break;
default:
sif::debug << "PlocMPSoCHandler::handleActionCommandFailure: Did not expect this action ID "
<< std::endl;
sif::warning << "PlocMPSoCHandler::handleActionCommandFailure: Did not expect the action ID "
<< actionId << std::endl;
return;
}
switch (powerState) {
case PowerState::BOOTING: {
case PowerState::PENDING_STARTUP: {
sif::info << "PlocMPSoCHandler::handleActionCommandFailure: MPSoC boot command failed"
<< std::endl;
// This is commonly the case when the MPSoC is already operational. Thus the power state is
// set to on here
powerState = PowerState::ON;
break;
}
case PowerState::SHUTDOWN: {
case PowerState::PENDING_SHUTDOWN: {
// FDIR will intercept event and switch PLOC power off
triggerEvent(MPSOC_SHUTDOWN_FAILED);
sif::warning << "PlocMPSoCHandler::handleActionCommandFailure: Failed to shutdown MPSoC"
<< std::endl;
powerState = PowerState::OFF;
break;
}
default:
break;
}
powerState = PowerState::SUPV_FAILED;
return;
}
@ -1451,7 +1512,7 @@ LocalPoolDataSetBase* PlocMpsocHandler::getDataSetHandle(sid_t sid) {
bool PlocMpsocHandler::dontCheckQueue() {
// The TC and TMs need to be handled strictly sequentially, so while a command is pending,
// more specifically while replies are still expected, do not check the queue.s
// more specifically while replies are still expected, do not check the queue.
return commandIsPending;
}
@ -1466,3 +1527,33 @@ void PlocMpsocHandler::cmdDoneHandler(bool success, ReturnValue_t result) {
}
disableAllReplies();
}
ReturnValue_t PlocMpsocHandler::checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode,
uint32_t* msToReachTheMode) {
if (commandedMode != MODE_OFF) {
PoolReadGuard pg(&enablePl);
if (pg.getReadResult() == returnvalue::OK) {
if (enablePl.plUseAllowed.isValid() and not enablePl.plUseAllowed.value) {
return NON_OP_STATE_OF_CHARGE;
}
}
}
return DeviceHandlerBase::checkModeCommand(commandedMode, commandedSubmode, msToReachTheMode);
}
ReturnValue_t PlocMpsocHandler::getParameter(uint8_t domainId, uint8_t uniqueId,
ParameterWrapper* parameterWrapper,
const ParameterWrapper* newValues,
uint16_t startAtIndex) {
if (uniqueId == mpsoc::ParamId::SKIP_SUPV_ON_COMMANDING) {
uint8_t value = 0;
newValues->getElement(&value);
if (value > 1) {
return HasParametersIF::INVALID_VALUE;
}
parameterWrapper->set(skipSupvCommandingToOn);
return returnvalue::OK;
}
return DeviceHandlerBase::getParameter(domainId, uniqueId, parameterWrapper, newValues,
startAtIndex);
}

View File

@ -1,21 +1,20 @@
#ifndef BSP_Q7S_DEVICES_PLOC_PLOCMPSOCHANDLER_H_
#define BSP_Q7S_DEVICES_PLOC_PLOCMPSOCHANDLER_H_
#include <linux/payload/PlocMpsocSpecialComHelper.h>
#include <linux/payload/mpsocRetvals.h>
#include <linux/payload/PlocMpsocSpecialComHelperLegacy.h>
#include <linux/payload/plocMpsocHelpers.h>
#include <linux/payload/plocSupvDefs.h>
#include <string>
#include <mission/controller/controllerdefinitions/PowerCtrlDefinitions.h>
#include "fsfw/action/CommandActionHelper.h"
#include "fsfw/action/CommandsActionsIF.h"
#include "fsfw/devicehandlers/DeviceHandlerBase.h"
#include "fsfw/ipc/QueueFactory.h"
#include "fsfw/tmtcservices/SourceSequenceCounter.h"
#include "fsfw_hal/linux/gpio/Gpio.h"
#include "fsfw_hal/linux/serial/SerialComIF.h"
static constexpr bool DEBUG_MPSOC_COMMUNICATION = true;
/**
* @brief This is the device handler for the MPSoC of the payload computer.
*
@ -45,7 +44,7 @@ class PlocMpsocHandler : public DeviceHandlerBase, public CommandsActionsIF {
* @param supervisorHandler Object ID of the supervisor handler
*/
PlocMpsocHandler(object_id_t objectId, object_id_t uartComIFid, CookieIF* comCookie,
PlocMpsocSpecialComHelper* plocMPSoCHelper, Gpio uartIsolatorSwitch,
PlocMpsocSpecialComHelperLegacy* plocMPSoCHelper, Gpio uartIsolatorSwitch,
object_id_t supervisorHandler);
virtual ~PlocMpsocHandler();
virtual ReturnValue_t initialize() override;
@ -103,11 +102,17 @@ class PlocMpsocHandler : public DeviceHandlerBase, public CommandsActionsIF {
//! [EXPORT] : [COMMENT] Supervisor fails to shutdown MPSoC. Requires to power off the PLOC and
//! thus also to shutdown the supervisor.
static const Event MPSOC_SHUTDOWN_FAILED = MAKE_EVENT(6, severity::HIGH);
//! [EXPORT] : [COMMENT] SUPV not on for boot or shutdown process. P1: 0 for OFF transition, 1 for
//! ON transition.
static constexpr Event SUPV_NOT_ON = event::makeEvent(SUBSYSTEM_ID, 7, severity::LOW);
static constexpr Event SUPV_REPLY_TIMEOUT = event::makeEvent(SUBSYSTEM_ID, 8, severity::LOW);
static const uint16_t APID_MASK = 0x7FF;
static const uint16_t PACKET_SEQUENCE_COUNT_MASK = 0x3FFF;
mpsoc::HkReport hkReport;
Countdown mpsocBootTransitionCd = Countdown(6500);
Countdown supvTransitionCd = Countdown(3000);
MessageQueueIF* eventQueue = nullptr;
MessageQueueIF* commandActionHelperQueue = nullptr;
@ -162,7 +167,7 @@ class PlocMpsocHandler : public DeviceHandlerBase, public CommandsActionsIF {
SerialComIF* uartComIf = nullptr;
PlocMpsocSpecialComHelper* specialComHelper = nullptr;
PlocMpsocSpecialComHelperLegacy* specialComHelper = nullptr;
Gpio uartIsolatorSwitch;
object_id_t supervisorHandler = 0;
CommandActionHelper commandActionHelper;
@ -177,7 +182,7 @@ class PlocMpsocHandler : public DeviceHandlerBase, public CommandsActionsIF {
};
TmMemReadReport tmMemReadReport;
Countdown cmdCountdown = Countdown(10000);
Countdown cmdCountdown = Countdown(15000);
struct TelemetryBuffer {
uint16_t length = 0;
@ -186,12 +191,13 @@ class PlocMpsocHandler : public DeviceHandlerBase, public CommandsActionsIF {
size_t foundPacketLen = 0;
TelemetryBuffer tmBuffer;
uint32_t waitCycles = 0;
enum class StartupState { IDLE, HW_INIT, WAIT_CYCLES, DONE } startupState = StartupState::IDLE;
enum class PowerState { OFF, BOOTING, SHUTDOWN, ON };
enum class StartupState { IDLE, HW_INIT, DONE } startupState = StartupState::IDLE;
enum class PowerState { IDLE, PENDING_STARTUP, PENDING_SHUTDOWN, SUPV_FAILED, DONE };
PowerState powerState = PowerState::OFF;
PowerState powerState = PowerState::IDLE;
uint8_t skipSupvCommandingToOn = false;
/**
* @brief Handles events received from the PLOC MPSoC helper
@ -299,8 +305,18 @@ class PlocMpsocHandler : public DeviceHandlerBase, public CommandsActionsIF {
ReturnValue_t prepareTcModeReplay();
void cmdDoneHandler(bool success, ReturnValue_t result);
bool handleHwStartup();
bool handleHwShutdown();
void stopSpecialComHelper();
void handleActionCommandFailure(ActionId_t actionId);
pwrctrl::EnablePl enablePl = pwrctrl::EnablePl(objects::POWER_CONTROLLER);
ReturnValue_t checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode,
uint32_t* msToReachTheMode) override;
ReturnValue_t getParameter(uint8_t domainId, uint8_t uniqueId, ParameterWrapper* parameterWrapper,
const ParameterWrapper* newValues, uint16_t startAtIndex) override;
};
#endif /* BSP_Q7S_DEVICES_PLOC_PLOCMPSOCHANDLER_H_ */

View File

@ -0,0 +1,545 @@
#include <fsfw/globalfunctions/arrayprinter.h>
#include <fsfw/tasks/TaskFactory.h>
#include <linux/payload/PlocMpsocSpecialComHelperLegacy.h>
#include <unistd.h>
#include <filesystem>
#include <fstream>
#ifdef XIPHOS_Q7S
#include "bsp_q7s/fs/FilesystemHelper.h"
#endif
#include "mission/utility/Timestamp.h"
using namespace ploc;
PlocMpsocSpecialComHelperLegacy::PlocMpsocSpecialComHelperLegacy(object_id_t objectId)
: SystemObject(objectId) {
spParams.buf = commandBuffer;
spParams.maxSize = sizeof(commandBuffer);
}
PlocMpsocSpecialComHelperLegacy::~PlocMpsocSpecialComHelperLegacy() {}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::initialize() {
#ifdef XIPHOS_Q7S
sdcMan = SdCardManager::instance();
if (sdcMan == nullptr) {
sif::warning << "PlocMPSoCHelper::initialize: Invalid SD Card Manager" << std::endl;
return returnvalue::FAILED;
}
#endif
return returnvalue::OK;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::performOperation(uint8_t operationCode) {
ReturnValue_t result = returnvalue::OK;
semaphore.acquire();
while (true) {
#if OBSW_THREAD_TRACING == 1
trace::threadTrace(opCounter, "PLOC MPSOC Helper");
#endif
switch (internalState) {
case InternalState::IDLE: {
semaphore.acquire();
break;
}
case InternalState::FLASH_WRITE: {
result = performFlashWrite();
if (result == returnvalue::OK) {
triggerEvent(MPSOC_FLASH_WRITE_SUCCESSFUL, sequenceCount->get());
} else {
triggerEvent(MPSOC_FLASH_WRITE_FAILED, sequenceCount->get());
}
internalState = InternalState::IDLE;
break;
}
case InternalState::FLASH_READ: {
result = performFlashRead();
if (result == returnvalue::OK) {
triggerEvent(MPSOC_FLASH_READ_SUCCESSFUL, sequenceCount->get());
} else {
triggerEvent(MPSOC_FLASH_READ_FAILED, sequenceCount->get());
}
internalState = InternalState::IDLE;
break;
}
default:
sif::debug << "PlocMPSoCHelper::performOperation: Invalid state" << std::endl;
break;
}
}
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::setComIF(
DeviceCommunicationIF* communicationInterface_) {
uartComIF = dynamic_cast<SerialComIF*>(communicationInterface_);
if (uartComIF == nullptr) {
sif::warning << "PlocMPSoCHelper::initialize: Invalid uart com if" << std::endl;
return returnvalue::FAILED;
}
return returnvalue::OK;
}
void PlocMpsocSpecialComHelperLegacy::setComCookie(CookieIF* comCookie_) { comCookie = comCookie_; }
void PlocMpsocSpecialComHelperLegacy::setSequenceCount(SourceSequenceCounter* sequenceCount_) {
sequenceCount = sequenceCount_;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::startFlashWrite(std::string obcFile,
std::string mpsocFile) {
if (internalState != InternalState::IDLE) {
return returnvalue::FAILED;
}
ReturnValue_t result = startFlashReadOrWriteBase(std::move(obcFile), std::move(mpsocFile));
if (result != returnvalue::OK) {
return result;
}
internalState = InternalState::FLASH_WRITE;
return semaphore.release();
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::startFlashRead(std::string obcFile,
std::string mpsocFile,
size_t readFileSize) {
if (internalState != InternalState::IDLE) {
return returnvalue::FAILED;
}
ReturnValue_t result = startFlashReadOrWriteBase(std::move(obcFile), std::move(mpsocFile));
if (result != returnvalue::OK) {
return result;
}
flashReadAndWrite.totalReadSize = readFileSize;
internalState = InternalState::FLASH_READ;
return semaphore.release();
}
void PlocMpsocSpecialComHelperLegacy::resetHelper() {
spParams.buf = commandBuffer;
terminate = false;
uartComIF->flushUartRxBuffer(comCookie);
}
void PlocMpsocSpecialComHelperLegacy::stopProcess() { terminate = true; }
ReturnValue_t PlocMpsocSpecialComHelperLegacy::performFlashWrite() {
ReturnValue_t result = returnvalue::OK;
std::ifstream file(flashReadAndWrite.obcFile, std::ifstream::binary);
if (file.bad()) {
return returnvalue::FAILED;
}
result = flashfopen(mpsoc::FileAccessModes::WRITE | mpsoc::FileAccessModes::OPEN_ALWAYS);
if (result != returnvalue::OK) {
return result;
}
// Set position of next character to end of file input stream
file.seekg(0, file.end);
// tellg returns position of character in input stream
size_t remainingSize = file.tellg();
size_t dataLength = 0;
size_t bytesRead = 0;
while (remainingSize > 0) {
if (terminate) {
return returnvalue::OK;
}
// The minus 4 is necessary for unknown reasons. Maybe some bug in the ILH software?
if (remainingSize > mpsoc::MAX_FLASH_WRITE_DATA_SIZE - 4) {
dataLength = mpsoc::MAX_FLASH_WRITE_DATA_SIZE - 4;
} else {
dataLength = remainingSize;
}
if (file.bad() or not file.is_open()) {
return FILE_WRITE_ERROR;
}
file.seekg(bytesRead, file.beg);
file.read(reinterpret_cast<char*>(fileBuf.data()), dataLength);
bytesRead += dataLength;
remainingSize -= dataLength;
mpsoc::TcFlashWrite tc(spParams, *sequenceCount);
result = tc.setPayload(fileBuf.data(), dataLength);
if (result != returnvalue::OK) {
return result;
}
result = tc.finishPacket();
if (result != returnvalue::OK) {
return result;
}
(*sequenceCount)++;
result = handlePacketTransmissionNoReply(tc);
if (result != returnvalue::OK) {
return result;
}
}
result = flashfclose();
if (result != returnvalue::OK) {
return result;
}
return result;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::performFlashRead() {
std::error_code e;
std::ofstream ofile(flashReadAndWrite.obcFile, std::ios::trunc | std::ios::binary);
if (ofile.bad()) {
return returnvalue::FAILED;
}
ReturnValue_t result = flashfopen(mpsoc::FileAccessModes::READ);
if (result != returnvalue::OK) {
std::filesystem::remove(flashReadAndWrite.obcFile, e);
return result;
}
size_t readSoFar = 0;
size_t nextReadSize = mpsoc::MAX_FLASH_READ_DATA_SIZE;
while (readSoFar < flashReadAndWrite.totalReadSize) {
if (terminate) {
std::filesystem::remove(flashReadAndWrite.obcFile, e);
return returnvalue::OK;
}
nextReadSize = mpsoc::MAX_FLASH_READ_DATA_SIZE;
if (flashReadAndWrite.totalReadSize - readSoFar < mpsoc::MAX_FLASH_READ_DATA_SIZE) {
nextReadSize = flashReadAndWrite.totalReadSize - readSoFar;
}
if (ofile.bad() or not ofile.is_open()) {
std::filesystem::remove(flashReadAndWrite.obcFile, e);
return FILE_READ_ERROR;
}
mpsoc::TcFlashRead flashReadRequest(spParams, *sequenceCount);
result = flashReadRequest.setPayload(nextReadSize);
if (result != returnvalue::OK) {
std::filesystem::remove(flashReadAndWrite.obcFile, e);
return result;
}
result = flashReadRequest.finishPacket();
if (result != returnvalue::OK) {
std::filesystem::remove(flashReadAndWrite.obcFile, e);
return result;
}
(*sequenceCount)++;
result = handlePacketTransmissionFlashRead(flashReadRequest, ofile, nextReadSize);
if (result != returnvalue::OK) {
std::filesystem::remove(flashReadAndWrite.obcFile, e);
return result;
}
readSoFar += nextReadSize;
}
result = flashfclose();
if (result != returnvalue::OK) {
return result;
}
return result;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::flashfopen(uint8_t mode) {
spParams.buf = commandBuffer;
mpsoc::FlashFopen flashFopen(spParams, *sequenceCount);
ReturnValue_t result = flashFopen.setPayload(flashReadAndWrite.mpsocFile, mode);
if (result != returnvalue::OK) {
return result;
}
result = flashFopen.finishPacket();
if (result != returnvalue::OK) {
return result;
}
(*sequenceCount)++;
result = handlePacketTransmissionNoReply(flashFopen);
if (result != returnvalue::OK) {
return result;
}
return returnvalue::OK;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::flashfclose() {
spParams.buf = commandBuffer;
mpsoc::FlashFclose flashFclose(spParams, *sequenceCount);
ReturnValue_t result = flashFclose.finishPacket();
if (result != returnvalue::OK) {
return result;
}
(*sequenceCount)++;
result = handlePacketTransmissionNoReply(flashFclose);
if (result != returnvalue::OK) {
return result;
}
return result;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::handlePacketTransmissionFlashRead(
mpsoc::TcFlashRead& tc, std::ofstream& ofile, size_t expectedReadLen) {
ReturnValue_t result = sendCommand(tc);
if (result != returnvalue::OK) {
return result;
}
result = handleAck();
if (result != returnvalue::OK) {
return result;
}
result = handleTmReception();
if (result != returnvalue::OK) {
return result;
}
// We have the nominal case where the flash read report appears first, or the case where we
// get an EXE failure immediately.
if (spReader.getApid() == mpsoc::apid::TM_FLASH_READ_REPORT) {
result = handleFlashReadReply(ofile, expectedReadLen);
if (result != returnvalue::OK) {
return result;
}
return handleExe();
} else if (spReader.getApid() == mpsoc::apid::EXE_FAILURE) {
handleExeFailure();
} else {
triggerEvent(MPSOC_EXE_INVALID_APID, spReader.getApid(), static_cast<uint32_t>(internalState));
sif::warning << "PLOC MPSoC: Expected execution report "
<< "but received space packet with apid " << std::hex << spReader.getApid()
<< std::endl;
}
return returnvalue::FAILED;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::handlePacketTransmissionNoReply(ploc::SpTcBase& tc) {
ReturnValue_t result = sendCommand(tc);
if (result != returnvalue::OK) {
return result;
}
result = handleAck();
if (result != returnvalue::OK) {
return result;
}
return handleExe();
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::sendCommand(ploc::SpTcBase& tc) {
ReturnValue_t result = returnvalue::OK;
result = uartComIF->sendMessage(comCookie, tc.getFullPacket(), tc.getFullPacketLen());
if (result != returnvalue::OK) {
sif::warning << "PlocMPSoCHelper::sendCommand: Failed to send command" << std::endl;
triggerEvent(MPSOC_SENDING_COMMAND_FAILED, result, static_cast<uint32_t>(internalState));
return result;
}
return result;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::handleAck() {
ReturnValue_t result = returnvalue::OK;
result = handleTmReception();
if (result != returnvalue::OK) {
return result;
}
result = checkReceivedTm();
if (result != returnvalue::OK) {
return result;
}
uint16_t apid = spReader.getApid();
if (apid != mpsoc::apid::ACK_SUCCESS) {
handleAckApidFailure(spReader);
return returnvalue::FAILED;
}
return returnvalue::OK;
}
void PlocMpsocSpecialComHelperLegacy::handleAckApidFailure(const ploc::SpTmReader& reader) {
uint16_t apid = reader.getApid();
if (apid == mpsoc::apid::ACK_FAILURE) {
uint16_t status = mpsoc::getStatusFromRawData(reader.getFullData());
sif::warning << "PLOC MPSoC ACK Failure: " << mpsoc::getStatusString(status) << std::endl;
triggerEvent(MPSOC_ACK_FAILURE_REPORT, static_cast<uint32_t>(internalState), status);
} else {
triggerEvent(MPSOC_ACK_INVALID_APID, apid, static_cast<uint32_t>(internalState));
sif::warning << "PlocMPSoCHelper::handleAckApidFailure: Expected acknowledgement report "
<< "but received space packet with apid " << std::hex << apid << std::endl;
}
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::handleExe() {
ReturnValue_t result = returnvalue::OK;
result = handleTmReception();
if (result != returnvalue::OK) {
return result;
}
result = checkReceivedTm();
if (result != returnvalue::OK) {
return result;
}
uint16_t apid = spReader.getApid();
if (apid == mpsoc::apid::EXE_FAILURE) {
handleExeFailure();
return returnvalue::FAILED;
} else if (apid != mpsoc::apid::EXE_SUCCESS) {
triggerEvent(MPSOC_EXE_INVALID_APID, apid, static_cast<uint32_t>(internalState));
sif::warning << "PLOC MPSoC: Expected execution report "
<< "but received space packet with apid " << std::hex << apid << std::endl;
}
return returnvalue::OK;
}
void PlocMpsocSpecialComHelperLegacy::handleExeFailure() {
uint16_t status = mpsoc::getStatusFromRawData(spReader.getFullData());
sif::warning << "PLOC MPSoC EXE Failure: " << mpsoc::getStatusString(status) << std::endl;
triggerEvent(MPSOC_EXE_FAILURE_REPORT, static_cast<uint32_t>(internalState));
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::handleTmReception() {
ReturnValue_t result = returnvalue::OK;
tmCountdown.resetTimer();
size_t readBytes = 0;
size_t currentBytes = 0;
uint32_t usleepDelay = 5;
size_t fullPacketLen = 0;
while (true) {
if (tmCountdown.hasTimedOut()) {
triggerEvent(MPSOC_READ_TIMEOUT, tmCountdown.getTimeoutMs());
return returnvalue::FAILED;
}
result = receive(tmBuf.data() + readBytes, 6, &currentBytes);
if (result != returnvalue::OK) {
return result;
}
spReader.setReadOnlyData(tmBuf.data(), tmBuf.size());
fullPacketLen = spReader.getFullPacketLen();
readBytes += currentBytes;
if (readBytes == 6) {
break;
}
usleep(usleepDelay);
if (usleepDelay < 200000) {
usleepDelay *= 4;
}
}
while (true) {
if (tmCountdown.hasTimedOut()) {
triggerEvent(MPSOC_READ_TIMEOUT, tmCountdown.getTimeoutMs());
return returnvalue::FAILED;
}
result = receive(tmBuf.data() + readBytes, fullPacketLen - readBytes, &currentBytes);
readBytes += currentBytes;
if (fullPacketLen == readBytes) {
break;
}
usleep(usleepDelay);
if (usleepDelay < 200000) {
usleepDelay *= 4;
}
}
// arrayprinter::print(tmBuf.data(), readBytes);
return result;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::handleFlashReadReply(std::ofstream& ofile,
size_t expectedReadLen) {
ReturnValue_t result = checkReceivedTm();
if (result != returnvalue::OK) {
return result;
}
uint16_t apid = spReader.getApid();
if (apid != mpsoc::apid::TM_FLASH_READ_REPORT) {
triggerEvent(MPSOC_FLASH_READ_PACKET_ERROR, FlashReadErrorType::FLASH_READ_APID_ERROR);
sif::warning << "PLOC MPSoC Flash Read: Unexpected APID" << std::endl;
return result;
}
const uint8_t* packetData = spReader.getPacketData();
size_t deserDummy = spReader.getPacketDataLen() - mpsoc::CRC_SIZE;
uint32_t receivedReadLen = 0;
// I think this is buggy, weird stuff in the short name field.
// std::string receivedShortName = std::string(reinterpret_cast<const char*>(packetData), 12);
// if (receivedShortName != flashReadAndWrite.mpsocFile.substr(0, 11)) {
// sif::warning << "PLOC MPSoC Flash Read: Missmatch between request file name and "
// "received file name"
// << std::endl;
// triggerEvent(MPSOC_FLASH_READ_PACKET_ERROR, FlashReadErrorType::FLASH_READ_FILENAME_ERROR);
// return returnvalue::FAILED;
// }
packetData += 12;
result = SerializeAdapter::deSerialize(&receivedReadLen, &packetData, &deserDummy,
SerializeIF::Endianness::NETWORK);
if (result != returnvalue::OK) {
return result;
}
if (receivedReadLen != expectedReadLen) {
sif::warning << "PLOC MPSoC Flash Read: Missmatch between request read length and "
"received read length"
<< std::endl;
triggerEvent(MPSOC_FLASH_READ_PACKET_ERROR, FlashReadErrorType::FLASH_READ_READLEN_ERROR);
return returnvalue::FAILED;
}
ofile.write(reinterpret_cast<const char*>(packetData), receivedReadLen);
return returnvalue::OK;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::fileCheck(std::string obcFile) {
#ifdef XIPHOS_Q7S
ReturnValue_t result = FilesystemHelper::checkPath(obcFile);
if (result != returnvalue::OK) {
return result;
}
#elif defined(TE0720_1CFA)
if (not std::filesystem::exists(obcFile)) {
sif::warning << "PlocMPSoCHelper::startFlashWrite: File " << obcFile << "does not exist"
<< std::endl;
return returnvalue::FAILED;
}
#endif
return returnvalue::OK;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::startFlashReadOrWriteBase(std::string obcFile,
std::string mpsocFile) {
ReturnValue_t result = fileCheck(obcFile);
if (result != returnvalue::OK) {
return result;
}
flashReadAndWrite.obcFile = std::move(obcFile);
flashReadAndWrite.mpsocFile = std::move(mpsocFile);
resetHelper();
return returnvalue::OK;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::checkReceivedTm() {
ReturnValue_t result = spReader.checkSize();
if (result != returnvalue::OK) {
sif::error << "PLOC MPSoC: Size check on received TM failed" << std::endl;
triggerEvent(MPSOC_TM_SIZE_ERROR);
return result;
}
result = spReader.checkCrc();
if (result != returnvalue::OK) {
sif::warning << "PLOC MPSoC: CRC check failed" << std::endl;
triggerEvent(MPSOC_TM_CRC_MISSMATCH, *sequenceCount);
return result;
}
uint16_t recvSeqCnt = spReader.getSequenceCount();
if (recvSeqCnt != *sequenceCount) {
triggerEvent(MPSOC_HELPER_SEQ_CNT_MISMATCH, *sequenceCount, recvSeqCnt);
*sequenceCount = recvSeqCnt;
}
// This sequence count ping pong does not make any sense but it is how the MPSoC expects it.
(*sequenceCount)++;
return returnvalue::OK;
}
ReturnValue_t PlocMpsocSpecialComHelperLegacy::receive(uint8_t* data, size_t requestBytes,
size_t* readBytes) {
ReturnValue_t result = returnvalue::OK;
uint8_t* buffer = nullptr;
result = uartComIF->requestReceiveMessage(comCookie, requestBytes);
if (result != returnvalue::OK) {
sif::warning << "PlocMPSoCHelper::receive: Failed to request reply" << std::endl;
triggerEvent(MPSOC_HELPER_REQUESTING_REPLY_FAILED, result,
static_cast<uint32_t>(static_cast<uint32_t>(internalState)));
return returnvalue::FAILED;
}
result = uartComIF->readReceivedMessage(comCookie, &buffer, readBytes);
if (result != returnvalue::OK) {
sif::warning << "PlocMPSoCHelper::receive: Failed to read received message" << std::endl;
triggerEvent(MPSOC_HELPER_READING_REPLY_FAILED, result, static_cast<uint32_t>(internalState));
return returnvalue::FAILED;
}
if (*readBytes > 0) {
std::memcpy(data, buffer, *readBytes);
}
return result;
}

View File

@ -0,0 +1,200 @@
#ifndef BSP_Q7S_DEVICES_PLOCMPSOCHELPER_H_
#define BSP_Q7S_DEVICES_PLOCMPSOCHELPER_H_
#include <linux/payload/plocMpsocHelpers.h>
#include <mission/utility/trace.h>
#include <string>
#include "OBSWConfig.h"
#include "fsfw/devicehandlers/CookieIF.h"
#include "fsfw/objectmanager/SystemObject.h"
#include "fsfw/osal/linux/BinarySemaphore.h"
#include "fsfw/returnvalues/returnvalue.h"
#include "fsfw/tasks/ExecutableObjectIF.h"
#include "fsfw/tmtcservices/SourceSequenceCounter.h"
#include "fsfw_hal/linux/serial/SerialComIF.h"
#ifdef XIPHOS_Q7S
#include "bsp_q7s/fs/SdCardManager.h"
#endif
/**
* @brief Helper class for MPSoC of PLOC intended to accelerate large data transfers between
* MPSoC and OBC.
* @author J. Meier
*/
class PlocMpsocSpecialComHelperLegacy : public SystemObject, public ExecutableObjectIF {
public:
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::PLOC_MPSOC_HELPER;
//! [EXPORT] : [COMMENT] Flash write fails
static const Event MPSOC_FLASH_WRITE_FAILED = MAKE_EVENT(0, severity::LOW);
//! [EXPORT] : [COMMENT] Flash write successful
static const Event MPSOC_FLASH_WRITE_SUCCESSFUL = MAKE_EVENT(1, severity::INFO);
//! [EXPORT] : [COMMENT] Communication interface returned failure when trying to send the command
//! to the MPSoC
//! P1: Return value returned by the communication interface sendMessage function
//! P2: Internal state of MPSoC helper
static const Event MPSOC_SENDING_COMMAND_FAILED = MAKE_EVENT(2, severity::LOW);
//! [EXPORT] : [COMMENT] Request receive message of communication interface failed
//! P1: Return value returned by the communication interface requestReceiveMessage function
//! P2: Internal state of MPSoC helper
static const Event MPSOC_HELPER_REQUESTING_REPLY_FAILED = MAKE_EVENT(3, severity::LOW);
//! [EXPORT] : [COMMENT] Reading receive message of communication interface failed
//! P1: Return value returned by the communication interface readingReceivedMessage function
//! P2: Internal state of MPSoC helper
static const Event MPSOC_HELPER_READING_REPLY_FAILED = MAKE_EVENT(4, severity::LOW);
//! [EXPORT] : [COMMENT] Did not receive acknowledgment report
//! P1: Number of bytes missing
//! P2: Internal state of MPSoC helper
static const Event MPSOC_MISSING_ACK = MAKE_EVENT(5, severity::LOW);
//! [EXPORT] : [COMMENT] Did not receive execution report
//! P1: Number of bytes missing
//! P2: Internal state of MPSoC helper
static const Event MPSOC_MISSING_EXE = MAKE_EVENT(6, severity::LOW);
//! [EXPORT] : [COMMENT] Received acknowledgment failure report
//! P1: Internal state of MPSoC
static const Event MPSOC_ACK_FAILURE_REPORT = MAKE_EVENT(7, severity::LOW);
//! [EXPORT] : [COMMENT] Received execution failure report
//! P1: Internal state of MPSoC
static const Event MPSOC_EXE_FAILURE_REPORT = MAKE_EVENT(8, severity::LOW);
//! [EXPORT] : [COMMENT] Expected acknowledgment report but received space packet with other apid
//! P1: Apid of received space packet
//! P2: Internal state of MPSoC
static const Event MPSOC_ACK_INVALID_APID = MAKE_EVENT(9, severity::LOW);
//! [EXPORT] : [COMMENT] Expected execution report but received space packet with other apid
//! P1: Apid of received space packet
//! P2: Internal state of MPSoC
static const Event MPSOC_EXE_INVALID_APID = MAKE_EVENT(10, severity::LOW);
//! [EXPORT] : [COMMENT] Received sequence count does not match expected sequence count
//! P1: Expected sequence count
//! P2: Received sequence count
static const Event MPSOC_HELPER_SEQ_CNT_MISMATCH = MAKE_EVENT(11, severity::LOW);
static const Event MPSOC_TM_SIZE_ERROR = MAKE_EVENT(12, severity::LOW);
static const Event MPSOC_TM_CRC_MISSMATCH = MAKE_EVENT(13, severity::LOW);
static const Event MPSOC_FLASH_READ_PACKET_ERROR = MAKE_EVENT(14, severity::LOW);
static const Event MPSOC_FLASH_READ_FAILED = MAKE_EVENT(15, severity::LOW);
static const Event MPSOC_FLASH_READ_SUCCESSFUL = MAKE_EVENT(16, severity::INFO);
static const Event MPSOC_READ_TIMEOUT = MAKE_EVENT(17, severity::LOW);
enum FlashReadErrorType : uint32_t {
FLASH_READ_APID_ERROR = 0,
FLASH_READ_FILENAME_ERROR = 1,
FLASH_READ_READLEN_ERROR = 2
};
PlocMpsocSpecialComHelperLegacy(object_id_t objectId);
virtual ~PlocMpsocSpecialComHelperLegacy();
ReturnValue_t initialize() override;
ReturnValue_t performOperation(uint8_t operationCode = 0) override;
ReturnValue_t setComIF(DeviceCommunicationIF* communicationInterface_);
void setComCookie(CookieIF* comCookie_);
/**
* @brief Starts flash write sequence
*
* @param obcFile File where to read from the data
* @param mpsocFile The file of the MPSoC where should be written to
*
* @return returnvalue::OK if successful, otherwise error return value
*/
ReturnValue_t startFlashWrite(std::string obcFile, std::string mpsocFile);
/**
*
* @param obcFile Full target file name on OBC
* @param mpsocFile The file on the MPSoC which should be copied ot the OBC
* @param readFileSize The size of the file on the MPSoC.
* @return
*/
ReturnValue_t startFlashRead(std::string obcFile, std::string mpsocFile, size_t readFileSize);
/**
* @brief Can be used to interrupt a running data transfer.
*/
void stopProcess();
/**
* @brief Sets the sequence count object responsible for the sequence count handling
*/
void setSequenceCount(SourceSequenceCounter* sequenceCount_);
private:
static const uint8_t INTERFACE_ID = CLASS_ID::PLOC_MPSOC_HELPER;
//! [EXPORT] : [COMMENT] File error occured for file transfers from OBC to the MPSoC.
static const ReturnValue_t FILE_WRITE_ERROR = MAKE_RETURN_CODE(0xA0);
//! [EXPORT] : [COMMENT] File error occured for file transfers from MPSoC to OBC.
static const ReturnValue_t FILE_READ_ERROR = MAKE_RETURN_CODE(0xA1);
// Maximum number of times the communication interface retries polling data from the reply
// buffer
static const int RETRIES = 10000;
struct FlashInfo {
std::string obcFile;
std::string mpsocFile;
};
struct FlashRead : public FlashInfo {
size_t totalReadSize = 0;
};
struct FlashRead flashReadAndWrite;
#if OBSW_THREAD_TRACING == 1
uint32_t opCounter = 0;
#endif
enum class InternalState { IDLE, FLASH_WRITE, FLASH_READ };
InternalState internalState = InternalState::IDLE;
BinarySemaphore semaphore;
#ifdef XIPHOS_Q7S
SdCardManager* sdcMan = nullptr;
#endif
uint8_t commandBuffer[mpsoc::MAX_COMMAND_SIZE];
SpacePacketCreator creator;
ploc::SpTcParams spParams = ploc::SpTcParams(creator);
Countdown tmCountdown = Countdown(5000);
std::array<uint8_t, mpsoc::SP_MAX_DATA_SIZE> fileBuf{};
std::array<uint8_t, mpsoc::MAX_REPLY_SIZE> tmBuf{};
bool terminate = false;
/**
* Communication interface of MPSoC responsible for low level access. Must be set by the
* MPSoC Handler.
*/
SerialComIF* uartComIF = nullptr;
// Communication cookie. Must be set by the MPSoC Handler
CookieIF* comCookie = nullptr;
// Sequence count, must be set by Ploc MPSoC Handler
SourceSequenceCounter* sequenceCount = nullptr;
ploc::SpTmReader spReader;
void resetHelper();
ReturnValue_t performFlashWrite();
ReturnValue_t performFlashRead();
ReturnValue_t flashfopen(uint8_t accessMode);
ReturnValue_t flashfclose();
ReturnValue_t handlePacketTransmissionNoReply(ploc::SpTcBase& tc);
ReturnValue_t handlePacketTransmissionFlashRead(mpsoc::TcFlashRead& tc, std::ofstream& ofile,
size_t expectedReadLen);
ReturnValue_t handleFlashReadReply(std::ofstream& ofile, size_t expectedReadLen);
ReturnValue_t sendCommand(ploc::SpTcBase& tc);
ReturnValue_t receive(uint8_t* data, size_t requestBytes, size_t* readBytes);
ReturnValue_t handleAck();
ReturnValue_t handleExe();
ReturnValue_t startFlashReadOrWriteBase(std::string obcFile, std::string mpsocFile);
ReturnValue_t fileCheck(std::string obcFile);
void handleAckApidFailure(const ploc::SpTmReader& reader);
void handleExeFailure();
ReturnValue_t handleTmReception();
ReturnValue_t checkReceivedTm();
};
#endif /* BSP_Q7S_DEVICES_PLOCMPSOCHELPER_H_ */

View File

@ -27,7 +27,7 @@ PlocSupervisorHandler::PlocSupervisorHandler(object_id_t objectId, CookieIF* com
hkset(this),
bootStatusReport(this),
latchupStatusReport(this),
loggingReport(this),
countersReport(this),
adcReport(this),
powerSwitch(powerSwitch),
uartManager(supvHelper) {
@ -59,6 +59,19 @@ ReturnValue_t PlocSupervisorHandler::initialize() {
}
void PlocSupervisorHandler::performOperationHook() {
if (normalCommandIsPending and normalCmdCd.hasTimedOut()) {
// Event, FDIR, printout? Leads to spam though and normally should not happen..
normalCommandIsPending = false;
}
if (commandIsPending and cmdCd.hasTimedOut()) {
// Event, FDIR, printout? Leads to spam though and normally should not happen..
commandIsPending = false;
// if(iter->second.sendReplyTo != NO_COMMANDER) {
// actionHelper.finish(true, iter->second.sendReplyTo, iter->first, returnvalue::OK);
// }
disableAllReplies();
}
EventMessage event;
for (ReturnValue_t result = eventQueue->receiveMessage(&event); result == returnvalue::OK;
result = eventQueue->receiveMessage(&event)) {
@ -155,21 +168,33 @@ void PlocSupervisorHandler::doStartUp() {
startupState = StartupState::ON;
}
if (startupState == StartupState::ON) {
hkset.setReportingEnabled(true);
supv::SUPV_ON = true;
setMode(_MODE_TO_ON);
}
}
void PlocSupervisorHandler::doShutDown() {
setMode(_MODE_POWER_DOWN);
hkset.setReportingEnabled(false);
hkset.setValidity(false, true);
shutdownCmdSent = false;
packetInBuffer = false;
nextReplyId = supv::NONE;
uartManager.stop();
uartIsolatorSwitch.pullLow();
disableAllReplies();
supv::SUPV_ON = false;
startupState = StartupState::OFF;
}
ReturnValue_t PlocSupervisorHandler::buildNormalDeviceCommand(DeviceCommandId_t* id) {
if (not normalCommandIsPending) {
*id = GET_HK_REPORT;
normalCommandIsPending = true;
normalCmdCd.resetTimer();
return buildCommandFromCommand(*id, nullptr, 0);
}
return NOTHING_TO_SEND;
}
@ -195,11 +220,13 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
break;
}
case START_MPSOC: {
sif::info << "PLOC SUPV: Starting MPSoC" << std::endl;
prepareEmptyCmd(Apid::BOOT_MAN, static_cast<uint8_t>(tc::BootManId::START_MPSOC));
result = returnvalue::OK;
break;
}
case SHUTDOWN_MPSOC: {
sif::info << "PLOC SUPV: Shutting down MPSoC" << std::endl;
prepareEmptyCmd(Apid::BOOT_MAN, static_cast<uint8_t>(tc::BootManId::SHUTDOWN_MPSOC));
result = returnvalue::OK;
break;
@ -210,6 +237,7 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
break;
}
case RESET_MPSOC: {
sif::info << "PLOC SUPV: Resetting MPSoC" << std::endl;
prepareEmptyCmd(Apid::BOOT_MAN, static_cast<uint8_t>(tc::BootManId::RESET_MPSOC));
result = returnvalue::OK;
break;
@ -260,8 +288,7 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
break;
}
case SET_GPIO: {
prepareSetGpioCmd(commandData);
result = returnvalue::OK;
result = prepareSetGpioCmd(commandData, commandDataLen);
break;
}
case FACTORY_RESET: {
@ -269,8 +296,7 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
break;
}
case READ_GPIO: {
prepareReadGpioCmd(commandData);
result = returnvalue::OK;
result = prepareReadGpioCmd(commandData, commandDataLen);
break;
}
case SET_SHUTDOWN_TIMEOUT: {
@ -307,91 +333,25 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
result = prepareWipeMramCmd(commandData);
break;
}
// case ENABLE_NVMS: {
// result = prepareEnableNvmsCommand(commandData);
// break;
// }
// case RESTART_SUPERVISOR: {
// prepareEmptyCmd(APID_RESTART_SUPERVISOR);
// result = returnvalue::OK;
// break;
// }
// Removed command
// case START_MPSOC_QUIET: {
// prepareEmptyCmd(APID_START_MPSOC_QUIET);
// result = returnvalue::OK;
// break;
// }
// case ENABLE_AUTO_TM: {
// EnableAutoTm packet(spParams);
// result = packet.buildPacket();
// if (result != returnvalue::OK) {
// break;
// }
// finishTcPrep(packet.getFullPacketLen());
// break;
// }
// case DISABLE_AUTO_TM: {
// DisableAutoTm packet(spParams);
// result = packet.buildPacket();
// if (result != returnvalue::OK) {
// break;
// }
// finishTcPrep(packet.getFullPacketLen());
// break;
// }
// case LOGGING_REQUEST_COUNTERS: {
// RequestLoggingData packet(spParams);
// result = packet.buildPacket(RequestLoggingData::Sa::REQUEST_COUNTERS);
// if (result != returnvalue::OK) {
// break;
// }
// finishTcPrep(packet.getFullPacketLen());
// break;
// }
// case LOGGING_CLEAR_COUNTERS: {
// RequestLoggingData packet(spParams);
// result = packet.buildPacket(RequestLoggingData::Sa::CLEAR_COUNTERS);
// if (result != returnvalue::OK) {
// break;
// }
// finishTcPrep(packet.getFullPacketLen());
// break;
// }
// case LOGGING_SET_TOPIC: {
// if (commandData == nullptr or commandDataLen == 0) {
// return HasActionsIF::INVALID_PARAMETERS;
// }
// uint8_t tpc = *(commandData);
// RequestLoggingData packet(spParams);
// result = packet.buildPacket(RequestLoggingData::Sa::SET_LOGGING_TOPIC, tpc);
// if (result != returnvalue::OK) {
// break;
// }
// finishTcPrep(packet.getFullPacketLen());
// break;
// }
// I think this is disabled right now according to the TC excel table
// case COPY_ADC_DATA_TO_MRAM: {
// prepareEmptyCmd(APID_COPY_ADC_DATA_TO_MRAM);
// result = returnvalue::OK;
// break;
// }
// case REQUEST_ADC_REPORT: {
// prepareEmptyCmd(APID_REQUEST_ADC_REPORT);
// result = returnvalue::OK;
// break;
// }
// case FIRST_MRAM_DUMP:
// case CONSECUTIVE_MRAM_DUMP:
// result = prepareDumpMramCmd(commandData);
// break;
case REQUEST_ADC_REPORT: {
prepareEmptyCmd(Apid::ADC_MON, static_cast<uint8_t>(tc::AdcMonId::REQUEST_ADC_SAMPLE));
result = returnvalue::OK;
break;
}
case REQUEST_LOGGING_COUNTERS: {
prepareEmptyCmd(Apid::DATA_LOGGER,
static_cast<uint8_t>(tc::DataLoggerServiceId::REQUEST_COUNTERS));
result = returnvalue::OK;
break;
}
default:
sif::debug << "PlocSupervisorHandler::buildCommandFromCommand: Command not implemented"
<< std::endl;
result = DeviceHandlerIF::COMMAND_NOT_IMPLEMENTED;
break;
}
commandIsPending = true;
cmdCd.resetTimer();
return result;
}
@ -423,6 +383,8 @@ void PlocSupervisorHandler::fillCommandAndReplyMap() {
insertInCommandMap(SET_ADC_THRESHOLD);
insertInCommandMap(SET_ADC_WINDOW_AND_STRIDE);
insertInCommandMap(RESET_PL);
insertInCommandMap(REQUEST_ADC_REPORT);
insertInCommandMap(REQUEST_LOGGING_COUNTERS);
// ACK replies, use countdown for them
insertInReplyMap(ACK_REPORT, 0, nullptr, SIZE_ACK_REPORT, false, &acknowledgementReportTimeout);
@ -430,10 +392,10 @@ void PlocSupervisorHandler::fillCommandAndReplyMap() {
insertInReplyMap(MEMORY_CHECK, 5, nullptr, 0, false);
// TM replies
insertInReplyMap(HK_REPORT, 3, &hkset, SIZE_HK_REPORT);
insertInReplyMap(HK_REPORT, 3, &hkset);
insertInReplyMap(BOOT_STATUS_REPORT, 3, &bootStatusReport, SIZE_BOOT_STATUS_REPORT);
insertInReplyMap(LATCHUP_REPORT, 3, &latchupStatusReport, SIZE_LATCHUP_STATUS_REPORT);
insertInReplyMap(LOGGING_REPORT, 3, &loggingReport, SIZE_LOGGING_REPORT);
insertInReplyMap(COUNTERS_REPORT, 3, &countersReport, SIZE_COUNTERS_REPORT);
insertInReplyMap(ADC_REPORT, 3, &adcReport, SIZE_ADC_REPORT);
}
@ -475,13 +437,13 @@ ReturnValue_t PlocSupervisorHandler::enableReplyInReplyMap(DeviceCommandMap::ite
}
break;
}
case LOGGING_REQUEST_COUNTERS: {
case REQUEST_LOGGING_COUNTERS: {
enabledReplies = 3;
result =
DeviceHandlerBase::enableReplyInReplyMap(command, enabledReplies, true, LOGGING_REPORT);
DeviceHandlerBase::enableReplyInReplyMap(command, enabledReplies, true, COUNTERS_REPORT);
if (result != returnvalue::OK) {
sif::debug << "PlocSupervisorHandler::enableReplyInReplyMap: Reply with id "
<< LOGGING_REPORT << " not in replyMap" << std::endl;
<< COUNTERS_REPORT << " not in replyMap" << std::endl;
}
break;
}
@ -537,23 +499,17 @@ ReturnValue_t PlocSupervisorHandler::enableReplyInReplyMap(DeviceCommandMap::ite
case SET_ADC_ENABLED_CHANNELS:
case SET_ADC_WINDOW_AND_STRIDE:
case SET_ADC_THRESHOLD:
// case COPY_ADC_DATA_TO_MRAM:
case RUN_AUTO_EM_TESTS:
case WIPE_MRAM:
case SET_GPIO:
case FACTORY_RESET:
case READ_GPIO:
// case RESTART_SUPERVISOR:
case DISABLE_PERIOIC_HK_TRANSMISSION:
// case START_MPSOC_QUIET:
case SET_SHUTDOWN_TIMEOUT:
case FACTORY_FLASH:
case ENABLE_AUTO_TM:
case DISABLE_AUTO_TM:
// case LOGGING_CLEAR_COUNTERS:
// case LOGGING_SET_TOPIC:
case RESET_PL:
// case ENABLE_NVMS:
enabledReplies = 2;
break;
default:
@ -585,19 +541,12 @@ ReturnValue_t PlocSupervisorHandler::enableReplyInReplyMap(DeviceCommandMap::ite
ReturnValue_t PlocSupervisorHandler::scanForReply(const uint8_t* start, size_t remainingSize,
DeviceCommandId_t* foundId, size_t* foundLen) {
using namespace supv;
// TODO: Is this still required?
// if (nextReplyId == FIRST_MRAM_DUMP) {
// *foundId = FIRST_MRAM_DUMP;
// return parseMramPackets(start, remainingSize, foundLen);
// } else if (nextReplyId == CONSECUTIVE_MRAM_DUMP) {
// *foundId = CONSECUTIVE_MRAM_DUMP;
// return parseMramPackets(start, remainingSize, foundLen);
// }
tmReader.setData(start, remainingSize);
// sif::debug << "PlocSupervisorHandler::scanForReply: Received Packet" << std::endl;
// arrayprinter::print(start, remainingSize);
uint16_t apid = tmReader.getModuleApid();
if (DEBUG_PLOC_SUPV) {
handlePacketPrint();
}
switch (apid) {
case (Apid::TMTC_MAN): {
@ -619,6 +568,9 @@ ReturnValue_t PlocSupervisorHandler::scanForReply(const uint8_t* start, size_t r
}
case (Apid::HK): {
if (tmReader.getServiceId() == static_cast<uint8_t>(supv::tm::HkId::REPORT)) {
normalCommandIsPending = false;
// Yeah apparently this is needed??
disableCommand(GET_HK_REPORT);
*foundLen = tmReader.getFullPacketLen();
*foundId = ReplyId::HK_REPORT;
return OK;
@ -637,6 +589,14 @@ ReturnValue_t PlocSupervisorHandler::scanForReply(const uint8_t* start, size_t r
}
break;
}
case (Apid::ADC_MON): {
if (tmReader.getServiceId() == static_cast<uint8_t>(supv::tm::AdcMonId::ADC_REPORT)) {
*foundLen = tmReader.getFullPacketLen();
*foundId = ReplyId::ADC_REPORT;
return OK;
}
break;
}
case (Apid::MEM_MAN): {
if (tmReader.getServiceId() ==
static_cast<uint8_t>(supv::tm::MemManId::UPDATE_STATUS_REPORT)) {
@ -644,6 +604,15 @@ ReturnValue_t PlocSupervisorHandler::scanForReply(const uint8_t* start, size_t r
*foundId = ReplyId::UPDATE_STATUS_REPORT;
return OK;
}
break;
}
case (Apid::DATA_LOGGER): {
if (tmReader.getServiceId() ==
static_cast<uint8_t>(supv::tm::DataLoggerId::COUNTERS_REPORT)) {
*foundLen = tmReader.getFullPacketLen();
*foundId = ReplyId::COUNTERS_REPORT;
return OK;
}
}
}
handleBadApidServiceCombination(SUPV_UNKNOWN_TM, apid, tmReader.getServiceId());
@ -651,6 +620,58 @@ ReturnValue_t PlocSupervisorHandler::scanForReply(const uint8_t* start, size_t r
return INVALID_DATA;
}
void PlocSupervisorHandler::handlePacketPrint() {
if (tmReader.getModuleApid() == Apid::TMTC_MAN) {
if ((tmReader.getServiceId() == static_cast<uint8_t>(supv::tm::TmtcId::ACK)) or
(tmReader.getServiceId() == static_cast<uint8_t>(supv::tm::TmtcId::NAK))) {
AcknowledgmentReport ack(tmReader);
ReturnValue_t result = ack.parse();
if (result != returnvalue::OK) {
sif::warning << "PlocSupervisorHandler: Parsing ACK failed" << std::endl;
}
if (REDUCE_NORMAL_MODE_PRINTOUT and ack.getRefModuleApid() == (uint8_t)supv::Apid::HK and
ack.getRefServiceId() == (uint8_t)supv::tc::HkId::GET_REPORT) {
return;
}
const char* printStr = "???";
if (tmReader.getServiceId() == static_cast<uint8_t>(supv::tm::TmtcId::ACK)) {
printStr = "ACK";
} else if (tmReader.getServiceId() == static_cast<uint8_t>(supv::tm::TmtcId::NAK)) {
printStr = "NAK";
}
sif::debug << "PlocSupervisorHandler: RECV " << printStr << " for APID Module ID "
<< (int)ack.getRefModuleApid() << " Service ID " << (int)ack.getRefServiceId()
<< " Seq Count " << ack.getRefSequenceCount() << std::endl;
return;
} else if ((tmReader.getServiceId() == static_cast<uint8_t>(supv::tm::TmtcId::EXEC_ACK)) or
(tmReader.getServiceId() == static_cast<uint8_t>(supv::tm::TmtcId::EXEC_NAK))) {
ExecutionReport exe(tmReader);
ReturnValue_t result = exe.parse();
if (result != returnvalue::OK) {
sif::warning << "PlocSupervisorHandler: Parsing EXE failed" << std::endl;
}
const char* printStr = "???";
if (REDUCE_NORMAL_MODE_PRINTOUT and exe.getRefModuleApid() == (uint8_t)supv::Apid::HK and
exe.getRefServiceId() == (uint8_t)supv::tc::HkId::GET_REPORT) {
return;
}
if (tmReader.getServiceId() == static_cast<uint8_t>(supv::tm::TmtcId::EXEC_ACK)) {
printStr = "ACK EXE";
} else if (tmReader.getServiceId() == static_cast<uint8_t>(supv::tm::TmtcId::EXEC_NAK)) {
printStr = "NAK EXE";
}
sif::debug << "PlocSupervisorHandler: RECV " << printStr << " for APID Module ID "
<< (int)exe.getRefModuleApid() << " Service ID " << (int)exe.getRefServiceId()
<< " Seq Count " << exe.getRefSequenceCount() << std::endl;
return;
}
}
sif::debug << "PlocSupervisorHandler: RECV PACKET Size " << tmReader.getFullPacketLen()
<< " Module APID " << (int)tmReader.getModuleApid() << " Service ID "
<< (int)tmReader.getServiceId() << std::endl;
}
ReturnValue_t PlocSupervisorHandler::interpretDeviceReply(DeviceCommandId_t id,
const uint8_t* packet) {
using namespace supv;
@ -669,12 +690,22 @@ ReturnValue_t PlocSupervisorHandler::interpretDeviceReply(DeviceCommandId_t id,
result = handleBootStatusReport(packet);
break;
}
case (COUNTERS_REPORT): {
result = genericHandleTm("COUNTERS", packet, countersReport);
#if OBSW_VERBOSE_LEVEL >= 1 && OBSW_DEBUG_PLOC_SUPERVISOR == 1
countersReport.printSet();
#endif
break;
}
case (LATCHUP_REPORT): {
result = handleLatchupStatusReport(packet);
break;
}
case (ADC_REPORT): {
result = handleAdcReport(packet);
result = genericHandleTm("ADC", packet, adcReport);
#if OBSW_VERBOSE_LEVEL >= 1 && OBSW_DEBUG_PLOC_SUPERVISOR == 1
adcReport.printSet();
#endif
break;
}
case (EXE_REPORT): {
@ -739,13 +770,8 @@ ReturnValue_t PlocSupervisorHandler::initializeLocalDataPool(localpool::DataPool
localDataPoolMap.emplace(supv::LATCHUP_RPT_TIME_YEAR, new PoolEntry<uint8_t>({0}));
localDataPoolMap.emplace(supv::LATCHUP_RPT_IS_SET, new PoolEntry<uint8_t>({0}));
localDataPoolMap.emplace(supv::LATCHUP_HAPPENED_CNT_0, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::LATCHUP_HAPPENED_CNT_1, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::LATCHUP_HAPPENED_CNT_2, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::LATCHUP_HAPPENED_CNT_3, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::LATCHUP_HAPPENED_CNT_4, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::LATCHUP_HAPPENED_CNT_5, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::LATCHUP_HAPPENED_CNT_6, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::SIGNATURE, new PoolEntry<uint32_t>());
localDataPoolMap.emplace(supv::LATCHUP_HAPPENED_CNTS, &latchupCounters);
localDataPoolMap.emplace(supv::ADC_DEVIATION_TRIGGERS_CNT, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::TC_RECEIVED_CNT, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::TM_AVAILABLE_CNT, new PoolEntry<uint32_t>({0}));
@ -754,42 +780,25 @@ ReturnValue_t PlocSupervisorHandler::initializeLocalDataPool(localpool::DataPool
localDataPoolMap.emplace(supv::MPSOC_BOOT_FAILED_ATTEMPTS, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::MPSOC_POWER_UP, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::MPSOC_UPDATES, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::LAST_RECVD_TC, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::MPSOC_HEARTBEAT_RESETS, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::CPU_WDT_RESETS, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::PS_HEARTBEATS_LOST, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::PL_HEARTBEATS_LOST, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::EB_TASK_LOST, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::BM_TASK_LOST, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::LM_TASK_LOST, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::AM_TASK_LOST, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::TCTMM_TASK_LOST, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::MM_TASK_LOST, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::HK_TASK_LOST, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::DL_TASK_LOST, new PoolEntry<uint32_t>({0}));
localDataPoolMap.emplace(supv::RWS_TASKS_LOST, new PoolEntry<uint32_t>(3));
localDataPoolMap.emplace(supv::ADC_RAW_0, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_1, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_2, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_3, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_4, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_5, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_6, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_7, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_8, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_9, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_10, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_11, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_12, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_13, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_14, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW_15, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_0, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_1, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_2, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_3, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_4, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_5, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_6, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_7, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_8, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_9, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_10, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_11, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_12, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_13, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_14, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_ENG_15, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(supv::ADC_RAW, &adcRawEntry);
localDataPoolMap.emplace(supv::ADC_ENG, &adcEngEntry);
poolManager.subscribeForRegularPeriodicPacket(
subdp::RegularHkPeriodicParams(hkset.getSid(), false, 10.0));
return returnvalue::OK;
}
@ -911,6 +920,7 @@ ReturnValue_t PlocSupervisorHandler::handleExecutionReport(const uint8_t* data)
} else if (tmReader.getServiceId() == static_cast<uint8_t>(supv::tm::TmtcId::EXEC_NAK)) {
handleExecutionFailureReport(report);
}
commandIsPending = false;
nextReplyId = supv::NONE;
return result;
}
@ -918,7 +928,7 @@ ReturnValue_t PlocSupervisorHandler::handleExecutionReport(const uint8_t* data)
ReturnValue_t PlocSupervisorHandler::handleHkReport(const uint8_t* data) {
ReturnValue_t result = returnvalue::OK;
result = verifyPacket(data, supv::SIZE_HK_REPORT);
result = verifyPacket(data, tmReader.getFullPacketLen());
if (result == result::CRC_FAILURE) {
sif::error << "PlocSupervisorHandler::handleHkReport: Hk report has invalid crc" << std::endl;
@ -1145,37 +1155,31 @@ ReturnValue_t PlocSupervisorHandler::handleLatchupStatusReport(const uint8_t* da
return result;
}
ReturnValue_t PlocSupervisorHandler::handleAdcReport(const uint8_t* data) {
ReturnValue_t PlocSupervisorHandler::genericHandleTm(const char* contextString, const uint8_t* data,
LocalPoolDataSetBase& set) {
ReturnValue_t result = returnvalue::OK;
result = verifyPacket(data, supv::SIZE_ADC_REPORT);
result = verifyPacket(data, tmReader.getFullPacketLen());
if (result == result::CRC_FAILURE) {
sif::error << "PlocSupervisorHandler::handleAdcReport: ADC report has "
<< "invalid crc" << std::endl;
sif::warning << "PlocSupervisorHandler: " << contextString << " report has "
<< "invalid CRC" << std::endl;
return result;
}
const uint8_t* dataField = data + supv::PAYLOAD_OFFSET;
result = adcReport.read();
if (result != returnvalue::OK) {
PoolReadGuard pg(&set);
if (pg.getReadResult() != returnvalue::OK) {
return result;
}
adcReport.setValidityBufferGeneration(false);
size_t size = adcReport.getSerializedSize();
result = adcReport.deSerialize(&dataField, &size, SerializeIF::Endianness::BIG);
set.setValidityBufferGeneration(false);
size_t size = set.getSerializedSize();
result = set.deSerialize(&dataField, &size, SerializeIF::Endianness::BIG);
if (result != returnvalue::OK) {
sif::warning << "PlocSupervisorHandler::handleAdcReport: Deserialization failed" << std::endl;
sif::warning << "PlocSupervisorHandler: Deserialization failed" << std::endl;
}
adcReport.setValidityBufferGeneration(true);
adcReport.setValidity(true, true);
result = adcReport.commit();
if (result != returnvalue::OK) {
return result;
}
#if OBSW_VERBOSE_LEVEL >= 1 && OBSW_DEBUG_PLOC_SUPERVISOR == 1
adcReport.printSet();
#endif
set.setValidityBufferGeneration(true);
set.setValidity(true, true);
nextReplyId = supv::EXE_REPORT;
return result;
}
@ -1197,8 +1201,8 @@ void PlocSupervisorHandler::setNextReplyId() {
case supv::CONSECUTIVE_MRAM_DUMP:
nextReplyId = supv::CONSECUTIVE_MRAM_DUMP;
break;
case supv::LOGGING_REQUEST_COUNTERS:
nextReplyId = supv::LOGGING_REPORT;
case supv::REQUEST_LOGGING_COUNTERS:
nextReplyId = supv::COUNTERS_REPORT;
break;
case supv::REQUEST_ADC_REPORT:
nextReplyId = supv::ADC_REPORT;
@ -1277,7 +1281,7 @@ ReturnValue_t PlocSupervisorHandler::prepareEmptyCmd(uint16_t apid, uint8_t serv
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1288,7 +1292,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSelBootImageCmd(const uint8_t* comma
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1305,7 +1309,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetTimeRefCmd() {
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1315,7 +1319,7 @@ ReturnValue_t PlocSupervisorHandler::prepareDisableHk() {
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1327,7 +1331,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetBootTimeoutCmd(const uint8_t* com
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1338,7 +1342,7 @@ ReturnValue_t PlocSupervisorHandler::prepareRestartTriesCmd(const uint8_t* comma
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1356,7 +1360,7 @@ ReturnValue_t PlocSupervisorHandler::prepareLatchupConfigCmd(const uint8_t* comm
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
break;
}
case (supv::DISABLE_LATCHUP_ALERT): {
@ -1365,7 +1369,7 @@ ReturnValue_t PlocSupervisorHandler::prepareLatchupConfigCmd(const uint8_t* comm
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
break;
}
default: {
@ -1392,7 +1396,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetAlertLimitCmd(const uint8_t* comm
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1403,7 +1407,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetAdcEnabledChannelsCmd(const uint8
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1417,7 +1421,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetAdcWindowAndStrideCmd(const uint8
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1429,7 +1433,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetAdcThresholdCmd(const uint8_t* co
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1443,11 +1447,15 @@ ReturnValue_t PlocSupervisorHandler::prepareRunAutoEmTest(const uint8_t* command
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
ReturnValue_t PlocSupervisorHandler::prepareSetGpioCmd(const uint8_t* commandData) {
ReturnValue_t PlocSupervisorHandler::prepareSetGpioCmd(const uint8_t* commandData,
size_t commandDataLen) {
if (commandDataLen < 3) {
return HasActionsIF::INVALID_PARAMETERS;
}
uint8_t port = *commandData;
uint8_t pin = *(commandData + 1);
uint8_t val = *(commandData + 2);
@ -1456,11 +1464,15 @@ ReturnValue_t PlocSupervisorHandler::prepareSetGpioCmd(const uint8_t* commandDat
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
ReturnValue_t PlocSupervisorHandler::prepareReadGpioCmd(const uint8_t* commandData) {
ReturnValue_t PlocSupervisorHandler::prepareReadGpioCmd(const uint8_t* commandData,
size_t commandDataLen) {
if (commandDataLen < 2) {
return HasActionsIF::INVALID_PARAMETERS;
}
uint8_t port = *commandData;
uint8_t pin = *(commandData + 1);
supv::ReadGpio packet(spParams);
@ -1468,7 +1480,7 @@ ReturnValue_t PlocSupervisorHandler::prepareReadGpioCmd(const uint8_t* commandDa
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1482,14 +1494,18 @@ ReturnValue_t PlocSupervisorHandler::prepareFactoryResetCmd(const uint8_t* comma
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(resetCmd.getFullPacketLen());
finishTcPrep(resetCmd);
return returnvalue::OK;
}
void PlocSupervisorHandler::finishTcPrep(size_t packetLen) {
void PlocSupervisorHandler::finishTcPrep(TcBase& tc) {
nextReplyId = supv::ACK_REPORT;
rawPacket = commandBuffer;
rawPacketLen = packetLen;
rawPacketLen = tc.getFullPacketLen();
if (DEBUG_PLOC_SUPV) {
sif::debug << "PLOC SUPV: SEND PACKET Size " << tc.getFullPacketLen() << " Module APID "
<< (int)tc.getModuleApid() << " Service ID " << (int)tc.getServiceId() << std::endl;
}
}
ReturnValue_t PlocSupervisorHandler::prepareSetShutdownTimeoutCmd(const uint8_t* commandData) {
@ -1502,13 +1518,14 @@ ReturnValue_t PlocSupervisorHandler::prepareSetShutdownTimeoutCmd(const uint8_t*
sif::warning
<< "PlocSupervisorHandler::prepareSetShutdownTimeoutCmd: Failed to deserialize timeout"
<< std::endl;
return result;
}
supv::SetShutdownTimeout packet(spParams);
result = packet.buildPacket(timeout);
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1518,7 +1535,13 @@ void PlocSupervisorHandler::disableAllReplies() {
/* Disable ack reply */
iter = deviceReplyMap.find(ACK_REPORT);
if (iter == deviceReplyMap.end()) {
return;
}
DeviceReplyInfo* info = &(iter->second);
if (info == nullptr) {
return;
}
info->delayCycles = 0;
info->command = deviceCommandMap.end();
@ -1547,8 +1570,8 @@ void PlocSupervisorHandler::disableAllReplies() {
disableReply(LATCHUP_REPORT);
break;
}
case LOGGING_REQUEST_COUNTERS: {
disableReply(LOGGING_REPORT);
case REQUEST_LOGGING_COUNTERS: {
disableReply(COUNTERS_REPORT);
break;
}
default: {
@ -1562,6 +1585,9 @@ void PlocSupervisorHandler::disableAllReplies() {
void PlocSupervisorHandler::disableReply(DeviceCommandId_t replyId) {
DeviceReplyMap::iterator iter = deviceReplyMap.find(replyId);
if (iter == deviceReplyMap.end()) {
return;
}
DeviceReplyInfo* info = &(iter->second);
info->delayCycles = 0;
info->active = false;
@ -1592,6 +1618,9 @@ void PlocSupervisorHandler::sendFailureReport(DeviceCommandId_t replyId, ReturnV
void PlocSupervisorHandler::disableExeReportReply() {
DeviceReplyIter iter = deviceReplyMap.find(supv::EXE_REPORT);
if (iter == deviceReplyMap.end()) {
return;
}
DeviceReplyInfo* info = &(iter->second);
info->delayCycles = 0;
info->command = deviceCommandMap.end();
@ -1614,7 +1643,9 @@ ReturnValue_t PlocSupervisorHandler::handleMramDumpPacket(DeviceCommandId_t id)
result = handleMramDumpFile(id);
if (result != returnvalue::OK) {
DeviceCommandMap::iterator iter = deviceCommandMap.find(id);
actionHelper.finish(false, iter->second.sendReplyTo, id, result);
if (iter != deviceCommandMap.end()) {
actionHelper.finish(false, iter->second.sendReplyTo, id, result);
}
disableAllReplies();
nextReplyId = supv::NONE;
return result;
@ -1719,7 +1750,7 @@ ReturnValue_t PlocSupervisorHandler::prepareWipeMramCmd(const uint8_t* commandDa
if (result != returnvalue::OK) {
return result;
}
finishTcPrep(packet.getFullPacketLen());
finishTcPrep(packet);
return returnvalue::OK;
}
@ -1881,7 +1912,12 @@ ReturnValue_t PlocSupervisorHandler::eventSubscription() {
ReturnValue_t PlocSupervisorHandler::handleExecutionSuccessReport(ExecutionReport& report) {
DeviceCommandId_t commandId = getPendingCommand();
ReturnValue_t result = OK;
DeviceCommandMap::iterator iter = deviceCommandMap.find(commandId);
if (iter != deviceCommandMap.end() and iter->second.sendReplyTo != NO_COMMANDER) {
actionHelper.finish(true, iter->second.sendReplyTo, iter->first, returnvalue::OK);
iter->second.isExecuting = false;
}
commandIsPending = false;
switch (commandId) {
case supv::READ_GPIO: {
// TODO: Fix
@ -1889,14 +1925,13 @@ ReturnValue_t PlocSupervisorHandler::handleExecutionSuccessReport(ExecutionRepor
#if OBSW_DEBUG_PLOC_SUPERVISOR == 1
sif::info << "PlocSupervisorHandler: Read GPIO TM, State: " << gpioState << std::endl;
#endif /* OBSW_DEBUG_PLOC_SUPERVISOR == 1 */
DeviceCommandMap::iterator iter = deviceCommandMap.find(commandId);
if (iter->second.sendReplyTo == NO_COMMAND_ID) {
if (iter != deviceCommandMap.end() and iter->second.sendReplyTo == NO_COMMAND_ID) {
return returnvalue::OK;
}
uint8_t data[sizeof(gpioState)];
size_t size = 0;
result = SerializeAdapter::serialize(&gpioState, data, &size, sizeof(gpioState),
SerializeIF::Endianness::BIG);
ReturnValue_t result = SerializeAdapter::serialize(&gpioState, data, &size, sizeof(gpioState),
SerializeIF::Endianness::BIG);
if (result != returnvalue::OK) {
sif::debug << "PlocSupervisorHandler: Failed to deserialize GPIO state" << std::endl;
}
@ -1972,133 +2007,21 @@ uint32_t PlocSupervisorHandler::getTransitionDelayMs(Mode_t modeFrom, Mode_t mod
return 7000;
}
// ReturnValue_t PlocSupervisorHandler::checkMramPacketApid() {
// uint16_t apid = (spacePacketBuffer[0] << 8 | spacePacketBuffer[1]) & supv::APID_MASK;
// TODO: Fix
// if (apid != supv::APID_MRAM_DUMP_TM) {
// return result::NO_MRAM_PACKET;
// }
// return APERIODIC_REPLY;
//}
void PlocSupervisorHandler::disableCommand(DeviceCommandId_t cmd) {
auto commandIter = deviceCommandMap.find(GET_HK_REPORT);
commandIter->second.isExecuting = false;
}
// ReturnValue_t PlocSupervisorHandler::parseMramPackets(const uint8_t* packet, size_t
// remainingSize,
// size_t* foundLen) {
// ReturnValue_t result = IGNORE_FULL_PACKET;
// uint16_t packetLen = 0;
// *foundLen = 0;
//
// for (size_t idx = 0; idx < remainingSize; idx++) {
// std::memcpy(spacePacketBuffer + bufferTop, packet + idx, 1);
// bufferTop += 1;
// *foundLen += 1;
// if (bufferTop >= ccsds::HEADER_LEN) {
// packetLen = readSpacePacketLength(spacePacketBuffer);
// }
//
// if (bufferTop == ccsds::HEADER_LEN + packetLen + 1) {
// packetInBuffer = true;
// bufferTop = 0;
// return checkMramPacketApid();
// }
//
// if (bufferTop == supv::MAX_PACKET_SIZE) {
// *foundLen = remainingSize;
// disableAllReplies();
// bufferTop = 0;
// sif::info << "PlocSupervisorHandler::parseMramPackets: Can not find MRAM packet in space "
// "packet buffer"
// << std::endl;
// return result::MRAM_PACKET_PARSING_FAILURE;
// }
// }
//
// return result;
// }
// ReturnValue_t PlocSupervisorHandler::prepareDumpMramCmd(const uint8_t* commandData) {
// uint32_t start = 0;
// uint32_t stop = 0;
// size_t size = sizeof(start) + sizeof(stop);
// SerializeAdapter::deSerialize(&start, &commandData, &size, SerializeIF::Endianness::BIG);
// SerializeAdapter::deSerialize(&stop, &commandData, &size, SerializeIF::Endianness::BIG);
// if ((stop - start) <= 0) {
// return SupvReturnValuesIF::INVALID_MRAM_ADDRESSES;
// }
// supv::MramCmd packet(spParams);
// ReturnValue_t result = packet.buildPacket(start, stop, supv::MramCmd::MramAction::DUMP);
// if (result != returnvalue::OK) {
// return result;
// }
// expectedMramDumpPackets = (stop - start) / supv::MAX_DATA_CAPACITY;
// if ((stop - start) % supv::MAX_DATA_CAPACITY) {
// expectedMramDumpPackets++;
// }
// receivedMramDumpPackets = 0;
//
// finishTcPrep(packet.getFullPacketLen());
// return returnvalue::OK;
// }
// ReturnValue_t PlocSupervisorHandler::prepareLoggingRequest(const uint8_t* commandData,
// size_t commandDataLen) {
// using namespace supv;
// RequestLoggingData::Sa sa = static_cast<RequestLoggingData::Sa>(*commandData);
// uint8_t tpc = *(commandData + 1);
// RequestLoggingData packet(spParams);
// ReturnValue_t result = packet.buildPacket(sa, tpc);
// if (result != returnvalue::OK) {
// return result;
// }
// finishTcPrep(packet.getFullPacketLen());
// return returnvalue::OK;
// }
// ReturnValue_t PlocSupervisorHandler::prepareEnableNvmsCommand(const uint8_t* commandData) {
// using namespace supv;
// uint8_t nvm01 = *(commandData);
// uint8_t nvm3 = *(commandData + 1);
// EnableNvms packet(spParams);
// ReturnValue_t result = packet.buildPacket(nvm01, nvm3);
// if (result != returnvalue::OK) {
// return result;
// }
// finishTcPrep(packet.getFullPacketLen());
// return returnvalue::OK;
// }
// ReturnValue_t PlocSupervisorHandler::handleLoggingReport(const uint8_t* data) {
// ReturnValue_t result = returnvalue::OK;
//
// result = verifyPacket(data, supv::SIZE_LOGGING_REPORT);
//
// if (result == SupvReturnValuesIF::CRC_FAILURE) {
// sif::warning << "PlocSupervisorHandler::handleLoggingReport: Logging report has "
// << "invalid crc" << std::endl;
// return result;
// }
//
// const uint8_t* dataField = data + supv::PAYLOAD_OFFSET + sizeof(supv::RequestLoggingData::Sa);
// result = loggingReport.read();
// if (result != returnvalue::OK) {
// return result;
// }
// loggingReport.setValidityBufferGeneration(false);
// size_t size = loggingReport.getSerializedSize();
// result = loggingReport.deSerialize(&dataField, &size, SerializeIF::Endianness::BIG);
// if (result != returnvalue::OK) {
// sif::warning << "PlocSupervisorHandler::handleLoggingReport: Deserialization failed"
// << std::endl;
// }
// loggingReport.setValidityBufferGeneration(true);
// loggingReport.setValidity(true, true);
// result = loggingReport.commit();
// if (result != returnvalue::OK) {
// return result;
// }
//#if OBSW_VERBOSE_LEVEL >= 1 && OBSW_DEBUG_PLOC_SUPERVISOR == 1
// loggingReport.printSet();
//#endif
// nextReplyId = supv::EXE_REPORT;
// return result;
// }
ReturnValue_t PlocSupervisorHandler::checkModeCommand(Mode_t commandedMode,
Submode_t commandedSubmode,
uint32_t* msToReachTheMode) {
if (commandedMode != MODE_OFF) {
PoolReadGuard pg(&enablePl);
if (pg.getReadResult() == returnvalue::OK) {
if (enablePl.plUseAllowed.isValid() and not enablePl.plUseAllowed.value) {
return NON_OP_STATE_OF_CHARGE;
}
}
}
return DeviceHandlerBase::checkModeCommand(commandedMode, commandedSubmode, msToReachTheMode);
}

View File

@ -3,6 +3,7 @@
#include <linux/payload/PlocSupvUartMan.h>
#include <linux/payload/plocSupvDefs.h>
#include <mission/controller/controllerdefinitions/PowerCtrlDefinitions.h>
#include "OBSWConfig.h"
#include "devices/powerSwitcherList.h"
@ -17,6 +18,10 @@
#endif
using supv::ExecutionReport;
using supv::TcBase;
static constexpr bool DEBUG_PLOC_SUPV = true;
static constexpr bool REDUCE_NORMAL_MODE_PRINTOUT = true;
/**
* @brief This is the device handler for the supervisor of the PLOC which is programmed by
@ -63,26 +68,6 @@ class PlocSupervisorHandler : public DeviceHandlerBase {
void doOffActivity() override;
private:
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::PLOC_SUPERVISOR_HANDLER;
//! [EXPORT] : [COMMENT] PLOC supervisor crc failure in telemetry packet
static const Event SUPV_MEMORY_READ_RPT_CRC_FAILURE = MAKE_EVENT(1, severity::LOW);
//! [EXPORT] : [COMMENT] Unhandled event. P1: APID, P2: Service ID
static constexpr Event SUPV_UNKNOWN_TM = MAKE_EVENT(2, severity::LOW);
static constexpr Event SUPV_UNINIMPLEMENTED_TM = MAKE_EVENT(3, severity::LOW);
//! [EXPORT] : [COMMENT] PLOC supervisor received acknowledgment failure report
static const Event SUPV_ACK_FAILURE = MAKE_EVENT(4, severity::LOW);
//! [EXPORT] : [COMMENT] PLOC received execution failure report
//! P1: ID of command for which the execution failed
//! P2: Status code sent by the supervisor handler
static const Event SUPV_EXE_FAILURE = MAKE_EVENT(5, severity::LOW);
//! [EXPORT] : [COMMENT] PLOC supervisor reply has invalid crc
static const Event SUPV_CRC_FAILURE_EVENT = MAKE_EVENT(6, severity::LOW);
//! [EXPORT] : [COMMENT] Supervisor helper currently executing a command
static const Event SUPV_HELPER_EXECUTING = MAKE_EVENT(7, severity::LOW);
//! [EXPORT] : [COMMENT] Failed to build the command to shutdown the MPSoC
static const Event SUPV_MPSOC_SHUTDOWN_BUILD_FAILED = MAKE_EVENT(8, severity::LOW);
static const uint16_t APID_MASK = 0x7FF;
static const uint16_t PACKET_SEQUENCE_COUNT_MASK = 0x3FFF;
static const uint8_t EXE_STATUS_OFFSET = 10;
@ -90,15 +75,14 @@ class PlocSupervisorHandler : public DeviceHandlerBase {
// 5 s
static const uint32_t EXECUTION_DEFAULT_TIMEOUT = 5000;
// 70 S
static const uint32_t ACKNOWLEDGE_DEFAULT_TIMEOUT = 70000;
static const uint32_t ACKNOWLEDGE_DEFAULT_TIMEOUT = 5000;
// 60 s
static const uint32_t MRAM_DUMP_EXECUTION_TIMEOUT = 60000;
// 70 s
static const uint32_t COPY_ADC_TO_MRAM_TIMEOUT = 70000;
// 60 s
static const uint32_t MRAM_DUMP_TIMEOUT = 60000;
// 4 s
static const uint32_t BOOT_TIMEOUT = 4000;
enum class StartupState : uint8_t {
OFF,
BOOTING,
@ -127,11 +111,18 @@ class PlocSupervisorHandler : public DeviceHandlerBase {
LinuxLibgpioIF* gpioComIF = nullptr;
Gpio uartIsolatorSwitch;
bool shutdownCmdSent = false;
// Yeah, I am using an extra variable because I once again don't know
// what the hell the base class is doing and I don't care anymore.
bool normalCommandIsPending = false;
// True men implement their reply timeout handling themselves!
Countdown normalCmdCd = Countdown(2000);
bool commandIsPending = false;
Countdown cmdCd = Countdown(2000);
supv::HkSet hkset;
supv::BootStatusReport bootStatusReport;
supv::LatchupStatusReport latchupStatusReport;
supv::LoggingReport loggingReport;
supv::CountersReport countersReport;
supv::AdcReport adcReport;
const power::Switch_t powerSwitch = power::NO_SWITCH;
@ -160,9 +151,12 @@ class PlocSupervisorHandler : public DeviceHandlerBase {
Countdown executionReportTimeout = Countdown(EXECUTION_DEFAULT_TIMEOUT, false);
Countdown acknowledgementReportTimeout = Countdown(ACKNOWLEDGE_DEFAULT_TIMEOUT, false);
// Vorago nees some time to boot properly
Countdown bootTimeout = Countdown(BOOT_TIMEOUT);
Countdown bootTimeout = Countdown(supv::BOOT_TIMEOUT_MS);
Countdown mramDumpTimeout = Countdown(MRAM_DUMP_TIMEOUT);
PoolEntry<uint16_t> adcRawEntry = PoolEntry<uint16_t>(16);
PoolEntry<uint16_t> adcEngEntry = PoolEntry<uint16_t>(16);
PoolEntry<uint32_t> latchupCounters = PoolEntry<uint32_t>(7);
PoolEntry<uint8_t> fmcStateEntry = PoolEntry<uint8_t>(1);
PoolEntry<uint8_t> bootStateEntry = PoolEntry<uint8_t>(1);
PoolEntry<uint8_t> bootCyclesEntry = PoolEntry<uint8_t>(1);
@ -173,6 +167,8 @@ class PlocSupervisorHandler : public DeviceHandlerBase {
*/
void setExecutionTimeout(DeviceCommandId_t command);
void handlePacketPrint();
/**
* @brief Handles event messages received from the supervisor helper
*/
@ -225,9 +221,13 @@ class PlocSupervisorHandler : public DeviceHandlerBase {
ReturnValue_t handleBootStatusReport(const uint8_t* data);
ReturnValue_t handleLatchupStatusReport(const uint8_t* data);
ReturnValue_t handleCounterReport(const uint8_t* data);
void handleBadApidServiceCombination(Event result, unsigned int apid, unsigned int serviceId);
// ReturnValue_t handleLoggingReport(const uint8_t* data);
ReturnValue_t handleAdcReport(const uint8_t* data);
ReturnValue_t genericHandleTm(const char* contextString, const uint8_t* data,
LocalPoolDataSetBase& set);
void disableCommand(DeviceCommandId_t cmd);
/**
* @brief Depending on the current active command, this function sets the reply id of the
@ -296,16 +296,13 @@ class PlocSupervisorHandler : public DeviceHandlerBase {
ReturnValue_t prepareSetAdcThresholdCmd(const uint8_t* commandData);
ReturnValue_t prepareRunAutoEmTest(const uint8_t* commandData);
ReturnValue_t prepareWipeMramCmd(const uint8_t* commandData);
// ReturnValue_t prepareDumpMramCmd(const uint8_t* commandData);
ReturnValue_t prepareSetGpioCmd(const uint8_t* commandData);
ReturnValue_t prepareReadGpioCmd(const uint8_t* commandData);
// ReturnValue_t prepareLoggingRequest(const uint8_t* commandData, size_t commandDataLen);
// ReturnValue_t prepareEnableNvmsCommand(const uint8_t* commandData);
ReturnValue_t prepareSetGpioCmd(const uint8_t* commandData, size_t commandDataLen);
ReturnValue_t prepareReadGpioCmd(const uint8_t* commandData, size_t commandDataLen);
/**
* @brief Copies the content of a space packet to the command buffer.
*/
void finishTcPrep(size_t packetLen);
void finishTcPrep(TcBase& tc);
/**
* @brief In case an acknowledgment failure reply has been received this function disables
@ -331,12 +328,6 @@ class PlocSupervisorHandler : public DeviceHandlerBase {
*/
void disableExeReportReply();
/**
* @brief Function is called in scanForReply and fills the spacePacketBuffer with the read
* data until a full packet has been received.
*/
// ReturnValue_t parseMramPackets(const uint8_t* packet, size_t remainingSize, size_t* foundlen);
/**
* @brief This function generates the Service 8 packets for the MRAM dump data.
*/
@ -349,12 +340,6 @@ class PlocSupervisorHandler : public DeviceHandlerBase {
*/
void increaseExpectedMramReplies(DeviceCommandId_t id);
/**
* @brief Function checks if the packet written to the space packet buffer is really a
* MRAM dump packet.
*/
// ReturnValue_t checkMramPacketApid();
/**
* @brief Writes the data of the MRAM dump to a file. The file will be created when receiving
* the first packet.
@ -395,6 +380,10 @@ class PlocSupervisorHandler : public DeviceHandlerBase {
void handleExecutionFailureReport(ExecutionReport& report);
void printAckFailureInfo(uint16_t statusCode, DeviceCommandId_t commandId);
pwrctrl::EnablePl enablePl = pwrctrl::EnablePl(objects::POWER_CONTROLLER);
ReturnValue_t checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode,
uint32_t* msToReachTheMode) override;
};
#endif /* MISSION_DEVICES_PLOCSUPERVISORHANDLER_H_ */

View File

@ -1,4 +1,4 @@
target_sources(${OBSW_NAME} PUBLIC scheduling.cpp main.cpp ObjectFactory.cpp)
target_sources(${OBSW_NAME} PUBLIC scheduling.cpp main.cpp objectFactory.cpp)
add_subdirectory(fsfwconfig)
add_subdirectory(boardconfig)

View File

@ -48,6 +48,7 @@
#define OBSW_SWITCH_TO_NORMAL_MODE_AFTER_STARTUP 1
#define OBSW_PRINT_MISSED_DEADLINES 1
#define OBSW_MPSOC_JTAG_BOOT 0
#define OBSW_SYRLINKS_SIMULATED 1
#define OBSW_ADD_TEST_CODE 0
#define OBSW_ADD_TEST_TASK 0
@ -101,7 +102,7 @@
/** CMake Defines */
/*******************************************************************/
#define OBSW_ADD_TMTC_UDP_SERVER 1
#define OBSW_ADD_TMTC_UDP_SERVER 0
#define OBSW_ADD_TMTC_TCP_SERVER 1
#cmakedefine EIVE_BUILD_GPSD_GPS_HANDLER

View File

@ -1,7 +1,7 @@
/**
* @brief Auto-generated event translation file. Contains 296 translations.
* @brief Auto-generated event translation file. Contains 325 translations.
* @details
* Generated on: 2023-06-21 19:01:02
* Generated on: 2024-05-06 13:47:38
*/
#include "translateEvents.h"
@ -82,8 +82,11 @@ const char *BIT_LOCK_STRING = "BIT_LOCK";
const char *BIT_LOCK_LOST_STRING = "BIT_LOCK_LOST";
const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED";
const char *CLOCK_SET_STRING = "CLOCK_SET";
const char *CLOCK_DUMP_STRING = "CLOCK_DUMP";
const char *CLOCK_DUMP_LEGACY_STRING = "CLOCK_DUMP_LEGACY";
const char *CLOCK_SET_FAILURE_STRING = "CLOCK_SET_FAILURE";
const char *CLOCK_DUMP_STRING = "CLOCK_DUMP";
const char *CLOCK_DUMP_BEFORE_SETTING_TIME_STRING = "CLOCK_DUMP_BEFORE_SETTING_TIME";
const char *CLOCK_DUMP_AFTER_SETTING_TIME_STRING = "CLOCK_DUMP_AFTER_SETTING_TIME";
const char *TC_DELETION_FAILED_STRING = "TC_DELETION_FAILED";
const char *TEST_STRING = "TEST";
const char *CHANGE_OF_SETUP_PARAMETER_STRING = "CHANGE_OF_SETUP_PARAMETER";
@ -92,18 +95,28 @@ const char *MSG_QUEUE_ERROR_STRING = "MSG_QUEUE_ERROR";
const char *SERIALIZATION_ERROR_STRING = "SERIALIZATION_ERROR";
const char *FILESTORE_ERROR_STRING = "FILESTORE_ERROR";
const char *FILENAME_TOO_LARGE_ERROR_STRING = "FILENAME_TOO_LARGE_ERROR";
const char *HANDLING_CFDP_REQUEST_FAILED_STRING = "HANDLING_CFDP_REQUEST_FAILED";
const char *SAFE_RATE_VIOLATION_STRING = "SAFE_RATE_VIOLATION";
const char *SAFE_RATE_RECOVERY_STRING = "SAFE_RATE_RECOVERY";
const char *RATE_RECOVERY_STRING = "RATE_RECOVERY";
const char *MULTIPLE_RW_INVALID_STRING = "MULTIPLE_RW_INVALID";
const char *MEKF_INVALID_INFO_STRING = "MEKF_INVALID_INFO";
const char *MEKF_RECOVERY_STRING = "MEKF_RECOVERY";
const char *MEKF_AUTOMATIC_RESET_STRING = "MEKF_AUTOMATIC_RESET";
const char *MEKF_INVALID_MODE_VIOLATION_STRING = "MEKF_INVALID_MODE_VIOLATION";
const char *PTG_CTRL_NO_ATTITUDE_INFORMATION_STRING = "PTG_CTRL_NO_ATTITUDE_INFORMATION";
const char *SAFE_MODE_CONTROLLER_FAILURE_STRING = "SAFE_MODE_CONTROLLER_FAILURE";
const char *TLE_TOO_OLD_STRING = "TLE_TOO_OLD";
const char *TLE_FILE_READ_FAILED_STRING = "TLE_FILE_READ_FAILED";
const char *PTG_RATE_VIOLATION_STRING = "PTG_RATE_VIOLATION";
const char *DETUMBLE_TRANSITION_FAILED_STRING = "DETUMBLE_TRANSITION_FAILED";
const char *SWITCH_CMD_SENT_STRING = "SWITCH_CMD_SENT";
const char *SWITCH_HAS_CHANGED_STRING = "SWITCH_HAS_CHANGED";
const char *SWITCHING_Q7S_DENIED_STRING = "SWITCHING_Q7S_DENIED";
const char *FDIR_REACTION_IGNORED_STRING = "FDIR_REACTION_IGNORED";
const char *DATASET_READ_FAILED_STRING = "DATASET_READ_FAILED";
const char *VOLTAGE_OUT_OF_BOUNDS_STRING = "VOLTAGE_OUT_OF_BOUNDS";
const char *TIMEDELTA_OUT_OF_BOUNDS_STRING = "TIMEDELTA_OUT_OF_BOUNDS";
const char *POWER_LEVEL_LOW_STRING = "POWER_LEVEL_LOW";
const char *POWER_LEVEL_CRITICAL_STRING = "POWER_LEVEL_CRITICAL";
const char *GPIO_PULL_HIGH_FAILED_STRING = "GPIO_PULL_HIGH_FAILED";
const char *GPIO_PULL_LOW_FAILED_STRING = "GPIO_PULL_LOW_FAILED";
const char *HEATER_WENT_ON_STRING = "HEATER_WENT_ON";
@ -127,6 +140,9 @@ const char *EXE_FAILURE_STRING = "EXE_FAILURE";
const char *MPSOC_HANDLER_CRC_FAILURE_STRING = "MPSOC_HANDLER_CRC_FAILURE";
const char *MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH_STRING = "MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH";
const char *MPSOC_SHUTDOWN_FAILED_STRING = "MPSOC_SHUTDOWN_FAILED";
const char *SUPV_NOT_ON_STRING = "SUPV_NOT_ON";
const char *SUPV_REPLY_TIMEOUT_STRING = "SUPV_REPLY_TIMEOUT";
const char *CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE_STRING = "CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE";
const char *SELF_TEST_I2C_FAILURE_STRING = "SELF_TEST_I2C_FAILURE";
const char *SELF_TEST_SPI_FAILURE_STRING = "SELF_TEST_SPI_FAILURE";
const char *SELF_TEST_ADC_FAILURE_STRING = "SELF_TEST_ADC_FAILURE";
@ -139,6 +155,7 @@ const char *ERROR_STATE_STRING = "ERROR_STATE";
const char *RESET_OCCURED_STRING = "RESET_OCCURED";
const char *BOOTING_FIRMWARE_FAILED_EVENT_STRING = "BOOTING_FIRMWARE_FAILED_EVENT";
const char *BOOTING_BOOTLOADER_FAILED_EVENT_STRING = "BOOTING_BOOTLOADER_FAILED_EVENT";
const char *COM_ERROR_REPLY_RECEIVED_STRING = "COM_ERROR_REPLY_RECEIVED";
const char *SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING = "SUPV_MEMORY_READ_RPT_CRC_FAILURE";
const char *SUPV_UNKNOWN_TM_STRING = "SUPV_UNKNOWN_TM";
const char *SUPV_UNINIMPLEMENTED_TM_STRING = "SUPV_UNINIMPLEMENTED_TM";
@ -147,6 +164,8 @@ const char *SUPV_EXE_FAILURE_STRING = "SUPV_EXE_FAILURE";
const char *SUPV_CRC_FAILURE_EVENT_STRING = "SUPV_CRC_FAILURE_EVENT";
const char *SUPV_HELPER_EXECUTING_STRING = "SUPV_HELPER_EXECUTING";
const char *SUPV_MPSOC_SHUTDOWN_BUILD_FAILED_STRING = "SUPV_MPSOC_SHUTDOWN_BUILD_FAILED";
const char *SUPV_ACK_UNKNOWN_COMMAND_STRING = "SUPV_ACK_UNKNOWN_COMMAND";
const char *SUPV_EXE_ACK_UNKNOWN_COMMAND_STRING = "SUPV_EXE_ACK_UNKNOWN_COMMAND";
const char *SANITIZATION_FAILED_STRING = "SANITIZATION_FAILED";
const char *MOUNTED_SD_CARD_STRING = "MOUNTED_SD_CARD";
const char *SEND_MRAM_DUMP_FAILED_STRING = "SEND_MRAM_DUMP_FAILED";
@ -166,6 +185,7 @@ const char *PDEC_TRYING_RESET_NO_INIT_STRING = "PDEC_TRYING_RESET_NO_INIT";
const char *PDEC_RESET_FAILED_STRING = "PDEC_RESET_FAILED";
const char *OPEN_IRQ_FILE_FAILED_STRING = "OPEN_IRQ_FILE_FAILED";
const char *PDEC_INIT_FAILED_STRING = "PDEC_INIT_FAILED";
const char *PDEC_CONFIG_CORRUPTED_STRING = "PDEC_CONFIG_CORRUPTED";
const char *IMAGE_UPLOAD_FAILED_STRING = "IMAGE_UPLOAD_FAILED";
const char *IMAGE_DOWNLOAD_FAILED_STRING = "IMAGE_DOWNLOAD_FAILED";
const char *IMAGE_UPLOAD_SUCCESSFUL_STRING = "IMAGE_UPLOAD_SUCCESSFUL";
@ -225,6 +245,7 @@ const char *SIDE_SWITCH_TRANSITION_NOT_ALLOWED_12903_STRING = "SIDE_SWITCH_TRANS
const char *CHILDREN_LOST_MODE_STRING = "CHILDREN_LOST_MODE";
const char *GPS_FIX_CHANGE_STRING = "GPS_FIX_CHANGE";
const char *CANT_GET_FIX_STRING = "CANT_GET_FIX";
const char *RESET_FAIL_STRING = "RESET_FAIL";
const char *P60_BOOT_COUNT_STRING = "P60_BOOT_COUNT";
const char *BATT_MODE_STRING = "BATT_MODE";
const char *BATT_MODE_CHANGED_STRING = "BATT_MODE_CHANGED";
@ -260,6 +281,7 @@ const char *TX_OFF_STRING = "TX_OFF";
const char *MISSING_PACKET_STRING = "MISSING_PACKET";
const char *EXPERIMENT_TIMEDOUT_STRING = "EXPERIMENT_TIMEDOUT";
const char *MULTI_PACKET_COMMAND_DONE_STRING = "MULTI_PACKET_COMMAND_DONE";
const char *FS_UNUSABLE_STRING = "FS_UNUSABLE";
const char *SET_CONFIGFILEVALUE_FAILED_STRING = "SET_CONFIGFILEVALUE_FAILED";
const char *GET_CONFIGFILEVALUE_FAILED_STRING = "GET_CONFIGFILEVALUE_FAILED";
const char *INSERT_CONFIGFILEVALUE_FAILED_STRING = "INSERT_CONFIGFILEVALUE_FAILED";
@ -278,6 +300,7 @@ const char *TRYING_I2C_RECOVERY_STRING = "TRYING_I2C_RECOVERY";
const char *I2C_REBOOT_STRING = "I2C_REBOOT";
const char *PDEC_REBOOT_STRING = "PDEC_REBOOT";
const char *FIRMWARE_INFO_STRING = "FIRMWARE_INFO";
const char *ACTIVE_SD_INFO_STRING = "ACTIVE_SD_INFO";
const char *NO_VALID_SENSOR_TEMPERATURE_STRING = "NO_VALID_SENSOR_TEMPERATURE";
const char *NO_HEALTHY_HEATER_AVAILABLE_STRING = "NO_HEALTHY_HEATER_AVAILABLE";
const char *SYRLINKS_OVERHEATING_STRING = "SYRLINKS_OVERHEATING";
@ -286,6 +309,9 @@ const char *CAMERA_OVERHEATING_STRING = "CAMERA_OVERHEATING";
const char *PCDU_SYSTEM_OVERHEATING_STRING = "PCDU_SYSTEM_OVERHEATING";
const char *HEATER_NOT_OFF_FOR_OFF_MODE_STRING = "HEATER_NOT_OFF_FOR_OFF_MODE";
const char *MGT_OVERHEATING_STRING = "MGT_OVERHEATING";
const char *TCS_SWITCHING_HEATER_ON_STRING = "TCS_SWITCHING_HEATER_ON";
const char *TCS_SWITCHING_HEATER_OFF_STRING = "TCS_SWITCHING_HEATER_OFF";
const char *TCS_HEATER_MAX_BURN_TIME_REACHED_STRING = "TCS_HEATER_MAX_BURN_TIME_REACHED";
const char *TX_TIMER_EXPIRED_STRING = "TX_TIMER_EXPIRED";
const char *BIT_LOCK_TX_ON_STRING = "BIT_LOCK_TX_ON";
const char *POSSIBLE_FILE_CORRUPTION_STRING = "POSSIBLE_FILE_CORRUPTION";
@ -301,6 +327,9 @@ const char *DUMP_NOK_CANCELLED_STRING = "DUMP_NOK_CANCELLED";
const char *DUMP_MISC_CANCELLED_STRING = "DUMP_MISC_CANCELLED";
const char *DUMP_HK_CANCELLED_STRING = "DUMP_HK_CANCELLED";
const char *DUMP_CFDP_CANCELLED_STRING = "DUMP_CFDP_CANCELLED";
const char *TEMPERATURE_ALL_ONES_START_STRING = "TEMPERATURE_ALL_ONES_START";
const char *TEMPERATURE_ALL_ONES_RECOVERY_STRING = "TEMPERATURE_ALL_ONES_RECOVERY";
const char *FAULT_HANDLER_TRIGGERED_STRING = "FAULT_HANDLER_TRIGGERED";
const char *translateEvents(Event event) {
switch ((event & 0xFFFF)) {
@ -459,9 +488,15 @@ const char *translateEvents(Event event) {
case (8900):
return CLOCK_SET_STRING;
case (8901):
return CLOCK_DUMP_STRING;
return CLOCK_DUMP_LEGACY_STRING;
case (8902):
return CLOCK_SET_FAILURE_STRING;
case (8903):
return CLOCK_DUMP_STRING;
case (8904):
return CLOCK_DUMP_BEFORE_SETTING_TIME_STRING;
case (8905):
return CLOCK_DUMP_AFTER_SETTING_TIME_STRING;
case (9100):
return TC_DELETION_FAILED_STRING;
case (9700):
@ -478,10 +513,12 @@ const char *translateEvents(Event event) {
return FILESTORE_ERROR_STRING;
case (10804):
return FILENAME_TOO_LARGE_ERROR_STRING;
case (10805):
return HANDLING_CFDP_REQUEST_FAILED_STRING;
case (11200):
return SAFE_RATE_VIOLATION_STRING;
case (11201):
return SAFE_RATE_RECOVERY_STRING;
return RATE_RECOVERY_STRING;
case (11202):
return MULTIPLE_RW_INVALID_STRING;
case (11203):
@ -491,9 +528,17 @@ const char *translateEvents(Event event) {
case (11205):
return MEKF_AUTOMATIC_RESET_STRING;
case (11206):
return MEKF_INVALID_MODE_VIOLATION_STRING;
return PTG_CTRL_NO_ATTITUDE_INFORMATION_STRING;
case (11207):
return SAFE_MODE_CONTROLLER_FAILURE_STRING;
case (11208):
return TLE_TOO_OLD_STRING;
case (11209):
return TLE_FILE_READ_FAILED_STRING;
case (11210):
return PTG_RATE_VIOLATION_STRING;
case (11211):
return DETUMBLE_TRANSITION_FAILED_STRING;
case (11300):
return SWITCH_CMD_SENT_STRING;
case (11301):
@ -502,6 +547,16 @@ const char *translateEvents(Event event) {
return SWITCHING_Q7S_DENIED_STRING;
case (11303):
return FDIR_REACTION_IGNORED_STRING;
case (11304):
return DATASET_READ_FAILED_STRING;
case (11305):
return VOLTAGE_OUT_OF_BOUNDS_STRING;
case (11306):
return TIMEDELTA_OUT_OF_BOUNDS_STRING;
case (11307):
return POWER_LEVEL_LOW_STRING;
case (11308):
return POWER_LEVEL_CRITICAL_STRING;
case (11400):
return GPIO_PULL_HIGH_FAILED_STRING;
case (11401):
@ -548,6 +603,12 @@ const char *translateEvents(Event event) {
return MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH_STRING;
case (11606):
return MPSOC_SHUTDOWN_FAILED_STRING;
case (11607):
return SUPV_NOT_ON_STRING;
case (11608):
return SUPV_REPLY_TIMEOUT_STRING;
case (11609):
return CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE_STRING;
case (11701):
return SELF_TEST_I2C_FAILURE_STRING;
case (11702):
@ -572,6 +633,8 @@ const char *translateEvents(Event event) {
return BOOTING_FIRMWARE_FAILED_EVENT_STRING;
case (11902):
return BOOTING_BOOTLOADER_FAILED_EVENT_STRING;
case (11903):
return COM_ERROR_REPLY_RECEIVED_STRING;
case (12001):
return SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING;
case (12002):
@ -588,6 +651,10 @@ const char *translateEvents(Event event) {
return SUPV_HELPER_EXECUTING_STRING;
case (12008):
return SUPV_MPSOC_SHUTDOWN_BUILD_FAILED_STRING;
case (12009):
return SUPV_ACK_UNKNOWN_COMMAND_STRING;
case (12010):
return SUPV_EXE_ACK_UNKNOWN_COMMAND_STRING;
case (12100):
return SANITIZATION_FAILED_STRING;
case (12101):
@ -626,6 +693,8 @@ const char *translateEvents(Event event) {
return OPEN_IRQ_FILE_FAILED_STRING;
case (12414):
return PDEC_INIT_FAILED_STRING;
case (12415):
return PDEC_CONFIG_CORRUPTED_STRING;
case (12500):
return IMAGE_UPLOAD_FAILED_STRING;
case (12501):
@ -744,6 +813,8 @@ const char *translateEvents(Event event) {
return GPS_FIX_CHANGE_STRING;
case (13101):
return CANT_GET_FIX_STRING;
case (13102):
return RESET_FAIL_STRING;
case (13200):
return P60_BOOT_COUNT_STRING;
case (13201):
@ -814,6 +885,8 @@ const char *translateEvents(Event event) {
return EXPERIMENT_TIMEDOUT_STRING;
case (13802):
return MULTI_PACKET_COMMAND_DONE_STRING;
case (13803):
return FS_UNUSABLE_STRING;
case (13901):
return SET_CONFIGFILEVALUE_FAILED_STRING;
case (13902):
@ -850,6 +923,8 @@ const char *translateEvents(Event event) {
return PDEC_REBOOT_STRING;
case (14013):
return FIRMWARE_INFO_STRING;
case (14014):
return ACTIVE_SD_INFO_STRING;
case (14100):
return NO_VALID_SENSOR_TEMPERATURE_STRING;
case (14101):
@ -866,6 +941,12 @@ const char *translateEvents(Event event) {
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
case (14108):
return MGT_OVERHEATING_STRING;
case (14109):
return TCS_SWITCHING_HEATER_ON_STRING;
case (14110):
return TCS_SWITCHING_HEATER_OFF_STRING;
case (14111):
return TCS_HEATER_MAX_BURN_TIME_REACHED_STRING;
case (14201):
return TX_TIMER_EXPIRED_STRING;
case (14202):
@ -896,6 +977,12 @@ const char *translateEvents(Event event) {
return DUMP_HK_CANCELLED_STRING;
case (14314):
return DUMP_CFDP_CANCELLED_STRING;
case (14500):
return TEMPERATURE_ALL_ONES_START_STRING;
case (14501):
return TEMPERATURE_ALL_ONES_RECOVERY_STRING;
case (14600):
return FAULT_HANDLER_TRIGGERED_STRING;
default:
return "UNKNOWN_EVENT";
}

View File

@ -1,15 +1,17 @@
/**
* @brief Auto-generated object translation file.
* @details
* Contains 171 translations.
* Generated on: 2023-06-21 19:01:02
* Contains 176 translations.
* Generated on: 2024-05-06 13:47:38
*/
#include "translateObjects.h"
const char *TEST_TASK_STRING = "TEST_TASK";
const char *ACS_CONTROLLER_STRING = "ACS_CONTROLLER";
const char *CORE_CONTROLLER_STRING = "CORE_CONTROLLER";
const char *POWER_CONTROLLER_STRING = "POWER_CONTROLLER";
const char *GLOBAL_JSON_CFG_STRING = "GLOBAL_JSON_CFG";
const char *XIPHOS_WDT_STRING = "XIPHOS_WDT";
const char *THERMAL_CONTROLLER_STRING = "THERMAL_CONTROLLER";
const char *DUMMY_HANDLER_STRING = "DUMMY_HANDLER";
const char *MGM_0_LIS3_HANDLER_STRING = "MGM_0_LIS3_HANDLER";
@ -63,6 +65,7 @@ const char *PTME_VC3_CFDP_TM_STRING = "PTME_VC3_CFDP_TM";
const char *PLOC_MPSOC_HANDLER_STRING = "PLOC_MPSOC_HANDLER";
const char *PLOC_SUPERVISOR_HANDLER_STRING = "PLOC_SUPERVISOR_HANDLER";
const char *PLOC_SUPERVISOR_HELPER_STRING = "PLOC_SUPERVISOR_HELPER";
const char *PLOC_MPSOC_COMMUNICATION_STRING = "PLOC_MPSOC_COMMUNICATION";
const char *SCEX_STRING = "SCEX";
const char *SOLAR_ARRAY_DEPL_HANDLER_STRING = "SOLAR_ARRAY_DEPL_HANDLER";
const char *HEATER_HANDLER_STRING = "HEATER_HANDLER";
@ -159,11 +162,13 @@ const char *PUS_TM_FUNNEL_STRING = "PUS_TM_FUNNEL";
const char *CFDP_TM_FUNNEL_STRING = "CFDP_TM_FUNNEL";
const char *CFDP_HANDLER_STRING = "CFDP_HANDLER";
const char *CFDP_DISTRIBUTOR_STRING = "CFDP_DISTRIBUTOR";
const char *CFDP_FAULT_HANDLER_STRING = "CFDP_FAULT_HANDLER";
const char *EIVE_SYSTEM_STRING = "EIVE_SYSTEM";
const char *ACS_SUBSYSTEM_STRING = "ACS_SUBSYSTEM";
const char *PL_SUBSYSTEM_STRING = "PL_SUBSYSTEM";
const char *TCS_SUBSYSTEM_STRING = "TCS_SUBSYSTEM";
const char *COM_SUBSYSTEM_STRING = "COM_SUBSYSTEM";
const char *EPS_SUBSYSTEM_STRING = "EPS_SUBSYSTEM";
const char *MISC_TM_STORE_STRING = "MISC_TM_STORE";
const char *OK_TM_STORE_STRING = "OK_TM_STORE";
const char *NOT_OK_TM_STORE_STRING = "NOT_OK_TM_STORE";
@ -186,8 +191,12 @@ const char *translateObject(object_id_t object) {
return ACS_CONTROLLER_STRING;
case 0x43000003:
return CORE_CONTROLLER_STRING;
case 0x43000004:
return POWER_CONTROLLER_STRING;
case 0x43000006:
return GLOBAL_JSON_CFG_STRING;
case 0x43000007:
return XIPHOS_WDT_STRING;
case 0x43400001:
return THERMAL_CONTROLLER_STRING;
case 0x44000001:
@ -294,6 +303,8 @@ const char *translateObject(object_id_t object) {
return PLOC_SUPERVISOR_HANDLER_STRING;
case 0x44330017:
return PLOC_SUPERVISOR_HELPER_STRING;
case 0x44330018:
return PLOC_MPSOC_COMMUNICATION_STRING;
case 0x44330032:
return SCEX_STRING;
case 0x444100A2:
@ -486,6 +497,8 @@ const char *translateObject(object_id_t object) {
return CFDP_HANDLER_STRING;
case 0x73000206:
return CFDP_DISTRIBUTOR_STRING;
case 0x73000207:
return CFDP_FAULT_HANDLER_STRING;
case 0x73010000:
return EIVE_SYSTEM_STRING;
case 0x73010001:
@ -496,6 +509,8 @@ const char *translateObject(object_id_t object) {
return TCS_SUBSYSTEM_STRING;
case 0x73010004:
return COM_SUBSYSTEM_STRING;
case 0x73010005:
return EPS_SUBSYSTEM_STRING;
case 0x73020001:
return MISC_TM_STORE_STRING;
case 0x73020002:

View File

@ -1,4 +1,4 @@
#include "ObjectFactory.h"
#include "objectFactory.h"
#include <fsfw/power/DummyPowerSwitcher.h>
#include <fsfw/tmtcservices/CommandingServiceBase.h>
@ -38,9 +38,7 @@
#include "devices/gpioIds.h"
#include "fsfw_hal/linux/gpio/Gpio.h"
#include "linux/payload/PlocMpsocHandler.h"
#include "linux/payload/PlocMpsocSpecialComHelper.h"
#include "linux/payload/PlocSupervisorHandler.h"
#include "linux/payload/FreshSupvHandler.h"
#include "linux/payload/PlocSupvUartMan.h"
#include "test/gpio/DummyGpioIF.h"
#endif
@ -61,14 +59,14 @@ void ObjectFactory::produce(void* args) {
CfdpTmFunnel* cfdpFunnel;
StorageManagerIF* tmStore;
StorageManagerIF* ipcStore;
PersistentTmStores persistentStores;
PersistentTmStores persistentStores{};
bool enableHkSets = false;
#if OBSW_ENABLE_PERIODIC_HK == 1
enableHkSets = true;
#endif
auto sdcMan = new DummySdCardManager("/tmp");
ObjectFactory::produceGenericObjects(nullptr, &pusFunnel, &cfdpFunnel, *sdcMan, &ipcStore,
&tmStore, persistentStores, 120);
&tmStore, persistentStores, 120, enableHkSets, false);
new TmFunnelHandler(objects::LIVE_TM_TASK, *pusFunnel, *cfdpFunnel);
auto* dummyGpioIF = new DummyGpioIF();
@ -79,7 +77,10 @@ void ObjectFactory::produce(void* args) {
switcherList.emplace_back(initVal);
}
dummySwitcher->setInitialSwitcherList(switcherList);
#ifdef PLATFORM_UNIX
// Obsolete dev handler..
/*
new SerialComIF(objects::UART_COM_IF);
#if OBSW_ADD_PLOC_MPSOC == 1
std::string mpscoDev = "";
@ -90,21 +91,25 @@ void ObjectFactory::produce(void* args) {
new PlocMpsocHandler(objects::PLOC_MPSOC_HANDLER, objects::UART_COM_IF, mpsocCookie,
plocMpsocHelper, Gpio(gpioIds::ENABLE_MPSOC_UART, dummyGpioIF),
objects::PLOC_SUPERVISOR_HANDLER);
#endif /* OBSW_ADD_PLOC_MPSOC == 1 */
#endif // OBSW_ADD_PLOC_MPSOC == 1
*/
#if OBSW_ADD_PLOC_SUPERVISOR == 1
std::string plocSupvString = "/dev/ploc_supv";
auto supervisorCookie =
new SerialCookie(objects::PLOC_SUPERVISOR_HANDLER, plocSupvString, uart::PLOC_SUPV_BAUD,
supv::MAX_PACKET_SIZE * 20, UartModes::NON_CANONICAL);
supervisorCookie->setNoFixedSizeReply();
auto supvHelper = new PlocSupvUartManager(objects::PLOC_SUPERVISOR_HELPER);
new PlocSupervisorHandler(objects::PLOC_SUPERVISOR_HANDLER, supervisorCookie,
Gpio(gpioIds::ENABLE_SUPV_UART, dummyGpioIF), pcdu::PDU1_CH6_PLOC_12V,
*supvHelper);
new PlocSupvUartManager(objects::PLOC_SUPERVISOR_HELPER);
DhbConfig dhbConf(objects::PLOC_SUPERVISOR_HANDLER);
auto* supvHandler =
new FreshSupvHandler(dhbConf, supervisorCookie, Gpio(gpioIds::ENABLE_SUPV_UART, dummyGpioIF),
dummySwitcher, power::PDU1_CH6_PLOC_12V);
#endif /* OBSW_ADD_PLOC_SUPERVISOR == 1 */
#endif
dummy::DummyCfg cfg;
cfg.addPlPcduDummy = true;
cfg.addCamSwitcherDummy = true;
dummy::createDummies(cfg, *dummySwitcher, dummyGpioIF, enableHkSets);
HeaterHandler* heaterHandler = nullptr;
@ -113,7 +118,7 @@ void ObjectFactory::produce(void* args) {
if (heaterHandler == nullptr) {
sif::error << "HeaterHandler could not be created" << std::endl;
} else {
ObjectFactory::createThermalController(*heaterHandler);
ObjectFactory::createThermalController(*heaterHandler, true);
}
new TestTask(objects::TEST_TASK);
}

View File

@ -13,8 +13,8 @@
#include <iostream>
#include "OBSWConfig.h"
#include "ObjectFactory.h"
#include "mission/scheduling.h"
#include "objectFactory.h"
#include "scheduling.h"
#ifdef LINUX
@ -69,21 +69,25 @@ void scheduling::initTasks() {
if (result != returnvalue::OK) {
sif::error << "Adding CFDP distributor failed" << std::endl;
}
#if OBSW_ADD_TMTC_UDP_SERVER == 1
result = tmtcDistributor->addComponent(objects::UDP_TMTC_SERVER);
if (result != returnvalue::OK) {
sif::error << "adding UDP server failed" << std::endl;
}
#endif
result = tmtcDistributor->addComponent(objects::TCP_TMTC_SERVER);
if (result != returnvalue::OK) {
sif::error << "adding TCP server failed" << std::endl;
}
#if OBSW_ADD_TMTC_UDP_SERVER == 1
PeriodicTaskIF* udpPollingTask = factory->createPeriodicTask(
"UDP_POLLING", 70, PeriodicTaskIF::MINIMUM_STACK_SIZE, 2.0, missedDeadlineFunc);
result = udpPollingTask->addComponent(objects::UDP_TMTC_POLLING_TASK);
if (result != returnvalue::OK) {
sif::error << "Add component UDP Polling failed" << std::endl;
}
#endif
PeriodicTaskIF* tcpPollingTask = factory->createPeriodicTask(
"TCP_POLLING", 70, PeriodicTaskIF::MINIMUM_STACK_SIZE, 2.0, missedDeadlineFunc);
result = tcpPollingTask->addComponent(objects::TCP_TMTC_POLLING_TASK);
@ -92,7 +96,7 @@ void scheduling::initTasks() {
}
PeriodicTaskIF* liveTmTask = factory->createPeriodicTask(
"LIVE_TM", 55, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.4, nullptr, &RR_SCHEDULING);
"LIVE_TM", 55, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.2, nullptr, &RR_SCHEDULING);
result = liveTmTask->addComponent(objects::LIVE_TM_TASK);
if (result != returnvalue::OK) {
scheduling::printAddObjectError("LIVE_TM", objects::LIVE_TM_TASK);
@ -179,6 +183,28 @@ void scheduling::initTasks() {
}
#endif
// If those are added at a later stage..
/*
PeriodicTaskIF* logTmTask = factory->createPeriodicTask(
"LOG_PSTORE", 0, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.0, nullptr);
result = logTmTask->addComponent(objects::LOG_STORE_AND_TM_TASK);
if (result != returnvalue::OK) {
scheduling::printAddObjectError("LOG_STORE_AND_TM", objects::LOG_STORE_AND_TM_TASK);
}
PeriodicTaskIF* hkTmTask =
factory->createPeriodicTask("HK_PSTORE", 0, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.0, nullptr);
result = hkTmTask->addComponent(objects::HK_STORE_AND_TM_TASK);
if (result != returnvalue::OK) {
scheduling::printAddObjectError("HK_STORE_AND_TM", objects::HK_STORE_AND_TM_TASK);
}
PeriodicTaskIF* cfdpTmTask = factory->createPeriodicTask(
"CFDP_PSTORE", 0, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.0, nullptr);
result = cfdpTmTask->addComponent(objects::CFDP_STORE_AND_TM_TASK);
if (result != returnvalue::OK) {
scheduling::printAddObjectError("CFDP_STORE_AND_TM", objects::CFDP_STORE_AND_TM_TASK);
}
*/
#if OBSW_ADD_PLOC_SUPERVISOR == 1
PeriodicTaskIF* supvHelperTask = factory->createPeriodicTask(
"PLOC_SUPV_HELPER", 20, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1.0, missedDeadlineFunc);
@ -201,7 +227,7 @@ void scheduling::initTasks() {
PeriodicTaskIF* dummyTask = factory->createPeriodicTask(
"DUMMY_TASK", 35, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.8, missedDeadlineFunc);
dummyTask->addComponent(objects::THERMAL_TEMP_INSERTER);
scheduling::scheduleTmpTempSensors(dummyTask);
scheduling::scheduleTmpTempSensors(dummyTask, true);
scheduling::scheduleRtdSensors(dummyTask);
dummyTask->addComponent(objects::SUS_0_N_LOC_XFYFZM_PT_XF);
dummyTask->addComponent(objects::SUS_1_N_LOC_XBYFZM_PT_XB);
@ -218,7 +244,9 @@ void scheduling::initTasks() {
sif::info << "Starting tasks.." << std::endl;
tmtcDistributor->startTask();
#if OBSW_ADD_TMTC_UDP_SERVER == 1
udpPollingTask->startTask();
#endif
tcpPollingTask->startTask();
liveTmTask->startTask();
@ -228,6 +256,12 @@ void scheduling::initTasks() {
pstTask->startTask();
thermalTask->startTask();
dummyTask->startTask();
// If those are added at a later stage..
// logTmTask->startTask();
// cfdpTmTask->startTask();
// hkTmTask->startTask();
#if OBSW_ADD_PLOC_SUPERVISOR == 1
supvHelperTask->startTask();
#endif

View File

@ -7,7 +7,8 @@ target_link_libraries(${SIMPLE_OBSW_NAME} PUBLIC ${LIB_FSFW_NAME})
target_compile_definitions(${SIMPLE_OBSW_NAME} PRIVATE "Q7S_SIMPLE_MODE")
add_subdirectory(simple)
target_sources(${OBSW_NAME} PUBLIC main.cpp obsw.cpp)
target_sources(${OBSW_NAME} PUBLIC main.cpp obsw.cpp scheduling.cpp
objectFactory.cpp)
add_subdirectory(boardtest)
@ -24,3 +25,4 @@ add_subdirectory(memory)
add_subdirectory(callbacks)
add_subdirectory(xadc)
add_subdirectory(fs)
add_subdirectory(acs)

View File

@ -0,0 +1 @@
# target_sources(${OBSW_NAME} PUBLIC <Source File List>)

View File

@ -0,0 +1,23 @@
#include <optional>
#include "bsp_q7s/fs/SdCardManager.h"
#include "mission/acs/str/strHelpers.h"
class StrConfigPathGetter : public startracker::SdCardConfigPathGetter {
public:
StrConfigPathGetter(SdCardManager& sdcMan) : sdcMan(sdcMan) {}
std::optional<std::string> getCfgPath() override {
if (!sdcMan.isSdCardUsable(std::nullopt)) {
return std::nullopt;
}
if (sdcMan.getActiveSdCard() == sd::SdCard::SLOT_1) {
return std::string("/mnt/sd1/startracker/flight-config.json");
} else {
return std::string("/mnt/sd0/startracker/flight-config.json");
}
}
private:
SdCardManager& sdcMan;
};

View File

@ -12,10 +12,14 @@ static constexpr char SPI_RW_DEV[] = "/dev/spi_rw";
static constexpr char I2C_PL_EIVE[] = "/dev/i2c_pl";
//! I2C bus using the I2C peripheral of the ARM processing system (PS)
static constexpr char I2C_PS_EIVE[] = "/dev/i2c_ps";
//! I2C bus using the first I2C peripheral of the ARM processing system (PS).
//! Named like this because it is used by default for the Q7 devices.
static constexpr char I2C_Q7_EIVE[] = "/dev/i2c_q7";
static constexpr char UART_GNSS_DEV[] = "/dev/gps0";
static constexpr char UART_PLOC_MPSOC_DEV[] = "/dev/ul_plmpsoc";
static constexpr char UART_PLOC_SUPERVSIOR_DEV[] = "/dev/ploc_supv";
static constexpr char UART_PLOC_SUPERVISOR_DEV_FALLBACK[] = "/dev/ttyUL4";
static constexpr char UART_PLOC_SUPERVISOR_DEV[] = "/dev/ploc_supv";
static constexpr char UART_SYRLINKS_DEV[] = "/dev/ul_syrlinks";
static constexpr char UART_STAR_TRACKER_DEV[] = "/dev/ul_str";
static constexpr char UART_SCEX_DEV[] = "/dev/scex";

View File

@ -218,15 +218,30 @@ void Q7STestTask::testProtHandler() {
bool opPerformed = false;
ReturnValue_t result = returnvalue::OK;
// If any chips are unlocked, lock them here
result = coreController->setBootCopyProtection(xsc::Chip::ALL_CHIP, xsc::Copy::ALL_COPY, true,
opPerformed, true);
result = coreController->setBootCopyProtectionAndUpdateFile(xsc::Chip::CHIP_0, xsc::Copy::COPY_0,
true);
if (result != returnvalue::OK) {
sif::warning << "Q7STestTask::testProtHandler: Op failed" << std::endl;
}
result = coreController->setBootCopyProtectionAndUpdateFile(xsc::Chip::CHIP_0, xsc::Copy::COPY_1,
true);
if (result != returnvalue::OK) {
sif::warning << "Q7STestTask::testProtHandler: Op failed" << std::endl;
}
result = coreController->setBootCopyProtectionAndUpdateFile(xsc::Chip::CHIP_1, xsc::Copy::COPY_0,
true);
if (result != returnvalue::OK) {
sif::warning << "Q7STestTask::testProtHandler: Op failed" << std::endl;
}
result = coreController->setBootCopyProtectionAndUpdateFile(xsc::Chip::CHIP_1, xsc::Copy::COPY_1,
true);
if (result != returnvalue::OK) {
sif::warning << "Q7STestTask::testProtHandler: Op failed" << std::endl;
}
// unlock own copy
result = coreController->setBootCopyProtection(xsc::Chip::SELF_CHIP, xsc::Copy::SELF_COPY, false,
opPerformed, true);
result = coreController->setBootCopyProtectionAndUpdateFile(xsc::Chip::SELF_CHIP,
xsc::Copy::SELF_COPY, false);
if (result != returnvalue::OK) {
sif::warning << "Q7STestTask::testProtHandler: Op failed" << std::endl;
}
@ -239,8 +254,8 @@ void Q7STestTask::testProtHandler() {
}
// lock own copy
result = coreController->setBootCopyProtection(xsc::Chip::SELF_CHIP, xsc::Copy::SELF_COPY, true,
opPerformed, true);
result = coreController->setBootCopyProtectionAndUpdateFile(xsc::Chip::SELF_CHIP,
xsc::Copy::SELF_COPY, true);
if (result != returnvalue::OK) {
sif::warning << "Q7STestTask::testProtHandler: Op failed" << std::endl;
}
@ -253,8 +268,8 @@ void Q7STestTask::testProtHandler() {
}
// unlock specific copy
result = coreController->setBootCopyProtection(xsc::Chip::CHIP_1, xsc::Copy::COPY_1, false,
opPerformed, true);
result = coreController->setBootCopyProtectionAndUpdateFile(xsc::Chip::CHIP_1, xsc::Copy::COPY_1,
false);
if (result != returnvalue::OK) {
sif::warning << "Q7STestTask::testProtHandler: Op failed" << std::endl;
}
@ -267,8 +282,8 @@ void Q7STestTask::testProtHandler() {
}
// lock specific copy
result = coreController->setBootCopyProtection(xsc::Chip::CHIP_1, xsc::Copy::COPY_1, true,
opPerformed, true);
result = coreController->setBootCopyProtectionAndUpdateFile(xsc::Chip::CHIP_1, xsc::Copy::COPY_1,
true);
if (result != returnvalue::OK) {
sif::warning << "Q7STestTask::testProtHandler: Op failed" << std::endl;
}

View File

@ -1,4 +1,2 @@
target_sources(${OBSW_NAME} PRIVATE CoreController.cpp scheduling.cpp
ObjectFactory.cpp WatchdogHandler.cpp)
target_sources(${SIMPLE_OBSW_NAME} PRIVATE scheduling.cpp)
target_sources(${OBSW_NAME} PRIVATE CoreController.cpp WatchdogHandler.cpp
XiphosWdtHandler.cpp)

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,7 @@
#ifndef BSP_Q7S_CORE_CORECONTROLLER_H_
#define BSP_Q7S_CORE_CORECONTROLLER_H_
#include <bsp_q7s/core/defs.h>
#include <fsfw/container/DynamicFIFO.h>
#include <fsfw/container/SimpleRingBuffer.h>
#include <fsfw/globalfunctions/PeriodicOperationDivider.h>
@ -8,13 +9,12 @@
#include <fsfw/parameters/ReceivesParameterMessagesIF.h>
#include <fsfw_hal/linux/uio/UioMapper.h>
#include <libxiphos.h>
#include <mission/acs/archive/GPSDefinitions.h>
#include <linux/acs/GPSDefinitions.h>
#include <mission/utility/trace.h>
#include <atomic>
#include <cstddef>
#include "CoreDefinitions.h"
#include "OBSWConfig.h"
#include "bsp_q7s/fs/SdCardManager.h"
#include "events/subsystemIdRanges.h"
@ -24,7 +24,7 @@
class Timer;
class SdCardManager;
struct RebootFile {
struct RebootWatchdogFile {
static constexpr uint8_t DEFAULT_MAX_BOOT_CNT = 10;
bool enabled = true;
@ -45,9 +45,9 @@ struct RebootFile {
xsc::Copy mechanismNextCopy = xsc::Copy::NO_COPY;
};
class RebootMechanismPacket : public SerialLinkedListAdapter<SerializeIF> {
class RebootWatchdogPacket : public SerialLinkedListAdapter<SerializeIF> {
public:
RebootMechanismPacket(RebootFile& rf) {
RebootWatchdogPacket(RebootWatchdogFile& rf) {
enabled = rf.enabled;
maxCount = rf.maxCount;
img00Count = rf.img00Cnt;
@ -100,6 +100,38 @@ class RebootMechanismPacket : public SerialLinkedListAdapter<SerializeIF> {
SerializeElement<uint8_t> nextCopy = 0;
};
struct RebootCountersFile {
// 16 bit values so all boot counters fit into one event.
uint16_t img00Cnt = 0;
uint16_t img01Cnt = 0;
uint16_t img10Cnt = 0;
uint16_t img11Cnt = 0;
};
class RebootCountersPacket : public SerialLinkedListAdapter<SerializeIF> {
RebootCountersPacket(RebootCountersFile& rf) {
img00Count = rf.img00Cnt;
img01Count = rf.img01Cnt;
img10Count = rf.img10Cnt;
img11Count = rf.img11Cnt;
setLinks();
}
private:
void setLinks() {
setStart(&img00Count);
img00Count.setNext(&img01Count);
img01Count.setNext(&img10Count);
img10Count.setNext(&img11Count);
setLast(&img11Count);
}
SerializeElement<uint16_t> img00Count = 0;
SerializeElement<uint16_t> img01Count = 0;
SerializeElement<uint16_t> img10Count = 0;
SerializeElement<uint16_t> img11Count = 0;
};
class CoreController : public ExtendedControllerBase, public ReceivesParameterMessagesIF {
public:
enum ParamId : uint8_t { PREF_SD = 0, NUM_IDS };
@ -113,10 +145,17 @@ class CoreController : public ExtendedControllerBase, public ReceivesParameterMe
const std::string VERSION_FILE =
"/" + std::string(core::CONF_FOLDER) + "/" + std::string(core::VERSION_FILE_NAME);
const std::string REBOOT_FILE =
"/" + std::string(core::CONF_FOLDER) + "/" + std::string(core::REBOOT_FILE_NAME);
const std::string LEGACY_REBOOT_WATCHDOG_FILE =
"/" + std::string(core::CONF_FOLDER) + "/" +
std::string(core::LEGACY_REBOOT_WATCHDOG_FILE_NAME);
const std::string REBOOT_WATCHDOG_FILE =
"/" + std::string(core::CONF_FOLDER) + "/" + std::string(core::REBOOT_WATCHDOG_FILE_NAME);
const std::string LEAP_SECONDS_FILE =
"/" + std::string(core::CONF_FOLDER) + "/" + std::string(core::LEAP_SECONDS_FILE_NAME);
const std::string BACKUP_TIME_FILE =
"/" + std::string(core::CONF_FOLDER) + "/" + std::string(core::TIME_FILE_NAME);
const std::string REBOOT_COUNTERS_FILE =
"/" + std::string(core::CONF_FOLDER) + "/" + std::string(core::REBOOT_COUNTER_FILE_NAME);
static constexpr char CHIP_0_COPY_0_MOUNT_DIR[] = "/tmp/mntupdate-xdi-qspi0-nom-rootfs";
static constexpr char CHIP_0_COPY_1_MOUNT_DIR[] = "/tmp/mntupdate-xdi-qspi0-gold-rootfs";
@ -162,8 +201,8 @@ class CoreController : public ExtendedControllerBase, public ReceivesParameterMe
* @param updateProtFile Specify whether the protection info file is updated
* @return
*/
ReturnValue_t setBootCopyProtection(xsc::Chip targetChip, xsc::Copy targetCopy, bool protect,
bool& protOperationPerformed, bool updateProtFile = true);
ReturnValue_t setBootCopyProtectionAndUpdateFile(xsc::Chip targetChip, xsc::Copy targetCopy,
bool protect);
bool sdInitFinished() const;
@ -172,7 +211,7 @@ class CoreController : public ExtendedControllerBase, public ReceivesParameterMe
static constexpr MutexIF::TimeoutType TIMEOUT_TYPE = MutexIF::TimeoutType::WAITING;
static constexpr uint32_t MUTEX_TIMEOUT = 20;
bool enableHkSet = false;
GpsHyperion::FixMode gpsFix = GpsHyperion::FixMode::UNKNOWN;
GpsHyperion::FixMode gpsFix = GpsHyperion::FixMode::NOT_SEEN;
// States for SD state machine, which is used in non-blocking mode
enum class SdStates {
@ -248,7 +287,8 @@ class CoreController : public ExtendedControllerBase, public ReceivesParameterMe
std::array<uint8_t, 1024> dirListingBuf{};
DirListingDumpContext dumpContext{};
RebootFile rebootFile = {};
RebootWatchdogFile rebootWatchdogFile = {};
RebootCountersFile rebootCountersFile = {};
CommandExecutor cmdExecutor;
SimpleRingBuffer cmdReplyBuf;
@ -258,6 +298,7 @@ class CoreController : public ExtendedControllerBase, public ReceivesParameterMe
std::string currMntPrefix;
bool timeFileInitDone = false;
bool leapSecondsInitDone = false;
bool performOneShotSdCardOpsSwitch = false;
uint8_t shortSdCardCdCounter = 0;
#if OBSW_THREAD_TRACING == 1
@ -266,12 +307,10 @@ class CoreController : public ExtendedControllerBase, public ReceivesParameterMe
Countdown sdCardCheckCd = Countdown(INIT_SD_CARD_CHECK_TIMEOUT);
/**
* Index 0: Chip 0 Copy 0
* Index 1: Chip 0 Copy 1
* Index 2: Chip 1 Copy 0
* Index 3: Chip 1 Copy 1
* First index: Chip.
* Second index: Copy.
*/
std::array<bool, 4> protArray;
bool protArray[2][2]{};
PeriodicOperationDivider opDivider5;
PeriodicOperationDivider opDivider10;
@ -299,7 +338,11 @@ class CoreController : public ExtendedControllerBase, public ReceivesParameterMe
void performMountedSdCardOperations();
ReturnValue_t initVersionFile();
void initLeapSeconds();
ReturnValue_t initLeapSecondsFromFile();
ReturnValue_t initClockFromTimeFile();
ReturnValue_t actionUpdateLeapSeconds(const uint8_t* data);
ReturnValue_t writeLeapSecondsToFile(const uint16_t leapSeconds);
ReturnValue_t performSdCardCheck();
ReturnValue_t backupTimeFileHandler();
ReturnValue_t initBootCopyFile();
@ -318,12 +361,14 @@ class CoreController : public ExtendedControllerBase, public ReceivesParameterMe
void currentStateSetter(sd::SdCard sdCard, sd::SdState newState);
void executeNextExternalSdCommand();
void checkExternalSdCommandStatus();
void performRebootFileHandling(bool recreateFile);
void performRebootWatchdogHandling(bool recreateFile);
void performRebootCountersHandling(bool recreateFile);
ReturnValue_t actionListDirectoryIntoFile(ActionId_t actionId, MessageQueueId_t commandedBy,
const uint8_t* data, size_t size);
ReturnValue_t actionListDirectoryDumpDirectly(ActionId_t actionId, MessageQueueId_t commandedBy,
const uint8_t* data, size_t size);
ReturnValue_t performGracefulShutdown(xsc::Chip targetChip, xsc::Copy targetCopy);
ReturnValue_t actionListDirectoryCommonCommandCreator(const uint8_t* data, size_t size,
std::ostringstream& oss);
@ -334,18 +379,20 @@ class CoreController : public ExtendedControllerBase, public ReceivesParameterMe
ReturnValue_t gracefulShutdownTasks(xsc::Chip chip, xsc::Copy copy, bool& protOpPerformed);
ReturnValue_t handleProtInfoUpdateLine(std::string nextLine);
int handleBootCopyProtAtIndex(xsc::Chip targetChip, xsc::Copy targetCopy, bool protect,
bool& protOperationPerformed, bool selfChip, bool selfCopy,
bool allChips, bool allCopies, uint8_t arrIdx);
void determineAndExecuteReboot(RebootFile& rf, bool& needsReboot, xsc::Chip& tgtChip,
xsc::Copy& tgtCopy);
void resetRebootCount(xsc::Chip tgtChip, xsc::Copy tgtCopy);
ReturnValue_t handleSwitchingSdCardsOffNonBlocking();
bool handleBootCopyProt(xsc::Chip targetChip, xsc::Copy targetCopy, bool protect);
void rebootWatchdogAlgorithm(RebootWatchdogFile& rf, bool& needsReboot, xsc::Chip& tgtChip,
xsc::Copy& tgtCopy);
void resetRebootWatchdogCounters(xsc::Chip tgtChip, xsc::Copy tgtCopy);
void setRebootMechanismLock(bool lock, xsc::Chip tgtChip, xsc::Copy tgtCopy);
bool parseRebootFile(std::string path, RebootFile& file);
void rewriteRebootFile(RebootFile file);
bool parseRebootWatchdogFile(std::string path, RebootWatchdogFile& file);
bool parseRebootCountersFile(std::string path, RebootCountersFile& file);
void rewriteRebootWatchdogFile(RebootWatchdogFile file);
void rewriteRebootCountersFile(RebootCountersFile file);
void announceBootCounts();
void announceVersionInfo();
void announceCurrentImageInfo();
void announceSdInfo(SdCardManager::SdStatePair sdStates);
void readHkData();
void dirListingDumpHandler();
bool isNumber(const std::string& s);

View File

@ -0,0 +1,122 @@
#include "XiphosWdtHandler.h"
#include "fsfw/ipc/QueueFactory.h"
XiphosWdtHandler::XiphosWdtHandler(object_id_t objectId)
: SystemObject(objectId),
requestQueue(QueueFactory::instance()->createMessageQueue()),
actionHelper(this, requestQueue) {}
ReturnValue_t XiphosWdtHandler::initialize() {
ReturnValue_t result = actionHelper.initialize();
if (result != returnvalue::OK) {
return result;
}
int retval = xsc_watchdog_init(&wdtHandle);
if (retval != 0) {
sif::error << "XiphosWdtHandler: Initiating watchdog failed with code " << retval << ": "
<< strerror(retval) << std::endl;
return ObjectManagerIF::CHILD_INIT_FAILED;
}
if (wdtHandle == nullptr) {
sif::error << "XiphosWdtHandler: WDT handle is nullptr!" << std::endl;
return ObjectManagerIF::CHILD_INIT_FAILED;
}
retval = xsc_watchdog_set_timeout(wdtHandle, timeoutSeconds);
if (retval != 0) {
// This propably means that the default timeout is used. Still continue with task init.
sif::warning << "XiphosWdtHandler: Setting WDT timeout of " << timeoutSeconds
<< " seconds failed with code " << result << ": " << strerror(retval) << std::endl;
}
return enableWdt();
}
ReturnValue_t XiphosWdtHandler::performOperation(uint8_t opCode) {
CommandMessage command;
ReturnValue_t result;
for (result = requestQueue->receiveMessage(&command); result == returnvalue::OK;
result = requestQueue->receiveMessage(&command)) {
result = actionHelper.handleActionMessage(&command);
if (result == returnvalue::OK) {
continue;
}
sif::warning << "Can not handle message with message type " << command.getMessageType()
<< std::endl;
}
if (enabled) {
int retval = xsc_watchdog_keepalive(wdtHandle);
if (retval != 0) {
sif::warning << "XiphosWdtHandler: Feeding WDT failed with code " << retval << ": "
<< strerror(retval) << std::endl;
return returnvalue::FAILED;
}
}
return returnvalue::OK;
}
ReturnValue_t XiphosWdtHandler::executeAction(ActionId_t actionId, MessageQueueId_t commandedBy,
const uint8_t *data, size_t size) {
switch (actionId) {
case (ActionId::ENABLE): {
ReturnValue_t result = enableWdt();
if (result != returnvalue::OK) {
return result;
}
return EXECUTION_FINISHED;
}
case (ActionId::DISABLE): {
ReturnValue_t result = disableWdt();
if (result != returnvalue::OK) {
return result;
}
return EXECUTION_FINISHED;
}
}
return HasActionsIF::INVALID_ACTION_ID;
}
ReturnValue_t XiphosWdtHandler::enableWdt() {
int nowayout = 0;
int status = 0;
int retval = xsc_watchdog_get_status(&nowayout, &status);
// If this fails for whatever reason, just try enabling in any case.
if (retval != 0) {
sif::warning << "XiphosWdtHandler: Getting WDT status failed" << std::endl;
}
// Of course the enable API will fail if the device is already on, just perfect, love me some
// good C API... :)))
if (retval != 0 or status == 0) {
retval = xsc_watchdog_enable(wdtHandle);
if (retval != 0) {
sif::error << "XiphosWdtHandler: Enabling WDT failed with code " << retval << ": "
<< strerror(retval) << std::endl;
return returnvalue::FAILED;
}
}
enabled = true;
return returnvalue::OK;
}
ReturnValue_t XiphosWdtHandler::disableWdt() {
int nowayout = 0;
int status = 0;
int retval = xsc_watchdog_get_status(&nowayout, &status);
// If this fails for whatever reason, just try disabling in any case.
if (retval != 0) {
sif::warning << "XiphosWdtHandler: Getting WDT status failed" << std::endl;
}
// Of course the disable API will fail if the device is already off, just perfect, love me some
// good C API... :)))
if (retval != 0 or status == 1) {
retval = xsc_watchdog_disable(wdtHandle);
if (retval != 0) {
sif::error << "XiphosWdtHandler: Disabling WDT failed with code " << retval << ": "
<< strerror(retval) << std::endl;
return returnvalue::FAILED;
}
}
enabled = false;
return returnvalue::OK;
}
MessageQueueId_t XiphosWdtHandler::getCommandQueue() const { return requestQueue->getId(); }

View File

@ -0,0 +1,36 @@
#ifndef BSP_Q7S_CORE_XIPHOSWDTHANDLER_H_
#define BSP_Q7S_CORE_XIPHOSWDTHANDLER_H_
#include <fsfw/action/HasActionsIF.h>
#include <fsfw/objectmanager/SystemObject.h>
#include <fsfw/tasks/ExecutableObjectIF.h>
#include <libxiphos.h>
class XiphosWdtHandler : public SystemObject, public ExecutableObjectIF, public HasActionsIF {
public:
enum ActionId { ENABLE = 0, DISABLE = 1 };
XiphosWdtHandler(object_id_t objectId);
ReturnValue_t performOperation(uint8_t opCode) override;
ReturnValue_t initialize() override;
ReturnValue_t executeAction(ActionId_t actionId, MessageQueueId_t commandedBy,
const uint8_t* data, size_t size) override;
[[nodiscard]] virtual MessageQueueId_t getCommandQueue() const override;
private:
// Wrappers to ensure idempotency of trash C API.
ReturnValue_t enableWdt();
ReturnValue_t disableWdt();
// Timeout duration range specified by Xiphos: 0.001 seconds to 171 seconds. The libxiphos API
// expects an int, so I guess this translates to 1 to 171 seconds.
// WARNING: DO NOT SET THIS HIGHER THAN 80 SECONDS!
// Possible bug in Xiphos/Xilinx kernel driver for watchdog, related to overflow.
int timeoutSeconds = 80;
bool enabled = false;
struct watchdog_s* wdtHandle = nullptr;
MessageQueueIF* requestQueue = nullptr;
ActionHelper actionHelper;
};
#endif /* BSP_Q7S_CORE_XIPHOSWDTHANDLER_H_ */

View File

@ -1,10 +1,16 @@
#ifndef BSP_Q7S_CORE_COREDEFINITIONS_H_
#define BSP_Q7S_CORE_COREDEFINITIONS_H_
#ifndef BSP_Q7S_CORE_DEFS_H_
#define BSP_Q7S_CORE_DEFS_H_
#include <fsfw/datapoollocal/StaticLocalDataSet.h>
namespace core {
extern uint8_t FW_VERSION_MAJOR;
extern uint8_t FW_VERSION_MINOR;
extern uint8_t FW_VERSION_REVISION;
extern bool FW_VERSION_HAS_SHA;
extern char FW_VERSION_GIT_SHA[4];
static const uint8_t HK_SET_ENTRIES = 3;
static const uint32_t HK_SET_ID = 5;
@ -36,4 +42,4 @@ class HkSet : public StaticLocalDataSet<HK_SET_ENTRIES> {
} // namespace core
#endif /* BSP_Q7S_CORE_COREDEFINITIONS_H_ */
#endif /* BSP_Q7S_CORE_DEFS_H_ */

View File

@ -1,4 +1,6 @@
#include <bsp_q7s/callbacks/q7sGpioCallbacks.h>
#include <bsp_q7s/core/XiphosWdtHandler.h>
#include <bsp_q7s/objectFactory.h>
#include <dummies/ComCookieDummy.h>
#include <dummies/PcduHandlerDummy.h>
#include <fsfw/health/HealthTableIF.h>
@ -10,8 +12,8 @@
#include "OBSWConfig.h"
#include "bsp_q7s/core/CoreController.h"
#include "bsp_q7s/core/ObjectFactory.h"
#include "busConf.h"
#include "common/config/devices/addresses.h"
#include "devConf.h"
#include "dummies/helperFactory.h"
#include "eive/objects.h"
@ -35,16 +37,18 @@ void ObjectFactory::produce(void* args) {
#endif
PersistentTmStores stores;
readFirmwareVersion();
new XiphosWdtHandler(objects::XIPHOS_WDT);
ObjectFactory::produceGenericObjects(&healthTable, &pusFunnel, &cfdpFunnel,
*SdCardManager::instance(), &ipcStore, &tmStore, stores,
200);
*SdCardManager::instance(), &ipcStore, &tmStore, stores, 200,
enableHkSets, true);
LinuxLibgpioIF* gpioComIF = nullptr;
SerialComIF* uartComIF = nullptr;
SpiComIF* spiMainComIF = nullptr;
I2cComIF* i2cComIF = nullptr;
createCommunicationInterfaces(&gpioComIF, &uartComIF, &spiMainComIF, &i2cComIF);
/* Adding gpios for chip select decoding to the gpioComIf */
// Adding GPIOs for chip select decoding and initializing them.
q7s::gpioCallbacks::initSpiCsDecoder(gpioComIF);
gpioCallbacks::disableAllDecoder(gpioComIF);
createPlI2cResetGpio(gpioComIF);
@ -60,17 +64,41 @@ void ObjectFactory::produce(void* args) {
#if OBSW_ADD_PLOC_SUPERVISOR == 1 || OBSW_ADD_PLOC_MPSOC == 1
dummyCfg.addPlocDummies = false;
#endif
#if OBSW_ADD_TMP_DEVICES == 1
std::vector<std::pair<object_id_t, address_t>> tmpDevsToAdd = {{
{objects::TMP1075_HANDLER_PLPCDU_0, addresses::TMP1075_PLPCDU_0},
{objects::TMP1075_HANDLER_PLPCDU_1, addresses::TMP1075_PLPCDU_1},
{objects::TMP1075_HANDLER_IF_BOARD, addresses::TMP1075_IF_BOARD},
}};
createTmpComponents(tmpDevsToAdd);
dummy::Tmp1075Cfg tmpCfg{};
tmpCfg.addTcsBrd0 = true;
tmpCfg.addTcsBrd1 = true;
tmpCfg.addPlPcdu0 = false;
tmpCfg.addPlPcdu1 = false;
tmpCfg.addIfBrd = false;
dummyCfg.tmp1075Cfg = tmpCfg;
#endif
#if OBSW_ADD_GOMSPACE_PCDU == 1
dummyCfg.addPowerDummies = false;
// The ACU broke.
dummyCfg.addOnlyAcuDummy = true;
#endif
#if OBSW_ADD_STAR_TRACKER == 1
dummyCfg.addStrDummy = false;
#endif
#if OBSW_ADD_SCEX_DEVICE == 0
dummyCfg.addScexDummy = true;
#endif
#if OBSW_ADD_BPX_BATTERY_HANDLER == 1
dummyCfg.addBpxBattDummy = false;
#endif
#if OBSW_ADD_ACS_BOARD == 1
dummyCfg.addAcsBoardDummies = false;
#endif
#if OBSW_ADD_PL_PCDU == 0
dummyCfg.addPlPcduDummy = true;
#endif
PowerSwitchIF* pwrSwitcher = nullptr;
#if OBSW_ADD_GOMSPACE_PCDU == 0
@ -80,13 +108,28 @@ void ObjectFactory::produce(void* args) {
#endif
satsystem::EIVE_SYSTEM.setI2cRecoveryParams(pwrSwitcher);
const char* battAndImtqI2cDev = q7s::I2C_PL_EIVE;
if (core::FW_VERSION_MAJOR >= 4) {
battAndImtqI2cDev = q7s::I2C_PS_EIVE;
}
static_cast<void>(battAndImtqI2cDev);
#if OBSW_ADD_BPX_BATTERY_HANDLER == 1
createBpxBatteryComponent(enableHkSets, battAndImtqI2cDev);
#endif
createPowerController(true, enableHkSets);
dummy::createDummies(dummyCfg, *pwrSwitcher, gpioComIF, enableHkSets);
new CoreController(objects::CORE_CONTROLLER, enableHkSets);
#if OBSW_ADD_ACS_BOARD == 1
// Still initialize chip select to avoid SPI bus issues.
auto* stackHandler = new Stack5VHandler(*pwrSwitcher);
static_cast<void>(stackHandler);
// Initialize chip select to avoid SPI bus issues.
createRadSensorChipSelect(gpioComIF);
#if OBSW_ADD_ACS_BOARD == 1
createAcsBoardComponents(*spiMainComIF, gpioComIF, uartComIF, *pwrSwitcher, true,
adis1650x::Type::ADIS16507);
#else
@ -97,7 +140,7 @@ void ObjectFactory::produce(void* args) {
#endif
#if OBSW_ADD_MGT == 1
createImtqComponents(pwrSwitcher, enableHkSets);
createImtqComponents(pwrSwitcher, enableHkSets, battAndImtqI2cDev);
#endif
#if OBSW_ADD_SYRLINKS == 1
@ -108,28 +151,22 @@ void ObjectFactory::produce(void* args) {
createReactionWheelComponents(gpioComIF, pwrSwitcher);
#endif
#if OBSW_ADD_BPX_BATTERY_HANDLER == 1
createBpxBatteryComponent(enableHkSets);
#endif
#if OBSW_ADD_STAR_TRACKER == 1
createStrComponents(pwrSwitcher);
createStrComponents(pwrSwitcher, *SdCardManager::instance());
#endif /* OBSW_ADD_STAR_TRACKER == 1 */
#if OBSW_ADD_PL_PCDU == 1
createPlPcduComponents(gpioComIF, spiMainComIF, pwrSwitcher, *stackHandler);
#endif
createPayloadComponents(gpioComIF, *pwrSwitcher);
#if OBSW_ADD_CCSDS_IP_CORES == 1
CcsdsIpCoreHandler* ipCoreHandler = nullptr;
CcsdsComponentArgs ccsdsArgs(*gpioComIF, *ipcStore, *tmStore, stores, *pusFunnel, *cfdpFunnel,
&ipCoreHandler);
createCcsdsComponents(ccsdsArgs);
#if OBSW_TM_TO_PTME == 1
if (ccsdsArgs.liveDestination != nullptr) {
pusFunnel->addLiveDestination("VC0 LIVE TM", *ccsdsArgs.liveDestination, 0);
cfdpFunnel->addLiveDestination("VC0 LIVE TM", *ccsdsArgs.liveDestination, 0);
}
#endif
&ipCoreHandler, 0, 0);
createCcsdsIpComponentsWrapper(ccsdsArgs);
#endif /* OBSW_ADD_CCSDS_IP_CORES == 1 */
/* Test Task */
#if OBSW_ADD_TEST_CODE == 1
createTestComponents(gpioComIF);
@ -138,9 +175,9 @@ void ObjectFactory::produce(void* args) {
createScexComponents(q7s::UART_SCEX_DEV, pwrSwitcher, *SdCardManager::instance(), false,
power::Switches::PDU1_CH5_SOLAR_CELL_EXP_5V);
#endif
createAcsController(true, enableHkSets);
createAcsController(true, enableHkSets, *SdCardManager::instance());
HeaterHandler* heaterHandler;
createHeaterComponents(gpioComIF, pwrSwitcher, healthTable, heaterHandler);
createThermalController(*heaterHandler);
satsystem::init();
createThermalController(*heaterHandler, true);
satsystem::init(true);
}

View File

@ -1,4 +1,6 @@
#include <bsp_q7s/callbacks/q7sGpioCallbacks.h>
#include <bsp_q7s/core/XiphosWdtHandler.h>
#include <bsp_q7s/objectFactory.h>
#include <devices/gpioIds.h>
#include <fsfw/storagemanager/LocalPool.h>
#include <fsfw/storagemanager/PoolManager.h>
@ -7,9 +9,9 @@
#include "OBSWConfig.h"
#include "bsp_q7s/core/CoreController.h"
#include "bsp_q7s/core/ObjectFactory.h"
#include "busConf.h"
#include "devConf.h"
#include "devices/addresses.h"
#include "eive/objects.h"
#include "fsfw_hal/linux/gpio/LinuxLibgpioIF.h"
#include "linux/ObjectFactory.h"
@ -32,9 +34,11 @@ void ObjectFactory::produce(void* args) {
#endif
PersistentTmStores stores;
readFirmwareVersion();
new XiphosWdtHandler(objects::XIPHOS_WDT);
ObjectFactory::produceGenericObjects(&healthTable, &pusFunnel, &cfdpFunnel,
*SdCardManager::instance(), &ipcStore, &tmStore, stores,
200);
*SdCardManager::instance(), &ipcStore, &tmStore, stores, 200,
true, true);
LinuxLibgpioIF* gpioComIF = nullptr;
SerialComIF* uartComIF = nullptr;
@ -67,40 +71,52 @@ void ObjectFactory::produce(void* args) {
HeaterHandler* heaterHandler;
createHeaterComponents(gpioComIF, pwrSwitcher, healthTable, heaterHandler);
#if OBSW_ADD_TMP_DEVICES == 1
createTmpComponents();
std::vector<std::pair<object_id_t, address_t>> tmpDevsToAdd = {{
{objects::TMP1075_HANDLER_TCS_0, addresses::TMP1075_TCS_0},
{objects::TMP1075_HANDLER_TCS_1, addresses::TMP1075_TCS_1},
{objects::TMP1075_HANDLER_PLPCDU_0, addresses::TMP1075_PLPCDU_0},
// damaged
// {objects::TMP1075_HANDLER_PLPCDU_1, addresses::TMP1075_PLPCDU_1},
{objects::TMP1075_HANDLER_IF_BOARD, addresses::TMP1075_IF_BOARD},
}};
createTmpComponents(tmpDevsToAdd);
#endif
createSolarArrayDeploymentComponents(*pwrSwitcher, *gpioComIF);
createPlPcduComponents(gpioComIF, spiMainComIF, pwrSwitcher, *stackHandler);
#if OBSW_ADD_SYRLINKS == 1
createSyrlinksComponents(pwrSwitcher);
#endif /* OBSW_ADD_SYRLINKS == 1 */
createRtdComponents(q7s::SPI_DEFAULT_DEV, gpioComIF, pwrSwitcher, spiMainComIF);
createPayloadComponents(gpioComIF, *pwrSwitcher);
const char* battAndImtqI2cDev = q7s::I2C_PL_EIVE;
if (core::FW_VERSION_MAJOR >= 4) {
battAndImtqI2cDev = q7s::I2C_PS_EIVE;
}
#if OBSW_ADD_MGT == 1
createImtqComponents(pwrSwitcher, enableHkSets);
createImtqComponents(pwrSwitcher, enableHkSets, battAndImtqI2cDev);
#endif
createReactionWheelComponents(gpioComIF, pwrSwitcher);
#if OBSW_ADD_BPX_BATTERY_HANDLER == 1
createBpxBatteryComponent(enableHkSets);
createBpxBatteryComponent(enableHkSets, battAndImtqI2cDev);
#endif
createPowerController(true, enableHkSets);
#if OBSW_ADD_PL_PCDU == 1
createPlPcduComponents(gpioComIF, spiMainComIF, pwrSwitcher, *stackHandler);
#endif
#if OBSW_ADD_SYRLINKS == 1
createSyrlinksComponents(pwrSwitcher);
#endif /* OBSW_ADD_SYRLINKS == 1 */
createRtdComponents(q7s::SPI_DEFAULT_DEV, gpioComIF, pwrSwitcher, spiMainComIF);
createPayloadComponents(gpioComIF, *pwrSwitcher);
#if OBSW_ADD_STAR_TRACKER == 1
createStrComponents(pwrSwitcher);
createStrComponents(pwrSwitcher, *SdCardManager::instance());
#endif /* OBSW_ADD_STAR_TRACKER == 1 */
#if OBSW_ADD_CCSDS_IP_CORES == 1
CcsdsIpCoreHandler* ipCoreHandler = nullptr;
CcsdsComponentArgs ccsdsArgs(*gpioComIF, *ipcStore, *tmStore, stores, *pusFunnel, *cfdpFunnel,
&ipCoreHandler);
createCcsdsComponents(ccsdsArgs);
#if OBSW_TM_TO_PTME == 1
if (ccsdsArgs.liveDestination != nullptr) {
pusFunnel->addLiveDestination("VC0 LIVE TM", *ccsdsArgs.liveDestination, 0);
cfdpFunnel->addLiveDestination("VC0 LIVE TM", *ccsdsArgs.liveDestination, 0);
}
#endif
&ipCoreHandler, 0, 0);
createCcsdsIpComponentsWrapper(ccsdsArgs);
#endif /* OBSW_ADD_CCSDS_IP_CORES == 1 */
#if OBSW_ADD_SCEX_DEVICE == 1
@ -113,7 +129,7 @@ void ObjectFactory::produce(void* args) {
#endif /* OBSW_ADD_TEST_CODE == 1 */
createMiscComponents();
createThermalController(*heaterHandler);
createAcsController(true, enableHkSets);
satsystem::init();
createThermalController(*heaterHandler, false);
createAcsController(true, enableHkSets, *SdCardManager::instance());
satsystem::init(false);
}

View File

@ -125,13 +125,8 @@ ReturnValue_t SdCardManager::switchOnSdCard(sd::SdCard sdCard, bool doMountSdCar
return mountSdCard(sdCard);
}
ReturnValue_t SdCardManager::switchOffSdCard(sd::SdCard sdCard, bool doUnmountSdCard,
SdStatePair* statusPair) {
std::pair<sd::SdState, sd::SdState> active;
ReturnValue_t result = getSdCardsStatus(active);
if (result != returnvalue::OK) {
return result;
}
ReturnValue_t SdCardManager::switchOffSdCard(sd::SdCard sdCard, SdStatePair& sdStates,
bool doUnmountSdCard) {
if (doUnmountSdCard) {
if (not blocking) {
sif::warning << "SdCardManager::switchOffSdCard: Two-step command but manager is"
@ -147,17 +142,17 @@ ReturnValue_t SdCardManager::switchOffSdCard(sd::SdCard sdCard, bool doUnmountSd
return returnvalue::FAILED;
}
if (sdCard == sd::SdCard::SLOT_0) {
if (active.first == sd::SdState::OFF) {
if (sdStates.first == sd::SdState::OFF) {
return ALREADY_OFF;
}
} else if (sdCard == sd::SdCard::SLOT_1) {
if (active.second == sd::SdState::OFF) {
if (sdStates.second == sd::SdState::OFF) {
return ALREADY_OFF;
}
}
if (doUnmountSdCard) {
result = unmountSdCard(sdCard);
ReturnValue_t result = unmountSdCard(sdCard);
if (result != returnvalue::OK) {
return result;
}
@ -189,7 +184,7 @@ ReturnValue_t SdCardManager::setSdCardState(sd::SdCard sdCard, bool on) {
command << "q7hw sd set " << sdstring << " " << statestring;
cmdExecutor.load(command.str(), blocking, printCmdOutput);
ReturnValue_t result = cmdExecutor.execute();
if (blocking and result != returnvalue::OK) {
if (result != returnvalue::OK) {
utility::handleSystemError(cmdExecutor.getLastError(), "SdCardManager::setSdCardState");
}
return result;
@ -204,6 +199,7 @@ ReturnValue_t SdCardManager::getSdCardsStatus(SdStatePair& sdStates) {
ReturnValue_t SdCardManager::mountSdCard(sd::SdCard sdCard) {
using namespace std;
if (cmdExecutor.getCurrentState() == CommandExecutor::States::PENDING) {
sif::warning << "SdCardManager::mountSdCard: Command still pending" << std::endl;
return CommandExecutor::COMMAND_PENDING;
}
if (sdCard == sd::SdCard::BOTH) {

View File

@ -114,8 +114,7 @@ class SdCardManager : public SystemObject, public SdCardMountedIF {
* @return - returnvalue::OK on success, ALREADY_ON if it is already on,
* SYSTEM_CALL_ERROR on system error
*/
ReturnValue_t switchOffSdCard(sd::SdCard sdCard, bool doUnmountSdCard = true,
SdStatePair* statusPair = nullptr);
ReturnValue_t switchOffSdCard(sd::SdCard sdCard, SdStatePair& sdStates, bool doUnmountSdCard);
/**
* Get the state of the SD cards. If the state file does not exist, this function will

View File

@ -1,18 +1,19 @@
#include "ObjectFactory.h"
#include "objectFactory.h"
#include <fsfw/devicehandlers/HealthDevice.h>
#include <fsfw/subsystem/Subsystem.h>
#include <fsfw/tasks/TaskFactory.h>
#include <fsfw_hal/linux/uio/UioMapper.h>
#include <linux/acs/AcsBoardPolling.h>
#include <linux/acs/GpsHyperionLinuxController.h>
#include <linux/acs/ImtqPollingTask.h>
#include <linux/acs/RwPollingTask.h>
#include <linux/acs/StrComHandler.h>
#include <linux/com/SyrlinksComHandler.h>
#include <linux/payload/FreshMpsocHandler.h>
#include <linux/payload/MpsocCommunication.h>
#include <linux/payload/PlocMemoryDumper.h>
#include <linux/payload/PlocMpsocHandler.h>
#include <linux/payload/PlocMpsocSpecialComHelper.h>
#include <linux/payload/PlocSupervisorHandler.h>
#include <linux/payload/ScexUartReader.h>
#include <linux/payload/plocMpsocHelpers.h>
#include <linux/power/CspComIF.h>
@ -32,12 +33,14 @@
#include <mission/system/objects/CamSwitcher.h>
#include <mission/system/tcs/TmpDevFdir.h>
#include <cstdint>
#include <cstring>
#include "OBSWConfig.h"
#include "bsp_q7s/acs/StrConfigPathGetter.h"
#include "bsp_q7s/boardtest/Q7STestTask.h"
#include "bsp_q7s/callbacks/gnssCallback.h"
#include "bsp_q7s/callbacks/pcduSwitchCb.h"
#include "bsp_q7s/callbacks/q7sGpioCallbacks.h"
#include "bsp_q7s/callbacks/rwSpiCallback.h"
#include "busConf.h"
#include "ccsdsConfig.h"
#include "devConf.h"
@ -45,6 +48,7 @@
#include "devices/gpioIds.h"
#include "devices/powerSwitcherList.h"
#include "eive/definitions.h"
#include "eive/objects.h"
#include "fsfw/ipc/QueueFactory.h"
#include "linux/ObjectFactory.h"
#include "linux/boardtest/I2cTestClass.h"
@ -56,7 +60,12 @@
#include "linux/ipcore/PdecHandler.h"
#include "linux/ipcore/Ptme.h"
#include "linux/ipcore/PtmeConfig.h"
#include "linux/payload/FreshSupvHandler.h"
#include "linux/payload/MpsocCommunication.h"
#include "linux/payload/PlocMpsocSpecialComHelper.h"
#include "linux/payload/SerialConfig.h"
#include "mission/config/configfile.h"
#include "mission/power/defs.h"
#include "mission/system/acs/AcsBoardFdir.h"
#include "mission/system/acs/AcsSubsystem.h"
#include "mission/system/acs/RwAssembly.h"
@ -64,11 +73,11 @@
#include "mission/system/acs/acsModeTree.h"
#include "mission/system/com/SyrlinksFdir.h"
#include "mission/system/com/comModeTree.h"
#include "mission/system/payload/payloadModeTree.h"
#include "mission/system/power/GomspacePowerFdir.h"
#include "mission/system/tcs/RtdFdir.h"
#include "mission/system/tcs/TcsBoardAssembly.h"
#include "mission/system/tcs/tcsModeTree.h"
#include "mission/system/tree/payloadModeTree.h"
#include "mission/tmtc/tmFilters.h"
#include "mission/utility/GlobalConfigHandler.h"
#include "tmtc/pusIds.h"
@ -100,6 +109,7 @@
#include <sstream>
#include "bsp_q7s/core/defs.h"
#include "fsfw/datapoollocal/LocalDataPoolManager.h"
#include "fsfw/tmtcpacket/pus/tm.h"
#include "fsfw/tmtcservices/CommandingServiceBase.h"
@ -129,7 +139,12 @@ using gpio::Levels;
ResetArgs RESET_ARGS_GNSS;
std::atomic_bool LINK_STATE = CcsdsIpCoreHandler::LINK_DOWN;
std::atomic_bool PTME_LOCKED = false;
std::atomic_uint16_t I2C_FATAL_ERRORS = 0;
std::atomic_uint16_t signals::I2C_FATAL_ERRORS = 0;
uint8_t core::FW_VERSION_MAJOR = 0;
uint8_t core::FW_VERSION_MINOR = 0;
uint8_t core::FW_VERSION_REVISION = 0;
bool core::FW_VERSION_HAS_SHA = false;
char core::FW_VERSION_GIT_SHA[4] = {};
void Factory::setStaticFrameworkObjectIds() {
PusServiceBase::PUS_DISTRIBUTOR = objects::PUS_PACKET_DISTRIBUTOR;
@ -151,28 +166,23 @@ void Factory::setStaticFrameworkObjectIds() {
void ObjectFactory::setStatics() { Factory::setStaticFrameworkObjectIds(); }
void ObjectFactory::createTmpComponents() {
std::vector<std::pair<object_id_t, address_t>> tmpDevIds = {{
{objects::TMP1075_HANDLER_TCS_0, addresses::TMP1075_TCS_0},
{objects::TMP1075_HANDLER_TCS_1, addresses::TMP1075_TCS_1},
{objects::TMP1075_HANDLER_PLPCDU_0, addresses::TMP1075_PLPCDU_0},
// damaged
// {objects::TMP1075_HANDLER_PLPCDU_1, addresses::TMP1075_PLPCDU_1},
{objects::TMP1075_HANDLER_IF_BOARD, addresses::TMP1075_IF_BOARD},
}};
void ObjectFactory::createTmpComponents(
std::vector<std::pair<object_id_t, address_t>> tmpDevsToAdd) {
const char* tmpI2cDev = q7s::I2C_PS_EIVE;
if (core::FW_VERSION_MAJOR == 4) {
tmpI2cDev = q7s::I2C_PL_EIVE;
} else if (core::FW_VERSION_MAJOR >= 5) {
tmpI2cDev = q7s::I2C_Q7_EIVE;
}
std::vector<I2cCookie*> tmpDevCookies;
for (size_t idx = 0; idx < tmpDevIds.size(); idx++) {
for (size_t idx = 0; idx < tmpDevsToAdd.size(); idx++) {
tmpDevCookies.push_back(
new I2cCookie(tmpDevIds[idx].second, TMP1075::MAX_REPLY_LENGTH, q7s::I2C_PS_EIVE));
new I2cCookie(tmpDevsToAdd[idx].second, TMP1075::MAX_REPLY_LENGTH, tmpI2cDev));
auto* tmpDevHandler =
new Tmp1075Handler(tmpDevIds[idx].first, objects::I2C_COM_IF, tmpDevCookies[idx]);
tmpDevHandler->setCustomFdir(new TmpDevFdir(tmpDevIds[idx].first));
new Tmp1075Handler(tmpDevsToAdd[idx].first, objects::I2C_COM_IF, tmpDevCookies[idx]);
tmpDevHandler->setCustomFdir(new TmpDevFdir(tmpDevsToAdd[idx].first));
tmpDevHandler->connectModeTreeParent(satsystem::tcs::SUBSYSTEM);
// TODO: Remove this after TCS subsystem was added
// These devices are connected to the 3V3 stack and should be powered permanently. Therefore,
// we set them to normal mode immediately here.
tmpDevHandler->setModeNormal();
}
}
@ -244,7 +254,7 @@ ReturnValue_t ObjectFactory::createRadSensorComponent(LinuxLibgpioIF* gpioComIF,
createRadSensorChipSelect(gpioComIF);
SpiCookie* spiCookieRadSensor =
new SpiCookie(addresses::RAD_SENSOR, gpioIds::CS_RAD_SENSOR, RAD_SENSOR::READ_SIZE,
new SpiCookie(addresses::RAD_SENSOR, gpioIds::CS_RAD_SENSOR, radSens::READ_SIZE,
spi::DEFAULT_MAX_1227_MODE, spi::DEFAULT_MAX_1227_SPEED);
spiCookieRadSensor->setMutexParams(MutexIF::TimeoutType::WAITING, spi::RAD_SENSOR_CS_TIMEOUT);
auto radSensor = new RadiationSensorHandler(objects::RAD_SENSOR, objects::SPI_MAIN_COM_IF,
@ -506,7 +516,7 @@ void ObjectFactory::createAcsBoardComponents(SpiComIF& spiComIF, LinuxLibgpioIF*
debugGps = true;
#endif
RESET_ARGS_GNSS.gpioComIF = gpioComIF;
RESET_ARGS_GNSS.waitPeriodMs = 5;
RESET_ARGS_GNSS.waitPeriodMs = 10 * 1e3;
auto gpsCtrl = new GpsHyperionLinuxController(objects::GPS_CONTROLLER, objects::NO_OBJECT,
enableHkSets, debugGps);
gpsCtrl->setResetPinTriggerFunction(gps::triggerGpioResetPin, &RESET_ARGS_GNSS);
@ -607,11 +617,11 @@ void ObjectFactory::createSyrlinksComponents(PowerSwitchIF* pwrSwitcher) {
#endif
}
void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF, PowerSwitchIF& pwrSwitch) {
void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF, PowerSwitchIF& pwrSwitcher) {
using namespace gpio;
std::stringstream consumer;
auto* camSwitcher =
new CamSwitcher(objects::CAM_SWITCHER, pwrSwitch, power::PDU2_CH8_PAYLOAD_CAMERA);
new CamSwitcher(objects::CAM_SWITCHER, pwrSwitcher, power::PDU2_CH8_PAYLOAD_CAMERA);
camSwitcher->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
#if OBSW_ADD_PLOC_MPSOC == 1
consumer << "0x" << std::hex << objects::PLOC_MPSOC_HANDLER;
@ -620,14 +630,15 @@ void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF, PowerSwit
auto mpsocGpioCookie = new GpioCookie;
mpsocGpioCookie->addGpio(gpioIds::ENABLE_MPSOC_UART, gpioConfigMPSoC);
gpioChecker(gpioComIF->addGpios(mpsocGpioCookie), "PLOC MPSoC");
auto mpsocCookie =
new SerialCookie(objects::PLOC_MPSOC_HANDLER, q7s::UART_PLOC_MPSOC_DEV,
serial::PLOC_MPSOC_BAUD, mpsoc::MAX_REPLY_SIZE, UartModes::NON_CANONICAL);
mpsocCookie->setNoFixedSizeReply();
auto plocMpsocHelper = new PlocMpsocSpecialComHelper(objects::PLOC_MPSOC_HELPER);
auto* mpsocHandler = new PlocMpsocHandler(
objects::PLOC_MPSOC_HANDLER, objects::UART_COM_IF, mpsocCookie, plocMpsocHelper,
Gpio(gpioIds::ENABLE_MPSOC_UART, gpioComIF), objects::PLOC_SUPERVISOR_HANDLER);
SerialConfig serialCfg(q7s::UART_PLOC_MPSOC_DEV, serial::PLOC_MPSOC_BAUD, mpsoc::MAX_REPLY_SIZE,
UartModes::NON_CANONICAL);
auto mpsocCommunication = new MpsocCommunication(objects::PLOC_MPSOC_COMMUNICATION, serialCfg);
auto specialComHelper =
new PlocMpsocSpecialComHelper(objects::PLOC_MPSOC_HELPER, *mpsocCommunication);
DhbConfig dhbConf(objects::PLOC_MPSOC_HANDLER);
auto* mpsocHandler = new FreshMpsocHandler(
dhbConf, *mpsocCommunication, *specialComHelper, Gpio(gpioIds::ENABLE_MPSOC_UART, gpioComIF),
objects::PLOC_SUPERVISOR_HANDLER, pwrSwitcher, power::PDU2_CH8_PAYLOAD_CAMERA);
mpsocHandler->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
#endif /* OBSW_ADD_PLOC_MPSOC == 1 */
#if OBSW_ADD_PLOC_SUPERVISOR == 1
@ -637,15 +648,19 @@ void ObjectFactory::createPayloadComponents(LinuxLibgpioIF* gpioComIF, PowerSwit
auto supvGpioCookie = new GpioCookie;
supvGpioCookie->addGpio(gpioIds::ENABLE_SUPV_UART, gpioConfigSupv);
gpioComIF->addGpios(supvGpioCookie);
auto supervisorCookie = new SerialCookie(objects::PLOC_SUPERVISOR_HANDLER,
q7s::UART_PLOC_SUPERVSIOR_DEV, serial::PLOC_SUPV_BAUD,
supv::MAX_PACKET_SIZE * 20, UartModes::NON_CANONICAL);
const char* plocSupvDev = q7s::UART_PLOC_SUPERVISOR_DEV;
if (not std::filesystem::exists(plocSupvDev)) {
plocSupvDev = q7s::UART_PLOC_SUPERVISOR_DEV_FALLBACK;
}
auto supervisorCookie =
new SerialCookie(objects::PLOC_SUPERVISOR_HANDLER, plocSupvDev, serial::PLOC_SUPV_BAUD,
supv::MAX_PACKET_SIZE * 20, UartModes::NON_CANONICAL);
supervisorCookie->setNoFixedSizeReply();
auto supvHelper = new PlocSupvUartManager(objects::PLOC_SUPERVISOR_HELPER);
auto* supvHandler = new PlocSupervisorHandler(objects::PLOC_SUPERVISOR_HANDLER, supervisorCookie,
Gpio(gpioIds::ENABLE_SUPV_UART, gpioComIF),
power::PDU1_CH6_PLOC_12V, *supvHelper);
supvHandler->setPowerSwitcher(&pwrSwitch);
new PlocSupvUartManager(objects::PLOC_SUPERVISOR_HELPER);
dhbConf = DhbConfig(objects::PLOC_SUPERVISOR_HANDLER);
auto* supvHandler =
new FreshSupvHandler(dhbConf, supervisorCookie, Gpio(gpioIds::ENABLE_SUPV_UART, gpioComIF),
pwrSwitcher, power::PDU1_CH6_PLOC_12V);
supvHandler->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
#endif /* OBSW_ADD_PLOC_SUPERVISOR == 1 */
static_cast<void>(consumer);
@ -745,14 +760,18 @@ ReturnValue_t ObjectFactory::createCcsdsComponents(CcsdsComponentArgs& args) {
gpioChecker(args.gpioComIF.addGpios(gpioCookiePtmeIp), "PTME PAPB VCs");
// Creating virtual channel interfaces
VirtualChannelIF* vc0 = new PapbVcInterface(&args.gpioComIF, gpioIds::VC0_PAPB_EMPTY,
q7s::UIO_PTME, q7s::uiomapids::PTME_VC0);
VirtualChannelIF* vc1 = new PapbVcInterface(&args.gpioComIF, gpioIds::VC1_PAPB_EMPTY,
q7s::UIO_PTME, q7s::uiomapids::PTME_VC1);
VirtualChannelIF* vc2 = new PapbVcInterface(&args.gpioComIF, gpioIds::VC2_PAPB_EMPTY,
q7s::UIO_PTME, q7s::uiomapids::PTME_VC2);
VirtualChannelIF* vc3 = new PapbVcInterface(&args.gpioComIF, gpioIds::VC3_PAPB_EMPTY,
q7s::UIO_PTME, q7s::uiomapids::PTME_VC3);
VirtualChannelIF* vc0 =
new PapbVcInterface(&args.gpioComIF, gpioIds::VC0_PAPB_EMPTY, q7s::UIO_PTME,
q7s::uiomapids::PTME_VC0, config::MAX_SPACEPACKET_TC_SIZE);
VirtualChannelIF* vc1 =
new PapbVcInterface(&args.gpioComIF, gpioIds::VC1_PAPB_EMPTY, q7s::UIO_PTME,
q7s::uiomapids::PTME_VC1, config::MAX_SPACEPACKET_TC_SIZE);
VirtualChannelIF* vc2 =
new PapbVcInterface(&args.gpioComIF, gpioIds::VC2_PAPB_EMPTY, q7s::UIO_PTME,
q7s::uiomapids::PTME_VC2, config::MAX_SPACEPACKET_TC_SIZE);
VirtualChannelIF* vc3 =
new PapbVcInterface(&args.gpioComIF, gpioIds::VC3_PAPB_EMPTY, q7s::UIO_PTME,
q7s::uiomapids::PTME_VC3, config::MAX_SPACEPACKET_TC_SIZE);
// Creating ptme object and adding virtual channel interfaces
Ptme* ptme = new Ptme(objects::PTME);
ptme->addVcInterface(ccsds::VC0, vc0);
@ -772,12 +791,13 @@ ReturnValue_t ObjectFactory::createCcsdsComponents(CcsdsComponentArgs& args) {
new CcsdsIpCoreHandler(objects::CCSDS_HANDLER, objects::CCSDS_PACKET_DISTRIBUTOR, *ptmeConfig,
LINK_STATE, &args.gpioComIF, gpios, PTME_LOCKED);
// This VC will receive all live TM
auto* vcWithQueue =
new VirtualChannelWithQueue(objects::PTME_VC0_LIVE_TM, ccsds::VC0, "PTME VC0 LIVE TM", *ptme,
LINK_STATE, args.tmStore, 500);
args.liveDestination = vcWithQueue;
auto* vcWithQueue = new VirtualChannel(objects::PTME_VC0_LIVE_TM, ccsds::VC0, "PTME VC0 LIVE TM",
*ptme, LINK_STATE);
auto* liveTask = new LiveTmTask(objects::LIVE_TM_TASK, args.pusFunnel, args.cfdpFunnel,
*vcWithQueue, PTME_LOCKED);
*vcWithQueue, PTME_LOCKED, config::LIVE_CHANNEL_NORMAL_QUEUE_SIZE,
config::LIVE_CHANNEL_CFDP_QUEUE_SIZE);
args.normalLiveTmDest = liveTask->getNormalLiveQueueId();
args.cfdpLiveTmDest = liveTask->getCfdpLiveQueueId();
liveTask->connectModeTreeParent(satsystem::com::SUBSYSTEM);
// Set up log store.
@ -826,7 +846,7 @@ ReturnValue_t ObjectFactory::createCcsdsComponents(CcsdsComponentArgs& args) {
uioNames.registers = q7s::UIO_PDEC_REGISTERS;
uioNames.irq = q7s::UIO_PDEC_IRQ;
new PdecHandler(objects::PDEC_HANDLER, objects::CCSDS_HANDLER, &args.gpioComIF,
gpioIds::PDEC_RESET, uioNames);
gpioIds::PDEC_RESET, uioNames, args.pdecCfgMemBaseAddr, args.pdecRamBaseAddr);
GpioCookie* gpioRS485Chip = new GpioCookie;
gpio = new GpiodRegularByLineName(q7s::gpioNames::RS485_EN_TX_CLOCK, "RS485 Transceiver",
Direction::OUT, Levels::LOW);
@ -897,8 +917,6 @@ void ObjectFactory::createPlPcduComponents(LinuxLibgpioIF* gpioComIF, SpiComIF*
new PayloadPcduHandler(objects::PLPCDU_HANDLER, objects::SPI_MAIN_COM_IF, spiCookie,
gpioComIF, SdCardManager::instance(), stackHandler, false);
spiCookie->setCallbackMode(PayloadPcduHandler::extConvAsTwoCallback, plPcduHandler);
// plPcduHandler->enablePeriodicPrintout(true, 5);
// static_cast<void>(plPcduHandler);
#if OBSW_TEST_PL_PCDU == 1
plPcduHandler->setStartUpImmediately();
#endif
@ -923,7 +941,7 @@ void ObjectFactory::createTestComponents(LinuxLibgpioIF* gpioComIF) {
#endif
}
void ObjectFactory::createStrComponents(PowerSwitchIF* pwrSwitcher) {
void ObjectFactory::createStrComponents(PowerSwitchIF* pwrSwitcher, SdCardManager& sdcMan) {
auto* strAssy = new StrAssembly(objects::STR_ASSY);
strAssy->connectModeTreeParent(satsystem::acs::ACS_SUBSYSTEM);
auto* starTrackerCookie =
@ -932,34 +950,27 @@ void ObjectFactory::createStrComponents(PowerSwitchIF* pwrSwitcher) {
starTrackerCookie->setNoFixedSizeReply();
StrComHandler* strComIF = new StrComHandler(objects::STR_COM_IF);
const char* paramJsonFile = nullptr;
#ifdef EGSE
paramJsonFile = "/home/pi/arcsec/json/flight-config.json";
#else
#if OBSW_STAR_TRACKER_GROUND_CONFIG == 1
paramJsonFile = "/mnt/sd0/startracker/ground-config.json";
#else
paramJsonFile = "/mnt/sd0/startracker/flight-config.json";
#endif
#endif
const char* paramJsonFile = "/mnt/sd0/startracker/flight-config.json";
if (paramJsonFile == nullptr) {
sif::error << "No valid Star Tracker parameter JSON file" << std::endl;
}
auto strFdir = new StrFdir(objects::STAR_TRACKER);
auto cfgGetter = new StrConfigPathGetter(sdcMan);
auto starTracker =
new StarTrackerHandler(objects::STAR_TRACKER, objects::STR_COM_IF, starTrackerCookie,
paramJsonFile, strComIF, power::PDU1_CH2_STAR_TRACKER_5V);
strComIF, power::PDU1_CH2_STAR_TRACKER_5V, *cfgGetter, sdcMan);
starTracker->setPowerSwitcher(pwrSwitcher);
starTracker->connectModeTreeParent(*strAssy);
starTracker->setCustomFdir(strFdir);
}
void ObjectFactory::createImtqComponents(PowerSwitchIF* pwrSwitcher, bool enableHkSets) {
void ObjectFactory::createImtqComponents(PowerSwitchIF* pwrSwitcher, bool enableHkSets,
const char* i2cDev) {
auto* imtqAssy = new ImtqAssembly(objects::IMTQ_ASSY);
imtqAssy->connectModeTreeParent(satsystem::acs::ACS_SUBSYSTEM);
new ImtqPollingTask(objects::IMTQ_POLLING, I2C_FATAL_ERRORS);
I2cCookie* imtqI2cCookie = new I2cCookie(addresses::IMTQ, imtq::MAX_REPLY_SIZE, q7s::I2C_PL_EIVE);
new ImtqPollingTask(objects::IMTQ_POLLING, signals::I2C_FATAL_ERRORS);
I2cCookie* imtqI2cCookie = new I2cCookie(addresses::IMTQ, imtq::MAX_REPLY_SIZE, i2cDev);
auto imtqHandler = new ImtqHandler(objects::IMTQ_HANDLER, objects::IMTQ_POLLING, imtqI2cCookie,
power::Switches::PDU1_CH3_MGT_5V, enableHkSets);
imtqHandler->enableThermalModule(ThermalStateCfg());
@ -975,8 +986,8 @@ void ObjectFactory::createImtqComponents(PowerSwitchIF* pwrSwitcher, bool enable
#endif
}
void ObjectFactory::createBpxBatteryComponent(bool enableHkSets) {
I2cCookie* bpxI2cCookie = new I2cCookie(addresses::BPX_BATTERY, 100, q7s::I2C_PL_EIVE);
void ObjectFactory::createBpxBatteryComponent(bool enableHkSets, const char* i2cDev) {
I2cCookie* bpxI2cCookie = new I2cCookie(addresses::BPX_BATTERY, 100, i2cDev);
BpxBatteryHandler* bpxHandler = new BpxBatteryHandler(
objects::BPX_BATT_HANDLER, objects::I2C_COM_IF, bpxI2cCookie, enableHkSets);
bpxHandler->setStartUpImmediately();
@ -1017,16 +1028,67 @@ void ObjectFactory::createRadSensorChipSelect(LinuxLibgpioIF* gpioIF) {
void ObjectFactory::createPlI2cResetGpio(LinuxLibgpioIF* gpioIF) {
using namespace gpio;
if (gpioIF == nullptr) {
return;
if (common::OBSW_VERSION_MAJOR >= 6 or common::OBSW_VERSION_MAJOR == 4) {
if (gpioIF == nullptr) {
return;
}
GpioCookie* gpioI2cResetnCookie = new GpioCookie;
GpiodRegularByLineName* gpioI2cResetn = new GpiodRegularByLineName(
q7s::gpioNames::PL_I2C_ARESETN, "PL_I2C_ARESETN", Direction::OUT, Levels::HIGH);
gpioI2cResetnCookie->addGpio(gpioIds::PL_I2C_ARESETN, gpioI2cResetn);
gpioChecker(gpioIF->addGpios(gpioI2cResetnCookie), "PL I2C ARESETN");
// Reset I2C explicitely again.
gpioIF->pullLow(gpioIds::PL_I2C_ARESETN);
TaskFactory::delayTask(1);
gpioIF->pullHigh(gpioIds::PL_I2C_ARESETN);
}
GpioCookie* gpioI2cResetnCookie = new GpioCookie;
GpiodRegularByLineName* gpioI2cResetn = new GpiodRegularByLineName(
q7s::gpioNames::PL_I2C_ARESETN, "PL_I2C_ARESETN", Direction::OUT, Levels::HIGH);
gpioI2cResetnCookie->addGpio(gpioIds::PL_I2C_ARESETN, gpioI2cResetn);
gpioChecker(gpioIF->addGpios(gpioI2cResetnCookie), "PL I2C ARESETN");
// Reset I2C explicitely again.
gpioIF->pullLow(gpioIds::PL_I2C_ARESETN);
TaskFactory::delayTask(1);
gpioIF->pullHigh(gpioIds::PL_I2C_ARESETN);
}
ReturnValue_t ObjectFactory::readFirmwareVersion() {
uint32_t* mappedSysRomAddr = nullptr;
// The SYS ROM FPGA block is only available in those versions.
if (not(common::OBSW_VERSION_MAJOR >= 6) or (common::OBSW_VERSION_MAJOR == 4)) {
return returnvalue::OK;
}
// This has to come before the version announce because it might be required for retrieving
// the firmware version.
UioMapper sysRomMapper(q7s::UIO_SYS_ROM);
ReturnValue_t result =
sysRomMapper.getMappedAdress(&mappedSysRomAddr, UioMapper::Permissions::READ_ONLY);
if (result != returnvalue::OK) {
sif::error << "Getting mapped SYS ROM UIO address failed" << std::endl;
return returnvalue::FAILED;
}
if (mappedSysRomAddr != nullptr) {
uint32_t firstEntry = *(reinterpret_cast<uint32_t*>(mappedSysRomAddr));
uint32_t secondEntry = *(reinterpret_cast<uint32_t*>(mappedSysRomAddr) + 1);
core::FW_VERSION_MAJOR = (firstEntry >> 24) & 0xff;
core::FW_VERSION_MINOR = (firstEntry >> 16) & 0xff;
core::FW_VERSION_REVISION = (firstEntry >> 8) & 0xff;
bool hasGitSha = (firstEntry & 0x0b1);
if (hasGitSha) {
std::memcpy(core::FW_VERSION_GIT_SHA, &secondEntry, 4);
}
}
return returnvalue::OK;
}
ReturnValue_t ObjectFactory::createCcsdsIpComponentsWrapper(CcsdsComponentArgs& ccsdsArgs) {
ccsdsArgs.pdecCfgMemBaseAddr = config::pdec::PDEC_CONFIG_BASE_ADDR;
ccsdsArgs.pdecRamBaseAddr = config::pdec::PDEC_RAM_ADDR;
if (core::FW_VERSION_MAJOR < 6) {
ccsdsArgs.pdecCfgMemBaseAddr = config::pdec::PDEC_CONFIG_BASE_ADDR_LEGACY;
ccsdsArgs.pdecRamBaseAddr = config::pdec::PDEC_RAM_ADDR_LEGACY;
}
ReturnValue_t result = createCcsdsComponents(ccsdsArgs);
#if OBSW_TM_TO_PTME == 1
if (ccsdsArgs.normalLiveTmDest != MessageQueueIF::NO_QUEUE) {
ccsdsArgs.pusFunnel.addLiveDestinationByRawId("VC0 NORMAL LIVE TM", ccsdsArgs.normalLiveTmDest,
0);
}
if (ccsdsArgs.cfdpLiveTmDest != MessageQueueIF::NO_QUEUE) {
ccsdsArgs.cfdpFunnel.addLiveDestinationByRawId("VC0 CFDP LIVE TM", ccsdsArgs.cfdpLiveTmDest, 0);
}
#endif
return result;
}

View File

@ -15,6 +15,8 @@
#include <atomic>
#include <string>
#include "bsp_q7s/fs/SdCardManager.h"
class LinuxLibgpioIF;
class SerialComIF;
class SpiComIF;
@ -31,14 +33,17 @@ namespace ObjectFactory {
struct CcsdsComponentArgs {
CcsdsComponentArgs(LinuxLibgpioIF& gpioIF, StorageManagerIF& ipcStore, StorageManagerIF& tmStore,
PersistentTmStores& stores, PusTmFunnel& pusFunnel, CfdpTmFunnel& cfdpFunnel,
CcsdsIpCoreHandler** ipCoreHandler)
CcsdsIpCoreHandler** ipCoreHandler, uint32_t pdecCfgMemBaseAddr,
uint32_t pdecRamBaseAddr)
: gpioComIF(gpioIF),
ipcStore(ipcStore),
tmStore(tmStore),
stores(stores),
pusFunnel(pusFunnel),
cfdpFunnel(cfdpFunnel),
ipCoreHandler(ipCoreHandler) {}
ipCoreHandler(ipCoreHandler),
pdecCfgMemBaseAddr(pdecCfgMemBaseAddr),
pdecRamBaseAddr(pdecRamBaseAddr) {}
LinuxLibgpioIF& gpioComIF;
StorageManagerIF& ipcStore;
StorageManagerIF& tmStore;
@ -46,7 +51,10 @@ struct CcsdsComponentArgs {
PusTmFunnel& pusFunnel;
CfdpTmFunnel& cfdpFunnel;
CcsdsIpCoreHandler** ipCoreHandler;
AcceptsTelemetryIF* liveDestination = nullptr;
uint32_t pdecCfgMemBaseAddr;
uint32_t pdecRamBaseAddr;
MessageQueueId_t normalLiveTmDest = MessageQueueIF::NO_QUEUE;
MessageQueueId_t cfdpLiveTmDest = MessageQueueIF::NO_QUEUE;
};
void setStatics();
@ -58,7 +66,7 @@ void createPcduComponents(LinuxLibgpioIF* gpioComIF, PowerSwitchIF** pwrSwitcher
bool enableHkSets);
void createPlPcduComponents(LinuxLibgpioIF* gpioComIF, SpiComIF* spiComIF,
PowerSwitchIF* pwrSwitcher, Stack5VHandler& stackHandler);
void createTmpComponents();
void createTmpComponents(std::vector<std::pair<object_id_t, address_t>> tmpDevsToAdd);
void createRadSensorChipSelect(LinuxLibgpioIF* gpioIF);
ReturnValue_t createRadSensorComponent(LinuxLibgpioIF* gpioComIF, Stack5VHandler& handler);
void createAcsBoardGpios(GpioCookie& cookie);
@ -67,14 +75,16 @@ void createAcsBoardComponents(SpiComIF& spiComIF, LinuxLibgpioIF* gpioComIF, Ser
adis1650x::Type adisType);
void createHeaterComponents(GpioIF* gpioIF, PowerSwitchIF* pwrSwitcher, HealthTableIF* healthTable,
HeaterHandler*& heaterHandler);
void createImtqComponents(PowerSwitchIF* pwrSwitcher, bool enableHkSets);
void createBpxBatteryComponent(bool enableHkSets);
void createStrComponents(PowerSwitchIF* pwrSwitcher);
void createImtqComponents(PowerSwitchIF* pwrSwitcher, bool enableHkSets, const char* i2cDev);
void createBpxBatteryComponent(bool enableHkSets, const char* i2cDev);
void createStrComponents(PowerSwitchIF* pwrSwitcher, SdCardManager& sdcMan);
void createSolarArrayDeploymentComponents(PowerSwitchIF& pwrSwitcher, GpioIF& gpioIF);
void createSyrlinksComponents(PowerSwitchIF* pwrSwitcher);
void createPayloadComponents(LinuxLibgpioIF* gpioComIF, PowerSwitchIF& pwrSwitcher);
void createReactionWheelComponents(LinuxLibgpioIF* gpioComIF, PowerSwitchIF* pwrSwitcher);
ReturnValue_t createCcsdsIpComponentsWrapper(CcsdsComponentArgs& args);
ReturnValue_t createCcsdsComponents(CcsdsComponentArgs& args);
ReturnValue_t readFirmwareVersion();
void createMiscComponents();
void createTestComponents(LinuxLibgpioIF* gpioComIF);

View File

@ -11,13 +11,13 @@
#include "OBSWConfig.h"
#include "bsp_q7s/core/WatchdogHandler.h"
#include "commonConfig.h"
#include "core/scheduling.h"
#include "fsfw/tasks/TaskFactory.h"
#include "fsfw/version.h"
#include "mission/acs/defs.h"
#include "mission/com/defs.h"
#include "mission/system/systemTree.h"
#include "q7sConfig.h"
#include "scheduling.h"
#include "watchdog/definitions.h"
static constexpr int OBSW_ALREADY_RUNNING = -2;

View File

@ -9,7 +9,6 @@
#include <vector>
#include "OBSWConfig.h"
#include "bsp_q7s/core/ObjectFactory.h"
#include "fsfw/objectmanager/ObjectManager.h"
#include "fsfw/objectmanager/ObjectManagerIF.h"
#include "fsfw/platform.h"
@ -21,6 +20,8 @@
#include "mission/pollingSeqTables.h"
#include "mission/scheduling.h"
#include "mission/utility/InitMission.h"
#include "objectFactory.h"
#include "q7sConfig.h"
/* This is configured for linux without CR */
#ifdef PLATFORM_UNIX
@ -81,6 +82,16 @@ void scheduling::initTasks() {
}
#endif
// Medium priority, higher than something like payload, but not the highest priority to also
// detect tasks which choke other tasks.
PeriodicTaskIF* xiphosWdtTask =
factory->createPeriodicTask("XIPHOS_WDT", 40, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.4,
missedDeadlineFunc, &RR_SCHEDULING);
result = xiphosWdtTask->addComponent(objects::XIPHOS_WDT);
if (result != returnvalue::OK) {
scheduling::printAddObjectError("XIPHOS_WDT", objects::XIPHOS_WDT);
}
PeriodicTaskIF* coreCtrlTask = factory->createPeriodicTask(
"CORE_CTRL", 55, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.4, missedDeadlineFunc, &RR_SCHEDULING);
result = coreCtrlTask->addComponent(objects::CORE_CONTROLLER);
@ -156,6 +167,10 @@ void scheduling::initTasks() {
if (result != returnvalue::OK) {
scheduling::printAddObjectError("PL_SUBSYSTEM", objects::PL_SUBSYSTEM);
}
result = genericSysTask->addComponent(objects::EPS_SUBSYSTEM);
if (result != returnvalue::OK) {
scheduling::printAddObjectError("EPS_SUBSYSTEM", objects::EPS_SUBSYSTEM);
}
result = genericSysTask->addComponent(objects::INTERNAL_ERROR_REPORTER);
if (result != returnvalue::OK) {
scheduling::printAddObjectError("ERROR_REPORTER", objects::INTERNAL_ERROR_REPORTER);
@ -324,6 +339,10 @@ void scheduling::initTasks() {
if (result != returnvalue::OK) {
scheduling::printAddObjectError("HEATER_HANDLER", objects::HEATER_HANDLER);
}
result = tcsSystemTask->addComponent(objects::HEATER_HANDLER);
if (result != returnvalue::OK) {
scheduling::printAddObjectError("HEATER_HANDLER", objects::HEATER_HANDLER);
}
#if OBSW_ADD_SYRLINKS == 1
PeriodicTaskIF* syrlinksCom = factory->createPeriodicTask(
@ -364,11 +383,9 @@ void scheduling::initTasks() {
}
#endif /* OBSW_ADD_PLOC_SUPERVISOR */
PeriodicTaskIF* plTask = factory->createPeriodicTask(
"PL_TASK", 25, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.5, missedDeadlineFunc, &RR_SCHEDULING);
plTask->addComponent(objects::CAM_SWITCHER);
scheduling::addMpsocSupvHandlers(plTask);
scheduling::scheduleScexDev(plTask);
FixedTimeslotTaskIF* plTask = factory->createFixedTimeslotTask(
"PL_TASK", 25, PeriodicTaskIF::MINIMUM_STACK_SIZE, 0.5, missedDeadlineFunc);
pst::pstPayload(plTask);
#if OBSW_ADD_SCEX_DEVICE == 1
PeriodicTaskIF* scexReaderTask;
@ -405,6 +422,7 @@ void scheduling::initTasks() {
};
sif::info << "Starting tasks.." << std::endl;
xiphosWdtTask->startTask();
tmTcDistributor->startTask();
#if OBSW_ADD_TCPIP_SERVERS == 1
@ -527,7 +545,15 @@ void scheduling::createPstTasks(TaskFactory& factory, TaskDeadlineMissedFunction
FixedTimeslotTaskIF* i2cPst =
factory.createFixedTimeslotTask("I2C_PS_PST", 60, PeriodicTaskIF::MINIMUM_STACK_SIZE * 4, 0.6,
missedDeadlineFunc, &RR_SCHEDULING);
result = pst::pstI2cProcessingSystem(i2cPst);
pst::TmpSchedConfig tmpSchedConf;
#if OBSW_Q7S_EM == 1
tmpSchedConf.scheduleTmpDev0 = true;
tmpSchedConf.scheduleTmpDev1 = true;
tmpSchedConf.schedulePlPcduDev0 = true;
tmpSchedConf.schedulePlPcduDev1 = true;
tmpSchedConf.scheduleIfBoardDev = true;
#endif
result = pst::pstI2c(tmpSchedConf, i2cPst);
if (result != returnvalue::OK) {
if (result == FixedTimeslotTaskIF::SLOT_LIST_EMPTY) {
sif::warning << "scheduling::initTasks: I2C PST is empty" << std::endl;

View File

@ -129,7 +129,7 @@ ReturnValue_t Xadc::readValFromFile(const char* filename, T& val) {
sif::warning << "Xadc::readValFromFile: Failed to open file " << filename << std::endl;
return returnvalue::FAILED;
}
char valstring[MAX_STR_LENGTH] = "";
char valstring[MAX_STR_LENGTH]{};
char* returnVal = fgets(valstring, MAX_STR_LENGTH, fp);
if (returnVal == nullptr) {
sif::warning << "Xadc::readValFromFile: Failed to read string from file " << filename
@ -139,6 +139,11 @@ ReturnValue_t Xadc::readValFromFile(const char* filename, T& val) {
}
std::istringstream valSstream(valstring);
valSstream >> val;
if (valSstream.bad()) {
sif::warning << "Xadc: Conversion of value to target type failed" << std::endl;
fclose(fp);
return returnvalue::FAILED;
}
fclose(fp);
return returnvalue::OK;
}

View File

@ -24,6 +24,8 @@ if [ ! -z "${EIVE_Q7S_EM}" ]; then
build_defs="EIVE_Q7S_EM=ON"
fi
build_defs="${build_defs} CMAKE_EXPORT_COMPILE_COMMANDS=ON"
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="cmake-build-debug-q7s"

View File

@ -24,6 +24,8 @@ if [ ! -z "${EIVE_Q7S_EM}" ]; then
build_defs="EIVE_Q7S_EM=ON"
fi
build_defs="${build_defs} CMAKE_EXPORT_COMPILE_COMMANDS=ON"
os_fsfw="linux"
tgt_bsp="arm/q7s"
build_dir="cmake-build-release-q7s"

View File

@ -54,6 +54,9 @@ enum I2cAddress : address_t {
};
enum spiAddresses : address_t {
RTD_IC_0,
RTD_IC_1,
RTD_IC_2,
RTD_IC_3,
RTD_IC_4,
RTD_IC_5,
@ -67,9 +70,6 @@ enum spiAddresses : address_t {
RTD_IC_13,
RTD_IC_14,
RTD_IC_15,
RTD_IC_16,
RTD_IC_17,
RTD_IC_18,
RW1,
RW2,
RW3,

View File

@ -37,6 +37,9 @@ enum gpioId_t {
TEST_ID_0,
TEST_ID_1,
RTD_IC_0,
RTD_IC_1,
RTD_IC_2,
RTD_IC_3,
RTD_IC_4,
RTD_IC_5,
@ -50,9 +53,6 @@ enum gpioId_t {
RTD_IC_13,
RTD_IC_14,
RTD_IC_15,
RTD_IC_16,
RTD_IC_17,
RTD_IC_18,
CS_SUS_0,
CS_SUS_1,

View File

@ -11,6 +11,8 @@ static constexpr char SD_1_MOUNT_POINT[] = "/mnt/sd1";
static constexpr char OBSW_UPDATE_ARCHIVE_FILE_NAME[] = "eive-sw-update.tar.xz";
static constexpr char STRIPPED_OBSW_BINARY_FILE_NAME[] = "eive-obsw-stripped";
static constexpr char OBSW_VERSION_FILE_NAME[] = "obsw_version.txt";
static constexpr char PUS_SEQUENCE_COUNT_FILE[] = "pus-sequence-count.txt";
static constexpr char CFDP_SEQUENCE_COUNT_FILE[] = "cfdp-sequence-count.txt";
static constexpr char OBSW_PATH[] = "/usr/bin/eive-obsw";
static constexpr char OBSW_VERSION_FILE_PATH[] = "/usr/share/eive-obsw/obsw_version.txt";
@ -18,6 +20,9 @@ static constexpr char OBSW_VERSION_FILE_PATH[] = "/usr/share/eive-obsw/obsw_vers
// ISO8601 timestamp.
static constexpr char FILE_DATE_FORMAT[] = "%FT%H%M%SZ";
// Leap Seconds as of 2024-03-04
static constexpr uint16_t LEAP_SECONDS = 37;
static constexpr uint16_t EIVE_PUS_APID = 0x65;
static constexpr uint16_t EIVE_CFDP_APID = 0x66;
static constexpr uint16_t EIVE_LOCAL_CFDP_ENTITY_ID = EIVE_CFDP_APID;
@ -33,6 +38,8 @@ static constexpr uint32_t STR_IMG_HELPER_QUEUE_SIZE = 50;
static constexpr uint8_t LIVE_TM = 0;
static constexpr size_t MAX_SPACEPACKET_TC_SIZE = 2048;
/* Limits for filename and path checks */
static constexpr uint32_t MAX_PATH_SIZE = 200;
static constexpr uint32_t MAX_FILENAME_SIZE = 100;
@ -46,6 +53,8 @@ static constexpr uint32_t LEGACY_SA_DEPL_CHANNEL_ALTERNATION_INTERVAL_SECS = 5;
// Maximum allowed burn time allowed by the software.
static constexpr uint32_t SA_DEPL_MAX_BURN_TIME = 180;
static constexpr size_t CFDP_MAX_FILE_SEGMENT_LEN = 900;
static constexpr uint32_t CCSDS_HANDLER_QUEUE_SIZE = 50;
static constexpr uint8_t NUMBER_OF_VIRTUAL_CHANNELS = 4;
static constexpr uint32_t VC0_LIVE_TM_QUEUE_SIZE = 300;
@ -56,14 +65,25 @@ static constexpr uint32_t NOK_STORE_QUEUE_SIZE = 350;
static constexpr uint32_t HK_STORE_QUEUE_SIZE = 300;
static constexpr uint32_t CFDP_STORE_QUEUE_SIZE = 300;
static constexpr uint32_t LIVE_CHANNEL_NORMAL_QUEUE_SIZE = 250;
static constexpr uint32_t LIVE_CHANNEL_CFDP_QUEUE_SIZE = 350;
static constexpr uint32_t CFDP_MAX_FSM_CALL_COUNT_SRC_HANDLER = 10;
static constexpr uint32_t CFDP_MAX_FSM_CALL_COUNT_DEST_HANDLER = 300;
static constexpr uint32_t CFDP_SHORT_DELAY_MS = 40;
static constexpr uint32_t CFDP_REGULAR_DELAY_MS = 200;
static constexpr uint32_t MAX_PUS_FUNNEL_QUEUE_DEPTH = 100;
static constexpr uint32_t MAX_CFDP_FUNNEL_QUEUE_DEPTH = 80;
static constexpr uint32_t MAX_CFDP_FUNNEL_QUEUE_DEPTH = LIVE_CHANNEL_CFDP_QUEUE_SIZE;
static constexpr uint32_t VERIFICATION_SERVICE_QUEUE_DEPTH = 120;
static constexpr uint32_t HK_SERVICE_QUEUE_DEPTH = 60;
static constexpr uint32_t ACTION_SERVICE_QUEUE_DEPTH = 60;
static constexpr uint32_t MAX_STORED_CMDS_UDP = 150;
static constexpr uint32_t MAX_STORED_CMDS_TCP = 180;
static constexpr uint32_t UDP_MAX_STORED_CMDS = 200;
static constexpr uint32_t UDP_MSG_QUEUE_DEPTH = UDP_MAX_STORED_CMDS;
static constexpr uint32_t TCP_MAX_STORED_CMDS = 350;
static constexpr uint32_t TCP_MSG_QUEUE_DEPTH = TCP_MAX_STORED_CMDS;
static constexpr uint32_t TCP_MAX_NUMBER_TMS_SENT_PER_CYCLE = TCP_MSG_QUEUE_DEPTH;
namespace spiSched {
@ -77,6 +97,7 @@ static constexpr uint32_t SCHED_BLOCK_RTD = 150;
static constexpr uint32_t SCHED_BLOCK_7_RW_READ_MS = 300;
static constexpr uint32_t SCHED_BLOCK_8_PLPCDU_MS = 320;
static constexpr uint32_t SCHED_BLOCK_9_RAD_SENS_MS = 340;
static constexpr uint32_t SCHED_BLOCK_10_PWR_CTRL_MS = 350;
// 15 ms for FM
static constexpr float SCHED_BLOCK_1_PERIOD = static_cast<float>(SCHED_BLOCK_1_SUS_READ_MS) / 400.0;
@ -92,9 +113,23 @@ static constexpr float SCHED_BLOCK_RTD_PERIOD = static_cast<float>(SCHED_BLOCK_R
static constexpr float SCHED_BLOCK_7_PERIOD = static_cast<float>(SCHED_BLOCK_7_RW_READ_MS) / 400.0;
static constexpr float SCHED_BLOCK_8_PERIOD = static_cast<float>(SCHED_BLOCK_8_PLPCDU_MS) / 400.0;
static constexpr float SCHED_BLOCK_9_PERIOD = static_cast<float>(SCHED_BLOCK_9_RAD_SENS_MS) / 400.0;
static constexpr float SCHED_BLOCK_10_PERIOD =
static_cast<float>(SCHED_BLOCK_10_PWR_CTRL_MS) / 400.0;
} // namespace spiSched
namespace pdec {
// Pre FW v6.0.0
static constexpr uint32_t PDEC_CONFIG_BASE_ADDR_LEGACY = 0x24000000;
static constexpr uint32_t PDEC_RAM_ADDR_LEGACY = 0x26000000;
// Post FW v6.0.0
static constexpr uint32_t PDEC_CONFIG_BASE_ADDR = 0x4000000;
static constexpr uint32_t PDEC_RAM_ADDR = 0x7000000;
} // namespace pdec
} // namespace config
#endif /* COMMON_CONFIG_DEFINITIONS_H_ */

View File

@ -40,6 +40,8 @@ enum : uint8_t {
COM_SUBSYSTEM = 142,
PERSISTENT_TM_STORE = 143,
SYRLINKS_COM = 144,
SUS_HANDLER = 145,
CFDP_APP = 146,
COMMON_SUBSYSTEM_ID_END
};

View File

@ -26,7 +26,9 @@ enum commonObjects : uint32_t {
THERMAL_CONTROLLER = 0x43400001,
ACS_CONTROLLER = 0x43000002,
CORE_CONTROLLER = 0x43000003,
POWER_CONTROLLER = 0x43000004,
GLOBAL_JSON_CFG = 0x43000006,
XIPHOS_WDT = 0x43000007,
/* 0x44 ('D') for device handlers */
MGM_0_LIS3_HANDLER = 0x44120006,
@ -75,6 +77,7 @@ enum commonObjects : uint32_t {
PLOC_MPSOC_HANDLER = 0x44330015,
PLOC_SUPERVISOR_HANDLER = 0x44330016,
PLOC_SUPERVISOR_HELPER = 0x44330017,
PLOC_MPSOC_COMMUNICATION = 0x44330018,
SCEX = 0x44330032,
SOLAR_ARRAY_DEPL_HANDLER = 0x444100A2,
HEATER_HANDLER = 0x444100A4,
@ -157,12 +160,14 @@ enum commonObjects : uint32_t {
PL_SUBSYSTEM = 0x73010002,
TCS_SUBSYSTEM = 0x73010003,
COM_SUBSYSTEM = 0x73010004,
EPS_SUBSYSTEM = 0x73010005,
TM_FUNNEL = 0x73000100,
PUS_TM_FUNNEL = 0x73000101,
CFDP_TM_FUNNEL = 0x73000102,
CFDP_HANDLER = 0x73000205,
CFDP_DISTRIBUTOR = 0x73000206,
CFDP_FAULT_HANDLER = 0x73000207,
MISC_TM_STORE = 0x73020001,
OK_TM_STORE = 0x73020002,
NOT_OK_TM_STORE = 0x73020003,

View File

@ -41,6 +41,8 @@ enum commonClassIds : uint8_t {
LOCAL_PARAM_HANDLER, // LPH
PERSISTENT_TM_STORE, // PTM
TM_SINK, // TMS
VIRTUAL_CHANNEL, // VCS
PLOC_MPSOC_COM, // PLMPCOM
COMMON_CLASS_ID_END // [EXPORT] : [END]
};
}

View File

@ -19,6 +19,7 @@ target_sources(
GpsCtrlDummy.cpp
GyroAdisDummy.cpp
GyroL3GD20Dummy.cpp
RadSensorDummy.cpp
MgmLIS3MDLDummy.cpp
PlPcduDummy.cpp
ExecutableComIfDummy.cpp

View File

@ -1,6 +1,6 @@
#include "CoreControllerDummy.h"
#include <bsp_q7s/core/CoreDefinitions.h>
#include <bsp_q7s/core/defs.h>
#include <objects/systemObjectList.h>
#include <cmath>

View File

@ -2,7 +2,7 @@
#define DUMMIES_GPSCTRLDUMMY_H_
#include <fsfw/controller/ExtendedControllerBase.h>
#include <mission/acs/archive/GPSDefinitions.h>
#include <linux/acs/GPSDefinitions.h>
class GpsCtrlDummy : public ExtendedControllerBase {
public:

View File

@ -1,5 +1,5 @@
#include <dummies/GpsDhbDummy.h>
#include <mission/acs/archive/GPSDefinitions.h>
#include <linux/acs/GPSDefinitions.h>
GpsDhbDummy::GpsDhbDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie)
: DeviceHandlerBase(objectId, comif, comCookie) {}

View File

@ -7,15 +7,21 @@ using namespace returnvalue;
Max31865Dummy::Max31865Dummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie)
: DeviceHandlerBase(objectId, comif, comCookie), set(this, EiveMax31855::EXCHANGE_SET_ID) {}
void Max31865Dummy::doStartUp() { setMode(MODE_ON); }
void Max31865Dummy::doShutDown() { setMode(_MODE_POWER_DOWN); }
void Max31865Dummy::doShutDown() {
PoolReadGuard pg(&set);
set.setValidity(false, true);
setMode(MODE_OFF);
}
ReturnValue_t Max31865Dummy::buildNormalDeviceCommand(DeviceCommandId_t *id) {
return NOTHING_TO_SEND;
}
ReturnValue_t Max31865Dummy::buildTransitionDeviceCommand(DeviceCommandId_t *id) { return OK; }
ReturnValue_t Max31865Dummy::buildTransitionDeviceCommand(DeviceCommandId_t *id) {
return NOTHING_TO_SEND;
}
ReturnValue_t Max31865Dummy::buildCommandFromCommand(DeviceCommandId_t deviceCommand,
const uint8_t *commandData,
size_t commandDataLen) {
return 0;
return NOTHING_TO_SEND;
}
ReturnValue_t Max31865Dummy::scanForReply(const uint8_t *start, size_t len,
DeviceCommandId_t *foundId, size_t *foundLen) {

View File

@ -7,7 +7,7 @@ PlPcduDummy::PlPcduDummy(object_id_t objectId, object_id_t comif, CookieIF *comC
PlPcduDummy::~PlPcduDummy() {}
void PlPcduDummy::doStartUp() { setMode(MODE_NORMAL); }
void PlPcduDummy::doStartUp() { setMode(MODE_ON); }
void PlPcduDummy::doShutDown() { setMode(MODE_OFF); }
@ -43,3 +43,16 @@ ReturnValue_t PlPcduDummy::initializeLocalDataPool(localpool::DataPool &localDat
localDataPoolMap.emplace(plpcdu::PlPcduPoolIds::TEMP, new PoolEntry<float>({0.0}, true));
return returnvalue::OK;
}
ReturnValue_t PlPcduDummy::checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode,
uint32_t *msToReachTheMode) {
if (commandedMode != MODE_OFF) {
PoolReadGuard pg(&enablePl);
if (pg.getReadResult() == returnvalue::OK) {
if (enablePl.plUseAllowed.isValid() and not enablePl.plUseAllowed.value) {
return NON_OP_STATE_OF_CHARGE;
}
}
}
return DeviceHandlerBase::checkModeCommand(commandedMode, commandedSubmode, msToReachTheMode);
}

View File

@ -1,7 +1,9 @@
#ifndef DUMMIES_PLPCDUDUMMY_H_
#define DUMMIES_PLPCDUDUMMY_H_
#include <common/config/eive/objects.h>
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
#include <mission/controller/controllerdefinitions/PowerCtrlDefinitions.h>
#include <mission/payload/payloadPcduDefinitions.h>
class PlPcduDummy : public DeviceHandlerBase {
@ -29,6 +31,10 @@ class PlPcduDummy : public DeviceHandlerBase {
uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override;
ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
LocalDataPoolManager &poolManager) override;
ReturnValue_t checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode,
uint32_t *msToReachTheMode) override;
pwrctrl::EnablePl enablePl = pwrctrl::EnablePl(objects::POWER_CONTROLLER);
};
#endif /* DUMMIES_PLPCDUDUMMY_H_ */

View File

@ -23,6 +23,19 @@ ReturnValue_t PlocMpsocDummy::buildCommandFromCommand(DeviceCommandId_t deviceCo
return returnvalue::OK;
}
ReturnValue_t PlocMpsocDummy::checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode,
uint32_t *msToReachTheMode) {
if (commandedMode != MODE_OFF) {
PoolReadGuard pg(&enablePl);
if (pg.getReadResult() == returnvalue::OK) {
if (enablePl.plUseAllowed.isValid() and not enablePl.plUseAllowed.value) {
return NON_OP_STATE_OF_CHARGE;
}
}
}
return DeviceHandlerBase::checkModeCommand(commandedMode, commandedSubmode, msToReachTheMode);
}
ReturnValue_t PlocMpsocDummy::scanForReply(const uint8_t *start, size_t len,
DeviceCommandId_t *foundId, size_t *foundLen) {
return returnvalue::OK;

View File

@ -1,6 +1,8 @@
#pragma once
#include <common/config/eive/objects.h>
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
#include <mission/controller/controllerdefinitions/PowerCtrlDefinitions.h>
#include "mission/power/defs.h"
@ -24,6 +26,9 @@ class PlocMpsocDummy : public DeviceHandlerBase {
size_t commandDataLen) override;
ReturnValue_t scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId,
size_t *foundLen) override;
ReturnValue_t checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode,
uint32_t *msToReachTheMode) override;
pwrctrl::EnablePl enablePl = pwrctrl::EnablePl(objects::POWER_CONTROLLER);
ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) override;
void fillCommandAndReplyMap() override;
uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override;

View File

@ -51,3 +51,17 @@ ReturnValue_t PlocSupervisorDummy::getSwitches(const uint8_t **switches,
*switches = reinterpret_cast<const uint8_t *>(&switchId);
return returnvalue::OK;
}
ReturnValue_t PlocSupervisorDummy::checkModeCommand(Mode_t commandedMode,
Submode_t commandedSubmode,
uint32_t *msToReachTheMode) {
if (commandedMode != MODE_OFF) {
PoolReadGuard pg(&enablePl);
if (pg.getReadResult() == returnvalue::OK) {
if (enablePl.plUseAllowed.isValid() and not enablePl.plUseAllowed.value) {
return NON_OP_STATE_OF_CHARGE;
}
}
}
return DeviceHandlerBase::checkModeCommand(commandedMode, commandedSubmode, msToReachTheMode);
}

View File

@ -1,6 +1,8 @@
#pragma once
#include <common/config/eive/objects.h>
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
#include <mission/controller/controllerdefinitions/PowerCtrlDefinitions.h>
#include <mission/power/defs.h>
class PlocSupervisorDummy : public DeviceHandlerBase {
@ -32,4 +34,7 @@ class PlocSupervisorDummy : public DeviceHandlerBase {
ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
LocalDataPoolManager &poolManager) override;
ReturnValue_t getSwitches(const uint8_t **switches, uint8_t *numberOfSwitches) override;
ReturnValue_t checkModeCommand(Mode_t commandedMode, Submode_t commandedSubmode,
uint32_t *msToReachTheMode) override;
pwrctrl::EnablePl enablePl = pwrctrl::EnablePl(objects::POWER_CONTROLLER);
};

View File

@ -0,0 +1,55 @@
#include "RadSensorDummy.h"
RadSensorDummy::RadSensorDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie)
: DeviceHandlerBase(objectId, comif, comCookie), sensorSet(this) {}
RadSensorDummy::~RadSensorDummy() {}
void RadSensorDummy::doStartUp() { setMode(MODE_ON); }
void RadSensorDummy::doShutDown() { setMode(MODE_OFF); }
ReturnValue_t RadSensorDummy::buildNormalDeviceCommand(DeviceCommandId_t *id) {
return NOTHING_TO_SEND;
}
ReturnValue_t RadSensorDummy::buildTransitionDeviceCommand(DeviceCommandId_t *id) {
return NOTHING_TO_SEND;
}
ReturnValue_t RadSensorDummy::buildCommandFromCommand(DeviceCommandId_t deviceCommand,
const uint8_t *commandData,
size_t commandDataLen) {
return returnvalue::OK;
}
ReturnValue_t RadSensorDummy::scanForReply(const uint8_t *start, size_t len,
DeviceCommandId_t *foundId, size_t *foundLen) {
return returnvalue::OK;
}
ReturnValue_t RadSensorDummy::interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) {
return returnvalue::OK;
}
void RadSensorDummy::fillCommandAndReplyMap() {}
uint32_t RadSensorDummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 500; }
ReturnValue_t RadSensorDummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
LocalDataPoolManager &poolManager) {
localDataPoolMap.emplace(radSens::TEMPERATURE_C, new PoolEntry<float>({0.0}));
localDataPoolMap.emplace(radSens::AIN0, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(radSens::AIN1, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(radSens::AIN4, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(radSens::AIN5, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(radSens::AIN6, new PoolEntry<uint16_t>({0}));
localDataPoolMap.emplace(radSens::AIN7, new PoolEntry<uint16_t>({0}));
poolManager.subscribeForRegularPeriodicPacket(
subdp::RegularHkPeriodicParams(sensorSet.getSid(), false, 20.0));
return returnvalue::OK;
return returnvalue::OK;
}
LocalPoolDataSetBase *RadSensorDummy::getDataSetHandle(sid_t sid) { return &sensorSet; }

35
dummies/RadSensorDummy.h Normal file
View File

@ -0,0 +1,35 @@
#pragma once
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
#include "mission/payload/radSensorDefinitions.h"
class RadSensorDummy : public DeviceHandlerBase {
public:
static const DeviceCommandId_t SIMPLE_COMMAND = 1;
static const DeviceCommandId_t PERIODIC_REPLY = 2;
static const uint8_t SIMPLE_COMMAND_DATA = 1;
static const uint8_t PERIODIC_REPLY_DATA = 2;
RadSensorDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie);
virtual ~RadSensorDummy();
protected:
radSens::RadSensorDataset sensorSet;
void doStartUp() override;
void doShutDown() override;
ReturnValue_t buildNormalDeviceCommand(DeviceCommandId_t *id) override;
ReturnValue_t buildTransitionDeviceCommand(DeviceCommandId_t *id) override;
ReturnValue_t buildCommandFromCommand(DeviceCommandId_t deviceCommand, const uint8_t *commandData,
size_t commandDataLen) override;
ReturnValue_t scanForReply(const uint8_t *start, size_t len, DeviceCommandId_t *foundId,
size_t *foundLen) override;
ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) override;
void fillCommandAndReplyMap() override;
uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override;
ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
LocalDataPoolManager &poolManager) override;
LocalPoolDataSetBase *getDataSetHandle(sid_t sid) override;
};

View File

@ -93,3 +93,21 @@ ReturnValue_t RwDummy::initializeLocalDataPool(localpool::DataPool &localDataPoo
subdp::RegularHkPeriodicParams(lastResetStatusSet.getSid(), false, 30.0));
return returnvalue::OK;
}
LocalPoolDataSetBase *RwDummy::getDataSetHandle(sid_t sid) {
switch (sid.ownerSetId) {
case (rws::SetIds::STATUS_SET_ID): {
return &statusSet;
}
case (rws::SetIds::LAST_RESET_ID): {
return &lastResetStatusSet;
}
case (rws::SetIds::SPEED_CMD_SET): {
return &rwSpeedActuationSet;
}
case (rws::SetIds::TM_SET_ID): {
return &tmDataset;
}
}
return nullptr;
}

View File

@ -37,6 +37,7 @@ class RwDummy : public DeviceHandlerBase {
uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override;
ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
LocalDataPoolManager &poolManager) override;
LocalPoolDataSetBase *getDataSetHandle(sid_t sid) override;
};
#endif /* DUMMIES_RWDUMMY_H_ */

View File

@ -5,7 +5,7 @@ SusDummy::SusDummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie)
SusDummy::~SusDummy() {}
void SusDummy::doStartUp() { setMode(MODE_NORMAL); }
void SusDummy::doStartUp() { setMode(MODE_ON); }
void SusDummy::doShutDown() { setMode(MODE_OFF); }

View File

@ -7,9 +7,9 @@
#include <cstdlib>
#include <utility>
TemperatureSensorInserter::TemperatureSensorInserter(object_id_t objectId,
Max31865DummyMap tempSensorDummies_,
Tmp1075DummyMap tempTmpSensorDummies_)
TemperatureSensorInserter::TemperatureSensorInserter(
object_id_t objectId, Max31865DummyMap tempSensorDummies_,
std::optional<Tmp1075DummyMap> tempTmpSensorDummies_)
: SystemObject(objectId),
max31865DummyMap(std::move(tempSensorDummies_)),
tmp1075DummyMap(std::move(tempTmpSensorDummies_)) {}
@ -25,8 +25,10 @@ ReturnValue_t TemperatureSensorInserter::performOperation(uint8_t opCode) {
for (auto& rtdDummy : max31865DummyMap) {
rtdDummy.second->setTemperature(10, true);
}
for (auto& tmpDummy : tmp1075DummyMap) {
tmpDummy.second->setTemperature(10, true);
if (tmp1075DummyMap.has_value()) {
for (auto& tmpDummy : tmp1075DummyMap.value()) {
tmpDummy.second->setTemperature(10, true);
}
}
tempsWereInitialized = true;
}
@ -96,6 +98,25 @@ ReturnValue_t TemperatureSensorInserter::performOperation(uint8_t opCode) {
}
break;
}
case (TestCase::COLD_PLOC_CONSECUTIVE): {
if (cycles == 15) {
sif::debug << "Setting cold PLOC temperature" << std::endl;
max31865DummyMap[objects::RTD_0_IC3_PLOC_HEATSPREADER]->setTemperature(-15, true);
}
if (cycles == 30) {
sif::debug << "Setting warmer PLOC temperature" << std::endl;
max31865DummyMap[objects::RTD_0_IC3_PLOC_HEATSPREADER]->setTemperature(0, true);
}
if (cycles == 45) {
sif::debug << "Setting cold PLOC temperature again" << std::endl;
max31865DummyMap[objects::RTD_0_IC3_PLOC_HEATSPREADER]->setTemperature(-15, true);
}
if (cycles == 60) {
sif::debug << "Setting warmer PLOC temperature again" << std::endl;
max31865DummyMap[objects::RTD_0_IC3_PLOC_HEATSPREADER]->setTemperature(0, true);
}
break;
}
case (TestCase::COLD_CAMERA): {
if (cycles == 15) {
sif::debug << "Setting cold CAM temperature" << std::endl;
@ -105,6 +126,21 @@ ReturnValue_t TemperatureSensorInserter::performOperation(uint8_t opCode) {
sif::debug << "Setting CAM temperature back to normal" << std::endl;
max31865DummyMap[objects::RTD_2_IC5_4K_CAMERA]->setTemperature(0, true);
}
break;
}
case (TestCase::COLD_PLOC_STAYS_COLD): {
if (cycles == 15) {
sif::debug << "Setting cold PLOC temperature" << std::endl;
max31865DummyMap[objects::RTD_0_IC3_PLOC_HEATSPREADER]->setTemperature(-40, true);
}
break;
}
case (TestCase::COLD_CAMERA_STAYS_COLD): {
if (cycles == 15) {
sif::debug << "Setting cold PLOC temperature" << std::endl;
max31865DummyMap[objects::RTD_2_IC5_4K_CAMERA]->setTemperature(-40, true);
}
break;
}
}
cycles++;

View File

@ -12,7 +12,7 @@ class TemperatureSensorInserter : public ExecutableObjectIF, public SystemObject
using Max31865DummyMap = std::map<object_id_t, Max31865Dummy*>;
using Tmp1075DummyMap = std::map<object_id_t, Tmp1075Dummy*>;
explicit TemperatureSensorInserter(object_id_t objectId, Max31865DummyMap tempSensorDummies_,
Tmp1075DummyMap tempTmpSensorDummies_);
std::optional<Tmp1075DummyMap> tempTmpSensorDummies_);
ReturnValue_t initialize() override;
ReturnValue_t initializeAfterTaskCreation() override;
@ -22,7 +22,7 @@ class TemperatureSensorInserter : public ExecutableObjectIF, public SystemObject
private:
Max31865DummyMap max31865DummyMap;
Tmp1075DummyMap tmp1075DummyMap;
std::optional<Tmp1075DummyMap> tmp1075DummyMap;
enum TestCase {
NONE = 0,
@ -32,6 +32,9 @@ class TemperatureSensorInserter : public ExecutableObjectIF, public SystemObject
COLD_STR = 4,
COLD_STR_CONSECUTIVE = 5,
COLD_CAMERA = 6,
COLD_PLOC_CONSECUTIVE = 7,
COLD_PLOC_STAYS_COLD = 8,
COLD_CAMERA_STAYS_COLD = 9
};
int iteration = 0;
uint32_t cycles = 0;

View File

@ -8,35 +8,57 @@ using namespace returnvalue;
Tmp1075Dummy::Tmp1075Dummy(object_id_t objectId, object_id_t comif, CookieIF *comCookie)
: DeviceHandlerBase(objectId, comif, comCookie), set(this) {}
void Tmp1075Dummy::doStartUp() { setMode(MODE_NORMAL); }
void Tmp1075Dummy::doShutDown() { setMode(MODE_OFF); }
void Tmp1075Dummy::doStartUp() { setMode(MODE_ON); }
void Tmp1075Dummy::doShutDown() {
PoolReadGuard pg(&set);
set.setValidity(false, true);
setMode(MODE_OFF);
}
ReturnValue_t Tmp1075Dummy::buildNormalDeviceCommand(DeviceCommandId_t *id) {
return NOTHING_TO_SEND;
}
ReturnValue_t Tmp1075Dummy::buildTransitionDeviceCommand(DeviceCommandId_t *id) { return OK; }
ReturnValue_t Tmp1075Dummy::buildTransitionDeviceCommand(DeviceCommandId_t *id) {
return NOTHING_TO_SEND;
}
ReturnValue_t Tmp1075Dummy::buildCommandFromCommand(DeviceCommandId_t deviceCommand,
const uint8_t *commandData,
size_t commandDataLen) {
return 0;
return NOTHING_TO_SEND;
}
ReturnValue_t Tmp1075Dummy::scanForReply(const uint8_t *start, size_t len,
DeviceCommandId_t *foundId, size_t *foundLen) {
return 0;
}
ReturnValue_t Tmp1075Dummy::interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) {
return 0;
}
void Tmp1075Dummy::setTemperature(float temperature, bool valid) {
PoolReadGuard pg(&set);
set.temperatureCelcius.value = temperature;
set.setValidity(valid, true);
}
void Tmp1075Dummy::fillCommandAndReplyMap() {}
uint32_t Tmp1075Dummy::getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) { return 1000; }
ReturnValue_t Tmp1075Dummy::initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
LocalDataPoolManager &poolManager) {
localDataPoolMap.emplace(TMP1075::TEMPERATURE_C_TMP1075, new PoolEntry<float>({10.0}, true));
return OK;
}
ReturnValue_t Tmp1075Dummy::setHealth(HealthState health) {
if (health == FAULTY or health == PERMANENT_FAULTY) {
setMode(_MODE_SHUT_DOWN);
}
return DeviceHandlerBase::setHealth(health);
}
LocalPoolDataSetBase *Tmp1075Dummy::getDataSetHandle(sid_t sid) { return &set; }

View File

@ -26,6 +26,7 @@ class Tmp1075Dummy : public DeviceHandlerBase {
uint32_t getTransitionDelayMs(Mode_t modeFrom, Mode_t modeTo) override;
ReturnValue_t initializeLocalDataPool(localpool::DataPool &localDataPoolMap,
LocalDataPoolManager &poolManager) override;
ReturnValue_t setHealth(HealthState health) override;
protected:
LocalPoolDataSetBase *getDataSetHandle(sid_t sid) override;

View File

@ -18,6 +18,7 @@
#include <dummies/PlPcduDummy.h>
#include <dummies/PlocMpsocDummy.h>
#include <dummies/PlocSupervisorDummy.h>
#include <dummies/RadSensorDummy.h>
#include <dummies/RwDummy.h>
#include <dummies/SaDeploymentDummy.h>
#include <dummies/ScexDummy.h>
@ -34,12 +35,13 @@
#include "TemperatureSensorInserter.h"
#include "dummies/Max31865Dummy.h"
#include "dummies/SusDummy.h"
#include "dummies/Tmp1075Dummy.h"
#include "mission/genericFactory.h"
#include "mission/system/acs/acsModeTree.h"
#include "mission/system/com/comModeTree.h"
#include "mission/system/payload/payloadModeTree.h"
#include "mission/system/tcs/tcsModeTree.h"
#include "mission/system/tree/payloadModeTree.h"
#include "mission/tcs/defs.h"
void dummy::createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitcher, GpioIF* gpioIF,
@ -63,11 +65,14 @@ void dummy::createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitcher, GpioIF* gpio
rws[3] = new RwDummy(objects::RW4, objects::DUMMY_COM_IF, comCookieDummy);
ObjectFactory::createRwAssy(pwrSwitcher, power::Switches::PDU2_CH2_RW_5V, rws, rwIds);
new SaDeplDummy(objects::SOLAR_ARRAY_DEPL_HANDLER);
auto* strAssy = new StrAssembly(objects::STR_ASSY);
strAssy->connectModeTreeParent(satsystem::acs::ACS_SUBSYSTEM);
auto* strDummy =
new StarTrackerDummy(objects::STAR_TRACKER, objects::DUMMY_COM_IF, comCookieDummy);
strDummy->connectModeTreeParent(*strAssy);
if (cfg.addStrDummy) {
auto* strAssy = new StrAssembly(objects::STR_ASSY);
strAssy->connectModeTreeParent(satsystem::acs::ACS_SUBSYSTEM);
auto* strDummy =
new StarTrackerDummy(objects::STAR_TRACKER, objects::DUMMY_COM_IF, comCookieDummy);
strDummy->connectModeTreeParent(*strAssy);
}
if (cfg.addSyrlinksDummies) {
auto* syrlinksDummy =
new SyrlinksDummy(objects::SYRLINKS_HANDLER, objects::DUMMY_COM_IF, comCookieDummy);
@ -90,7 +95,7 @@ void dummy::createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitcher, GpioIF* gpio
}
if (cfg.addAcsBoardDummies) {
std::array<DeviceHandlerBase*, 8> assemblyDhbs;
std::array<DeviceHandlerBase*, 8> assemblyDhbs{};
assemblyDhbs[0] =
new MgmLIS3MDLDummy(objects::MGM_0_LIS3_HANDLER, objects::DUMMY_COM_IF, comCookieDummy);
assemblyDhbs[1] =
@ -112,7 +117,7 @@ void dummy::createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitcher, GpioIF* gpio
}
if (cfg.addSusDummies) {
std::array<DeviceHandlerBase*, 12> suses;
std::array<DeviceHandlerBase*, 12> suses{};
suses[0] =
new SusDummy(objects::SUS_0_N_LOC_XFYFZM_PT_XF, objects::DUMMY_COM_IF, comCookieDummy);
suses[1] =
@ -191,25 +196,36 @@ void dummy::createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitcher, GpioIF* gpio
objects::RTD_15_IC18_IMTQ,
new Max31865Dummy(objects::RTD_15_IC18_IMTQ, objects::DUMMY_COM_IF, comCookieDummy));
std::map<object_id_t, Tmp1075Dummy*> tmpSensorDummies;
tmpSensorDummies.emplace(
objects::TMP1075_HANDLER_TCS_0,
new Tmp1075Dummy(objects::TMP1075_HANDLER_TCS_0, objects::DUMMY_COM_IF, comCookieDummy));
tmpSensorDummies.emplace(
objects::TMP1075_HANDLER_TCS_1,
new Tmp1075Dummy(objects::TMP1075_HANDLER_TCS_1, objects::DUMMY_COM_IF, comCookieDummy));
tmpSensorDummies.emplace(
objects::TMP1075_HANDLER_PLPCDU_0,
new Tmp1075Dummy(objects::TMP1075_HANDLER_PLPCDU_0, objects::DUMMY_COM_IF, comCookieDummy));
// damaged.
// tmpSensorDummies.emplace(
// objects::TMP1075_HANDLER_PLPCDU_1,
// new Tmp1075Dummy(objects::TMP1075_HANDLER_PLPCDU_1, objects::DUMMY_COM_IF,
// comCookieDummy));
tmpSensorDummies.emplace(
objects::TMP1075_HANDLER_IF_BOARD,
new Tmp1075Dummy(objects::TMP1075_HANDLER_IF_BOARD, objects::DUMMY_COM_IF, comCookieDummy));
std::optional<TemperatureSensorInserter::Tmp1075DummyMap> tmpSensorDummies;
if (cfg.addTmpDummies) {
TemperatureSensorInserter::Tmp1075DummyMap tmpDummyMap;
if (cfg.tmp1075Cfg.addTcsBrd0) {
tmpDummyMap.emplace(objects::TMP1075_HANDLER_TCS_0,
new Tmp1075Dummy(objects::TMP1075_HANDLER_TCS_0, objects::DUMMY_COM_IF,
comCookieDummy));
}
if (cfg.tmp1075Cfg.addTcsBrd1) {
tmpDummyMap.emplace(objects::TMP1075_HANDLER_TCS_1,
new Tmp1075Dummy(objects::TMP1075_HANDLER_TCS_1, objects::DUMMY_COM_IF,
comCookieDummy));
}
if (cfg.tmp1075Cfg.addPlPcdu0) {
tmpDummyMap.emplace(objects::TMP1075_HANDLER_PLPCDU_0,
new Tmp1075Dummy(objects::TMP1075_HANDLER_PLPCDU_0,
objects::DUMMY_COM_IF, comCookieDummy));
}
if (cfg.tmp1075Cfg.addPlPcdu1) {
tmpDummyMap.emplace(objects::TMP1075_HANDLER_PLPCDU_1,
new Tmp1075Dummy(objects::TMP1075_HANDLER_PLPCDU_1,
objects::DUMMY_COM_IF, comCookieDummy));
}
if (cfg.tmp1075Cfg.addIfBrd) {
tmpDummyMap.emplace(objects::TMP1075_HANDLER_IF_BOARD,
new Tmp1075Dummy(objects::TMP1075_HANDLER_IF_BOARD,
objects::DUMMY_COM_IF, comCookieDummy));
}
tmpSensorDummies = std::move(tmpDummyMap);
}
new TemperatureSensorInserter(objects::THERMAL_TEMP_INSERTER, rtdSensorDummies,
tmpSensorDummies);
TcsBoardAssembly* tcsBoardAssy =
@ -217,8 +233,10 @@ void dummy::createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitcher, GpioIF* gpio
for (auto& rtd : rtdSensorDummies) {
rtd.second->connectModeTreeParent(*tcsBoardAssy);
}
for (auto& tmp : tmpSensorDummies) {
tmp.second->connectModeTreeParent(satsystem::tcs::SUBSYSTEM);
if (tmpSensorDummies.has_value()) {
for (auto& tmp : tmpSensorDummies.value()) {
tmp.second->connectModeTreeParent(satsystem::tcs::SUBSYSTEM);
}
}
}
if (cfg.addCamSwitcherDummy) {
@ -226,11 +244,15 @@ void dummy::createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitcher, GpioIF* gpio
power::Switches::PDU2_CH8_PAYLOAD_CAMERA);
camSwitcher->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
}
auto* scexDummy = new ScexDummy(objects::SCEX, objects::DUMMY_COM_IF, comCookieDummy);
scexDummy->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
auto* plPcduDummy =
new PlPcduDummy(objects::PLPCDU_HANDLER, objects::DUMMY_COM_IF, comCookieDummy);
plPcduDummy->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
if (cfg.addScexDummy) {
auto* scexDummy = new ScexDummy(objects::SCEX, objects::DUMMY_COM_IF, comCookieDummy);
scexDummy->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
}
if (cfg.addPlPcduDummy) {
auto* plPcduDummy =
new PlPcduDummy(objects::PLPCDU_HANDLER, objects::DUMMY_COM_IF, comCookieDummy);
plPcduDummy->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
}
if (cfg.addPlocDummies) {
auto* plocMpsocDummy =
new PlocMpsocDummy(objects::PLOC_MPSOC_HANDLER, objects::DUMMY_COM_IF, comCookieDummy);
@ -239,4 +261,9 @@ void dummy::createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitcher, GpioIF* gpio
objects::PLOC_SUPERVISOR_HANDLER, objects::DUMMY_COM_IF, comCookieDummy, pwrSwitcher);
plocSupervisorDummy->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
}
if (cfg.addRadSensorDummy) {
auto* radSensorDummy =
new RadSensorDummy(objects::RAD_SENSOR, objects::DUMMY_COM_IF, comCookieDummy);
radSensorDummy->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
}
}

View File

@ -6,6 +6,14 @@ class GpioIF;
namespace dummy {
struct Tmp1075Cfg {
bool addTcsBrd0 = true;
bool addTcsBrd1 = true;
bool addPlPcdu0 = true;
bool addPlPcdu1 = true;
bool addIfBrd = true;
};
// Default values targeted towards EM.
struct DummyCfg {
bool addCoreCtrlCfg = true;
@ -19,7 +27,13 @@ struct DummyCfg {
bool addTempSensorDummies = true;
bool addRtdComIFDummy = true;
bool addPlocDummies = true;
bool addStrDummy = true;
bool addTmpDummies = true;
bool addRadSensorDummy = true;
bool addPlPcduDummy = false;
Tmp1075Cfg tmp1075Cfg;
bool addCamSwitcherDummy = false;
bool addScexDummy = false;
};
void createDummies(DummyCfg cfg, PowerSwitchIF& pwrSwitch, GpioIF* gpioIF, bool enableHkSets);

2
fsfw

Submodule fsfw updated: 0f76cdb3ba...42867ad0cb

View File

@ -75,9 +75,12 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
7902;0x1ede;BIT_LOCK;INFO;A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
7903;0x1edf;BIT_LOCK_LOST;INFO;A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
7905;0x1ee1;FRAME_PROCESSING_FAILED;LOW;The CCSDS Board could not interpret a TC;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
8900;0x22c4;CLOCK_SET;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h
8901;0x22c5;CLOCK_DUMP;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h
8902;0x22c6;CLOCK_SET_FAILURE;LOW;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h
8900;0x22c4;CLOCK_SET;INFO;Clock has been set. P1: old timeval seconds. P2: new timeval seconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h
8901;0x22c5;CLOCK_DUMP_LEGACY;INFO;Clock dump event. P1: timeval seconds P2: timeval milliseconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h
8902;0x22c6;CLOCK_SET_FAILURE;LOW;Clock could not be set. P1: Returncode.;fsfw/src/fsfw/pus/Service9TimeManagement.h
8903;0x22c7;CLOCK_DUMP;INFO;Clock dump event. P1: timeval seconds P2: timeval microseconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h
8904;0x22c8;CLOCK_DUMP_BEFORE_SETTING_TIME;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h
8905;0x22c9;CLOCK_DUMP_AFTER_SETTING_TIME;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h
9100;0x238c;TC_DELETION_FAILED;MEDIUM;Deletion of a TC from the map failed. P1: First 32 bit of request ID, P2. Last 32 bit of Request ID;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
9700;0x25e4;TEST;INFO;No description;fsfw/src/fsfw/pus/Service17Test.h
10600;0x2968;CHANGE_OF_SETUP_PARAMETER;LOW;No description;fsfw/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h
@ -86,18 +89,28 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
10802;0x2a32;SERIALIZATION_ERROR;LOW;No description;fsfw/src/fsfw/cfdp/handler/defs.h
10803;0x2a33;FILESTORE_ERROR;LOW;No description;fsfw/src/fsfw/cfdp/handler/defs.h
10804;0x2a34;FILENAME_TOO_LARGE_ERROR;LOW;P1: Transaction step ID, P2: 0 for source file name, 1 for dest file name;fsfw/src/fsfw/cfdp/handler/defs.h
10805;0x2a35;HANDLING_CFDP_REQUEST_FAILED;LOW;CFDP request handling failed. P2: Returncode.;fsfw/src/fsfw/cfdp/handler/defs.h
11200;0x2bc0;SAFE_RATE_VIOLATION;MEDIUM;The limits for the rotation in safe mode were violated.;mission/acs/defs.h
11201;0x2bc1;SAFE_RATE_RECOVERY;MEDIUM;The system has recovered from a safe rate rotation violation.;mission/acs/defs.h
11201;0x2bc1;RATE_RECOVERY;MEDIUM;The system has recovered from a rate rotation violation.;mission/acs/defs.h
11202;0x2bc2;MULTIPLE_RW_INVALID;HIGH;Multiple RWs are invalid, uncommandable and therefore higher ACS modes cannot be maintained.;mission/acs/defs.h
11203;0x2bc3;MEKF_INVALID_INFO;INFO;MEKF was not able to compute a solution. P1: MEKF state on exit;mission/acs/defs.h
11204;0x2bc4;MEKF_RECOVERY;INFO;MEKF is able to compute a solution again.;mission/acs/defs.h
11205;0x2bc5;MEKF_AUTOMATIC_RESET;INFO;MEKF performed an automatic reset after detection of nonfinite values.;mission/acs/defs.h
11206;0x2bc6;MEKF_INVALID_MODE_VIOLATION;HIGH;MEKF was not able to compute a solution during any pointing ACS mode for a prolonged time.;mission/acs/defs.h
11206;0x2bc6;PTG_CTRL_NO_ATTITUDE_INFORMATION;HIGH;For a prolonged time, no attitude information was available for the Pointing Controller. Falling back to Safe Mode.;mission/acs/defs.h
11207;0x2bc7;SAFE_MODE_CONTROLLER_FAILURE;HIGH;The ACS safe mode controller was not able to compute a solution and has failed. P1: Missing information about magnetic field, P2: Missing information about rotational rate;mission/acs/defs.h
11208;0x2bc8;TLE_TOO_OLD;INFO;The TLE for the SGP4 Propagator has become too old.;mission/acs/defs.h
11209;0x2bc9;TLE_FILE_READ_FAILED;LOW;The TLE could not be read from the filesystem.;mission/acs/defs.h
11210;0x2bca;PTG_RATE_VIOLATION;MEDIUM;The limits for the rotation in pointing mode were violated.;mission/acs/defs.h
11211;0x2bcb;DETUMBLE_TRANSITION_FAILED;HIGH;The detumble transition has failed. //! P1: Last detumble state before failure.;mission/acs/defs.h
11300;0x2c24;SWITCH_CMD_SENT;INFO;Indicates that a FSFW object requested setting a switch P1: 1 if on was requested, 0 for off | P2: Switch Index;mission/power/defs.h
11301;0x2c25;SWITCH_HAS_CHANGED;INFO;Indicated that a switch state has changed P1: New switch state, 1 for on, 0 for off | P2: Switch Index;mission/power/defs.h
11302;0x2c26;SWITCHING_Q7S_DENIED;MEDIUM;No description;mission/power/defs.h
11303;0x2c27;FDIR_REACTION_IGNORED;MEDIUM;No description;mission/power/defs.h
11304;0x2c28;DATASET_READ_FAILED;INFO;The dataset read for the inputs of the Power Controller has failed.;mission/power/defs.h
11305;0x2c29;VOLTAGE_OUT_OF_BOUNDS;HIGH;No description;mission/power/defs.h
11306;0x2c2a;TIMEDELTA_OUT_OF_BOUNDS;LOW;Time difference for Coulomb Counter was too large. P1: time in s * 10;mission/power/defs.h
11307;0x2c2b;POWER_LEVEL_LOW;HIGH;The State of Charge is below the limit for payload use. Setting Payload to faulty.;mission/power/defs.h
11308;0x2c2c;POWER_LEVEL_CRITICAL;HIGH;The State of Charge is below the limit for higher modes. Setting Reaction Wheels to faulty.;mission/power/defs.h
11400;0x2c88;GPIO_PULL_HIGH_FAILED;LOW;No description;mission/tcs/HeaterHandler.h
11401;0x2c89;GPIO_PULL_LOW_FAILED;LOW;No description;mission/tcs/HeaterHandler.h
11402;0x2c8a;HEATER_WENT_ON;INFO;No description;mission/tcs/HeaterHandler.h
@ -115,12 +128,15 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
11506;0x2cf2;DEPL_SA1_GPIO_SWTICH_OFF_FAILED;HIGH;No description;mission/SolarArrayDeploymentHandler.h
11507;0x2cf3;DEPL_SA2_GPIO_SWTICH_OFF_FAILED;HIGH;No description;mission/SolarArrayDeploymentHandler.h
11508;0x2cf4;AUTONOMOUS_DEPLOYMENT_COMPLETED;INFO;No description;mission/SolarArrayDeploymentHandler.h
11601;0x2d51;MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC crc failure in telemetry packet;linux/payload/PlocMpsocHandler.h
11602;0x2d52;ACK_FAILURE;LOW;PLOC receive acknowledgment failure report P1: Command Id which leads the acknowledgment failure report P2: The status field inserted by the MPSoC into the data field;linux/payload/PlocMpsocHandler.h
11603;0x2d53;EXE_FAILURE;LOW;PLOC receive execution failure report P1: Command Id which leads the execution failure report P2: The status field inserted by the MPSoC into the data field;linux/payload/PlocMpsocHandler.h
11604;0x2d54;MPSOC_HANDLER_CRC_FAILURE;LOW;PLOC reply has invalid crc;linux/payload/PlocMpsocHandler.h
11605;0x2d55;MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH;LOW;Packet sequence count in received space packet does not match expected count P1: Expected sequence count P2: Received sequence count;linux/payload/PlocMpsocHandler.h
11606;0x2d56;MPSOC_SHUTDOWN_FAILED;HIGH;Supervisor fails to shutdown MPSoC. Requires to power off the PLOC and thus also to shutdown the supervisor.;linux/payload/PlocMpsocHandler.h
11601;0x2d51;MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC crc failure in telemetry packet;linux/payload/plocMpsocHelpers.h
11602;0x2d52;ACK_FAILURE;LOW;PLOC receive acknowledgment failure report P1: Command Id which leads the acknowledgment failure report P2: The status field inserted by the MPSoC into the data field;linux/payload/plocMpsocHelpers.h
11603;0x2d53;EXE_FAILURE;LOW;PLOC receive execution failure report P1: Command Id which leads the execution failure report P2: The status field inserted by the MPSoC into the data field;linux/payload/plocMpsocHelpers.h
11604;0x2d54;MPSOC_HANDLER_CRC_FAILURE;LOW;PLOC reply has invalid crc;linux/payload/plocMpsocHelpers.h
11605;0x2d55;MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH;LOW;Packet sequence count in received space packet does not match expected count P1: Expected sequence count P2: Received sequence count;linux/payload/plocMpsocHelpers.h
11606;0x2d56;MPSOC_SHUTDOWN_FAILED;HIGH;Supervisor fails to shutdown MPSoC. Requires to power off the PLOC and thus also to shutdown the supervisor.;linux/payload/plocMpsocHelpers.h
11607;0x2d57;SUPV_NOT_ON;LOW;SUPV not on for boot or shutdown process. P1: 0 for OFF transition, 1 for ON transition.;linux/payload/plocMpsocHelpers.h
11608;0x2d58;SUPV_REPLY_TIMEOUT;LOW;SUPV reply timeout.;linux/payload/plocMpsocHelpers.h
11609;0x2d59;CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE;LOW;Camera must be commanded on first.;linux/payload/plocMpsocHelpers.h
11701;0x2db5;SELF_TEST_I2C_FAILURE;LOW;Get self test result returns I2C failure P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;mission/acs/ImtqHandler.h
11702;0x2db6;SELF_TEST_SPI_FAILURE;LOW;Get self test result returns SPI failure. This concerns the MTM connectivity. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;mission/acs/ImtqHandler.h
11703;0x2db7;SELF_TEST_ADC_FAILURE;LOW;Get self test result returns failure in measurement of current and temperature. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;mission/acs/ImtqHandler.h
@ -133,14 +149,17 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
11802;0x2e1a;RESET_OCCURED;LOW;No description;mission/acs/rwHelpers.h
11901;0x2e7d;BOOTING_FIRMWARE_FAILED_EVENT;LOW;Failed to boot firmware;mission/acs/str/StarTrackerHandler.h
11902;0x2e7e;BOOTING_BOOTLOADER_FAILED_EVENT;LOW;Failed to boot star tracker into bootloader mode;mission/acs/str/StarTrackerHandler.h
12001;0x2ee1;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC supervisor crc failure in telemetry packet;linux/payload/PlocSupervisorHandler.h
12002;0x2ee2;SUPV_UNKNOWN_TM;LOW;Unhandled event. P1: APID, P2: Service ID;linux/payload/PlocSupervisorHandler.h
12003;0x2ee3;SUPV_UNINIMPLEMENTED_TM;LOW;No description;linux/payload/PlocSupervisorHandler.h
12004;0x2ee4;SUPV_ACK_FAILURE;LOW;PLOC supervisor received acknowledgment failure report;linux/payload/PlocSupervisorHandler.h
12005;0x2ee5;SUPV_EXE_FAILURE;LOW;PLOC received execution failure report P1: ID of command for which the execution failed P2: Status code sent by the supervisor handler;linux/payload/PlocSupervisorHandler.h
12006;0x2ee6;SUPV_CRC_FAILURE_EVENT;LOW;PLOC supervisor reply has invalid crc;linux/payload/PlocSupervisorHandler.h
12007;0x2ee7;SUPV_HELPER_EXECUTING;LOW;Supervisor helper currently executing a command;linux/payload/PlocSupervisorHandler.h
12008;0x2ee8;SUPV_MPSOC_SHUTDOWN_BUILD_FAILED;LOW;Failed to build the command to shutdown the MPSoC;linux/payload/PlocSupervisorHandler.h
11903;0x2e7f;COM_ERROR_REPLY_RECEIVED;LOW;Received COM error. P1: Communication Error ID (datasheet p32);mission/acs/str/StarTrackerHandler.h
12001;0x2ee1;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC supervisor crc failure in telemetry packet;linux/payload/plocSupvDefs.h
12002;0x2ee2;SUPV_UNKNOWN_TM;LOW;Unhandled event. P1: APID, P2: Service ID;linux/payload/plocSupvDefs.h
12003;0x2ee3;SUPV_UNINIMPLEMENTED_TM;LOW;No description;linux/payload/plocSupvDefs.h
12004;0x2ee4;SUPV_ACK_FAILURE;LOW;PLOC supervisor received acknowledgment failure report;linux/payload/plocSupvDefs.h
12005;0x2ee5;SUPV_EXE_FAILURE;LOW;PLOC received execution failure report P1: ID of command for which the execution failed P2: Status code sent by the supervisor handler;linux/payload/plocSupvDefs.h
12006;0x2ee6;SUPV_CRC_FAILURE_EVENT;LOW;PLOC supervisor reply has invalid crc;linux/payload/plocSupvDefs.h
12007;0x2ee7;SUPV_HELPER_EXECUTING;LOW;Supervisor helper currently executing a command;linux/payload/plocSupvDefs.h
12008;0x2ee8;SUPV_MPSOC_SHUTDOWN_BUILD_FAILED;LOW;Failed to build the command to shutdown the MPSoC;linux/payload/plocSupvDefs.h
12009;0x2ee9;SUPV_ACK_UNKNOWN_COMMAND;LOW;Received ACK, but no related command is unknown or has not been sent by this software instance. P1: Module APID. P2: Service ID.;linux/payload/plocSupvDefs.h
12010;0x2eea;SUPV_EXE_ACK_UNKNOWN_COMMAND;LOW;Received ACK EXE, but no related command is unknown or has not been sent by this software instance. P1: Module APID. P2: Service ID.;linux/payload/plocSupvDefs.h
12100;0x2f44;SANITIZATION_FAILED;LOW;No description;bsp_q7s/fs/SdCardManager.h
12101;0x2f45;MOUNTED_SD_CARD;INFO;No description;bsp_q7s/fs/SdCardManager.h
12300;0x300c;SEND_MRAM_DUMP_FAILED;LOW;Failed to send mram dump command to supervisor handler P1: Return value of commandAction function P2: Start address of MRAM to dump with this command;linux/payload/PlocMemoryDumper.h
@ -160,6 +179,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
12412;0x307c;PDEC_RESET_FAILED;HIGH;Failed to pull PDEC reset to low;linux/ipcore/pdec.h
12413;0x307d;OPEN_IRQ_FILE_FAILED;HIGH;Failed to open the IRQ uio file;linux/ipcore/pdec.h
12414;0x307e;PDEC_INIT_FAILED;HIGH;PDEC initialization failed. This might also be due to the persistent confiuration never becoming available, for example due to SD card issues.;linux/ipcore/pdec.h
12415;0x307f;PDEC_CONFIG_CORRUPTED;HIGH;The PDEC configuration area has been corrupted P1: The first configuration word P2: The second configuration word;linux/ipcore/pdec.h
12500;0x30d4;IMAGE_UPLOAD_FAILED;LOW;Image upload failed;linux/acs/StrComHandler.h
12501;0x30d5;IMAGE_DOWNLOAD_FAILED;LOW;Image download failed;linux/acs/StrComHandler.h
12502;0x30d6;IMAGE_UPLOAD_SUCCESSFUL;LOW;Uploading image to star tracker was successfulop;linux/acs/StrComHandler.h
@ -217,8 +237,9 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
12902;0x3266;POWER_STATE_MACHINE_TIMEOUT;MEDIUM;No description;mission/system/acs/SusAssembly.h
12903;0x3267;SIDE_SWITCH_TRANSITION_NOT_ALLOWED;LOW;Not implemented, would increase already high complexity. Operator should instead command the assembly off first and then command the assembly on into the desired mode/submode combination;mission/system/acs/SusAssembly.h
13000;0x32c8;CHILDREN_LOST_MODE;MEDIUM;No description;mission/system/tcs/TcsBoardAssembly.h
13100;0x332c;GPS_FIX_CHANGE;INFO;Fix has changed. P1: Old fix. P2: New fix 0: Not seen, 1: No Fix, 2: 2D-Fix, 3: 3D-Fix;mission/acs/archive/GPSDefinitions.h
13101;0x332d;CANT_GET_FIX;LOW;Could not get fix in maximum allowed time. P1: Maximum allowed time to get a fix after the GPS was switched on.;mission/acs/archive/GPSDefinitions.h
13100;0x332c;GPS_FIX_CHANGE;INFO;Fix has changed. P1: New fix. P2: Missed fix changes 0: Not seen, 1: No Fix, 2: 2D-Fix, 3: 3D-Fix;linux/acs/GPSDefinitions.h
13101;0x332d;CANT_GET_FIX;MEDIUM;Could not get fix in maximum allowed time. Trying to reset both GNSS devices. P1: Maximum allowed time to get a fix after the GPS was switched on.;linux/acs/GPSDefinitions.h
13102;0x332e;RESET_FAIL;HIGH;Failed to reset an GNNS Device. P1: Board-Side.;linux/acs/GPSDefinitions.h
13200;0x3390;P60_BOOT_COUNT;INFO;P60 boot count is broadcasted once at SW startup. P1: Boot count;mission/power/P60DockHandler.h
13201;0x3391;BATT_MODE;INFO;Battery mode is broadcasted at startup. P1: Mode;mission/power/P60DockHandler.h
13202;0x3392;BATT_MODE_CHANGED;MEDIUM;Battery mode has changed. P1: Old mode. P2: New mode;mission/power/P60DockHandler.h
@ -254,6 +275,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
13800;0x35e8;MISSING_PACKET;LOW;No description;mission/payload/scexHelpers.h
13801;0x35e9;EXPERIMENT_TIMEDOUT;LOW;No description;mission/payload/scexHelpers.h
13802;0x35ea;MULTI_PACKET_COMMAND_DONE;INFO;No description;mission/payload/scexHelpers.h
13803;0x35eb;FS_UNUSABLE;LOW;No description;mission/payload/scexHelpers.h
13901;0x364d;SET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
13902;0x364e;GET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
13903;0x364f;INSERT_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
@ -272,6 +294,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
14011;0x36bb;I2C_REBOOT;HIGH;I2C is unavailable. Recovery did not work, performing full reboot.;mission/sysDefs.h
14012;0x36bc;PDEC_REBOOT;HIGH;PDEC recovery through reset was not possible, performing full reboot.;mission/sysDefs.h
14013;0x36bd;FIRMWARE_INFO;INFO;Version information of the firmware (not OBSW). P1: Byte 0: Major, Byte 1: Minor, Byte 2: Patch, Byte 3: Has Git Hash P2: First four letters of Git SHA is the last byte of P1 is set.;mission/sysDefs.h
14014;0x36be;ACTIVE_SD_INFO;INFO;Active SD card info. SD States: 0: OFF, 1: ON, 2: MOUNTED. P1: Active SD Card Index, 0 if none is active P2: First two bytes: SD state of SD card 0, last two bytes SD state of SD card 1;mission/sysDefs.h
14100;0x3714;NO_VALID_SENSOR_TEMPERATURE;MEDIUM;No description;mission/controller/tcsDefs.h
14101;0x3715;NO_HEALTHY_HEATER_AVAILABLE;MEDIUM;No description;mission/controller/tcsDefs.h
14102;0x3716;SYRLINKS_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
@ -280,6 +303,9 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
14106;0x371a;PCDU_SYSTEM_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
14107;0x371b;HEATER_NOT_OFF_FOR_OFF_MODE;MEDIUM;No description;mission/controller/tcsDefs.h
14108;0x371c;MGT_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
14109;0x371d;TCS_SWITCHING_HEATER_ON;INFO;P1: Module index. P2: Heater index;mission/controller/tcsDefs.h
14110;0x371e;TCS_SWITCHING_HEATER_OFF;INFO;P1: Module index. P2: Heater index;mission/controller/tcsDefs.h
14111;0x371f;TCS_HEATER_MAX_BURN_TIME_REACHED;MEDIUM;P1: Heater index. P2: Maximum burn time for heater.;mission/controller/tcsDefs.h
14201;0x3779;TX_TIMER_EXPIRED;INFO;The transmit timer to protect the Syrlinks expired P1: The current timer value;mission/system/com/ComSubsystem.h
14202;0x377a;BIT_LOCK_TX_ON;INFO;Transmitter will be turned on due to detection of bitlock;mission/system/com/ComSubsystem.h
14300;0x37dc;POSSIBLE_FILE_CORRUPTION;LOW;P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp.;mission/persistentTmStoreDefs.h
@ -295,3 +321,6 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
14312;0x37e8;DUMP_MISC_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
14313;0x37e9;DUMP_HK_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
14314;0x37ea;DUMP_CFDP_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
14500;0x38a4;TEMPERATURE_ALL_ONES_START;MEDIUM;Detected invalid values, starting invalid message counting;mission/acs/SusHandler.h
14501;0x38a5;TEMPERATURE_ALL_ONES_RECOVERY;INFO;Detected valid values for a prolonged time again, resetting all counters. P1: Number of periods with invalid messages. P2: Maximum invalid message counter.;mission/acs/SusHandler.h
14600;0x3908;FAULT_HANDLER_TRIGGERED;LOW;P1: CFDP fault handler code. P2: CFDP condition code.;mission/cfdp/defs.h

1 Event ID (dec) Event ID (hex) Name Severity Description File Path
75 7902 0x1ede BIT_LOCK INFO A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0 fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
76 7903 0x1edf BIT_LOCK_LOST INFO A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0 fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
77 7905 0x1ee1 FRAME_PROCESSING_FAILED LOW The CCSDS Board could not interpret a TC fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
78 8900 0x22c4 CLOCK_SET INFO No description Clock has been set. P1: old timeval seconds. P2: new timeval seconds. fsfw/src/fsfw/pus/Service9TimeManagement.h
79 8901 0x22c5 CLOCK_DUMP CLOCK_DUMP_LEGACY INFO No description Clock dump event. P1: timeval seconds P2: timeval milliseconds. fsfw/src/fsfw/pus/Service9TimeManagement.h
80 8902 0x22c6 CLOCK_SET_FAILURE LOW No description Clock could not be set. P1: Returncode. fsfw/src/fsfw/pus/Service9TimeManagement.h
81 8903 0x22c7 CLOCK_DUMP INFO Clock dump event. P1: timeval seconds P2: timeval microseconds. fsfw/src/fsfw/pus/Service9TimeManagement.h
82 8904 0x22c8 CLOCK_DUMP_BEFORE_SETTING_TIME INFO No description fsfw/src/fsfw/pus/Service9TimeManagement.h
83 8905 0x22c9 CLOCK_DUMP_AFTER_SETTING_TIME INFO No description fsfw/src/fsfw/pus/Service9TimeManagement.h
84 9100 0x238c TC_DELETION_FAILED MEDIUM Deletion of a TC from the map failed. P1: First 32 bit of request ID, P2. Last 32 bit of Request ID fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
85 9700 0x25e4 TEST INFO No description fsfw/src/fsfw/pus/Service17Test.h
86 10600 0x2968 CHANGE_OF_SETUP_PARAMETER LOW No description fsfw/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h
89 10802 0x2a32 SERIALIZATION_ERROR LOW No description fsfw/src/fsfw/cfdp/handler/defs.h
90 10803 0x2a33 FILESTORE_ERROR LOW No description fsfw/src/fsfw/cfdp/handler/defs.h
91 10804 0x2a34 FILENAME_TOO_LARGE_ERROR LOW P1: Transaction step ID, P2: 0 for source file name, 1 for dest file name fsfw/src/fsfw/cfdp/handler/defs.h
92 10805 0x2a35 HANDLING_CFDP_REQUEST_FAILED LOW CFDP request handling failed. P2: Returncode. fsfw/src/fsfw/cfdp/handler/defs.h
93 11200 0x2bc0 SAFE_RATE_VIOLATION MEDIUM The limits for the rotation in safe mode were violated. mission/acs/defs.h
94 11201 0x2bc1 SAFE_RATE_RECOVERY RATE_RECOVERY MEDIUM The system has recovered from a safe rate rotation violation. The system has recovered from a rate rotation violation. mission/acs/defs.h
95 11202 0x2bc2 MULTIPLE_RW_INVALID HIGH Multiple RWs are invalid, uncommandable and therefore higher ACS modes cannot be maintained. mission/acs/defs.h
96 11203 0x2bc3 MEKF_INVALID_INFO INFO MEKF was not able to compute a solution. P1: MEKF state on exit mission/acs/defs.h
97 11204 0x2bc4 MEKF_RECOVERY INFO MEKF is able to compute a solution again. mission/acs/defs.h
98 11205 0x2bc5 MEKF_AUTOMATIC_RESET INFO MEKF performed an automatic reset after detection of nonfinite values. mission/acs/defs.h
99 11206 0x2bc6 MEKF_INVALID_MODE_VIOLATION PTG_CTRL_NO_ATTITUDE_INFORMATION HIGH MEKF was not able to compute a solution during any pointing ACS mode for a prolonged time. For a prolonged time, no attitude information was available for the Pointing Controller. Falling back to Safe Mode. mission/acs/defs.h
100 11207 0x2bc7 SAFE_MODE_CONTROLLER_FAILURE HIGH The ACS safe mode controller was not able to compute a solution and has failed. P1: Missing information about magnetic field, P2: Missing information about rotational rate mission/acs/defs.h
101 11208 0x2bc8 TLE_TOO_OLD INFO The TLE for the SGP4 Propagator has become too old. mission/acs/defs.h
102 11209 0x2bc9 TLE_FILE_READ_FAILED LOW The TLE could not be read from the filesystem. mission/acs/defs.h
103 11210 0x2bca PTG_RATE_VIOLATION MEDIUM The limits for the rotation in pointing mode were violated. mission/acs/defs.h
104 11211 0x2bcb DETUMBLE_TRANSITION_FAILED HIGH The detumble transition has failed. //! P1: Last detumble state before failure. mission/acs/defs.h
105 11300 0x2c24 SWITCH_CMD_SENT INFO Indicates that a FSFW object requested setting a switch P1: 1 if on was requested, 0 for off | P2: Switch Index mission/power/defs.h
106 11301 0x2c25 SWITCH_HAS_CHANGED INFO Indicated that a switch state has changed P1: New switch state, 1 for on, 0 for off | P2: Switch Index mission/power/defs.h
107 11302 0x2c26 SWITCHING_Q7S_DENIED MEDIUM No description mission/power/defs.h
108 11303 0x2c27 FDIR_REACTION_IGNORED MEDIUM No description mission/power/defs.h
109 11304 0x2c28 DATASET_READ_FAILED INFO The dataset read for the inputs of the Power Controller has failed. mission/power/defs.h
110 11305 0x2c29 VOLTAGE_OUT_OF_BOUNDS HIGH No description mission/power/defs.h
111 11306 0x2c2a TIMEDELTA_OUT_OF_BOUNDS LOW Time difference for Coulomb Counter was too large. P1: time in s * 10 mission/power/defs.h
112 11307 0x2c2b POWER_LEVEL_LOW HIGH The State of Charge is below the limit for payload use. Setting Payload to faulty. mission/power/defs.h
113 11308 0x2c2c POWER_LEVEL_CRITICAL HIGH The State of Charge is below the limit for higher modes. Setting Reaction Wheels to faulty. mission/power/defs.h
114 11400 0x2c88 GPIO_PULL_HIGH_FAILED LOW No description mission/tcs/HeaterHandler.h
115 11401 0x2c89 GPIO_PULL_LOW_FAILED LOW No description mission/tcs/HeaterHandler.h
116 11402 0x2c8a HEATER_WENT_ON INFO No description mission/tcs/HeaterHandler.h
128 11506 0x2cf2 DEPL_SA1_GPIO_SWTICH_OFF_FAILED HIGH No description mission/SolarArrayDeploymentHandler.h
129 11507 0x2cf3 DEPL_SA2_GPIO_SWTICH_OFF_FAILED HIGH No description mission/SolarArrayDeploymentHandler.h
130 11508 0x2cf4 AUTONOMOUS_DEPLOYMENT_COMPLETED INFO No description mission/SolarArrayDeploymentHandler.h
131 11601 0x2d51 MEMORY_READ_RPT_CRC_FAILURE LOW PLOC crc failure in telemetry packet linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
132 11602 0x2d52 ACK_FAILURE LOW PLOC receive acknowledgment failure report P1: Command Id which leads the acknowledgment failure report P2: The status field inserted by the MPSoC into the data field linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
133 11603 0x2d53 EXE_FAILURE LOW PLOC receive execution failure report P1: Command Id which leads the execution failure report P2: The status field inserted by the MPSoC into the data field linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
134 11604 0x2d54 MPSOC_HANDLER_CRC_FAILURE LOW PLOC reply has invalid crc linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
135 11605 0x2d55 MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH LOW Packet sequence count in received space packet does not match expected count P1: Expected sequence count P2: Received sequence count linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
136 11606 0x2d56 MPSOC_SHUTDOWN_FAILED HIGH Supervisor fails to shutdown MPSoC. Requires to power off the PLOC and thus also to shutdown the supervisor. linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
137 11607 0x2d57 SUPV_NOT_ON LOW SUPV not on for boot or shutdown process. P1: 0 for OFF transition, 1 for ON transition. linux/payload/plocMpsocHelpers.h
138 11608 0x2d58 SUPV_REPLY_TIMEOUT LOW SUPV reply timeout. linux/payload/plocMpsocHelpers.h
139 11609 0x2d59 CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE LOW Camera must be commanded on first. linux/payload/plocMpsocHelpers.h
140 11701 0x2db5 SELF_TEST_I2C_FAILURE LOW Get self test result returns I2C failure P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA mission/acs/ImtqHandler.h
141 11702 0x2db6 SELF_TEST_SPI_FAILURE LOW Get self test result returns SPI failure. This concerns the MTM connectivity. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA mission/acs/ImtqHandler.h
142 11703 0x2db7 SELF_TEST_ADC_FAILURE LOW Get self test result returns failure in measurement of current and temperature. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA mission/acs/ImtqHandler.h
149 11802 0x2e1a RESET_OCCURED LOW No description mission/acs/rwHelpers.h
150 11901 0x2e7d BOOTING_FIRMWARE_FAILED_EVENT LOW Failed to boot firmware mission/acs/str/StarTrackerHandler.h
151 11902 0x2e7e BOOTING_BOOTLOADER_FAILED_EVENT LOW Failed to boot star tracker into bootloader mode mission/acs/str/StarTrackerHandler.h
152 12001 11903 0x2ee1 0x2e7f SUPV_MEMORY_READ_RPT_CRC_FAILURE COM_ERROR_REPLY_RECEIVED LOW PLOC supervisor crc failure in telemetry packet Received COM error. P1: Communication Error ID (datasheet p32) linux/payload/PlocSupervisorHandler.h mission/acs/str/StarTrackerHandler.h
153 12002 12001 0x2ee2 0x2ee1 SUPV_UNKNOWN_TM SUPV_MEMORY_READ_RPT_CRC_FAILURE LOW Unhandled event. P1: APID, P2: Service ID PLOC supervisor crc failure in telemetry packet linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
154 12003 12002 0x2ee3 0x2ee2 SUPV_UNINIMPLEMENTED_TM SUPV_UNKNOWN_TM LOW No description Unhandled event. P1: APID, P2: Service ID linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
155 12004 12003 0x2ee4 0x2ee3 SUPV_ACK_FAILURE SUPV_UNINIMPLEMENTED_TM LOW PLOC supervisor received acknowledgment failure report No description linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
156 12005 12004 0x2ee5 0x2ee4 SUPV_EXE_FAILURE SUPV_ACK_FAILURE LOW PLOC received execution failure report P1: ID of command for which the execution failed P2: Status code sent by the supervisor handler PLOC supervisor received acknowledgment failure report linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
157 12006 12005 0x2ee6 0x2ee5 SUPV_CRC_FAILURE_EVENT SUPV_EXE_FAILURE LOW PLOC supervisor reply has invalid crc PLOC received execution failure report P1: ID of command for which the execution failed P2: Status code sent by the supervisor handler linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
158 12007 12006 0x2ee7 0x2ee6 SUPV_HELPER_EXECUTING SUPV_CRC_FAILURE_EVENT LOW Supervisor helper currently executing a command PLOC supervisor reply has invalid crc linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
159 12008 12007 0x2ee8 0x2ee7 SUPV_MPSOC_SHUTDOWN_BUILD_FAILED SUPV_HELPER_EXECUTING LOW Failed to build the command to shutdown the MPSoC Supervisor helper currently executing a command linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
160 12008 0x2ee8 SUPV_MPSOC_SHUTDOWN_BUILD_FAILED LOW Failed to build the command to shutdown the MPSoC linux/payload/plocSupvDefs.h
161 12009 0x2ee9 SUPV_ACK_UNKNOWN_COMMAND LOW Received ACK, but no related command is unknown or has not been sent by this software instance. P1: Module APID. P2: Service ID. linux/payload/plocSupvDefs.h
162 12010 0x2eea SUPV_EXE_ACK_UNKNOWN_COMMAND LOW Received ACK EXE, but no related command is unknown or has not been sent by this software instance. P1: Module APID. P2: Service ID. linux/payload/plocSupvDefs.h
163 12100 0x2f44 SANITIZATION_FAILED LOW No description bsp_q7s/fs/SdCardManager.h
164 12101 0x2f45 MOUNTED_SD_CARD INFO No description bsp_q7s/fs/SdCardManager.h
165 12300 0x300c SEND_MRAM_DUMP_FAILED LOW Failed to send mram dump command to supervisor handler P1: Return value of commandAction function P2: Start address of MRAM to dump with this command linux/payload/PlocMemoryDumper.h
179 12412 0x307c PDEC_RESET_FAILED HIGH Failed to pull PDEC reset to low linux/ipcore/pdec.h
180 12413 0x307d OPEN_IRQ_FILE_FAILED HIGH Failed to open the IRQ uio file linux/ipcore/pdec.h
181 12414 0x307e PDEC_INIT_FAILED HIGH PDEC initialization failed. This might also be due to the persistent confiuration never becoming available, for example due to SD card issues. linux/ipcore/pdec.h
182 12415 0x307f PDEC_CONFIG_CORRUPTED HIGH The PDEC configuration area has been corrupted P1: The first configuration word P2: The second configuration word linux/ipcore/pdec.h
183 12500 0x30d4 IMAGE_UPLOAD_FAILED LOW Image upload failed linux/acs/StrComHandler.h
184 12501 0x30d5 IMAGE_DOWNLOAD_FAILED LOW Image download failed linux/acs/StrComHandler.h
185 12502 0x30d6 IMAGE_UPLOAD_SUCCESSFUL LOW Uploading image to star tracker was successfulop linux/acs/StrComHandler.h
237 12902 0x3266 POWER_STATE_MACHINE_TIMEOUT MEDIUM No description mission/system/acs/SusAssembly.h
238 12903 0x3267 SIDE_SWITCH_TRANSITION_NOT_ALLOWED LOW Not implemented, would increase already high complexity. Operator should instead command the assembly off first and then command the assembly on into the desired mode/submode combination mission/system/acs/SusAssembly.h
239 13000 0x32c8 CHILDREN_LOST_MODE MEDIUM No description mission/system/tcs/TcsBoardAssembly.h
240 13100 0x332c GPS_FIX_CHANGE INFO Fix has changed. P1: Old fix. P2: New fix 0: Not seen, 1: No Fix, 2: 2D-Fix, 3: 3D-Fix Fix has changed. P1: New fix. P2: Missed fix changes 0: Not seen, 1: No Fix, 2: 2D-Fix, 3: 3D-Fix mission/acs/archive/GPSDefinitions.h linux/acs/GPSDefinitions.h
241 13101 0x332d CANT_GET_FIX LOW MEDIUM Could not get fix in maximum allowed time. P1: Maximum allowed time to get a fix after the GPS was switched on. Could not get fix in maximum allowed time. Trying to reset both GNSS devices. P1: Maximum allowed time to get a fix after the GPS was switched on. mission/acs/archive/GPSDefinitions.h linux/acs/GPSDefinitions.h
242 13102 0x332e RESET_FAIL HIGH Failed to reset an GNNS Device. P1: Board-Side. linux/acs/GPSDefinitions.h
243 13200 0x3390 P60_BOOT_COUNT INFO P60 boot count is broadcasted once at SW startup. P1: Boot count mission/power/P60DockHandler.h
244 13201 0x3391 BATT_MODE INFO Battery mode is broadcasted at startup. P1: Mode mission/power/P60DockHandler.h
245 13202 0x3392 BATT_MODE_CHANGED MEDIUM Battery mode has changed. P1: Old mode. P2: New mode mission/power/P60DockHandler.h
275 13800 0x35e8 MISSING_PACKET LOW No description mission/payload/scexHelpers.h
276 13801 0x35e9 EXPERIMENT_TIMEDOUT LOW No description mission/payload/scexHelpers.h
277 13802 0x35ea MULTI_PACKET_COMMAND_DONE INFO No description mission/payload/scexHelpers.h
278 13803 0x35eb FS_UNUSABLE LOW No description mission/payload/scexHelpers.h
279 13901 0x364d SET_CONFIGFILEVALUE_FAILED MEDIUM No description mission/utility/GlobalConfigHandler.h
280 13902 0x364e GET_CONFIGFILEVALUE_FAILED MEDIUM No description mission/utility/GlobalConfigHandler.h
281 13903 0x364f INSERT_CONFIGFILEVALUE_FAILED MEDIUM No description mission/utility/GlobalConfigHandler.h
294 14011 0x36bb I2C_REBOOT HIGH I2C is unavailable. Recovery did not work, performing full reboot. mission/sysDefs.h
295 14012 0x36bc PDEC_REBOOT HIGH PDEC recovery through reset was not possible, performing full reboot. mission/sysDefs.h
296 14013 0x36bd FIRMWARE_INFO INFO Version information of the firmware (not OBSW). P1: Byte 0: Major, Byte 1: Minor, Byte 2: Patch, Byte 3: Has Git Hash P2: First four letters of Git SHA is the last byte of P1 is set. mission/sysDefs.h
297 14014 0x36be ACTIVE_SD_INFO INFO Active SD card info. SD States: 0: OFF, 1: ON, 2: MOUNTED. P1: Active SD Card Index, 0 if none is active P2: First two bytes: SD state of SD card 0, last two bytes SD state of SD card 1 mission/sysDefs.h
298 14100 0x3714 NO_VALID_SENSOR_TEMPERATURE MEDIUM No description mission/controller/tcsDefs.h
299 14101 0x3715 NO_HEALTHY_HEATER_AVAILABLE MEDIUM No description mission/controller/tcsDefs.h
300 14102 0x3716 SYRLINKS_OVERHEATING HIGH No description mission/controller/tcsDefs.h
303 14106 0x371a PCDU_SYSTEM_OVERHEATING HIGH No description mission/controller/tcsDefs.h
304 14107 0x371b HEATER_NOT_OFF_FOR_OFF_MODE MEDIUM No description mission/controller/tcsDefs.h
305 14108 0x371c MGT_OVERHEATING HIGH No description mission/controller/tcsDefs.h
306 14109 0x371d TCS_SWITCHING_HEATER_ON INFO P1: Module index. P2: Heater index mission/controller/tcsDefs.h
307 14110 0x371e TCS_SWITCHING_HEATER_OFF INFO P1: Module index. P2: Heater index mission/controller/tcsDefs.h
308 14111 0x371f TCS_HEATER_MAX_BURN_TIME_REACHED MEDIUM P1: Heater index. P2: Maximum burn time for heater. mission/controller/tcsDefs.h
309 14201 0x3779 TX_TIMER_EXPIRED INFO The transmit timer to protect the Syrlinks expired P1: The current timer value mission/system/com/ComSubsystem.h
310 14202 0x377a BIT_LOCK_TX_ON INFO Transmitter will be turned on due to detection of bitlock mission/system/com/ComSubsystem.h
311 14300 0x37dc POSSIBLE_FILE_CORRUPTION LOW P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp. mission/persistentTmStoreDefs.h
321 14312 0x37e8 DUMP_MISC_CANCELLED LOW P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
322 14313 0x37e9 DUMP_HK_CANCELLED LOW P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
323 14314 0x37ea DUMP_CFDP_CANCELLED LOW P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
324 14500 0x38a4 TEMPERATURE_ALL_ONES_START MEDIUM Detected invalid values, starting invalid message counting mission/acs/SusHandler.h
325 14501 0x38a5 TEMPERATURE_ALL_ONES_RECOVERY INFO Detected valid values for a prolonged time again, resetting all counters. P1: Number of periods with invalid messages. P2: Maximum invalid message counter. mission/acs/SusHandler.h
326 14600 0x3908 FAULT_HANDLER_TRIGGERED LOW P1: CFDP fault handler code. P2: CFDP condition code. mission/cfdp/defs.h

View File

@ -1,7 +1,9 @@
0x42694269;TEST_TASK
0x43000002;ACS_CONTROLLER
0x43000003;CORE_CONTROLLER
0x43000004;POWER_CONTROLLER
0x43000006;GLOBAL_JSON_CFG
0x43000007;XIPHOS_WDT
0x43400001;THERMAL_CONTROLLER
0x44000001;DUMMY_HANDLER
0x44120006;MGM_0_LIS3_HANDLER
@ -55,6 +57,7 @@
0x44330015;PLOC_MPSOC_HANDLER
0x44330016;PLOC_SUPERVISOR_HANDLER
0x44330017;PLOC_SUPERVISOR_HELPER
0x44330018;PLOC_MPSOC_COMMUNICATION
0x44330032;SCEX
0x444100A2;SOLAR_ARRAY_DEPL_HANDLER
0x444100A4;HEATER_HANDLER
@ -151,11 +154,13 @@
0x73000102;CFDP_TM_FUNNEL
0x73000205;CFDP_HANDLER
0x73000206;CFDP_DISTRIBUTOR
0x73000207;CFDP_FAULT_HANDLER
0x73010000;EIVE_SYSTEM
0x73010001;ACS_SUBSYSTEM
0x73010002;PL_SUBSYSTEM
0x73010003;TCS_SUBSYSTEM
0x73010004;COM_SUBSYSTEM
0x73010005;EPS_SUBSYSTEM
0x73020001;MISC_TM_STORE
0x73020002;OK_TM_STORE
0x73020003;NOT_OK_TM_STORE

1 0x42694269 TEST_TASK
2 0x43000002 ACS_CONTROLLER
3 0x43000003 CORE_CONTROLLER
4 0x43000004 POWER_CONTROLLER
5 0x43000006 GLOBAL_JSON_CFG
6 0x43000007 XIPHOS_WDT
7 0x43400001 THERMAL_CONTROLLER
8 0x44000001 DUMMY_HANDLER
9 0x44120006 MGM_0_LIS3_HANDLER
57 0x44330015 PLOC_MPSOC_HANDLER
58 0x44330016 PLOC_SUPERVISOR_HANDLER
59 0x44330017 PLOC_SUPERVISOR_HELPER
60 0x44330018 PLOC_MPSOC_COMMUNICATION
61 0x44330032 SCEX
62 0x444100A2 SOLAR_ARRAY_DEPL_HANDLER
63 0x444100A4 HEATER_HANDLER
154 0x73000102 CFDP_TM_FUNNEL
155 0x73000205 CFDP_HANDLER
156 0x73000206 CFDP_DISTRIBUTOR
157 0x73000207 CFDP_FAULT_HANDLER
158 0x73010000 EIVE_SYSTEM
159 0x73010001 ACS_SUBSYSTEM
160 0x73010002 PL_SUBSYSTEM
161 0x73010003 TCS_SUBSYSTEM
162 0x73010004 COM_SUBSYSTEM
163 0x73010005 EPS_SUBSYSTEM
164 0x73020001 MISC_TM_STORE
165 0x73020002 OK_TM_STORE
166 0x73020003 NOT_OK_TM_STORE

View File

@ -210,6 +210,7 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
0x27a8;DHI_NoReplyExpected;No description;168;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27a9;DHI_NonOpTemperature;No description;169;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27aa;DHI_CommandNotImplemented;No description;170;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27ab;DHI_NonOpStateOfCharge;No description;171;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27b0;DHI_ChecksumError;No description;176;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27b1;DHI_LengthMissmatch;No description;177;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27b2;DHI_InvalidData;No description;178;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
@ -322,193 +323,211 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
0x3405;DC_NotActive;No description;5;DEVICE_COMMUNICATION_IF;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
0x3406;DC_TooMuchData;No description;6;DEVICE_COMMUNICATION_IF;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
0x3407;DC_Busy;No description;7;DEVICE_COMMUNICATION_IF;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
0x3601;CFDP_InvalidTlvType;No description;1;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3602;CFDP_InvalidDirectiveField;No description;2;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3603;CFDP_InvalidPduDatafieldLen;No description;3;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3604;CFDP_InvalidAckDirectiveFields;No description;4;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3605;CFDP_MetadataCantParseOptions;No description;5;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3606;CFDP_NakCantParseOptions;No description;6;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3607;CFDP_FinishedCantParseFsResponses;No description;7;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3608;CFDP_FilestoreRequiresSecondFile;No description;8;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3609;CFDP_FilestoreResponseCantParseFsMessage;No description;9;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x360a;CFDP_InvalidPduFormat;No description;10;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3701;TSI_BadTimestamp;No description;1;TIME_STAMPER_IF;fsfw/src/fsfw/timemanager/TimeStampIF.h
0x38a1;SGP4_InvalidEccentricity;No description;161;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38a2;SGP4_InvalidMeanMotion;No description;162;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38a3;SGP4_InvalidPerturbationElements;No description;163;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38a4;SGP4_InvalidSemiLatusRectum;No description;164;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38a5;SGP4_InvalidEpochElements;No description;165;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38a6;SGP4_SatelliteHasDecayed;No description;166;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38b1;SGP4_TleTooOld;No description;177;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38b2;SGP4_TleNotInitialized;No description;178;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x3901;MUX_NotEnoughResources;No description;1;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3902;MUX_InsufficientMemory;No description;2;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3903;MUX_NoPrivilege;No description;3;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3904;MUX_WrongAttributeSetting;No description;4;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3905;MUX_MutexAlreadyLocked;No description;5;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3906;MUX_MutexNotFound;No description;6;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3907;MUX_MutexMaxLocks;No description;7;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3908;MUX_CurrThreadAlreadyOwnsMutex;No description;8;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3909;MUX_CurrThreadDoesNotOwnMutex;No description;9;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x390a;MUX_MutexTimeout;No description;10;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x390b;MUX_MutexInvalidId;No description;11;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x390c;MUX_MutexDestroyedWhileWaiting;No description;12;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a01;MQI_Empty;No description;1;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3a02;MQI_Full;No space left for more messages;2;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3a03;MQI_NoReplyPartner;Returned if a reply method was called without partner;3;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3a04;MQI_DestinationInvalid;Returned if the target destination is invalid.;4;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3b00;SPH_ConnBroken;No description;0;SEMAPHORE_IF;fsfw/src/fsfw/osal/common/TcpTmTcServer.h
0x3b01;SPH_SemaphoreTimeout;No description;1;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3b02;SPH_SemaphoreNotOwned;No description;2;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3b03;SPH_SemaphoreInvalid;No description;3;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3c00;LPIF_PoolEntryNotFound;No description;0;LOCAL_POOL_OWNER_IF;fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
0x3c01;LPIF_PoolEntryTypeConflict;No description;1;LOCAL_POOL_OWNER_IF;fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
0x3da0;PVA_InvalidReadWriteMode;No description;160;POOL_VARIABLE_IF;fsfw/src/fsfw/datapool/PoolVariableIF.h
0x3da1;PVA_InvalidPoolEntry;No description;161;POOL_VARIABLE_IF;fsfw/src/fsfw/datapool/PoolVariableIF.h
0x3e00;HKM_QueueOrDestinationInvalid;No description;0;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3e01;HKM_WrongHkPacketType;No description;1;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3e02;HKM_ReportingStatusUnchanged;No description;2;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3e03;HKM_PeriodicHelperInvalid;No description;3;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3e04;HKM_PoolobjectNotFound;No description;4;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3e05;HKM_DatasetNotFound;No description;5;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f01;DLEE_StreamTooShort;No description;1;DLE_ENCODER;fsfw/src/fsfw/globalfunctions/DleEncoder.h
0x3f02;DLEE_DecodingError;No description;2;DLE_ENCODER;fsfw/src/fsfw/globalfunctions/DleEncoder.h
0x4201;PUS11_InvalidTypeTimeWindow;No description;1;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4202;PUS11_InvalidTimeWindow;No description;2;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4203;PUS11_TimeshiftingNotPossible;No description;3;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4204;PUS11_InvalidRelativeTime;No description;4;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4205;PUS11_ContainedTcTooSmall;No description;5;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4206;PUS11_ContainedTcCrcMissmatch;No description;6;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4300;FILS_GenericFileError;No description;0;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4301;FILS_GenericDirError;No description;1;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4302;FILS_FilesystemInactive;No description;2;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4303;FILS_GenericRenameError;No description;3;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4304;FILS_IsBusy;No description;4;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4305;FILS_InvalidParameters;No description;5;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x430a;FILS_FileDoesNotExist;No description;10;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x430b;FILS_FileAlreadyExists;No description;11;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x430c;FILS_NotAFile;No description;12;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x430d;FILS_FileLocked;No description;13;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x430e;FILS_PermissionDenied;No description;14;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4315;FILS_DirectoryDoesNotExist;No description;21;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4316;FILS_DirectoryAlreadyExists;No description;22;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4317;FILS_NotADirectory;No description;23;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4318;FILS_DirectoryNotEmpty;No description;24;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x431e;FILS_SequencePacketMissingWrite;No description;30;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x431f;FILS_SequencePacketMissingRead;No description;31;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4400;UXOS_ExecutionFinished;Execution of the current command has finished;0;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4401;UXOS_CommandPending;Command is pending. This will also be returned if the user tries to load another command but a command is still pending;1;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4402;UXOS_BytesRead;Some bytes have been read from the executing process;2;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4403;UXOS_CommandError;Command execution failed;3;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4404;UXOS_NoCommandLoadedOrPending;;4;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4406;UXOS_PcloseCallError;No description;6;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4500;HSPI_OpeningFileFailed;No description;0;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4501;HSPI_FullDuplexTransferFailed;No description;1;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4502;HSPI_HalfDuplexTransferFailed;No description;2;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4503;HSPI_Timeout;No description;3;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4504;HSPI_Busy;No description;4;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4505;HSPI_GenericError;No description;5;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4601;HURT_UartReadFailure;No description;1;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4602;HURT_UartReadSizeMissmatch;No description;2;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4603;HURT_UartRxBufferTooSmall;No description;3;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4801;HGIO_UnknownGpioId;No description;1;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4802;HGIO_DriveGpioFailure;No description;2;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4803;HGIO_GpioTypeFailure;No description;3;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4804;HGIO_GpioInvalidInstance;No description;4;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4805;HGIO_GpioDuplicateDetected;No description;5;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4806;HGIO_GpioInitFailed;No description;6;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4807;HGIO_GpioGetValueFailed;No description;7;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4c00;SPPA_NoPacketFound;No description;0;SPACE_PACKET_PARSER;fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
0x4c01;SPPA_SplitPacket;No description;1;SPACE_PACKET_PARSER;fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
0x4fa1;HEATER_CommandNotSupported;No description;161;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x4fa2;HEATER_InitFailed;No description;162;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x4fa3;HEATER_InvalidSwitchNr;No description;163;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x4fa4;HEATER_MainSwitchSetTimeout;No description;164;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x4fa5;HEATER_CommandAlreadyWaiting;No description;165;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x50a0;SYRLINKS_CrcFailure;No description;160;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a1;SYRLINKS_UartFraminOrParityErrorAck;No description;161;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a2;SYRLINKS_BadCharacterAck;No description;162;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a3;SYRLINKS_BadParameterValueAck;No description;163;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a4;SYRLINKS_BadEndOfFrameAck;No description;164;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a5;SYRLINKS_UnknownCommandIdAck;No description;165;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a6;SYRLINKS_BadCrcAck;No description;166;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a7;SYRLINKS_ReplyWrongSize;No description;167;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a8;SYRLINKS_MissingStartFrameCharacter;No description;168;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x5100;IMTQ_InvalidCommandCode;No description;0;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5101;IMTQ_MgmMeasurementLowLevelError;No description;1;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5102;IMTQ_ActuateCmdLowLevelError;No description;2;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5103;IMTQ_ParameterMissing;No description;3;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5104;IMTQ_ParameterInvalid;No description;4;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5105;IMTQ_CcUnavailable;No description;5;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5106;IMTQ_InternalProcessingError;No description;6;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5107;IMTQ_RejectedWithoutReason;No description;7;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5108;IMTQ_CmdErrUnknown;No description;8;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5109;IMTQ_StartupCfgError;No description;9;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x510a;IMTQ_UnexpectedSelfTestReply;The status reply to a self test command was received but no self test command has been sent. This should normally never happen.;10;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x52b0;RWHA_SpiWriteFailure;No description;176;RW_HANDLER;mission/acs/rwHelpers.h
0x52b1;RWHA_SpiReadFailure;Used by the spi send function to tell a failing read call;177;RW_HANDLER;mission/acs/rwHelpers.h
0x52b2;RWHA_MissingStartSign;Can be used by the HDLC decoding mechanism to inform about a missing start sign 0x7E;178;RW_HANDLER;mission/acs/rwHelpers.h
0x52b3;RWHA_InvalidSubstitute;Can be used by the HDLC decoding mechanism to inform about an invalid substitution combination;179;RW_HANDLER;mission/acs/rwHelpers.h
0x52b4;RWHA_MissingEndSign;HDLC decoding mechanism never receives the end sign 0x7E;180;RW_HANDLER;mission/acs/rwHelpers.h
0x52b5;RWHA_NoReply;Reaction wheel only responds with empty frames.;181;RW_HANDLER;mission/acs/rwHelpers.h
0x52b6;RWHA_NoStartMarker;Expected a start marker as first byte;182;RW_HANDLER;mission/acs/rwHelpers.h
0x52b7;RWHA_SpiReadTimeout;Timeout when reading reply;183;RW_HANDLER;mission/acs/rwHelpers.h
0x53a0;STRH_TemperatureReqFailed;Status in temperature reply signals error;160;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a1;STRH_PingFailed;Ping command failed;161;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a2;STRH_VersionReqFailed;Status in version reply signals error;162;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a3;STRH_InterfaceReqFailed;Status in interface reply signals error;163;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a4;STRH_PowerReqFailed;Status in power reply signals error;164;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a5;STRH_SetParamFailed;Status of reply to parameter set command signals error;165;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a6;STRH_ActionFailed;Status of reply to action command signals error;166;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a7;STRH_FilePathTooLong;Received invalid path string. Exceeds allowed length;167;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a8;STRH_FilenameTooLong;Name of file received with command is too long;168;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a9;STRH_InvalidProgram;Received version reply with invalid program ID;169;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53aa;STRH_ReplyError;Status field reply signals error;170;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53ab;STRH_CommandTooShort;Received command which is too short (some data is missing for proper execution);171;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53ac;STRH_InvalidLength;Received command with invalid length (too few or too many parameters);172;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53ad;STRH_RegionMismatch;Region mismatch between send and received data;173;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53ae;STRH_AddressMismatch;Address mismatch between send and received data;174;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53af;STRH_LengthMismatch;Length field mismatch between send and received data;175;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b0;STRH_FileNotExists;Specified file does not exist;176;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b1;STRH_InvalidType;Download blob pixel command has invalid type field;177;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b2;STRH_InvalidId;Received FPGA action command with invalid ID;178;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b3;STRH_ReplyTooShort;Received reply is too short;179;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b4;STRH_CrcFailure;Received reply with invalid CRC;180;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b5;STRH_StrHelperExecuting;Star tracker handler currently executing a command and using the communication interface;181;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b6;STRH_StartrackerAlreadyBooted;Star tracker is already in firmware mode;182;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b7;STRH_StartrackerNotRunningFirmware;Star tracker must be in firmware mode to run this command;183;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b8;STRH_StartrackerNotRunningBootloader;Star tracker must be in bootloader mode to run this command;184;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x58a0;SUSS_InvalidSpeed;Action Message with invalid speed was received. Valid speeds must be in the range of [-65000, 1000] or [1000, 65000];160;SUS_HANDLER;mission/acs/RwHandler.h
0x58a1;SUSS_InvalidRampTime;Action Message with invalid ramp time was received.;161;SUS_HANDLER;mission/acs/RwHandler.h
0x58a2;SUSS_SetSpeedCommandInvalidLength;Received set speed command has invalid length. Should be 6.;162;SUS_HANDLER;mission/acs/RwHandler.h
0x58a3;SUSS_ExecutionFailed;Command execution failed;163;SUS_HANDLER;mission/acs/RwHandler.h
0x58a4;SUSS_CrcError;Reaction wheel reply has invalid crc;164;SUS_HANDLER;mission/acs/RwHandler.h
0x58a5;SUSS_ValueNotRead;No description;165;SUS_HANDLER;mission/acs/RwHandler.h
0x5d00;GOMS_PacketTooLong;No description;0;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5d01;GOMS_InvalidTableId;No description;1;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5d02;GOMS_InvalidAddress;No description;2;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5d03;GOMS_InvalidParamSize;No description;3;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5d04;GOMS_InvalidPayloadSize;No description;4;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5d05;GOMS_UnknownReplyId;No description;5;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x60a0;CCSDS_CommandNotImplemented;Received action message with unknown action id;160;CCSDS_HANDLER;mission/com/CcsdsIpCoreHandler.h
0x6201;JSONBASE_JsonFileNotExists;Specified json file does not exist;1;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x6202;JSONBASE_SetNotExists;Requested set does not exist in json file;2;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x6203;JSONBASE_ParamNotExists;Requested parameter does not exist in json file;3;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x63a0;NVMB_KeyNotExists;Specified key does not exist in json file;160;NVM_PARAM_BASE;mission/memory/NvmParameterBase.h
0x66a0;SADPL_CommandNotSupported;No description;160;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x66a1;SADPL_DeploymentAlreadyExecuting;No description;161;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x66a2;SADPL_MainSwitchTimeoutFailure;No description;162;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x66a3;SADPL_SwitchingDeplSa1Failed;No description;163;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x66a4;SADPL_SwitchingDeplSa2Failed;No description;164;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x6900;ACSCTRL_FileDeletionFailed;File deletion failed and at least one file is still existent.;0;ACS_CTRL;mission/controller/AcsController.h
0x6a02;ACSMEKF_MekfUninitialized;No description;2;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a03;ACSMEKF_MekfNoGyrData;No description;3;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a04;ACSMEKF_MekfNoModelVectors;No description;4;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a05;ACSMEKF_MekfNoSusMgmStrData;No description;5;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a06;ACSMEKF_MekfCovarianceInversionFailed;No description;6;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a07;ACSMEKF_MekfNotFinite;No description;7;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a08;ACSMEKF_MekfInitialized;No description;8;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a09;ACSMEKF_MekfRunning;No description;9;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6d00;PTM_DumpDone;No description;0;PERSISTENT_TM_STORE;mission/tmtc/PersistentTmStore.h
0x6d01;PTM_BusyDumping;No description;1;PERSISTENT_TM_STORE;mission/tmtc/PersistentTmStore.h
0x6e00;TMS_IsBusy;No description;0;TM_SINK;mission/tmtc/DirectTmSinkIF.h
0x3601;CFDP_InvalidTlvType;No description;1;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3602;CFDP_InvalidDirectiveField;No description;2;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3603;CFDP_InvalidPduDatafieldLen;No description;3;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3604;CFDP_InvalidAckDirectiveFields;No description;4;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3605;CFDP_MetadataCantParseOptions;No description;5;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3606;CFDP_NakCantParseOptions;No description;6;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3607;CFDP_FinishedCantParseFsResponses;No description;7;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3608;CFDP_FilestoreRequiresSecondFile;No description;8;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3609;CFDP_FilestoreResponseCantParseFsMessage;No description;9;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x360a;CFDP_InvalidPduFormat;No description;10;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3700;CFDP_SourceTransactionPending;No description;0;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3701;CFDP_FileDoesNotExist;No description;1;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3702;CFDP_FileSegmentLenInvalid;No description;2;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3703;CFDP_SourceNameEmpty;No description;3;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3704;CFDP_DestNameEmpty;No description;4;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3705;CFDP_WrongRemoteCfgEntityId;No description;5;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3706;CFDP_TargetMsgQueueFull;No description;6;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3707;CFDP_TmStoreFull;No description;7;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3801;TSI_BadTimestamp;No description;1;TIME_STAMPER_IF;fsfw/src/fsfw/timemanager/TimeStampIF.h
0x39a1;SGP4_InvalidEccentricity;No description;161;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39a2;SGP4_InvalidMeanMotion;No description;162;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39a3;SGP4_InvalidPerturbationElements;No description;163;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39a4;SGP4_InvalidSemiLatusRectum;No description;164;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39a5;SGP4_InvalidEpochElements;No description;165;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39a6;SGP4_SatelliteHasDecayed;No description;166;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39b1;SGP4_TleTooOld;No description;177;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39b2;SGP4_TleNotInitialized;No description;178;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x3a01;MUX_NotEnoughResources;No description;1;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a02;MUX_InsufficientMemory;No description;2;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a03;MUX_NoPrivilege;No description;3;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a04;MUX_WrongAttributeSetting;No description;4;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a05;MUX_MutexAlreadyLocked;No description;5;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a06;MUX_MutexNotFound;No description;6;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a07;MUX_MutexMaxLocks;No description;7;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a08;MUX_CurrThreadAlreadyOwnsMutex;No description;8;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a09;MUX_CurrThreadDoesNotOwnMutex;No description;9;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a0a;MUX_MutexTimeout;No description;10;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a0b;MUX_MutexInvalidId;No description;11;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a0c;MUX_MutexDestroyedWhileWaiting;No description;12;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3b01;MQI_Empty;No description;1;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3b02;MQI_Full;No space left for more messages;2;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3b03;MQI_NoReplyPartner;Returned if a reply method was called without partner;3;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3b04;MQI_DestinationInvalid;Returned if the target destination is invalid.;4;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3c01;SPH_SemaphoreTimeout;No description;1;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3c02;SPH_SemaphoreNotOwned;No description;2;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3c03;SPH_SemaphoreInvalid;No description;3;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3d00;LPIF_PoolEntryNotFound;No description;0;LOCAL_POOL_OWNER_IF;fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
0x3d01;LPIF_PoolEntryTypeConflict;No description;1;LOCAL_POOL_OWNER_IF;fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
0x3ea0;PVA_InvalidReadWriteMode;No description;160;POOL_VARIABLE_IF;fsfw/src/fsfw/datapool/PoolVariableIF.h
0x3ea1;PVA_InvalidPoolEntry;No description;161;POOL_VARIABLE_IF;fsfw/src/fsfw/datapool/PoolVariableIF.h
0x3f00;HKM_QueueOrDestinationInvalid;No description;0;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f01;HKM_WrongHkPacketType;No description;1;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f02;HKM_ReportingStatusUnchanged;No description;2;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f03;HKM_PeriodicHelperInvalid;No description;3;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f04;HKM_PoolobjectNotFound;No description;4;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f05;HKM_DatasetNotFound;No description;5;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x4001;DLEE_StreamTooShort;No description;1;DLE_ENCODER;fsfw/src/fsfw/globalfunctions/DleEncoder.h
0x4002;DLEE_DecodingError;No description;2;DLE_ENCODER;fsfw/src/fsfw/globalfunctions/DleEncoder.h
0x4301;PUS11_InvalidTypeTimeWindow;No description;1;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4302;PUS11_InvalidTimeWindow;No description;2;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4303;PUS11_TimeshiftingNotPossible;No description;3;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4304;PUS11_InvalidRelativeTime;No description;4;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4305;PUS11_ContainedTcTooSmall;No description;5;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4306;PUS11_ContainedTcCrcMissmatch;No description;6;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4307;PUS11_MapIsFull;No description;7;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4400;FILS_GenericFileError;No description;0;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4401;FILS_GenericDirError;No description;1;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4402;FILS_FilesystemInactive;No description;2;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4403;FILS_GenericRenameError;No description;3;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4404;FILS_IsBusy;No description;4;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4405;FILS_InvalidParameters;No description;5;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x440a;FILS_FileDoesNotExist;No description;10;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x440b;FILS_FileAlreadyExists;No description;11;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x440c;FILS_NotAFile;No description;12;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x440d;FILS_FileLocked;No description;13;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x440e;FILS_PermissionDenied;No description;14;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4415;FILS_DirectoryDoesNotExist;No description;21;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4416;FILS_DirectoryAlreadyExists;No description;22;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4417;FILS_NotADirectory;No description;23;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4418;FILS_DirectoryNotEmpty;No description;24;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x441e;FILS_SequencePacketMissingWrite;No description;30;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x441f;FILS_SequencePacketMissingRead;No description;31;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4500;UXOS_ExecutionFinished;Execution of the current command has finished;0;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4501;UXOS_CommandPending;Command is pending. This will also be returned if the user tries to load another command but a command is still pending;1;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4502;UXOS_BytesRead;Some bytes have been read from the executing process;2;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4503;UXOS_CommandError;Command execution failed;3;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4504;UXOS_NoCommandLoadedOrPending;;4;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4506;UXOS_PcloseCallError;No description;6;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4600;HSPI_OpeningFileFailed;No description;0;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4601;HSPI_FullDuplexTransferFailed;No description;1;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4602;HSPI_HalfDuplexTransferFailed;No description;2;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4603;HSPI_Timeout;No description;3;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4604;HSPI_Busy;No description;4;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4605;HSPI_GenericError;No description;5;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4701;HURT_UartReadFailure;No description;1;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4702;HURT_UartReadSizeMissmatch;No description;2;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4703;HURT_UartRxBufferTooSmall;No description;3;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4901;HGIO_UnknownGpioId;No description;1;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4902;HGIO_DriveGpioFailure;No description;2;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4903;HGIO_GpioTypeFailure;No description;3;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4904;HGIO_GpioInvalidInstance;No description;4;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4905;HGIO_GpioDuplicateDetected;No description;5;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4906;HGIO_GpioInitFailed;No description;6;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4907;HGIO_GpioGetValueFailed;No description;7;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4d00;SPPA_NoPacketFound;No description;0;SPACE_PACKET_PARSER;fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
0x4d01;SPPA_SplitPacket;No description;1;SPACE_PACKET_PARSER;fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
0x50a1;HEATER_CommandNotSupported;No description;161;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x50a2;HEATER_InitFailed;No description;162;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x50a3;HEATER_InvalidSwitchNr;No description;163;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x50a4;HEATER_MainSwitchSetTimeout;No description;164;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x50a5;HEATER_CommandAlreadyWaiting;No description;165;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x51a0;SYRLINKS_CrcFailure;No description;160;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a1;SYRLINKS_UartFraminOrParityErrorAck;No description;161;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a2;SYRLINKS_BadCharacterAck;No description;162;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a3;SYRLINKS_BadParameterValueAck;No description;163;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a4;SYRLINKS_BadEndOfFrameAck;No description;164;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a5;SYRLINKS_UnknownCommandIdAck;No description;165;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a6;SYRLINKS_BadCrcAck;No description;166;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a7;SYRLINKS_ReplyWrongSize;No description;167;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a8;SYRLINKS_MissingStartFrameCharacter;No description;168;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x5200;IMTQ_InvalidCommandCode;No description;0;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5201;IMTQ_MgmMeasurementLowLevelError;No description;1;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5202;IMTQ_ActuateCmdLowLevelError;No description;2;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5203;IMTQ_ParameterMissing;No description;3;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5204;IMTQ_ParameterInvalid;No description;4;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5205;IMTQ_CcUnavailable;No description;5;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5206;IMTQ_InternalProcessingError;No description;6;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5207;IMTQ_RejectedWithoutReason;No description;7;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5208;IMTQ_CmdErrUnknown;No description;8;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5209;IMTQ_StartupCfgError;No description;9;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x520a;IMTQ_UnexpectedSelfTestReply;The status reply to a self test command was received but no self test command has been sent. This should normally never happen.;10;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x53a0;RWHA_InvalidSpeed;Action Message with invalid speed was received. Valid speeds must be in the range of [-65000, 1000] or [1000, 65000];160;RW_HANDLER;mission/acs/RwHandler.h
0x53a1;RWHA_InvalidRampTime;Action Message with invalid ramp time was received.;161;RW_HANDLER;mission/acs/RwHandler.h
0x53a2;RWHA_SetSpeedCommandInvalidLength;Received set speed command has invalid length. Should be 6.;162;RW_HANDLER;mission/acs/RwHandler.h
0x53a3;RWHA_ExecutionFailed;Command execution failed;163;RW_HANDLER;mission/acs/RwHandler.h
0x53a4;RWHA_CrcError;Reaction wheel reply has invalid crc;164;RW_HANDLER;mission/acs/RwHandler.h
0x53a5;RWHA_ValueNotRead;No description;165;RW_HANDLER;mission/acs/RwHandler.h
0x53b0;RWHA_SpiWriteFailure;No description;176;RW_HANDLER;mission/acs/rwHelpers.h
0x53b1;RWHA_SpiReadFailure;Used by the spi send function to tell a failing read call;177;RW_HANDLER;mission/acs/rwHelpers.h
0x53b2;RWHA_MissingStartSign;Can be used by the HDLC decoding mechanism to inform about a missing start sign 0x7E;178;RW_HANDLER;mission/acs/rwHelpers.h
0x53b3;RWHA_InvalidSubstitute;Can be used by the HDLC decoding mechanism to inform about an invalid substitution combination;179;RW_HANDLER;mission/acs/rwHelpers.h
0x53b4;RWHA_MissingEndSign;HDLC decoding mechanism never receives the end sign 0x7E;180;RW_HANDLER;mission/acs/rwHelpers.h
0x53b5;RWHA_NoReply;Reaction wheel only responds with empty frames.;181;RW_HANDLER;mission/acs/rwHelpers.h
0x53b6;RWHA_NoStartMarker;Expected a start marker as first byte;182;RW_HANDLER;mission/acs/rwHelpers.h
0x53b7;RWHA_SpiReadTimeout;Timeout when reading reply;183;RW_HANDLER;mission/acs/rwHelpers.h
0x54a0;STRH_TemperatureReqFailed;Status in temperature reply signals error;160;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a1;STRH_PingFailed;Ping command failed;161;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a2;STRH_VersionReqFailed;Status in version reply signals error;162;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a3;STRH_InterfaceReqFailed;Status in interface reply signals error;163;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a4;STRH_PowerReqFailed;Status in power reply signals error;164;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a5;STRH_SetParamFailed;Status of reply to parameter set command signals error;165;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a6;STRH_ActionFailed;Status of reply to action command signals error;166;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a7;STRH_FilePathTooLong;Received invalid path string. Exceeds allowed length;167;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a8;STRH_FilenameTooLong;Name of file received with command is too long;168;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a9;STRH_InvalidProgram;Received version reply with invalid program ID;169;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54aa;STRH_ReplyError;Status field reply signals error;170;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54ab;STRH_CommandTooShort;Received command which is too short (some data is missing for proper execution);171;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54ac;STRH_InvalidLength;Received command with invalid length (too few or too many parameters);172;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54ad;STRH_RegionMismatch;Region mismatch between send and received data;173;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54ae;STRH_AddressMismatch;Address mismatch between send and received data;174;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54af;STRH_LengthMismatch;Length field mismatch between send and received data;175;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b0;STRH_FileNotExists;Specified file does not exist;176;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b1;STRH_InvalidType;Download blob pixel command has invalid type field;177;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b2;STRH_InvalidId;Received FPGA action command with invalid ID;178;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b3;STRH_ReplyTooShort;Received reply is too short;179;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b4;STRH_CrcFailure;Received reply with invalid CRC;180;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b5;STRH_StrHelperExecuting;Star tracker handler currently executing a command and using the communication interface;181;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b6;STRH_StartrackerAlreadyBooted;Star tracker is already in firmware mode;182;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b7;STRH_StartrackerNotRunningFirmware;Star tracker must be in firmware mode to run this command;183;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b8;STRH_StartrackerNotRunningBootloader;Star tracker must be in bootloader mode to run this command;184;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x59a0;SUSS_ErrorUnlockMutex;No description;160;SUS_HANDLER;mission/acs/archive/LegacySusHandler.h
0x59a1;SUSS_ErrorLockMutex;No description;161;SUS_HANDLER;mission/acs/archive/LegacySusHandler.h
0x5e00;GOMS_PacketTooLong;No description;0;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5e01;GOMS_InvalidTableId;No description;1;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5e02;GOMS_InvalidAddress;No description;2;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5e03;GOMS_InvalidParamSize;No description;3;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5e04;GOMS_InvalidPayloadSize;No description;4;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5e05;GOMS_UnknownReplyId;No description;5;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x61a0;CCSDS_CommandNotImplemented;Received action message with unknown action id;160;CCSDS_HANDLER;mission/com/CcsdsIpCoreHandler.h
0x6301;JSONBASE_JsonFileNotExists;Specified json file does not exist;1;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x6302;JSONBASE_SetNotExists;Requested set does not exist in json file;2;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x6303;JSONBASE_ParamNotExists;Requested parameter does not exist in json file;3;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x64a0;NVMB_KeyNotExists;Specified key does not exist in json file;160;NVM_PARAM_BASE;mission/memory/NvmParameterBase.h
0x67a0;SADPL_CommandNotSupported;No description;160;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x67a1;SADPL_DeploymentAlreadyExecuting;No description;161;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x67a2;SADPL_MainSwitchTimeoutFailure;No description;162;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x67a3;SADPL_SwitchingDeplSa1Failed;No description;163;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x67a4;SADPL_SwitchingDeplSa2Failed;No description;164;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x6aa0;ACSCTRL_FileDeletionFailed;File deletion failed and at least one file is still existent.;160;ACS_CTRL;mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
0x6aa1;ACSCTRL_WriteFileFailed;Writing the TLE to the file has failed.;161;ACS_CTRL;mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
0x6aa2;ACSCTRL_ReadFileFailed;Reading the TLE to the file has failed.;162;ACS_CTRL;mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
0x6aa3;ACSCTRL_SingleRwUnavailable;A single RW has failed.;163;ACS_CTRL;mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
0x6aa4;ACSCTRL_MultipleRwUnavailable;Multiple RWs have failed.;164;ACS_CTRL;mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
0x6b02;ACSMEKF_MekfUninitialized;No description;2;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b03;ACSMEKF_MekfNoGyrData;No description;3;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b04;ACSMEKF_MekfNoModelVectors;No description;4;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b05;ACSMEKF_MekfNoSusMgmStrData;No description;5;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b06;ACSMEKF_MekfCovarianceInversionFailed;No description;6;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b07;ACSMEKF_MekfNotFinite;No description;7;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b08;ACSMEKF_MekfInitialized;No description;8;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b09;ACSMEKF_MekfRunning;No description;9;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6e00;PTM_DumpDone;No description;0;PERSISTENT_TM_STORE;mission/tmtc/PersistentTmStore.h
0x6e01;PTM_BusyDumping;No description;1;PERSISTENT_TM_STORE;mission/tmtc/PersistentTmStore.h
0x6f00;TMS_IsBusy;No description;0;TM_SINK;mission/tmtc/DirectTmSinkIF.h
0x6f01;TMS_PartiallyWritten;No description;1;TM_SINK;mission/tmtc/DirectTmSinkIF.h
0x6f02;TMS_NoWriteActive;No description;2;TM_SINK;mission/tmtc/DirectTmSinkIF.h
0x6f03;TMS_Timeout;No description;3;TM_SINK;mission/tmtc/DirectTmSinkIF.h
0x7000;VCS_ChannelDoesNotExist;No description;0;VIRTUAL_CHANNEL;mission/com/VirtualChannel.h

1 Full ID (hex) Name Description Unique ID Subsytem Name File Path
210 0x27a8 DHI_NoReplyExpected No description 168 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
211 0x27a9 DHI_NonOpTemperature No description 169 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
212 0x27aa DHI_CommandNotImplemented No description 170 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
213 0x27ab DHI_NonOpStateOfCharge No description 171 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
214 0x27b0 DHI_ChecksumError No description 176 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
215 0x27b1 DHI_LengthMissmatch No description 177 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
216 0x27b2 DHI_InvalidData No description 178 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
323 0x3405 DC_NotActive No description 5 DEVICE_COMMUNICATION_IF fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
324 0x3406 DC_TooMuchData No description 6 DEVICE_COMMUNICATION_IF fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
325 0x3407 DC_Busy No description 7 DEVICE_COMMUNICATION_IF fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
326 0x3601 CFDP_InvalidTlvType No description 1 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
327 0x3602 CFDP_InvalidDirectiveField No description 2 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
328 0x3603 CFDP_InvalidPduDatafieldLen No description 3 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
329 0x3604 CFDP_InvalidAckDirectiveFields No description 4 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
330 0x3605 CFDP_MetadataCantParseOptions No description 5 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
331 0x3606 CFDP_NakCantParseOptions No description 6 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
332 0x3607 CFDP_FinishedCantParseFsResponses No description 7 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
333 0x3608 CFDP_FilestoreRequiresSecondFile No description 8 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
334 0x3609 CFDP_FilestoreResponseCantParseFsMessage No description 9 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
335 0x360a CFDP_InvalidPduFormat No description 10 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
336 0x3701 0x3700 TSI_BadTimestamp CFDP_SourceTransactionPending No description 1 0 TIME_STAMPER_IF CFDP_HANDLER fsfw/src/fsfw/timemanager/TimeStampIF.h fsfw/src/fsfw/cfdp/handler/defs.h
337 0x38a1 0x3701 SGP4_InvalidEccentricity CFDP_FileDoesNotExist No description 161 1 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
338 0x38a2 0x3702 SGP4_InvalidMeanMotion CFDP_FileSegmentLenInvalid No description 162 2 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
339 0x38a3 0x3703 SGP4_InvalidPerturbationElements CFDP_SourceNameEmpty No description 163 3 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
340 0x38a4 0x3704 SGP4_InvalidSemiLatusRectum CFDP_DestNameEmpty No description 164 4 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
341 0x38a5 0x3705 SGP4_InvalidEpochElements CFDP_WrongRemoteCfgEntityId No description 165 5 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
342 0x38a6 0x3706 SGP4_SatelliteHasDecayed CFDP_TargetMsgQueueFull No description 166 6 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
343 0x38b1 0x3707 SGP4_TleTooOld CFDP_TmStoreFull No description 177 7 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
344 0x38b2 0x3801 SGP4_TleNotInitialized TSI_BadTimestamp No description 178 1 SGP4PROPAGATOR_CLASS TIME_STAMPER_IF fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/timemanager/TimeStampIF.h
345 0x3901 0x39a1 MUX_NotEnoughResources SGP4_InvalidEccentricity No description 1 161 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
346 0x3902 0x39a2 MUX_InsufficientMemory SGP4_InvalidMeanMotion No description 2 162 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
347 0x3903 0x39a3 MUX_NoPrivilege SGP4_InvalidPerturbationElements No description 3 163 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
348 0x3904 0x39a4 MUX_WrongAttributeSetting SGP4_InvalidSemiLatusRectum No description 4 164 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
349 0x3905 0x39a5 MUX_MutexAlreadyLocked SGP4_InvalidEpochElements No description 5 165 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
350 0x3906 0x39a6 MUX_MutexNotFound SGP4_SatelliteHasDecayed No description 6 166 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
351 0x3907 0x39b1 MUX_MutexMaxLocks SGP4_TleTooOld No description 7 177 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
352 0x3908 0x39b2 MUX_CurrThreadAlreadyOwnsMutex SGP4_TleNotInitialized No description 8 178 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
353 0x3909 0x3a01 MUX_CurrThreadDoesNotOwnMutex MUX_NotEnoughResources No description 9 1 MUTEX_IF fsfw/src/fsfw/ipc/MutexIF.h
354 0x390a 0x3a02 MUX_MutexTimeout MUX_InsufficientMemory No description 10 2 MUTEX_IF fsfw/src/fsfw/ipc/MutexIF.h
355 0x390b 0x3a03 MUX_MutexInvalidId MUX_NoPrivilege No description 11 3 MUTEX_IF fsfw/src/fsfw/ipc/MutexIF.h
356 0x390c 0x3a04 MUX_MutexDestroyedWhileWaiting MUX_WrongAttributeSetting No description 12 4 MUTEX_IF fsfw/src/fsfw/ipc/MutexIF.h
357 0x3a01 0x3a05 MQI_Empty MUX_MutexAlreadyLocked No description 1 5 MESSAGE_QUEUE_IF MUTEX_IF fsfw/src/fsfw/ipc/MessageQueueIF.h fsfw/src/fsfw/ipc/MutexIF.h
358 0x3a02 0x3a06 MQI_Full MUX_MutexNotFound No space left for more messages No description 2 6 MESSAGE_QUEUE_IF MUTEX_IF fsfw/src/fsfw/ipc/MessageQueueIF.h fsfw/src/fsfw/ipc/MutexIF.h
359 0x3a03 0x3a07 MQI_NoReplyPartner MUX_MutexMaxLocks Returned if a reply method was called without partner No description 3 7 MESSAGE_QUEUE_IF MUTEX_IF fsfw/src/fsfw/ipc/MessageQueueIF.h fsfw/src/fsfw/ipc/MutexIF.h
360 0x3a04 0x3a08 MQI_DestinationInvalid MUX_CurrThreadAlreadyOwnsMutex Returned if the target destination is invalid. No description 4 8 MESSAGE_QUEUE_IF MUTEX_IF fsfw/src/fsfw/ipc/MessageQueueIF.h fsfw/src/fsfw/ipc/MutexIF.h
361 0x3b00 0x3a09 SPH_ConnBroken MUX_CurrThreadDoesNotOwnMutex No description 0 9 SEMAPHORE_IF MUTEX_IF fsfw/src/fsfw/osal/common/TcpTmTcServer.h fsfw/src/fsfw/ipc/MutexIF.h
362 0x3b01 0x3a0a SPH_SemaphoreTimeout MUX_MutexTimeout No description 1 10 SEMAPHORE_IF MUTEX_IF fsfw/src/fsfw/tasks/SemaphoreIF.h fsfw/src/fsfw/ipc/MutexIF.h
363 0x3b02 0x3a0b SPH_SemaphoreNotOwned MUX_MutexInvalidId No description 2 11 SEMAPHORE_IF MUTEX_IF fsfw/src/fsfw/tasks/SemaphoreIF.h fsfw/src/fsfw/ipc/MutexIF.h
364 0x3b03 0x3a0c SPH_SemaphoreInvalid MUX_MutexDestroyedWhileWaiting No description 3 12 SEMAPHORE_IF MUTEX_IF fsfw/src/fsfw/tasks/SemaphoreIF.h fsfw/src/fsfw/ipc/MutexIF.h
365 0x3c00 0x3b01 LPIF_PoolEntryNotFound MQI_Empty No description 0 1 LOCAL_POOL_OWNER_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h fsfw/src/fsfw/ipc/MessageQueueIF.h
366 0x3c01 0x3b02 LPIF_PoolEntryTypeConflict MQI_Full No description No space left for more messages 1 2 LOCAL_POOL_OWNER_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h fsfw/src/fsfw/ipc/MessageQueueIF.h
367 0x3da0 0x3b03 PVA_InvalidReadWriteMode MQI_NoReplyPartner No description Returned if a reply method was called without partner 160 3 POOL_VARIABLE_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/datapool/PoolVariableIF.h fsfw/src/fsfw/ipc/MessageQueueIF.h
368 0x3da1 0x3b04 PVA_InvalidPoolEntry MQI_DestinationInvalid No description Returned if the target destination is invalid. 161 4 POOL_VARIABLE_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/datapool/PoolVariableIF.h fsfw/src/fsfw/ipc/MessageQueueIF.h
369 0x3e00 0x3c01 HKM_QueueOrDestinationInvalid SPH_SemaphoreTimeout No description 0 1 HOUSEKEEPING_MANAGER SEMAPHORE_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/tasks/SemaphoreIF.h
370 0x3e01 0x3c02 HKM_WrongHkPacketType SPH_SemaphoreNotOwned No description 1 2 HOUSEKEEPING_MANAGER SEMAPHORE_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/tasks/SemaphoreIF.h
371 0x3e02 0x3c03 HKM_ReportingStatusUnchanged SPH_SemaphoreInvalid No description 2 3 HOUSEKEEPING_MANAGER SEMAPHORE_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/tasks/SemaphoreIF.h
372 0x3e03 0x3d00 HKM_PeriodicHelperInvalid LPIF_PoolEntryNotFound No description 3 0 HOUSEKEEPING_MANAGER LOCAL_POOL_OWNER_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
373 0x3e04 0x3d01 HKM_PoolobjectNotFound LPIF_PoolEntryTypeConflict No description 4 1 HOUSEKEEPING_MANAGER LOCAL_POOL_OWNER_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
374 0x3e05 0x3ea0 HKM_DatasetNotFound PVA_InvalidReadWriteMode No description 5 160 HOUSEKEEPING_MANAGER POOL_VARIABLE_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/datapool/PoolVariableIF.h
375 0x3f01 0x3ea1 DLEE_StreamTooShort PVA_InvalidPoolEntry No description 1 161 DLE_ENCODER POOL_VARIABLE_IF fsfw/src/fsfw/globalfunctions/DleEncoder.h fsfw/src/fsfw/datapool/PoolVariableIF.h
376 0x3f02 0x3f00 DLEE_DecodingError HKM_QueueOrDestinationInvalid No description 2 0 DLE_ENCODER HOUSEKEEPING_MANAGER fsfw/src/fsfw/globalfunctions/DleEncoder.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
377 0x4201 0x3f01 PUS11_InvalidTypeTimeWindow HKM_WrongHkPacketType No description 1 PUS_SERVICE_11 HOUSEKEEPING_MANAGER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
378 0x4202 0x3f02 PUS11_InvalidTimeWindow HKM_ReportingStatusUnchanged No description 2 PUS_SERVICE_11 HOUSEKEEPING_MANAGER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
379 0x4203 0x3f03 PUS11_TimeshiftingNotPossible HKM_PeriodicHelperInvalid No description 3 PUS_SERVICE_11 HOUSEKEEPING_MANAGER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
380 0x4204 0x3f04 PUS11_InvalidRelativeTime HKM_PoolobjectNotFound No description 4 PUS_SERVICE_11 HOUSEKEEPING_MANAGER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
381 0x4205 0x3f05 PUS11_ContainedTcTooSmall HKM_DatasetNotFound No description 5 PUS_SERVICE_11 HOUSEKEEPING_MANAGER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
382 0x4206 0x4001 PUS11_ContainedTcCrcMissmatch DLEE_StreamTooShort No description 6 1 PUS_SERVICE_11 DLE_ENCODER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/globalfunctions/DleEncoder.h
383 0x4300 0x4002 FILS_GenericFileError DLEE_DecodingError No description 0 2 FILE_SYSTEM DLE_ENCODER fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/globalfunctions/DleEncoder.h
384 0x4301 FILS_GenericDirError PUS11_InvalidTypeTimeWindow No description 1 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
385 0x4302 FILS_FilesystemInactive PUS11_InvalidTimeWindow No description 2 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
386 0x4303 FILS_GenericRenameError PUS11_TimeshiftingNotPossible No description 3 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
387 0x4304 FILS_IsBusy PUS11_InvalidRelativeTime No description 4 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
388 0x4305 FILS_InvalidParameters PUS11_ContainedTcTooSmall No description 5 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
389 0x430a 0x4306 FILS_FileDoesNotExist PUS11_ContainedTcCrcMissmatch No description 10 6 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
390 0x430b 0x4307 FILS_FileAlreadyExists PUS11_MapIsFull No description 11 7 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
391 0x430c 0x4400 FILS_NotAFile FILS_GenericFileError No description 12 0 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
392 0x430d 0x4401 FILS_FileLocked FILS_GenericDirError No description 13 1 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
393 0x430e 0x4402 FILS_PermissionDenied FILS_FilesystemInactive No description 14 2 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
394 0x4315 0x4403 FILS_DirectoryDoesNotExist FILS_GenericRenameError No description 21 3 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
395 0x4316 0x4404 FILS_DirectoryAlreadyExists FILS_IsBusy No description 22 4 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
396 0x4317 0x4405 FILS_NotADirectory FILS_InvalidParameters No description 23 5 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
397 0x4318 0x440a FILS_DirectoryNotEmpty FILS_FileDoesNotExist No description 24 10 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
398 0x431e 0x440b FILS_SequencePacketMissingWrite FILS_FileAlreadyExists No description 30 11 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
399 0x431f 0x440c FILS_SequencePacketMissingRead FILS_NotAFile No description 31 12 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
400 0x4400 0x440d UXOS_ExecutionFinished FILS_FileLocked Execution of the current command has finished No description 0 13 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
401 0x4401 0x440e UXOS_CommandPending FILS_PermissionDenied Command is pending. This will also be returned if the user tries to load another command but a command is still pending No description 1 14 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
402 0x4402 0x4415 UXOS_BytesRead FILS_DirectoryDoesNotExist Some bytes have been read from the executing process No description 2 21 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
403 0x4403 0x4416 UXOS_CommandError FILS_DirectoryAlreadyExists Command execution failed No description 3 22 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
404 0x4404 0x4417 UXOS_NoCommandLoadedOrPending FILS_NotADirectory No description 4 23 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
405 0x4406 0x4418 UXOS_PcloseCallError FILS_DirectoryNotEmpty No description 6 24 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
406 0x4500 0x441e HSPI_OpeningFileFailed FILS_SequencePacketMissingWrite No description 0 30 HAL_SPI FILE_SYSTEM fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
407 0x4501 0x441f HSPI_FullDuplexTransferFailed FILS_SequencePacketMissingRead No description 1 31 HAL_SPI FILE_SYSTEM fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
408 0x4502 0x4500 HSPI_HalfDuplexTransferFailed UXOS_ExecutionFinished No description Execution of the current command has finished 2 0 HAL_SPI LINUX_OSAL fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
409 0x4503 0x4501 HSPI_Timeout UXOS_CommandPending No description Command is pending. This will also be returned if the user tries to load another command but a command is still pending 3 1 HAL_SPI LINUX_OSAL fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
410 0x4504 0x4502 HSPI_Busy UXOS_BytesRead No description Some bytes have been read from the executing process 4 2 HAL_SPI LINUX_OSAL fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
411 0x4505 0x4503 HSPI_GenericError UXOS_CommandError No description Command execution failed 5 3 HAL_SPI LINUX_OSAL fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
412 0x4601 0x4504 HURT_UartReadFailure UXOS_NoCommandLoadedOrPending No description 1 4 HAL_UART LINUX_OSAL fsfw/src/fsfw_hal/linux/serial/SerialComIF.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
413 0x4602 0x4506 HURT_UartReadSizeMissmatch UXOS_PcloseCallError No description 2 6 HAL_UART LINUX_OSAL fsfw/src/fsfw_hal/linux/serial/SerialComIF.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
414 0x4603 0x4600 HURT_UartRxBufferTooSmall HSPI_OpeningFileFailed No description 3 0 HAL_UART HAL_SPI fsfw/src/fsfw_hal/linux/serial/SerialComIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
415 0x4801 0x4601 HGIO_UnknownGpioId HSPI_FullDuplexTransferFailed No description 1 HAL_GPIO HAL_SPI fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
416 0x4802 0x4602 HGIO_DriveGpioFailure HSPI_HalfDuplexTransferFailed No description 2 HAL_GPIO HAL_SPI fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
417 0x4803 0x4603 HGIO_GpioTypeFailure HSPI_Timeout No description 3 HAL_GPIO HAL_SPI fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
418 0x4804 0x4604 HGIO_GpioInvalidInstance HSPI_Busy No description 4 HAL_GPIO HAL_SPI fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
419 0x4805 0x4605 HGIO_GpioDuplicateDetected HSPI_GenericError No description 5 HAL_GPIO HAL_SPI fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
420 0x4806 0x4701 HGIO_GpioInitFailed HURT_UartReadFailure No description 6 1 HAL_GPIO HAL_UART fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
421 0x4807 0x4702 HGIO_GpioGetValueFailed HURT_UartReadSizeMissmatch No description 7 2 HAL_GPIO HAL_UART fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
422 0x4c00 0x4703 SPPA_NoPacketFound HURT_UartRxBufferTooSmall No description 0 3 SPACE_PACKET_PARSER HAL_UART fsfw/src/fsfw/tmtcservices/SpacePacketParser.h fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
423 0x4c01 0x4901 SPPA_SplitPacket HGIO_UnknownGpioId No description 1 SPACE_PACKET_PARSER HAL_GPIO fsfw/src/fsfw/tmtcservices/SpacePacketParser.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
424 0x4fa1 0x4902 HEATER_CommandNotSupported HGIO_DriveGpioFailure No description 161 2 HEATER_HANDLER HAL_GPIO mission/tcs/HeaterHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
425 0x4fa2 0x4903 HEATER_InitFailed HGIO_GpioTypeFailure No description 162 3 HEATER_HANDLER HAL_GPIO mission/tcs/HeaterHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
426 0x4fa3 0x4904 HEATER_InvalidSwitchNr HGIO_GpioInvalidInstance No description 163 4 HEATER_HANDLER HAL_GPIO mission/tcs/HeaterHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
427 0x4fa4 0x4905 HEATER_MainSwitchSetTimeout HGIO_GpioDuplicateDetected No description 164 5 HEATER_HANDLER HAL_GPIO mission/tcs/HeaterHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
428 0x4fa5 0x4906 HEATER_CommandAlreadyWaiting HGIO_GpioInitFailed No description 165 6 HEATER_HANDLER HAL_GPIO mission/tcs/HeaterHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
429 0x50a0 0x4907 SYRLINKS_CrcFailure HGIO_GpioGetValueFailed No description 160 7 SYRLINKS_HANDLER HAL_GPIO mission/com/SyrlinksHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
430 0x50a1 0x4d00 SYRLINKS_UartFraminOrParityErrorAck SPPA_NoPacketFound No description 161 0 SYRLINKS_HANDLER SPACE_PACKET_PARSER mission/com/SyrlinksHandler.h fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
431 0x50a2 0x4d01 SYRLINKS_BadCharacterAck SPPA_SplitPacket No description 162 1 SYRLINKS_HANDLER SPACE_PACKET_PARSER mission/com/SyrlinksHandler.h fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
432 0x50a3 0x50a1 SYRLINKS_BadParameterValueAck HEATER_CommandNotSupported No description 163 161 SYRLINKS_HANDLER HEATER_HANDLER mission/com/SyrlinksHandler.h mission/tcs/HeaterHandler.h
433 0x50a4 0x50a2 SYRLINKS_BadEndOfFrameAck HEATER_InitFailed No description 164 162 SYRLINKS_HANDLER HEATER_HANDLER mission/com/SyrlinksHandler.h mission/tcs/HeaterHandler.h
434 0x50a5 0x50a3 SYRLINKS_UnknownCommandIdAck HEATER_InvalidSwitchNr No description 165 163 SYRLINKS_HANDLER HEATER_HANDLER mission/com/SyrlinksHandler.h mission/tcs/HeaterHandler.h
435 0x50a6 0x50a4 SYRLINKS_BadCrcAck HEATER_MainSwitchSetTimeout No description 166 164 SYRLINKS_HANDLER HEATER_HANDLER mission/com/SyrlinksHandler.h mission/tcs/HeaterHandler.h
436 0x50a7 0x50a5 SYRLINKS_ReplyWrongSize HEATER_CommandAlreadyWaiting No description 167 165 SYRLINKS_HANDLER HEATER_HANDLER mission/com/SyrlinksHandler.h mission/tcs/HeaterHandler.h
437 0x50a8 0x51a0 SYRLINKS_MissingStartFrameCharacter SYRLINKS_CrcFailure No description 168 160 SYRLINKS_HANDLER mission/com/SyrlinksHandler.h
438 0x5100 0x51a1 IMTQ_InvalidCommandCode SYRLINKS_UartFraminOrParityErrorAck No description 0 161 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
439 0x5101 0x51a2 IMTQ_MgmMeasurementLowLevelError SYRLINKS_BadCharacterAck No description 1 162 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
440 0x5102 0x51a3 IMTQ_ActuateCmdLowLevelError SYRLINKS_BadParameterValueAck No description 2 163 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
441 0x5103 0x51a4 IMTQ_ParameterMissing SYRLINKS_BadEndOfFrameAck No description 3 164 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
442 0x5104 0x51a5 IMTQ_ParameterInvalid SYRLINKS_UnknownCommandIdAck No description 4 165 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
443 0x5105 0x51a6 IMTQ_CcUnavailable SYRLINKS_BadCrcAck No description 5 166 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
444 0x5106 0x51a7 IMTQ_InternalProcessingError SYRLINKS_ReplyWrongSize No description 6 167 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
445 0x5107 0x51a8 IMTQ_RejectedWithoutReason SYRLINKS_MissingStartFrameCharacter No description 7 168 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
446 0x5108 0x5200 IMTQ_CmdErrUnknown IMTQ_InvalidCommandCode No description 8 0 IMTQ_HANDLER mission/acs/imtqHelpers.h
447 0x5109 0x5201 IMTQ_StartupCfgError IMTQ_MgmMeasurementLowLevelError No description 9 1 IMTQ_HANDLER mission/acs/imtqHelpers.h
448 0x510a 0x5202 IMTQ_UnexpectedSelfTestReply IMTQ_ActuateCmdLowLevelError The status reply to a self test command was received but no self test command has been sent. This should normally never happen. No description 10 2 IMTQ_HANDLER mission/acs/imtqHelpers.h
449 0x52b0 0x5203 RWHA_SpiWriteFailure IMTQ_ParameterMissing No description 176 3 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
450 0x52b1 0x5204 RWHA_SpiReadFailure IMTQ_ParameterInvalid Used by the spi send function to tell a failing read call No description 177 4 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
451 0x52b2 0x5205 RWHA_MissingStartSign IMTQ_CcUnavailable Can be used by the HDLC decoding mechanism to inform about a missing start sign 0x7E No description 178 5 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
452 0x52b3 0x5206 RWHA_InvalidSubstitute IMTQ_InternalProcessingError Can be used by the HDLC decoding mechanism to inform about an invalid substitution combination No description 179 6 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
453 0x52b4 0x5207 RWHA_MissingEndSign IMTQ_RejectedWithoutReason HDLC decoding mechanism never receives the end sign 0x7E No description 180 7 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
454 0x52b5 0x5208 RWHA_NoReply IMTQ_CmdErrUnknown Reaction wheel only responds with empty frames. No description 181 8 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
455 0x52b6 0x5209 RWHA_NoStartMarker IMTQ_StartupCfgError Expected a start marker as first byte No description 182 9 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
456 0x52b7 0x520a RWHA_SpiReadTimeout IMTQ_UnexpectedSelfTestReply Timeout when reading reply The status reply to a self test command was received but no self test command has been sent. This should normally never happen. 183 10 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
457 0x53a0 STRH_TemperatureReqFailed RWHA_InvalidSpeed Status in temperature reply signals error Action Message with invalid speed was received. Valid speeds must be in the range of [-65000, 1000] or [1000, 65000] 160 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
458 0x53a1 STRH_PingFailed RWHA_InvalidRampTime Ping command failed Action Message with invalid ramp time was received. 161 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
459 0x53a2 STRH_VersionReqFailed RWHA_SetSpeedCommandInvalidLength Status in version reply signals error Received set speed command has invalid length. Should be 6. 162 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
460 0x53a3 STRH_InterfaceReqFailed RWHA_ExecutionFailed Status in interface reply signals error Command execution failed 163 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
461 0x53a4 STRH_PowerReqFailed RWHA_CrcError Status in power reply signals error Reaction wheel reply has invalid crc 164 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
462 0x53a5 STRH_SetParamFailed RWHA_ValueNotRead Status of reply to parameter set command signals error No description 165 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
463 0x53a6 0x53b0 STRH_ActionFailed RWHA_SpiWriteFailure Status of reply to action command signals error No description 166 176 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
464 0x53a7 0x53b1 STRH_FilePathTooLong RWHA_SpiReadFailure Received invalid path string. Exceeds allowed length Used by the spi send function to tell a failing read call 167 177 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
465 0x53a8 0x53b2 STRH_FilenameTooLong RWHA_MissingStartSign Name of file received with command is too long Can be used by the HDLC decoding mechanism to inform about a missing start sign 0x7E 168 178 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
466 0x53a9 0x53b3 STRH_InvalidProgram RWHA_InvalidSubstitute Received version reply with invalid program ID Can be used by the HDLC decoding mechanism to inform about an invalid substitution combination 169 179 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
467 0x53aa 0x53b4 STRH_ReplyError RWHA_MissingEndSign Status field reply signals error HDLC decoding mechanism never receives the end sign 0x7E 170 180 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
468 0x53ab 0x53b5 STRH_CommandTooShort RWHA_NoReply Received command which is too short (some data is missing for proper execution) Reaction wheel only responds with empty frames. 171 181 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
469 0x53ac 0x53b6 STRH_InvalidLength RWHA_NoStartMarker Received command with invalid length (too few or too many parameters) Expected a start marker as first byte 172 182 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
470 0x53ad 0x53b7 STRH_RegionMismatch RWHA_SpiReadTimeout Region mismatch between send and received data Timeout when reading reply 173 183 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
471 0x53ae 0x54a0 STRH_AddressMismatch STRH_TemperatureReqFailed Address mismatch between send and received data Status in temperature reply signals error 174 160 STR_HANDLER mission/acs/str/StarTrackerHandler.h
472 0x53af 0x54a1 STRH_LengthMismatch STRH_PingFailed Length field mismatch between send and received data Ping command failed 175 161 STR_HANDLER mission/acs/str/StarTrackerHandler.h
473 0x53b0 0x54a2 STRH_FileNotExists STRH_VersionReqFailed Specified file does not exist Status in version reply signals error 176 162 STR_HANDLER mission/acs/str/StarTrackerHandler.h
474 0x53b1 0x54a3 STRH_InvalidType STRH_InterfaceReqFailed Download blob pixel command has invalid type field Status in interface reply signals error 177 163 STR_HANDLER mission/acs/str/StarTrackerHandler.h
475 0x53b2 0x54a4 STRH_InvalidId STRH_PowerReqFailed Received FPGA action command with invalid ID Status in power reply signals error 178 164 STR_HANDLER mission/acs/str/StarTrackerHandler.h
476 0x53b3 0x54a5 STRH_ReplyTooShort STRH_SetParamFailed Received reply is too short Status of reply to parameter set command signals error 179 165 STR_HANDLER mission/acs/str/StarTrackerHandler.h
477 0x53b4 0x54a6 STRH_CrcFailure STRH_ActionFailed Received reply with invalid CRC Status of reply to action command signals error 180 166 STR_HANDLER mission/acs/str/StarTrackerHandler.h
478 0x53b5 0x54a7 STRH_StrHelperExecuting STRH_FilePathTooLong Star tracker handler currently executing a command and using the communication interface Received invalid path string. Exceeds allowed length 181 167 STR_HANDLER mission/acs/str/StarTrackerHandler.h
479 0x53b6 0x54a8 STRH_StartrackerAlreadyBooted STRH_FilenameTooLong Star tracker is already in firmware mode Name of file received with command is too long 182 168 STR_HANDLER mission/acs/str/StarTrackerHandler.h
480 0x53b7 0x54a9 STRH_StartrackerNotRunningFirmware STRH_InvalidProgram Star tracker must be in firmware mode to run this command Received version reply with invalid program ID 183 169 STR_HANDLER mission/acs/str/StarTrackerHandler.h
481 0x53b8 0x54aa STRH_StartrackerNotRunningBootloader STRH_ReplyError Star tracker must be in bootloader mode to run this command Status field reply signals error 184 170 STR_HANDLER mission/acs/str/StarTrackerHandler.h
482 0x58a0 0x54ab SUSS_InvalidSpeed STRH_CommandTooShort Action Message with invalid speed was received. Valid speeds must be in the range of [-65000, 1000] or [1000, 65000] Received command which is too short (some data is missing for proper execution) 160 171 SUS_HANDLER STR_HANDLER mission/acs/RwHandler.h mission/acs/str/StarTrackerHandler.h
483 0x58a1 0x54ac SUSS_InvalidRampTime STRH_InvalidLength Action Message with invalid ramp time was received. Received command with invalid length (too few or too many parameters) 161 172 SUS_HANDLER STR_HANDLER mission/acs/RwHandler.h mission/acs/str/StarTrackerHandler.h
484 0x58a2 0x54ad SUSS_SetSpeedCommandInvalidLength STRH_RegionMismatch Received set speed command has invalid length. Should be 6. Region mismatch between send and received data 162 173 SUS_HANDLER STR_HANDLER mission/acs/RwHandler.h mission/acs/str/StarTrackerHandler.h
485 0x58a3 0x54ae SUSS_ExecutionFailed STRH_AddressMismatch Command execution failed Address mismatch between send and received data 163 174 SUS_HANDLER STR_HANDLER mission/acs/RwHandler.h mission/acs/str/StarTrackerHandler.h
486 0x58a4 0x54af SUSS_CrcError STRH_LengthMismatch Reaction wheel reply has invalid crc Length field mismatch between send and received data 164 175 SUS_HANDLER STR_HANDLER mission/acs/RwHandler.h mission/acs/str/StarTrackerHandler.h
487 0x58a5 0x54b0 SUSS_ValueNotRead STRH_FileNotExists No description Specified file does not exist 165 176 SUS_HANDLER STR_HANDLER mission/acs/RwHandler.h mission/acs/str/StarTrackerHandler.h
488 0x5d00 0x54b1 GOMS_PacketTooLong STRH_InvalidType No description Download blob pixel command has invalid type field 0 177 GOM_SPACE_HANDLER STR_HANDLER mission/power/GomspaceDeviceHandler.h mission/acs/str/StarTrackerHandler.h
489 0x5d01 0x54b2 GOMS_InvalidTableId STRH_InvalidId No description Received FPGA action command with invalid ID 1 178 GOM_SPACE_HANDLER STR_HANDLER mission/power/GomspaceDeviceHandler.h mission/acs/str/StarTrackerHandler.h
490 0x5d02 0x54b3 GOMS_InvalidAddress STRH_ReplyTooShort No description Received reply is too short 2 179 GOM_SPACE_HANDLER STR_HANDLER mission/power/GomspaceDeviceHandler.h mission/acs/str/StarTrackerHandler.h
491 0x5d03 0x54b4 GOMS_InvalidParamSize STRH_CrcFailure No description Received reply with invalid CRC 3 180 GOM_SPACE_HANDLER STR_HANDLER mission/power/GomspaceDeviceHandler.h mission/acs/str/StarTrackerHandler.h
492 0x5d04 0x54b5 GOMS_InvalidPayloadSize STRH_StrHelperExecuting No description Star tracker handler currently executing a command and using the communication interface 4 181 GOM_SPACE_HANDLER STR_HANDLER mission/power/GomspaceDeviceHandler.h mission/acs/str/StarTrackerHandler.h
493 0x5d05 0x54b6 GOMS_UnknownReplyId STRH_StartrackerAlreadyBooted No description Star tracker is already in firmware mode 5 182 GOM_SPACE_HANDLER STR_HANDLER mission/power/GomspaceDeviceHandler.h mission/acs/str/StarTrackerHandler.h
494 0x60a0 0x54b7 CCSDS_CommandNotImplemented STRH_StartrackerNotRunningFirmware Received action message with unknown action id Star tracker must be in firmware mode to run this command 160 183 CCSDS_HANDLER STR_HANDLER mission/com/CcsdsIpCoreHandler.h mission/acs/str/StarTrackerHandler.h
495 0x6201 0x54b8 JSONBASE_JsonFileNotExists STRH_StartrackerNotRunningBootloader Specified json file does not exist Star tracker must be in bootloader mode to run this command 1 184 ARCSEC_JSON_BASE STR_HANDLER mission/acs/str/ArcsecJsonParamBase.h mission/acs/str/StarTrackerHandler.h
496 0x6202 0x59a0 JSONBASE_SetNotExists SUSS_ErrorUnlockMutex Requested set does not exist in json file No description 2 160 ARCSEC_JSON_BASE SUS_HANDLER mission/acs/str/ArcsecJsonParamBase.h mission/acs/archive/LegacySusHandler.h
497 0x6203 0x59a1 JSONBASE_ParamNotExists SUSS_ErrorLockMutex Requested parameter does not exist in json file No description 3 161 ARCSEC_JSON_BASE SUS_HANDLER mission/acs/str/ArcsecJsonParamBase.h mission/acs/archive/LegacySusHandler.h
498 0x63a0 0x5e00 NVMB_KeyNotExists GOMS_PacketTooLong Specified key does not exist in json file No description 160 0 NVM_PARAM_BASE GOM_SPACE_HANDLER mission/memory/NvmParameterBase.h mission/power/GomspaceDeviceHandler.h
499 0x66a0 0x5e01 SADPL_CommandNotSupported GOMS_InvalidTableId No description 160 1 SA_DEPL_HANDLER GOM_SPACE_HANDLER mission/SolarArrayDeploymentHandler.h mission/power/GomspaceDeviceHandler.h
500 0x66a1 0x5e02 SADPL_DeploymentAlreadyExecuting GOMS_InvalidAddress No description 161 2 SA_DEPL_HANDLER GOM_SPACE_HANDLER mission/SolarArrayDeploymentHandler.h mission/power/GomspaceDeviceHandler.h
501 0x66a2 0x5e03 SADPL_MainSwitchTimeoutFailure GOMS_InvalidParamSize No description 162 3 SA_DEPL_HANDLER GOM_SPACE_HANDLER mission/SolarArrayDeploymentHandler.h mission/power/GomspaceDeviceHandler.h
502 0x66a3 0x5e04 SADPL_SwitchingDeplSa1Failed GOMS_InvalidPayloadSize No description 163 4 SA_DEPL_HANDLER GOM_SPACE_HANDLER mission/SolarArrayDeploymentHandler.h mission/power/GomspaceDeviceHandler.h
503 0x66a4 0x5e05 SADPL_SwitchingDeplSa2Failed GOMS_UnknownReplyId No description 164 5 SA_DEPL_HANDLER GOM_SPACE_HANDLER mission/SolarArrayDeploymentHandler.h mission/power/GomspaceDeviceHandler.h
504 0x6900 0x61a0 ACSCTRL_FileDeletionFailed CCSDS_CommandNotImplemented File deletion failed and at least one file is still existent. Received action message with unknown action id 0 160 ACS_CTRL CCSDS_HANDLER mission/controller/AcsController.h mission/com/CcsdsIpCoreHandler.h
505 0x6a02 0x6301 ACSMEKF_MekfUninitialized JSONBASE_JsonFileNotExists No description Specified json file does not exist 2 1 ACS_MEKF ARCSEC_JSON_BASE mission/controller/acs/MultiplicativeKalmanFilter.h mission/acs/str/ArcsecJsonParamBase.h
506 0x6a03 0x6302 ACSMEKF_MekfNoGyrData JSONBASE_SetNotExists No description Requested set does not exist in json file 3 2 ACS_MEKF ARCSEC_JSON_BASE mission/controller/acs/MultiplicativeKalmanFilter.h mission/acs/str/ArcsecJsonParamBase.h
507 0x6a04 0x6303 ACSMEKF_MekfNoModelVectors JSONBASE_ParamNotExists No description Requested parameter does not exist in json file 4 3 ACS_MEKF ARCSEC_JSON_BASE mission/controller/acs/MultiplicativeKalmanFilter.h mission/acs/str/ArcsecJsonParamBase.h
508 0x6a05 0x64a0 ACSMEKF_MekfNoSusMgmStrData NVMB_KeyNotExists No description Specified key does not exist in json file 5 160 ACS_MEKF NVM_PARAM_BASE mission/controller/acs/MultiplicativeKalmanFilter.h mission/memory/NvmParameterBase.h
509 0x6a06 0x67a0 ACSMEKF_MekfCovarianceInversionFailed SADPL_CommandNotSupported No description 6 160 ACS_MEKF SA_DEPL_HANDLER mission/controller/acs/MultiplicativeKalmanFilter.h mission/SolarArrayDeploymentHandler.h
510 0x6a07 0x67a1 ACSMEKF_MekfNotFinite SADPL_DeploymentAlreadyExecuting No description 7 161 ACS_MEKF SA_DEPL_HANDLER mission/controller/acs/MultiplicativeKalmanFilter.h mission/SolarArrayDeploymentHandler.h
511 0x6a08 0x67a2 ACSMEKF_MekfInitialized SADPL_MainSwitchTimeoutFailure No description 8 162 ACS_MEKF SA_DEPL_HANDLER mission/controller/acs/MultiplicativeKalmanFilter.h mission/SolarArrayDeploymentHandler.h
512 0x6a09 0x67a3 ACSMEKF_MekfRunning SADPL_SwitchingDeplSa1Failed No description 9 163 ACS_MEKF SA_DEPL_HANDLER mission/controller/acs/MultiplicativeKalmanFilter.h mission/SolarArrayDeploymentHandler.h
513 0x6d00 0x67a4 PTM_DumpDone SADPL_SwitchingDeplSa2Failed No description 0 164 PERSISTENT_TM_STORE SA_DEPL_HANDLER mission/tmtc/PersistentTmStore.h mission/SolarArrayDeploymentHandler.h
514 0x6d01 0x6aa0 PTM_BusyDumping ACSCTRL_FileDeletionFailed No description File deletion failed and at least one file is still existent. 1 160 PERSISTENT_TM_STORE ACS_CTRL mission/tmtc/PersistentTmStore.h mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
515 0x6e00 0x6aa1 TMS_IsBusy ACSCTRL_WriteFileFailed No description Writing the TLE to the file has failed. 0 161 TM_SINK ACS_CTRL mission/tmtc/DirectTmSinkIF.h mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
516 0x6aa2 ACSCTRL_ReadFileFailed Reading the TLE to the file has failed. 162 ACS_CTRL mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
517 0x6aa3 ACSCTRL_SingleRwUnavailable A single RW has failed. 163 ACS_CTRL mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
518 0x6aa4 ACSCTRL_MultipleRwUnavailable Multiple RWs have failed. 164 ACS_CTRL mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
519 0x6b02 ACSMEKF_MekfUninitialized No description 2 ACS_MEKF mission/controller/acs/MultiplicativeKalmanFilter.h
520 0x6b03 ACSMEKF_MekfNoGyrData No description 3 ACS_MEKF mission/controller/acs/MultiplicativeKalmanFilter.h
521 0x6b04 ACSMEKF_MekfNoModelVectors No description 4 ACS_MEKF mission/controller/acs/MultiplicativeKalmanFilter.h
522 0x6b05 ACSMEKF_MekfNoSusMgmStrData No description 5 ACS_MEKF mission/controller/acs/MultiplicativeKalmanFilter.h
523 0x6b06 ACSMEKF_MekfCovarianceInversionFailed No description 6 ACS_MEKF mission/controller/acs/MultiplicativeKalmanFilter.h
524 0x6b07 ACSMEKF_MekfNotFinite No description 7 ACS_MEKF mission/controller/acs/MultiplicativeKalmanFilter.h
525 0x6b08 ACSMEKF_MekfInitialized No description 8 ACS_MEKF mission/controller/acs/MultiplicativeKalmanFilter.h
526 0x6b09 ACSMEKF_MekfRunning No description 9 ACS_MEKF mission/controller/acs/MultiplicativeKalmanFilter.h
527 0x6e00 PTM_DumpDone No description 0 PERSISTENT_TM_STORE mission/tmtc/PersistentTmStore.h
528 0x6e01 PTM_BusyDumping No description 1 PERSISTENT_TM_STORE mission/tmtc/PersistentTmStore.h
529 0x6f00 TMS_IsBusy No description 0 TM_SINK mission/tmtc/DirectTmSinkIF.h
530 0x6f01 TMS_PartiallyWritten No description 1 TM_SINK mission/tmtc/DirectTmSinkIF.h
531 0x6f02 TMS_NoWriteActive No description 2 TM_SINK mission/tmtc/DirectTmSinkIF.h
532 0x6f03 TMS_Timeout No description 3 TM_SINK mission/tmtc/DirectTmSinkIF.h
533 0x7000 VCS_ChannelDoesNotExist No description 0 VIRTUAL_CHANNEL mission/com/VirtualChannel.h

View File

@ -60,3 +60,5 @@
142;COM_SUBSYSTEM
143;PERSISTENT_TM_STORE
144;SYRLINKS_COM
145;SUS_HANDLER
146;CFDP_APP

1 22 MEMORY
60 142 COM_SUBSYSTEM
61 143 PERSISTENT_TM_STORE
62 144 SYRLINKS_COM
63 145 SUS_HANDLER
64 146 CFDP_APP

View File

@ -75,9 +75,12 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
7902;0x1ede;BIT_LOCK;INFO;A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
7903;0x1edf;BIT_LOCK_LOST;INFO;A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
7905;0x1ee1;FRAME_PROCESSING_FAILED;LOW;The CCSDS Board could not interpret a TC;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
8900;0x22c4;CLOCK_SET;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h
8901;0x22c5;CLOCK_DUMP;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h
8902;0x22c6;CLOCK_SET_FAILURE;LOW;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h
8900;0x22c4;CLOCK_SET;INFO;Clock has been set. P1: old timeval seconds. P2: new timeval seconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h
8901;0x22c5;CLOCK_DUMP_LEGACY;INFO;Clock dump event. P1: timeval seconds P2: timeval milliseconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h
8902;0x22c6;CLOCK_SET_FAILURE;LOW;Clock could not be set. P1: Returncode.;fsfw/src/fsfw/pus/Service9TimeManagement.h
8903;0x22c7;CLOCK_DUMP;INFO;Clock dump event. P1: timeval seconds P2: timeval microseconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h
8904;0x22c8;CLOCK_DUMP_BEFORE_SETTING_TIME;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h
8905;0x22c9;CLOCK_DUMP_AFTER_SETTING_TIME;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h
9100;0x238c;TC_DELETION_FAILED;MEDIUM;Deletion of a TC from the map failed. P1: First 32 bit of request ID, P2. Last 32 bit of Request ID;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
9700;0x25e4;TEST;INFO;No description;fsfw/src/fsfw/pus/Service17Test.h
10600;0x2968;CHANGE_OF_SETUP_PARAMETER;LOW;No description;fsfw/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h
@ -86,18 +89,28 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
10802;0x2a32;SERIALIZATION_ERROR;LOW;No description;fsfw/src/fsfw/cfdp/handler/defs.h
10803;0x2a33;FILESTORE_ERROR;LOW;No description;fsfw/src/fsfw/cfdp/handler/defs.h
10804;0x2a34;FILENAME_TOO_LARGE_ERROR;LOW;P1: Transaction step ID, P2: 0 for source file name, 1 for dest file name;fsfw/src/fsfw/cfdp/handler/defs.h
10805;0x2a35;HANDLING_CFDP_REQUEST_FAILED;LOW;CFDP request handling failed. P2: Returncode.;fsfw/src/fsfw/cfdp/handler/defs.h
11200;0x2bc0;SAFE_RATE_VIOLATION;MEDIUM;The limits for the rotation in safe mode were violated.;mission/acs/defs.h
11201;0x2bc1;SAFE_RATE_RECOVERY;MEDIUM;The system has recovered from a safe rate rotation violation.;mission/acs/defs.h
11201;0x2bc1;RATE_RECOVERY;MEDIUM;The system has recovered from a rate rotation violation.;mission/acs/defs.h
11202;0x2bc2;MULTIPLE_RW_INVALID;HIGH;Multiple RWs are invalid, uncommandable and therefore higher ACS modes cannot be maintained.;mission/acs/defs.h
11203;0x2bc3;MEKF_INVALID_INFO;INFO;MEKF was not able to compute a solution. P1: MEKF state on exit;mission/acs/defs.h
11204;0x2bc4;MEKF_RECOVERY;INFO;MEKF is able to compute a solution again.;mission/acs/defs.h
11205;0x2bc5;MEKF_AUTOMATIC_RESET;INFO;MEKF performed an automatic reset after detection of nonfinite values.;mission/acs/defs.h
11206;0x2bc6;MEKF_INVALID_MODE_VIOLATION;HIGH;MEKF was not able to compute a solution during any pointing ACS mode for a prolonged time.;mission/acs/defs.h
11206;0x2bc6;PTG_CTRL_NO_ATTITUDE_INFORMATION;HIGH;For a prolonged time, no attitude information was available for the Pointing Controller. Falling back to Safe Mode.;mission/acs/defs.h
11207;0x2bc7;SAFE_MODE_CONTROLLER_FAILURE;HIGH;The ACS safe mode controller was not able to compute a solution and has failed. P1: Missing information about magnetic field, P2: Missing information about rotational rate;mission/acs/defs.h
11208;0x2bc8;TLE_TOO_OLD;INFO;The TLE for the SGP4 Propagator has become too old.;mission/acs/defs.h
11209;0x2bc9;TLE_FILE_READ_FAILED;LOW;The TLE could not be read from the filesystem.;mission/acs/defs.h
11210;0x2bca;PTG_RATE_VIOLATION;MEDIUM;The limits for the rotation in pointing mode were violated.;mission/acs/defs.h
11211;0x2bcb;DETUMBLE_TRANSITION_FAILED;HIGH;The detumble transition has failed. //! P1: Last detumble state before failure.;mission/acs/defs.h
11300;0x2c24;SWITCH_CMD_SENT;INFO;Indicates that a FSFW object requested setting a switch P1: 1 if on was requested, 0 for off | P2: Switch Index;mission/power/defs.h
11301;0x2c25;SWITCH_HAS_CHANGED;INFO;Indicated that a switch state has changed P1: New switch state, 1 for on, 0 for off | P2: Switch Index;mission/power/defs.h
11302;0x2c26;SWITCHING_Q7S_DENIED;MEDIUM;No description;mission/power/defs.h
11303;0x2c27;FDIR_REACTION_IGNORED;MEDIUM;No description;mission/power/defs.h
11304;0x2c28;DATASET_READ_FAILED;INFO;The dataset read for the inputs of the Power Controller has failed.;mission/power/defs.h
11305;0x2c29;VOLTAGE_OUT_OF_BOUNDS;HIGH;No description;mission/power/defs.h
11306;0x2c2a;TIMEDELTA_OUT_OF_BOUNDS;LOW;Time difference for Coulomb Counter was too large. P1: time in s * 10;mission/power/defs.h
11307;0x2c2b;POWER_LEVEL_LOW;HIGH;The State of Charge is below the limit for payload use. Setting Payload to faulty.;mission/power/defs.h
11308;0x2c2c;POWER_LEVEL_CRITICAL;HIGH;The State of Charge is below the limit for higher modes. Setting Reaction Wheels to faulty.;mission/power/defs.h
11400;0x2c88;GPIO_PULL_HIGH_FAILED;LOW;No description;mission/tcs/HeaterHandler.h
11401;0x2c89;GPIO_PULL_LOW_FAILED;LOW;No description;mission/tcs/HeaterHandler.h
11402;0x2c8a;HEATER_WENT_ON;INFO;No description;mission/tcs/HeaterHandler.h
@ -115,12 +128,15 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
11506;0x2cf2;DEPL_SA1_GPIO_SWTICH_OFF_FAILED;HIGH;No description;mission/SolarArrayDeploymentHandler.h
11507;0x2cf3;DEPL_SA2_GPIO_SWTICH_OFF_FAILED;HIGH;No description;mission/SolarArrayDeploymentHandler.h
11508;0x2cf4;AUTONOMOUS_DEPLOYMENT_COMPLETED;INFO;No description;mission/SolarArrayDeploymentHandler.h
11601;0x2d51;MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC crc failure in telemetry packet;linux/payload/PlocMpsocHandler.h
11602;0x2d52;ACK_FAILURE;LOW;PLOC receive acknowledgment failure report P1: Command Id which leads the acknowledgment failure report P2: The status field inserted by the MPSoC into the data field;linux/payload/PlocMpsocHandler.h
11603;0x2d53;EXE_FAILURE;LOW;PLOC receive execution failure report P1: Command Id which leads the execution failure report P2: The status field inserted by the MPSoC into the data field;linux/payload/PlocMpsocHandler.h
11604;0x2d54;MPSOC_HANDLER_CRC_FAILURE;LOW;PLOC reply has invalid crc;linux/payload/PlocMpsocHandler.h
11605;0x2d55;MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH;LOW;Packet sequence count in received space packet does not match expected count P1: Expected sequence count P2: Received sequence count;linux/payload/PlocMpsocHandler.h
11606;0x2d56;MPSOC_SHUTDOWN_FAILED;HIGH;Supervisor fails to shutdown MPSoC. Requires to power off the PLOC and thus also to shutdown the supervisor.;linux/payload/PlocMpsocHandler.h
11601;0x2d51;MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC crc failure in telemetry packet;linux/payload/plocMpsocHelpers.h
11602;0x2d52;ACK_FAILURE;LOW;PLOC receive acknowledgment failure report P1: Command Id which leads the acknowledgment failure report P2: The status field inserted by the MPSoC into the data field;linux/payload/plocMpsocHelpers.h
11603;0x2d53;EXE_FAILURE;LOW;PLOC receive execution failure report P1: Command Id which leads the execution failure report P2: The status field inserted by the MPSoC into the data field;linux/payload/plocMpsocHelpers.h
11604;0x2d54;MPSOC_HANDLER_CRC_FAILURE;LOW;PLOC reply has invalid crc;linux/payload/plocMpsocHelpers.h
11605;0x2d55;MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH;LOW;Packet sequence count in received space packet does not match expected count P1: Expected sequence count P2: Received sequence count;linux/payload/plocMpsocHelpers.h
11606;0x2d56;MPSOC_SHUTDOWN_FAILED;HIGH;Supervisor fails to shutdown MPSoC. Requires to power off the PLOC and thus also to shutdown the supervisor.;linux/payload/plocMpsocHelpers.h
11607;0x2d57;SUPV_NOT_ON;LOW;SUPV not on for boot or shutdown process. P1: 0 for OFF transition, 1 for ON transition.;linux/payload/plocMpsocHelpers.h
11608;0x2d58;SUPV_REPLY_TIMEOUT;LOW;SUPV reply timeout.;linux/payload/plocMpsocHelpers.h
11609;0x2d59;CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE;LOW;Camera must be commanded on first.;linux/payload/plocMpsocHelpers.h
11701;0x2db5;SELF_TEST_I2C_FAILURE;LOW;Get self test result returns I2C failure P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;mission/acs/ImtqHandler.h
11702;0x2db6;SELF_TEST_SPI_FAILURE;LOW;Get self test result returns SPI failure. This concerns the MTM connectivity. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;mission/acs/ImtqHandler.h
11703;0x2db7;SELF_TEST_ADC_FAILURE;LOW;Get self test result returns failure in measurement of current and temperature. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA;mission/acs/ImtqHandler.h
@ -133,14 +149,17 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
11802;0x2e1a;RESET_OCCURED;LOW;No description;mission/acs/rwHelpers.h
11901;0x2e7d;BOOTING_FIRMWARE_FAILED_EVENT;LOW;Failed to boot firmware;mission/acs/str/StarTrackerHandler.h
11902;0x2e7e;BOOTING_BOOTLOADER_FAILED_EVENT;LOW;Failed to boot star tracker into bootloader mode;mission/acs/str/StarTrackerHandler.h
12001;0x2ee1;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC supervisor crc failure in telemetry packet;linux/payload/PlocSupervisorHandler.h
12002;0x2ee2;SUPV_UNKNOWN_TM;LOW;Unhandled event. P1: APID, P2: Service ID;linux/payload/PlocSupervisorHandler.h
12003;0x2ee3;SUPV_UNINIMPLEMENTED_TM;LOW;No description;linux/payload/PlocSupervisorHandler.h
12004;0x2ee4;SUPV_ACK_FAILURE;LOW;PLOC supervisor received acknowledgment failure report;linux/payload/PlocSupervisorHandler.h
12005;0x2ee5;SUPV_EXE_FAILURE;LOW;PLOC received execution failure report P1: ID of command for which the execution failed P2: Status code sent by the supervisor handler;linux/payload/PlocSupervisorHandler.h
12006;0x2ee6;SUPV_CRC_FAILURE_EVENT;LOW;PLOC supervisor reply has invalid crc;linux/payload/PlocSupervisorHandler.h
12007;0x2ee7;SUPV_HELPER_EXECUTING;LOW;Supervisor helper currently executing a command;linux/payload/PlocSupervisorHandler.h
12008;0x2ee8;SUPV_MPSOC_SHUTDOWN_BUILD_FAILED;LOW;Failed to build the command to shutdown the MPSoC;linux/payload/PlocSupervisorHandler.h
11903;0x2e7f;COM_ERROR_REPLY_RECEIVED;LOW;Received COM error. P1: Communication Error ID (datasheet p32);mission/acs/str/StarTrackerHandler.h
12001;0x2ee1;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC supervisor crc failure in telemetry packet;linux/payload/plocSupvDefs.h
12002;0x2ee2;SUPV_UNKNOWN_TM;LOW;Unhandled event. P1: APID, P2: Service ID;linux/payload/plocSupvDefs.h
12003;0x2ee3;SUPV_UNINIMPLEMENTED_TM;LOW;No description;linux/payload/plocSupvDefs.h
12004;0x2ee4;SUPV_ACK_FAILURE;LOW;PLOC supervisor received acknowledgment failure report;linux/payload/plocSupvDefs.h
12005;0x2ee5;SUPV_EXE_FAILURE;LOW;PLOC received execution failure report P1: ID of command for which the execution failed P2: Status code sent by the supervisor handler;linux/payload/plocSupvDefs.h
12006;0x2ee6;SUPV_CRC_FAILURE_EVENT;LOW;PLOC supervisor reply has invalid crc;linux/payload/plocSupvDefs.h
12007;0x2ee7;SUPV_HELPER_EXECUTING;LOW;Supervisor helper currently executing a command;linux/payload/plocSupvDefs.h
12008;0x2ee8;SUPV_MPSOC_SHUTDOWN_BUILD_FAILED;LOW;Failed to build the command to shutdown the MPSoC;linux/payload/plocSupvDefs.h
12009;0x2ee9;SUPV_ACK_UNKNOWN_COMMAND;LOW;Received ACK, but no related command is unknown or has not been sent by this software instance. P1: Module APID. P2: Service ID.;linux/payload/plocSupvDefs.h
12010;0x2eea;SUPV_EXE_ACK_UNKNOWN_COMMAND;LOW;Received ACK EXE, but no related command is unknown or has not been sent by this software instance. P1: Module APID. P2: Service ID.;linux/payload/plocSupvDefs.h
12100;0x2f44;SANITIZATION_FAILED;LOW;No description;bsp_q7s/fs/SdCardManager.h
12101;0x2f45;MOUNTED_SD_CARD;INFO;No description;bsp_q7s/fs/SdCardManager.h
12300;0x300c;SEND_MRAM_DUMP_FAILED;LOW;Failed to send mram dump command to supervisor handler P1: Return value of commandAction function P2: Start address of MRAM to dump with this command;linux/payload/PlocMemoryDumper.h
@ -160,6 +179,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
12412;0x307c;PDEC_RESET_FAILED;HIGH;Failed to pull PDEC reset to low;linux/ipcore/pdec.h
12413;0x307d;OPEN_IRQ_FILE_FAILED;HIGH;Failed to open the IRQ uio file;linux/ipcore/pdec.h
12414;0x307e;PDEC_INIT_FAILED;HIGH;PDEC initialization failed. This might also be due to the persistent confiuration never becoming available, for example due to SD card issues.;linux/ipcore/pdec.h
12415;0x307f;PDEC_CONFIG_CORRUPTED;HIGH;The PDEC configuration area has been corrupted P1: The first configuration word P2: The second configuration word;linux/ipcore/pdec.h
12500;0x30d4;IMAGE_UPLOAD_FAILED;LOW;Image upload failed;linux/acs/StrComHandler.h
12501;0x30d5;IMAGE_DOWNLOAD_FAILED;LOW;Image download failed;linux/acs/StrComHandler.h
12502;0x30d6;IMAGE_UPLOAD_SUCCESSFUL;LOW;Uploading image to star tracker was successfulop;linux/acs/StrComHandler.h
@ -217,8 +237,9 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
12902;0x3266;POWER_STATE_MACHINE_TIMEOUT;MEDIUM;No description;mission/system/acs/SusAssembly.h
12903;0x3267;SIDE_SWITCH_TRANSITION_NOT_ALLOWED;LOW;Not implemented, would increase already high complexity. Operator should instead command the assembly off first and then command the assembly on into the desired mode/submode combination;mission/system/acs/SusAssembly.h
13000;0x32c8;CHILDREN_LOST_MODE;MEDIUM;No description;mission/system/tcs/TcsBoardAssembly.h
13100;0x332c;GPS_FIX_CHANGE;INFO;Fix has changed. P1: Old fix. P2: New fix 0: Not seen, 1: No Fix, 2: 2D-Fix, 3: 3D-Fix;mission/acs/archive/GPSDefinitions.h
13101;0x332d;CANT_GET_FIX;LOW;Could not get fix in maximum allowed time. P1: Maximum allowed time to get a fix after the GPS was switched on.;mission/acs/archive/GPSDefinitions.h
13100;0x332c;GPS_FIX_CHANGE;INFO;Fix has changed. P1: New fix. P2: Missed fix changes 0: Not seen, 1: No Fix, 2: 2D-Fix, 3: 3D-Fix;linux/acs/GPSDefinitions.h
13101;0x332d;CANT_GET_FIX;MEDIUM;Could not get fix in maximum allowed time. Trying to reset both GNSS devices. P1: Maximum allowed time to get a fix after the GPS was switched on.;linux/acs/GPSDefinitions.h
13102;0x332e;RESET_FAIL;HIGH;Failed to reset an GNNS Device. P1: Board-Side.;linux/acs/GPSDefinitions.h
13200;0x3390;P60_BOOT_COUNT;INFO;P60 boot count is broadcasted once at SW startup. P1: Boot count;mission/power/P60DockHandler.h
13201;0x3391;BATT_MODE;INFO;Battery mode is broadcasted at startup. P1: Mode;mission/power/P60DockHandler.h
13202;0x3392;BATT_MODE_CHANGED;MEDIUM;Battery mode has changed. P1: Old mode. P2: New mode;mission/power/P60DockHandler.h
@ -254,6 +275,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
13800;0x35e8;MISSING_PACKET;LOW;No description;mission/payload/scexHelpers.h
13801;0x35e9;EXPERIMENT_TIMEDOUT;LOW;No description;mission/payload/scexHelpers.h
13802;0x35ea;MULTI_PACKET_COMMAND_DONE;INFO;No description;mission/payload/scexHelpers.h
13803;0x35eb;FS_UNUSABLE;LOW;No description;mission/payload/scexHelpers.h
13901;0x364d;SET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
13902;0x364e;GET_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
13903;0x364f;INSERT_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
@ -272,6 +294,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
14011;0x36bb;I2C_REBOOT;HIGH;I2C is unavailable. Recovery did not work, performing full reboot.;mission/sysDefs.h
14012;0x36bc;PDEC_REBOOT;HIGH;PDEC recovery through reset was not possible, performing full reboot.;mission/sysDefs.h
14013;0x36bd;FIRMWARE_INFO;INFO;Version information of the firmware (not OBSW). P1: Byte 0: Major, Byte 1: Minor, Byte 2: Patch, Byte 3: Has Git Hash P2: First four letters of Git SHA is the last byte of P1 is set.;mission/sysDefs.h
14014;0x36be;ACTIVE_SD_INFO;INFO;Active SD card info. SD States: 0: OFF, 1: ON, 2: MOUNTED. P1: Active SD Card Index, 0 if none is active P2: First two bytes: SD state of SD card 0, last two bytes SD state of SD card 1;mission/sysDefs.h
14100;0x3714;NO_VALID_SENSOR_TEMPERATURE;MEDIUM;No description;mission/controller/tcsDefs.h
14101;0x3715;NO_HEALTHY_HEATER_AVAILABLE;MEDIUM;No description;mission/controller/tcsDefs.h
14102;0x3716;SYRLINKS_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
@ -280,6 +303,9 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
14106;0x371a;PCDU_SYSTEM_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
14107;0x371b;HEATER_NOT_OFF_FOR_OFF_MODE;MEDIUM;No description;mission/controller/tcsDefs.h
14108;0x371c;MGT_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
14109;0x371d;TCS_SWITCHING_HEATER_ON;INFO;P1: Module index. P2: Heater index;mission/controller/tcsDefs.h
14110;0x371e;TCS_SWITCHING_HEATER_OFF;INFO;P1: Module index. P2: Heater index;mission/controller/tcsDefs.h
14111;0x371f;TCS_HEATER_MAX_BURN_TIME_REACHED;MEDIUM;P1: Heater index. P2: Maximum burn time for heater.;mission/controller/tcsDefs.h
14201;0x3779;TX_TIMER_EXPIRED;INFO;The transmit timer to protect the Syrlinks expired P1: The current timer value;mission/system/com/ComSubsystem.h
14202;0x377a;BIT_LOCK_TX_ON;INFO;Transmitter will be turned on due to detection of bitlock;mission/system/com/ComSubsystem.h
14300;0x37dc;POSSIBLE_FILE_CORRUPTION;LOW;P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp.;mission/persistentTmStoreDefs.h
@ -295,3 +321,6 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
14312;0x37e8;DUMP_MISC_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
14313;0x37e9;DUMP_HK_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
14314;0x37ea;DUMP_CFDP_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
14500;0x38a4;TEMPERATURE_ALL_ONES_START;MEDIUM;Detected invalid values, starting invalid message counting;mission/acs/SusHandler.h
14501;0x38a5;TEMPERATURE_ALL_ONES_RECOVERY;INFO;Detected valid values for a prolonged time again, resetting all counters. P1: Number of periods with invalid messages. P2: Maximum invalid message counter.;mission/acs/SusHandler.h
14600;0x3908;FAULT_HANDLER_TRIGGERED;LOW;P1: CFDP fault handler code. P2: CFDP condition code.;mission/cfdp/defs.h

1 Event ID (dec) Event ID (hex) Name Severity Description File Path
75 7902 0x1ede BIT_LOCK INFO A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0 fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
76 7903 0x1edf BIT_LOCK_LOST INFO A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0 fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
77 7905 0x1ee1 FRAME_PROCESSING_FAILED LOW The CCSDS Board could not interpret a TC fsfw/src/fsfw/datalinklayer/DataLinkLayer.h
78 8900 0x22c4 CLOCK_SET INFO No description Clock has been set. P1: old timeval seconds. P2: new timeval seconds. fsfw/src/fsfw/pus/Service9TimeManagement.h
79 8901 0x22c5 CLOCK_DUMP CLOCK_DUMP_LEGACY INFO No description Clock dump event. P1: timeval seconds P2: timeval milliseconds. fsfw/src/fsfw/pus/Service9TimeManagement.h
80 8902 0x22c6 CLOCK_SET_FAILURE LOW No description Clock could not be set. P1: Returncode. fsfw/src/fsfw/pus/Service9TimeManagement.h
81 8903 0x22c7 CLOCK_DUMP INFO Clock dump event. P1: timeval seconds P2: timeval microseconds. fsfw/src/fsfw/pus/Service9TimeManagement.h
82 8904 0x22c8 CLOCK_DUMP_BEFORE_SETTING_TIME INFO No description fsfw/src/fsfw/pus/Service9TimeManagement.h
83 8905 0x22c9 CLOCK_DUMP_AFTER_SETTING_TIME INFO No description fsfw/src/fsfw/pus/Service9TimeManagement.h
84 9100 0x238c TC_DELETION_FAILED MEDIUM Deletion of a TC from the map failed. P1: First 32 bit of request ID, P2. Last 32 bit of Request ID fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
85 9700 0x25e4 TEST INFO No description fsfw/src/fsfw/pus/Service17Test.h
86 10600 0x2968 CHANGE_OF_SETUP_PARAMETER LOW No description fsfw/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h
89 10802 0x2a32 SERIALIZATION_ERROR LOW No description fsfw/src/fsfw/cfdp/handler/defs.h
90 10803 0x2a33 FILESTORE_ERROR LOW No description fsfw/src/fsfw/cfdp/handler/defs.h
91 10804 0x2a34 FILENAME_TOO_LARGE_ERROR LOW P1: Transaction step ID, P2: 0 for source file name, 1 for dest file name fsfw/src/fsfw/cfdp/handler/defs.h
92 10805 0x2a35 HANDLING_CFDP_REQUEST_FAILED LOW CFDP request handling failed. P2: Returncode. fsfw/src/fsfw/cfdp/handler/defs.h
93 11200 0x2bc0 SAFE_RATE_VIOLATION MEDIUM The limits for the rotation in safe mode were violated. mission/acs/defs.h
94 11201 0x2bc1 SAFE_RATE_RECOVERY RATE_RECOVERY MEDIUM The system has recovered from a safe rate rotation violation. The system has recovered from a rate rotation violation. mission/acs/defs.h
95 11202 0x2bc2 MULTIPLE_RW_INVALID HIGH Multiple RWs are invalid, uncommandable and therefore higher ACS modes cannot be maintained. mission/acs/defs.h
96 11203 0x2bc3 MEKF_INVALID_INFO INFO MEKF was not able to compute a solution. P1: MEKF state on exit mission/acs/defs.h
97 11204 0x2bc4 MEKF_RECOVERY INFO MEKF is able to compute a solution again. mission/acs/defs.h
98 11205 0x2bc5 MEKF_AUTOMATIC_RESET INFO MEKF performed an automatic reset after detection of nonfinite values. mission/acs/defs.h
99 11206 0x2bc6 MEKF_INVALID_MODE_VIOLATION PTG_CTRL_NO_ATTITUDE_INFORMATION HIGH MEKF was not able to compute a solution during any pointing ACS mode for a prolonged time. For a prolonged time, no attitude information was available for the Pointing Controller. Falling back to Safe Mode. mission/acs/defs.h
100 11207 0x2bc7 SAFE_MODE_CONTROLLER_FAILURE HIGH The ACS safe mode controller was not able to compute a solution and has failed. P1: Missing information about magnetic field, P2: Missing information about rotational rate mission/acs/defs.h
101 11208 0x2bc8 TLE_TOO_OLD INFO The TLE for the SGP4 Propagator has become too old. mission/acs/defs.h
102 11209 0x2bc9 TLE_FILE_READ_FAILED LOW The TLE could not be read from the filesystem. mission/acs/defs.h
103 11210 0x2bca PTG_RATE_VIOLATION MEDIUM The limits for the rotation in pointing mode were violated. mission/acs/defs.h
104 11211 0x2bcb DETUMBLE_TRANSITION_FAILED HIGH The detumble transition has failed. //! P1: Last detumble state before failure. mission/acs/defs.h
105 11300 0x2c24 SWITCH_CMD_SENT INFO Indicates that a FSFW object requested setting a switch P1: 1 if on was requested, 0 for off | P2: Switch Index mission/power/defs.h
106 11301 0x2c25 SWITCH_HAS_CHANGED INFO Indicated that a switch state has changed P1: New switch state, 1 for on, 0 for off | P2: Switch Index mission/power/defs.h
107 11302 0x2c26 SWITCHING_Q7S_DENIED MEDIUM No description mission/power/defs.h
108 11303 0x2c27 FDIR_REACTION_IGNORED MEDIUM No description mission/power/defs.h
109 11304 0x2c28 DATASET_READ_FAILED INFO The dataset read for the inputs of the Power Controller has failed. mission/power/defs.h
110 11305 0x2c29 VOLTAGE_OUT_OF_BOUNDS HIGH No description mission/power/defs.h
111 11306 0x2c2a TIMEDELTA_OUT_OF_BOUNDS LOW Time difference for Coulomb Counter was too large. P1: time in s * 10 mission/power/defs.h
112 11307 0x2c2b POWER_LEVEL_LOW HIGH The State of Charge is below the limit for payload use. Setting Payload to faulty. mission/power/defs.h
113 11308 0x2c2c POWER_LEVEL_CRITICAL HIGH The State of Charge is below the limit for higher modes. Setting Reaction Wheels to faulty. mission/power/defs.h
114 11400 0x2c88 GPIO_PULL_HIGH_FAILED LOW No description mission/tcs/HeaterHandler.h
115 11401 0x2c89 GPIO_PULL_LOW_FAILED LOW No description mission/tcs/HeaterHandler.h
116 11402 0x2c8a HEATER_WENT_ON INFO No description mission/tcs/HeaterHandler.h
128 11506 0x2cf2 DEPL_SA1_GPIO_SWTICH_OFF_FAILED HIGH No description mission/SolarArrayDeploymentHandler.h
129 11507 0x2cf3 DEPL_SA2_GPIO_SWTICH_OFF_FAILED HIGH No description mission/SolarArrayDeploymentHandler.h
130 11508 0x2cf4 AUTONOMOUS_DEPLOYMENT_COMPLETED INFO No description mission/SolarArrayDeploymentHandler.h
131 11601 0x2d51 MEMORY_READ_RPT_CRC_FAILURE LOW PLOC crc failure in telemetry packet linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
132 11602 0x2d52 ACK_FAILURE LOW PLOC receive acknowledgment failure report P1: Command Id which leads the acknowledgment failure report P2: The status field inserted by the MPSoC into the data field linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
133 11603 0x2d53 EXE_FAILURE LOW PLOC receive execution failure report P1: Command Id which leads the execution failure report P2: The status field inserted by the MPSoC into the data field linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
134 11604 0x2d54 MPSOC_HANDLER_CRC_FAILURE LOW PLOC reply has invalid crc linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
135 11605 0x2d55 MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH LOW Packet sequence count in received space packet does not match expected count P1: Expected sequence count P2: Received sequence count linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
136 11606 0x2d56 MPSOC_SHUTDOWN_FAILED HIGH Supervisor fails to shutdown MPSoC. Requires to power off the PLOC and thus also to shutdown the supervisor. linux/payload/PlocMpsocHandler.h linux/payload/plocMpsocHelpers.h
137 11607 0x2d57 SUPV_NOT_ON LOW SUPV not on for boot or shutdown process. P1: 0 for OFF transition, 1 for ON transition. linux/payload/plocMpsocHelpers.h
138 11608 0x2d58 SUPV_REPLY_TIMEOUT LOW SUPV reply timeout. linux/payload/plocMpsocHelpers.h
139 11609 0x2d59 CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE LOW Camera must be commanded on first. linux/payload/plocMpsocHelpers.h
140 11701 0x2db5 SELF_TEST_I2C_FAILURE LOW Get self test result returns I2C failure P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA mission/acs/ImtqHandler.h
141 11702 0x2db6 SELF_TEST_SPI_FAILURE LOW Get self test result returns SPI failure. This concerns the MTM connectivity. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA mission/acs/ImtqHandler.h
142 11703 0x2db7 SELF_TEST_ADC_FAILURE LOW Get self test result returns failure in measurement of current and temperature. P1: Indicates on which axis the failure occurred. 0 -> INIT, 1 -> +X, 2 -> -X, 3 -> +Y, 4 -> -Y, 5 -> +Z, 6 -> -Z, 7 -> FINA mission/acs/ImtqHandler.h
149 11802 0x2e1a RESET_OCCURED LOW No description mission/acs/rwHelpers.h
150 11901 0x2e7d BOOTING_FIRMWARE_FAILED_EVENT LOW Failed to boot firmware mission/acs/str/StarTrackerHandler.h
151 11902 0x2e7e BOOTING_BOOTLOADER_FAILED_EVENT LOW Failed to boot star tracker into bootloader mode mission/acs/str/StarTrackerHandler.h
152 12001 11903 0x2ee1 0x2e7f SUPV_MEMORY_READ_RPT_CRC_FAILURE COM_ERROR_REPLY_RECEIVED LOW PLOC supervisor crc failure in telemetry packet Received COM error. P1: Communication Error ID (datasheet p32) linux/payload/PlocSupervisorHandler.h mission/acs/str/StarTrackerHandler.h
153 12002 12001 0x2ee2 0x2ee1 SUPV_UNKNOWN_TM SUPV_MEMORY_READ_RPT_CRC_FAILURE LOW Unhandled event. P1: APID, P2: Service ID PLOC supervisor crc failure in telemetry packet linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
154 12003 12002 0x2ee3 0x2ee2 SUPV_UNINIMPLEMENTED_TM SUPV_UNKNOWN_TM LOW No description Unhandled event. P1: APID, P2: Service ID linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
155 12004 12003 0x2ee4 0x2ee3 SUPV_ACK_FAILURE SUPV_UNINIMPLEMENTED_TM LOW PLOC supervisor received acknowledgment failure report No description linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
156 12005 12004 0x2ee5 0x2ee4 SUPV_EXE_FAILURE SUPV_ACK_FAILURE LOW PLOC received execution failure report P1: ID of command for which the execution failed P2: Status code sent by the supervisor handler PLOC supervisor received acknowledgment failure report linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
157 12006 12005 0x2ee6 0x2ee5 SUPV_CRC_FAILURE_EVENT SUPV_EXE_FAILURE LOW PLOC supervisor reply has invalid crc PLOC received execution failure report P1: ID of command for which the execution failed P2: Status code sent by the supervisor handler linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
158 12007 12006 0x2ee7 0x2ee6 SUPV_HELPER_EXECUTING SUPV_CRC_FAILURE_EVENT LOW Supervisor helper currently executing a command PLOC supervisor reply has invalid crc linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
159 12008 12007 0x2ee8 0x2ee7 SUPV_MPSOC_SHUTDOWN_BUILD_FAILED SUPV_HELPER_EXECUTING LOW Failed to build the command to shutdown the MPSoC Supervisor helper currently executing a command linux/payload/PlocSupervisorHandler.h linux/payload/plocSupvDefs.h
160 12008 0x2ee8 SUPV_MPSOC_SHUTDOWN_BUILD_FAILED LOW Failed to build the command to shutdown the MPSoC linux/payload/plocSupvDefs.h
161 12009 0x2ee9 SUPV_ACK_UNKNOWN_COMMAND LOW Received ACK, but no related command is unknown or has not been sent by this software instance. P1: Module APID. P2: Service ID. linux/payload/plocSupvDefs.h
162 12010 0x2eea SUPV_EXE_ACK_UNKNOWN_COMMAND LOW Received ACK EXE, but no related command is unknown or has not been sent by this software instance. P1: Module APID. P2: Service ID. linux/payload/plocSupvDefs.h
163 12100 0x2f44 SANITIZATION_FAILED LOW No description bsp_q7s/fs/SdCardManager.h
164 12101 0x2f45 MOUNTED_SD_CARD INFO No description bsp_q7s/fs/SdCardManager.h
165 12300 0x300c SEND_MRAM_DUMP_FAILED LOW Failed to send mram dump command to supervisor handler P1: Return value of commandAction function P2: Start address of MRAM to dump with this command linux/payload/PlocMemoryDumper.h
179 12412 0x307c PDEC_RESET_FAILED HIGH Failed to pull PDEC reset to low linux/ipcore/pdec.h
180 12413 0x307d OPEN_IRQ_FILE_FAILED HIGH Failed to open the IRQ uio file linux/ipcore/pdec.h
181 12414 0x307e PDEC_INIT_FAILED HIGH PDEC initialization failed. This might also be due to the persistent confiuration never becoming available, for example due to SD card issues. linux/ipcore/pdec.h
182 12415 0x307f PDEC_CONFIG_CORRUPTED HIGH The PDEC configuration area has been corrupted P1: The first configuration word P2: The second configuration word linux/ipcore/pdec.h
183 12500 0x30d4 IMAGE_UPLOAD_FAILED LOW Image upload failed linux/acs/StrComHandler.h
184 12501 0x30d5 IMAGE_DOWNLOAD_FAILED LOW Image download failed linux/acs/StrComHandler.h
185 12502 0x30d6 IMAGE_UPLOAD_SUCCESSFUL LOW Uploading image to star tracker was successfulop linux/acs/StrComHandler.h
237 12902 0x3266 POWER_STATE_MACHINE_TIMEOUT MEDIUM No description mission/system/acs/SusAssembly.h
238 12903 0x3267 SIDE_SWITCH_TRANSITION_NOT_ALLOWED LOW Not implemented, would increase already high complexity. Operator should instead command the assembly off first and then command the assembly on into the desired mode/submode combination mission/system/acs/SusAssembly.h
239 13000 0x32c8 CHILDREN_LOST_MODE MEDIUM No description mission/system/tcs/TcsBoardAssembly.h
240 13100 0x332c GPS_FIX_CHANGE INFO Fix has changed. P1: Old fix. P2: New fix 0: Not seen, 1: No Fix, 2: 2D-Fix, 3: 3D-Fix Fix has changed. P1: New fix. P2: Missed fix changes 0: Not seen, 1: No Fix, 2: 2D-Fix, 3: 3D-Fix mission/acs/archive/GPSDefinitions.h linux/acs/GPSDefinitions.h
241 13101 0x332d CANT_GET_FIX LOW MEDIUM Could not get fix in maximum allowed time. P1: Maximum allowed time to get a fix after the GPS was switched on. Could not get fix in maximum allowed time. Trying to reset both GNSS devices. P1: Maximum allowed time to get a fix after the GPS was switched on. mission/acs/archive/GPSDefinitions.h linux/acs/GPSDefinitions.h
242 13102 0x332e RESET_FAIL HIGH Failed to reset an GNNS Device. P1: Board-Side. linux/acs/GPSDefinitions.h
243 13200 0x3390 P60_BOOT_COUNT INFO P60 boot count is broadcasted once at SW startup. P1: Boot count mission/power/P60DockHandler.h
244 13201 0x3391 BATT_MODE INFO Battery mode is broadcasted at startup. P1: Mode mission/power/P60DockHandler.h
245 13202 0x3392 BATT_MODE_CHANGED MEDIUM Battery mode has changed. P1: Old mode. P2: New mode mission/power/P60DockHandler.h
275 13800 0x35e8 MISSING_PACKET LOW No description mission/payload/scexHelpers.h
276 13801 0x35e9 EXPERIMENT_TIMEDOUT LOW No description mission/payload/scexHelpers.h
277 13802 0x35ea MULTI_PACKET_COMMAND_DONE INFO No description mission/payload/scexHelpers.h
278 13803 0x35eb FS_UNUSABLE LOW No description mission/payload/scexHelpers.h
279 13901 0x364d SET_CONFIGFILEVALUE_FAILED MEDIUM No description mission/utility/GlobalConfigHandler.h
280 13902 0x364e GET_CONFIGFILEVALUE_FAILED MEDIUM No description mission/utility/GlobalConfigHandler.h
281 13903 0x364f INSERT_CONFIGFILEVALUE_FAILED MEDIUM No description mission/utility/GlobalConfigHandler.h
294 14011 0x36bb I2C_REBOOT HIGH I2C is unavailable. Recovery did not work, performing full reboot. mission/sysDefs.h
295 14012 0x36bc PDEC_REBOOT HIGH PDEC recovery through reset was not possible, performing full reboot. mission/sysDefs.h
296 14013 0x36bd FIRMWARE_INFO INFO Version information of the firmware (not OBSW). P1: Byte 0: Major, Byte 1: Minor, Byte 2: Patch, Byte 3: Has Git Hash P2: First four letters of Git SHA is the last byte of P1 is set. mission/sysDefs.h
297 14014 0x36be ACTIVE_SD_INFO INFO Active SD card info. SD States: 0: OFF, 1: ON, 2: MOUNTED. P1: Active SD Card Index, 0 if none is active P2: First two bytes: SD state of SD card 0, last two bytes SD state of SD card 1 mission/sysDefs.h
298 14100 0x3714 NO_VALID_SENSOR_TEMPERATURE MEDIUM No description mission/controller/tcsDefs.h
299 14101 0x3715 NO_HEALTHY_HEATER_AVAILABLE MEDIUM No description mission/controller/tcsDefs.h
300 14102 0x3716 SYRLINKS_OVERHEATING HIGH No description mission/controller/tcsDefs.h
303 14106 0x371a PCDU_SYSTEM_OVERHEATING HIGH No description mission/controller/tcsDefs.h
304 14107 0x371b HEATER_NOT_OFF_FOR_OFF_MODE MEDIUM No description mission/controller/tcsDefs.h
305 14108 0x371c MGT_OVERHEATING HIGH No description mission/controller/tcsDefs.h
306 14109 0x371d TCS_SWITCHING_HEATER_ON INFO P1: Module index. P2: Heater index mission/controller/tcsDefs.h
307 14110 0x371e TCS_SWITCHING_HEATER_OFF INFO P1: Module index. P2: Heater index mission/controller/tcsDefs.h
308 14111 0x371f TCS_HEATER_MAX_BURN_TIME_REACHED MEDIUM P1: Heater index. P2: Maximum burn time for heater. mission/controller/tcsDefs.h
309 14201 0x3779 TX_TIMER_EXPIRED INFO The transmit timer to protect the Syrlinks expired P1: The current timer value mission/system/com/ComSubsystem.h
310 14202 0x377a BIT_LOCK_TX_ON INFO Transmitter will be turned on due to detection of bitlock mission/system/com/ComSubsystem.h
311 14300 0x37dc POSSIBLE_FILE_CORRUPTION LOW P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp. mission/persistentTmStoreDefs.h
321 14312 0x37e8 DUMP_MISC_CANCELLED LOW P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
322 14313 0x37e9 DUMP_HK_CANCELLED LOW P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
323 14314 0x37ea DUMP_CFDP_CANCELLED LOW P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
324 14500 0x38a4 TEMPERATURE_ALL_ONES_START MEDIUM Detected invalid values, starting invalid message counting mission/acs/SusHandler.h
325 14501 0x38a5 TEMPERATURE_ALL_ONES_RECOVERY INFO Detected valid values for a prolonged time again, resetting all counters. P1: Number of periods with invalid messages. P2: Maximum invalid message counter. mission/acs/SusHandler.h
326 14600 0x3908 FAULT_HANDLER_TRIGGERED LOW P1: CFDP fault handler code. P2: CFDP condition code. mission/cfdp/defs.h

View File

@ -1,7 +1,9 @@
0x00005060;P60DOCK_TEST_TASK
0x43000002;ACS_CONTROLLER
0x43000003;CORE_CONTROLLER
0x43000004;POWER_CONTROLLER
0x43000006;GLOBAL_JSON_CFG
0x43000007;XIPHOS_WDT
0x43400001;THERMAL_CONTROLLER
0x44120006;MGM_0_LIS3_HANDLER
0x44120010;GYRO_0_ADIS_HANDLER
@ -54,6 +56,7 @@
0x44330015;PLOC_MPSOC_HANDLER
0x44330016;PLOC_SUPERVISOR_HANDLER
0x44330017;PLOC_SUPERVISOR_HELPER
0x44330018;PLOC_MPSOC_COMMUNICATION
0x44330032;SCEX
0x444100A2;SOLAR_ARRAY_DEPL_HANDLER
0x444100A4;HEATER_HANDLER
@ -156,11 +159,13 @@
0x73000102;CFDP_TM_FUNNEL
0x73000205;CFDP_HANDLER
0x73000206;CFDP_DISTRIBUTOR
0x73000207;CFDP_FAULT_HANDLER
0x73010000;EIVE_SYSTEM
0x73010001;ACS_SUBSYSTEM
0x73010002;PL_SUBSYSTEM
0x73010003;TCS_SUBSYSTEM
0x73010004;COM_SUBSYSTEM
0x73010005;EPS_SUBSYSTEM
0x73020001;MISC_TM_STORE
0x73020002;OK_TM_STORE
0x73020003;NOT_OK_TM_STORE

1 0x00005060 P60DOCK_TEST_TASK
2 0x43000002 ACS_CONTROLLER
3 0x43000003 CORE_CONTROLLER
4 0x43000004 POWER_CONTROLLER
5 0x43000006 GLOBAL_JSON_CFG
6 0x43000007 XIPHOS_WDT
7 0x43400001 THERMAL_CONTROLLER
8 0x44120006 MGM_0_LIS3_HANDLER
9 0x44120010 GYRO_0_ADIS_HANDLER
56 0x44330015 PLOC_MPSOC_HANDLER
57 0x44330016 PLOC_SUPERVISOR_HANDLER
58 0x44330017 PLOC_SUPERVISOR_HELPER
59 0x44330018 PLOC_MPSOC_COMMUNICATION
60 0x44330032 SCEX
61 0x444100A2 SOLAR_ARRAY_DEPL_HANDLER
62 0x444100A4 HEATER_HANDLER
159 0x73000102 CFDP_TM_FUNNEL
160 0x73000205 CFDP_HANDLER
161 0x73000206 CFDP_DISTRIBUTOR
162 0x73000207 CFDP_FAULT_HANDLER
163 0x73010000 EIVE_SYSTEM
164 0x73010001 ACS_SUBSYSTEM
165 0x73010002 PL_SUBSYSTEM
166 0x73010003 TCS_SUBSYSTEM
167 0x73010004 COM_SUBSYSTEM
168 0x73010005 EPS_SUBSYSTEM
169 0x73020001 MISC_TM_STORE
170 0x73020002 OK_TM_STORE
171 0x73020003 NOT_OK_TM_STORE

View File

@ -210,6 +210,7 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
0x27a8;DHI_NoReplyExpected;No description;168;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27a9;DHI_NonOpTemperature;No description;169;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27aa;DHI_CommandNotImplemented;No description;170;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27ab;DHI_NonOpStateOfCharge;No description;171;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27b0;DHI_ChecksumError;No description;176;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27b1;DHI_LengthMissmatch;No description;177;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
0x27b2;DHI_InvalidData;No description;178;DEVICE_HANDLER_IF;fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
@ -322,289 +323,311 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
0x3405;DC_NotActive;No description;5;DEVICE_COMMUNICATION_IF;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
0x3406;DC_TooMuchData;No description;6;DEVICE_COMMUNICATION_IF;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
0x3407;DC_Busy;No description;7;DEVICE_COMMUNICATION_IF;fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
0x3601;CFDP_InvalidTlvType;No description;1;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3602;CFDP_InvalidDirectiveField;No description;2;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3603;CFDP_InvalidPduDatafieldLen;No description;3;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3604;CFDP_InvalidAckDirectiveFields;No description;4;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3605;CFDP_MetadataCantParseOptions;No description;5;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3606;CFDP_NakCantParseOptions;No description;6;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3607;CFDP_FinishedCantParseFsResponses;No description;7;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3608;CFDP_FilestoreRequiresSecondFile;No description;8;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3609;CFDP_FilestoreResponseCantParseFsMessage;No description;9;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x360a;CFDP_InvalidPduFormat;No description;10;CFDP;fsfw/src/fsfw/cfdp/definitions.h
0x3701;TSI_BadTimestamp;No description;1;TIME_STAMPER_IF;fsfw/src/fsfw/timemanager/TimeStampIF.h
0x38a1;SGP4_InvalidEccentricity;No description;161;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38a2;SGP4_InvalidMeanMotion;No description;162;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38a3;SGP4_InvalidPerturbationElements;No description;163;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38a4;SGP4_InvalidSemiLatusRectum;No description;164;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38a5;SGP4_InvalidEpochElements;No description;165;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38a6;SGP4_SatelliteHasDecayed;No description;166;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38b1;SGP4_TleTooOld;No description;177;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x38b2;SGP4_TleNotInitialized;No description;178;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x3901;MUX_NotEnoughResources;No description;1;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3902;MUX_InsufficientMemory;No description;2;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3903;MUX_NoPrivilege;No description;3;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3904;MUX_WrongAttributeSetting;No description;4;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3905;MUX_MutexAlreadyLocked;No description;5;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3906;MUX_MutexNotFound;No description;6;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3907;MUX_MutexMaxLocks;No description;7;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3908;MUX_CurrThreadAlreadyOwnsMutex;No description;8;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3909;MUX_CurrThreadDoesNotOwnMutex;No description;9;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x390a;MUX_MutexTimeout;No description;10;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x390b;MUX_MutexInvalidId;No description;11;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x390c;MUX_MutexDestroyedWhileWaiting;No description;12;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a01;MQI_Empty;No description;1;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3a02;MQI_Full;No space left for more messages;2;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3a03;MQI_NoReplyPartner;Returned if a reply method was called without partner;3;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3a04;MQI_DestinationInvalid;Returned if the target destination is invalid.;4;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3b00;SPH_ConnBroken;No description;0;SEMAPHORE_IF;fsfw/src/fsfw/osal/common/TcpTmTcServer.h
0x3b01;SPH_SemaphoreTimeout;No description;1;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3b02;SPH_SemaphoreNotOwned;No description;2;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3b03;SPH_SemaphoreInvalid;No description;3;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3c00;LPIF_PoolEntryNotFound;No description;0;LOCAL_POOL_OWNER_IF;fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
0x3c01;LPIF_PoolEntryTypeConflict;No description;1;LOCAL_POOL_OWNER_IF;fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
0x3da0;PVA_InvalidReadWriteMode;No description;160;POOL_VARIABLE_IF;fsfw/src/fsfw/datapool/PoolVariableIF.h
0x3da1;PVA_InvalidPoolEntry;No description;161;POOL_VARIABLE_IF;fsfw/src/fsfw/datapool/PoolVariableIF.h
0x3e00;HKM_QueueOrDestinationInvalid;No description;0;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3e01;HKM_WrongHkPacketType;No description;1;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3e02;HKM_ReportingStatusUnchanged;No description;2;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3e03;HKM_PeriodicHelperInvalid;No description;3;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3e04;HKM_PoolobjectNotFound;No description;4;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3e05;HKM_DatasetNotFound;No description;5;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f01;DLEE_StreamTooShort;No description;1;DLE_ENCODER;fsfw/src/fsfw/globalfunctions/DleEncoder.h
0x3f02;DLEE_DecodingError;No description;2;DLE_ENCODER;fsfw/src/fsfw/globalfunctions/DleEncoder.h
0x4201;PUS11_InvalidTypeTimeWindow;No description;1;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4202;PUS11_InvalidTimeWindow;No description;2;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4203;PUS11_TimeshiftingNotPossible;No description;3;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4204;PUS11_InvalidRelativeTime;No description;4;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4205;PUS11_ContainedTcTooSmall;No description;5;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4206;PUS11_ContainedTcCrcMissmatch;No description;6;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4300;FILS_GenericFileError;No description;0;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4301;FILS_GenericDirError;No description;1;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4302;FILS_FilesystemInactive;No description;2;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4303;FILS_GenericRenameError;No description;3;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4304;FILS_IsBusy;No description;4;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4305;FILS_InvalidParameters;No description;5;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x430a;FILS_FileDoesNotExist;No description;10;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x430b;FILS_FileAlreadyExists;No description;11;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x430c;FILS_NotAFile;No description;12;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x430d;FILS_FileLocked;No description;13;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x430e;FILS_PermissionDenied;No description;14;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4315;FILS_DirectoryDoesNotExist;No description;21;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4316;FILS_DirectoryAlreadyExists;No description;22;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4317;FILS_NotADirectory;No description;23;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4318;FILS_DirectoryNotEmpty;No description;24;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x431e;FILS_SequencePacketMissingWrite;No description;30;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x431f;FILS_SequencePacketMissingRead;No description;31;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4400;UXOS_ExecutionFinished;Execution of the current command has finished;0;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4401;UXOS_CommandPending;Command is pending. This will also be returned if the user tries to load another command but a command is still pending;1;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4402;UXOS_BytesRead;Some bytes have been read from the executing process;2;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4403;UXOS_CommandError;Command execution failed;3;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4404;UXOS_NoCommandLoadedOrPending;;4;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4406;UXOS_PcloseCallError;No description;6;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4500;HSPI_OpeningFileFailed;No description;0;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4501;HSPI_FullDuplexTransferFailed;No description;1;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4502;HSPI_HalfDuplexTransferFailed;No description;2;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4503;HSPI_Timeout;No description;3;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4504;HSPI_Busy;No description;4;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4505;HSPI_GenericError;No description;5;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4601;HURT_UartReadFailure;No description;1;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4602;HURT_UartReadSizeMissmatch;No description;2;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4603;HURT_UartRxBufferTooSmall;No description;3;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4801;HGIO_UnknownGpioId;No description;1;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4802;HGIO_DriveGpioFailure;No description;2;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4803;HGIO_GpioTypeFailure;No description;3;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4804;HGIO_GpioInvalidInstance;No description;4;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4805;HGIO_GpioDuplicateDetected;No description;5;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4806;HGIO_GpioInitFailed;No description;6;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4807;HGIO_GpioGetValueFailed;No description;7;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4c00;SPPA_NoPacketFound;No description;0;SPACE_PACKET_PARSER;fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
0x4c01;SPPA_SplitPacket;No description;1;SPACE_PACKET_PARSER;fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
0x4fa1;HEATER_CommandNotSupported;No description;161;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x4fa2;HEATER_InitFailed;No description;162;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x4fa3;HEATER_InvalidSwitchNr;No description;163;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x4fa4;HEATER_MainSwitchSetTimeout;No description;164;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x4fa5;HEATER_CommandAlreadyWaiting;No description;165;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x50a0;SYRLINKS_CrcFailure;No description;160;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a1;SYRLINKS_UartFraminOrParityErrorAck;No description;161;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a2;SYRLINKS_BadCharacterAck;No description;162;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a3;SYRLINKS_BadParameterValueAck;No description;163;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a4;SYRLINKS_BadEndOfFrameAck;No description;164;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a5;SYRLINKS_UnknownCommandIdAck;No description;165;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a6;SYRLINKS_BadCrcAck;No description;166;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a7;SYRLINKS_ReplyWrongSize;No description;167;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x50a8;SYRLINKS_MissingStartFrameCharacter;No description;168;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x5100;IMTQ_InvalidCommandCode;No description;0;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5101;IMTQ_MgmMeasurementLowLevelError;No description;1;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5102;IMTQ_ActuateCmdLowLevelError;No description;2;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5103;IMTQ_ParameterMissing;No description;3;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5104;IMTQ_ParameterInvalid;No description;4;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5105;IMTQ_CcUnavailable;No description;5;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5106;IMTQ_InternalProcessingError;No description;6;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5107;IMTQ_RejectedWithoutReason;No description;7;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5108;IMTQ_CmdErrUnknown;No description;8;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5109;IMTQ_StartupCfgError;No description;9;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x510a;IMTQ_UnexpectedSelfTestReply;The status reply to a self test command was received but no self test command has been sent. This should normally never happen.;10;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x52b0;RWHA_SpiWriteFailure;No description;176;RW_HANDLER;mission/acs/rwHelpers.h
0x52b1;RWHA_SpiReadFailure;Used by the spi send function to tell a failing read call;177;RW_HANDLER;mission/acs/rwHelpers.h
0x52b2;RWHA_MissingStartSign;Can be used by the HDLC decoding mechanism to inform about a missing start sign 0x7E;178;RW_HANDLER;mission/acs/rwHelpers.h
0x52b3;RWHA_InvalidSubstitute;Can be used by the HDLC decoding mechanism to inform about an invalid substitution combination;179;RW_HANDLER;mission/acs/rwHelpers.h
0x52b4;RWHA_MissingEndSign;HDLC decoding mechanism never receives the end sign 0x7E;180;RW_HANDLER;mission/acs/rwHelpers.h
0x52b5;RWHA_NoReply;Reaction wheel only responds with empty frames.;181;RW_HANDLER;mission/acs/rwHelpers.h
0x52b6;RWHA_NoStartMarker;Expected a start marker as first byte;182;RW_HANDLER;mission/acs/rwHelpers.h
0x52b7;RWHA_SpiReadTimeout;Timeout when reading reply;183;RW_HANDLER;mission/acs/rwHelpers.h
0x53a0;STRH_TemperatureReqFailed;Status in temperature reply signals error;160;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a1;STRH_PingFailed;Ping command failed;161;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a2;STRH_VersionReqFailed;Status in version reply signals error;162;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a3;STRH_InterfaceReqFailed;Status in interface reply signals error;163;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a4;STRH_PowerReqFailed;Status in power reply signals error;164;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a5;STRH_SetParamFailed;Status of reply to parameter set command signals error;165;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a6;STRH_ActionFailed;Status of reply to action command signals error;166;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a7;STRH_FilePathTooLong;Received invalid path string. Exceeds allowed length;167;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a8;STRH_FilenameTooLong;Name of file received with command is too long;168;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53a9;STRH_InvalidProgram;Received version reply with invalid program ID;169;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53aa;STRH_ReplyError;Status field reply signals error;170;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53ab;STRH_CommandTooShort;Received command which is too short (some data is missing for proper execution);171;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53ac;STRH_InvalidLength;Received command with invalid length (too few or too many parameters);172;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53ad;STRH_RegionMismatch;Region mismatch between send and received data;173;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53ae;STRH_AddressMismatch;Address mismatch between send and received data;174;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53af;STRH_LengthMismatch;Length field mismatch between send and received data;175;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b0;STRH_FileNotExists;Specified file does not exist;176;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b1;STRH_InvalidType;Download blob pixel command has invalid type field;177;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b2;STRH_InvalidId;Received FPGA action command with invalid ID;178;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b3;STRH_ReplyTooShort;Received reply is too short;179;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b4;STRH_CrcFailure;Received reply with invalid CRC;180;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b5;STRH_StrHelperExecuting;Star tracker handler currently executing a command and using the communication interface;181;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b6;STRH_StartrackerAlreadyBooted;Star tracker is already in firmware mode;182;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b7;STRH_StartrackerNotRunningFirmware;Star tracker must be in firmware mode to run this command;183;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x53b8;STRH_StartrackerNotRunningBootloader;Star tracker must be in bootloader mode to run this command;184;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54e0;DWLPWRON_InvalidMode;Received command has invalid JESD mode (valid modes are 0 - 5);224;DWLPWRON_CMD;linux/payload/plocMpsocHelpers.h
0x54e1;DWLPWRON_InvalidLaneRate;Received command has invalid lane rate (valid lane rate are 0 - 9);225;DWLPWRON_CMD;linux/payload/plocMpsocHelpers.h
0x5700;PLSPVhLP_RequestDone;No description;0;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x5701;PLSPVhLP_NoPacketFound;No description;1;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x5702;PLSPVhLP_DecodeBufTooSmall;No description;2;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x5703;PLSPVhLP_PossiblePacketLossConsecutiveStart;No description;3;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x5704;PLSPVhLP_PossiblePacketLossConsecutiveEnd;No description;4;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x5705;PLSPVhLP_HdlcError;No description;5;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x57a0;PLSPVhLP_FileClosedAccidentally;File accidentally close;160;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x57a1;PLSPVhLP_ProcessTerminated;Process has been terminated by command;161;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x57a2;PLSPVhLP_PathNotExists;Received command with invalid pathname;162;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x57a3;PLSPVhLP_EventBufferReplyInvalidApid;Expected event buffer TM but received space packet with other APID;163;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x58a0;SUSS_InvalidSpeed;Action Message with invalid speed was received. Valid speeds must be in the range of [-65000, 1000] or [1000, 65000];160;SUS_HANDLER;mission/acs/RwHandler.h
0x58a1;SUSS_InvalidRampTime;Action Message with invalid ramp time was received.;161;SUS_HANDLER;mission/acs/RwHandler.h
0x58a2;SUSS_SetSpeedCommandInvalidLength;Received set speed command has invalid length. Should be 6.;162;SUS_HANDLER;mission/acs/RwHandler.h
0x58a3;SUSS_ExecutionFailed;Command execution failed;163;SUS_HANDLER;mission/acs/RwHandler.h
0x58a4;SUSS_CrcError;Reaction wheel reply has invalid crc;164;SUS_HANDLER;mission/acs/RwHandler.h
0x58a5;SUSS_ValueNotRead;No description;165;SUS_HANDLER;mission/acs/RwHandler.h
0x59a0;IPCI_PapbBusy;No description;160;CCSDS_IP_CORE_BRIDGE;linux/ipcore/PapbVcInterface.h
0x5aa0;PTME_UnknownVcId;No description;160;PTME;linux/ipcore/Ptme.h
0x5c01;STRHLP_SdNotMounted;SD card specified in path string not mounted;1;STR_HELPER;linux/acs/StrComHandler.h
0x5c02;STRHLP_FileNotExists;Specified file does not exist on filesystem;2;STR_HELPER;linux/acs/StrComHandler.h
0x5c03;STRHLP_PathNotExists;Specified path does not exist;3;STR_HELPER;linux/acs/StrComHandler.h
0x5c04;STRHLP_FileCreationFailed;Failed to create download image or read flash file;4;STR_HELPER;linux/acs/StrComHandler.h
0x5c05;STRHLP_RegionMismatch;Region in flash write/read reply does not match expected region;5;STR_HELPER;linux/acs/StrComHandler.h
0x5c06;STRHLP_AddressMismatch;Address in flash write/read reply does not match expected address;6;STR_HELPER;linux/acs/StrComHandler.h
0x5c07;STRHLP_LengthMismatch;Length in flash write/read reply does not match expected length;7;STR_HELPER;linux/acs/StrComHandler.h
0x5c08;STRHLP_StatusError;Status field in reply signals error;8;STR_HELPER;linux/acs/StrComHandler.h
0x5c09;STRHLP_InvalidTypeId;Reply has invalid type ID (should be of action reply type);9;STR_HELPER;linux/acs/StrComHandler.h
0x5c0a;STRHLP_ReceptionTimeout;No description;10;STR_HELPER;linux/acs/StrComHandler.h
0x5c0b;STRHLP_DecodingError;No description;11;STR_HELPER;linux/acs/StrComHandler.h
0x5d00;GOMS_PacketTooLong;No description;0;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5d01;GOMS_InvalidTableId;No description;1;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5d02;GOMS_InvalidAddress;No description;2;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5d03;GOMS_InvalidParamSize;No description;3;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5d04;GOMS_InvalidPayloadSize;No description;4;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5d05;GOMS_UnknownReplyId;No description;5;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5ea0;PLMEMDUMP_MramAddressTooHigh;The capacity of the MRAM amounts to 512 kB. Thus the maximum address must not be higher than 0x7d000.;160;PLOC_MEMORY_DUMPER;linux/payload/PlocMemoryDumper.h
0x5ea1;PLMEMDUMP_MramInvalidAddressCombination;The specified end address is lower than the start address;161;PLOC_MEMORY_DUMPER;linux/payload/PlocMemoryDumper.h
0x5fa0;PDEC_AbandonedCltuRetval;No description;160;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fa1;PDEC_FrameDirtyRetval;No description;161;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fa2;PDEC_FrameIllegalMultipleReasons;No description;162;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fa3;PDEC_AdDiscardedLockoutRetval;No description;163;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fa4;PDEC_AdDiscardedWaitRetval;No description;164;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fa5;PDEC_AdDiscardedNsVs;No description;165;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fa6;PDEC_NoReportRetval;No description;166;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fa7;PDEC_ErrorVersionNumberRetval;No description;167;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fa8;PDEC_IllegalCombinationRetval;No description;168;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fa9;PDEC_InvalidScIdRetval;No description;169;PDEC_HANDLER;linux/ipcore/pdec.h
0x5faa;PDEC_InvalidVcIdMsbRetval;No description;170;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fab;PDEC_InvalidVcIdLsbRetval;No description;171;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fac;PDEC_NsNotZeroRetval;No description;172;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fae;PDEC_InvalidBcCc;No description;174;PDEC_HANDLER;linux/ipcore/pdec.h
0x5fb0;PDEC_CommandNotImplemented;Received action message with unknown action id;176;PDEC_HANDLER;linux/ipcore/pdec.h
0x60a0;CCSDS_CommandNotImplemented;Received action message with unknown action id;160;CCSDS_HANDLER;mission/com/CcsdsIpCoreHandler.h
0x61a0;RS_RateNotSupported;The commanded rate is not supported by the current FPGA design;160;RATE_SETTER;linux/ipcore/PtmeConfig.h
0x61a1;RS_BadBitRate;Bad bitrate has been commanded (e.g. 0);161;RATE_SETTER;linux/ipcore/PtmeConfig.h
0x61a2;RS_ClkInversionFailed;Failed to invert clock and thus change the time the data is updated with respect to the tx clock;162;RATE_SETTER;linux/ipcore/PtmeConfig.h
0x61a3;RS_TxManipulatorConfigFailed;Failed to change configuration bit of tx clock manipulator;163;RATE_SETTER;linux/ipcore/PtmeConfig.h
0x6201;JSONBASE_JsonFileNotExists;Specified json file does not exist;1;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x6202;JSONBASE_SetNotExists;Requested set does not exist in json file;2;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x6203;JSONBASE_ParamNotExists;Requested parameter does not exist in json file;3;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x63a0;NVMB_KeyNotExists;Specified key does not exist in json file;160;NVM_PARAM_BASE;mission/memory/NvmParameterBase.h
0x64a0;FSHLP_SdNotMounted;SD card specified with path string not mounted;160;FILE_SYSTEM_HELPER;bsp_q7s/fs/FilesystemHelper.h
0x64a1;FSHLP_FileNotExists;Specified file does not exist on filesystem;161;FILE_SYSTEM_HELPER;bsp_q7s/fs/FilesystemHelper.h
0x65a0;PLMPHLP_FileWriteError;File error occured for file transfers from OBC to the MPSoC.;160;PLOC_MPSOC_HELPER;linux/payload/PlocMpsocSpecialComHelper.h
0x65a1;PLMPHLP_FileReadError;File error occured for file transfers from MPSoC to OBC.;161;PLOC_MPSOC_HELPER;linux/payload/PlocMpsocSpecialComHelper.h
0x66a0;SADPL_CommandNotSupported;No description;160;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x66a1;SADPL_DeploymentAlreadyExecuting;No description;161;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x66a2;SADPL_MainSwitchTimeoutFailure;No description;162;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x66a3;SADPL_SwitchingDeplSa1Failed;No description;163;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x66a4;SADPL_SwitchingDeplSa2Failed;No description;164;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x67a0;MPSOCRTVIF_CrcFailure;Space Packet received from PLOC has invalid CRC;160;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
0x67a1;MPSOCRTVIF_ReceivedAckFailure;Received ACK failure reply from PLOC;161;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
0x67a2;MPSOCRTVIF_ReceivedExeFailure;Received execution failure reply from PLOC;162;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
0x67a3;MPSOCRTVIF_InvalidApid;Received space packet with invalid APID from PLOC;163;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
0x67a4;MPSOCRTVIF_InvalidLength;Received command with invalid length;164;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
0x67a5;MPSOCRTVIF_FilenameTooLong;Filename of file in OBC filesystem is too long;165;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
0x67a6;MPSOCRTVIF_MpsocHelperExecuting;MPSoC helper is currently executing a command;166;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
0x67a7;MPSOCRTVIF_MpsocFilenameTooLong;Filename of MPSoC file is to long (max. 256 bytes);167;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
0x67a8;MPSOCRTVIF_InvalidParameter;Command has invalid parameter;168;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
0x67a9;MPSOCRTVIF_NameTooLong;Received command has file string with invalid length;169;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
0x68a0;SPVRTVIF_CrcFailure;Space Packet received from PLOC supervisor has invalid CRC;160;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68a1;SPVRTVIF_InvalidServiceId;No description;161;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68a2;SPVRTVIF_ReceivedAckFailure;Received ACK failure reply from PLOC supervisor;162;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68a3;SPVRTVIF_ReceivedExeFailure;Received execution failure reply from PLOC supervisor;163;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68a4;SPVRTVIF_InvalidApid;Received space packet with invalid APID from PLOC supervisor;164;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68a5;SPVRTVIF_GetTimeFailure;Failed to read current system time;165;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68a6;SPVRTVIF_InvalidWatchdog;Received command with invalid watchdog parameter. Valid watchdogs are 0 for PS, 1 for PL and 2 for INT;166;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68a7;SPVRTVIF_InvalidWatchdogTimeout;Received watchdog timeout config command with invalid timeout. Valid timeouts must be in the range between 1000 and 360000 ms.;167;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68a8;SPVRTVIF_InvalidLatchupId;Received latchup config command with invalid latchup ID;168;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68a9;SPVRTVIF_SweepPeriodTooSmall;Received set adc sweep period command with invalid sweep period. Must be larger than 21.;169;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68aa;SPVRTVIF_InvalidTestParam;Receive auto EM test command with invalid test param. Valid params are 1 and 2.;170;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68ab;SPVRTVIF_MramPacketParsingFailure;Returned when scanning for MRAM dump packets failed.;171;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68ac;SPVRTVIF_InvalidMramAddresses;Returned when the start and stop addresses of the MRAM dump or MRAM wipe commands are invalid (e.g. start address bigger than stop address);172;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68ad;SPVRTVIF_NoMramPacket;Expect reception of an MRAM dump packet but received space packet with other apid.;173;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68ae;SPVRTVIF_PathDoesNotExist;Path to PLOC directory on SD card does not exist;174;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68af;SPVRTVIF_MramFileNotExists;MRAM dump file does not exists. The file should actually already have been created with the reception of the first dump packet.;175;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68b0;SPVRTVIF_InvalidReplyLength;No description;176;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68b1;SPVRTVIF_InvalidLength;Received action command has invalid length;177;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68b2;SPVRTVIF_FilenameTooLong;Filename too long;178;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68b3;SPVRTVIF_UpdateStatusReportInvalidLength;Received update status report with invalid packet length field;179;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68b4;SPVRTVIF_UpdateCrcFailure;Update status report does not contain expected CRC. There might be a bit flip in the update memory region.;180;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68b5;SPVRTVIF_SupvHelperExecuting;Supervisor helper task ist currently executing a command (wait until helper tas has finished or interrupt by sending the terminate command);181;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68c0;SPVRTVIF_BufTooSmall;No description;192;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x68c1;SPVRTVIF_NoReplyTimeout;No description;193;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x6900;ACSCTRL_FileDeletionFailed;File deletion failed and at least one file is still existent.;0;ACS_CTRL;mission/controller/AcsController.h
0x6a02;ACSMEKF_MekfUninitialized;No description;2;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a03;ACSMEKF_MekfNoGyrData;No description;3;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a04;ACSMEKF_MekfNoModelVectors;No description;4;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a05;ACSMEKF_MekfNoSusMgmStrData;No description;5;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a06;ACSMEKF_MekfCovarianceInversionFailed;No description;6;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a07;ACSMEKF_MekfNotFinite;No description;7;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a08;ACSMEKF_MekfInitialized;No description;8;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6a09;ACSMEKF_MekfRunning;No description;9;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b00;SDMA_OpOngoing;No description;0;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6b01;SDMA_AlreadyOn;No description;1;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6b02;SDMA_AlreadyMounted;No description;2;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6b03;SDMA_AlreadyOff;No description;3;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6b0a;SDMA_StatusFileNexists;No description;10;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6b0b;SDMA_StatusFileFormatInvalid;No description;11;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6b0c;SDMA_MountError;No description;12;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6b0d;SDMA_UnmountError;No description;13;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6b0e;SDMA_SystemCallError;No description;14;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6b0f;SDMA_PopenCallError;No description;15;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6c00;LPH_SdNotReady;No description;0;LOCAL_PARAM_HANDLER;bsp_q7s/memory/LocalParameterHandler.h
0x6d00;PTM_DumpDone;No description;0;PERSISTENT_TM_STORE;mission/tmtc/PersistentTmStore.h
0x6d01;PTM_BusyDumping;No description;1;PERSISTENT_TM_STORE;mission/tmtc/PersistentTmStore.h
0x6e00;TMS_IsBusy;No description;0;TM_SINK;mission/tmtc/DirectTmSinkIF.h
0x7000;SCBU_KeyNotFound;No description;0;SCRATCH_BUFFER;bsp_q7s/memory/scratchApi.h
0x3601;CFDP_InvalidTlvType;No description;1;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3602;CFDP_InvalidDirectiveField;No description;2;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3603;CFDP_InvalidPduDatafieldLen;No description;3;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3604;CFDP_InvalidAckDirectiveFields;No description;4;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3605;CFDP_MetadataCantParseOptions;No description;5;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3606;CFDP_NakCantParseOptions;No description;6;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3607;CFDP_FinishedCantParseFsResponses;No description;7;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3608;CFDP_FilestoreRequiresSecondFile;No description;8;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3609;CFDP_FilestoreResponseCantParseFsMessage;No description;9;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x360a;CFDP_InvalidPduFormat;No description;10;CFDP_BASE;fsfw/src/fsfw/cfdp/definitions.h
0x3700;CFDP_SourceTransactionPending;No description;0;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3701;CFDP_FileDoesNotExist;No description;1;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3702;CFDP_FileSegmentLenInvalid;No description;2;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3703;CFDP_SourceNameEmpty;No description;3;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3704;CFDP_DestNameEmpty;No description;4;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3705;CFDP_WrongRemoteCfgEntityId;No description;5;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3706;CFDP_TargetMsgQueueFull;No description;6;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3707;CFDP_TmStoreFull;No description;7;CFDP_HANDLER;fsfw/src/fsfw/cfdp/handler/defs.h
0x3801;TSI_BadTimestamp;No description;1;TIME_STAMPER_IF;fsfw/src/fsfw/timemanager/TimeStampIF.h
0x39a1;SGP4_InvalidEccentricity;No description;161;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39a2;SGP4_InvalidMeanMotion;No description;162;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39a3;SGP4_InvalidPerturbationElements;No description;163;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39a4;SGP4_InvalidSemiLatusRectum;No description;164;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39a5;SGP4_InvalidEpochElements;No description;165;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39a6;SGP4_SatelliteHasDecayed;No description;166;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39b1;SGP4_TleTooOld;No description;177;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x39b2;SGP4_TleNotInitialized;No description;178;SGP4PROPAGATOR_CLASS;fsfw/src/fsfw/coordinates/Sgp4Propagator.h
0x3a01;MUX_NotEnoughResources;No description;1;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a02;MUX_InsufficientMemory;No description;2;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a03;MUX_NoPrivilege;No description;3;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a04;MUX_WrongAttributeSetting;No description;4;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a05;MUX_MutexAlreadyLocked;No description;5;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a06;MUX_MutexNotFound;No description;6;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a07;MUX_MutexMaxLocks;No description;7;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a08;MUX_CurrThreadAlreadyOwnsMutex;No description;8;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a09;MUX_CurrThreadDoesNotOwnMutex;No description;9;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a0a;MUX_MutexTimeout;No description;10;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a0b;MUX_MutexInvalidId;No description;11;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3a0c;MUX_MutexDestroyedWhileWaiting;No description;12;MUTEX_IF;fsfw/src/fsfw/ipc/MutexIF.h
0x3b01;MQI_Empty;No description;1;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3b02;MQI_Full;No space left for more messages;2;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3b03;MQI_NoReplyPartner;Returned if a reply method was called without partner;3;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3b04;MQI_DestinationInvalid;Returned if the target destination is invalid.;4;MESSAGE_QUEUE_IF;fsfw/src/fsfw/ipc/MessageQueueIF.h
0x3c01;SPH_SemaphoreTimeout;No description;1;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3c02;SPH_SemaphoreNotOwned;No description;2;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3c03;SPH_SemaphoreInvalid;No description;3;SEMAPHORE_IF;fsfw/src/fsfw/tasks/SemaphoreIF.h
0x3d00;LPIF_PoolEntryNotFound;No description;0;LOCAL_POOL_OWNER_IF;fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
0x3d01;LPIF_PoolEntryTypeConflict;No description;1;LOCAL_POOL_OWNER_IF;fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
0x3ea0;PVA_InvalidReadWriteMode;No description;160;POOL_VARIABLE_IF;fsfw/src/fsfw/datapool/PoolVariableIF.h
0x3ea1;PVA_InvalidPoolEntry;No description;161;POOL_VARIABLE_IF;fsfw/src/fsfw/datapool/PoolVariableIF.h
0x3f00;HKM_QueueOrDestinationInvalid;No description;0;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f01;HKM_WrongHkPacketType;No description;1;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f02;HKM_ReportingStatusUnchanged;No description;2;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f03;HKM_PeriodicHelperInvalid;No description;3;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f04;HKM_PoolobjectNotFound;No description;4;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x3f05;HKM_DatasetNotFound;No description;5;HOUSEKEEPING_MANAGER;fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
0x4001;DLEE_StreamTooShort;No description;1;DLE_ENCODER;fsfw/src/fsfw/globalfunctions/DleEncoder.h
0x4002;DLEE_DecodingError;No description;2;DLE_ENCODER;fsfw/src/fsfw/globalfunctions/DleEncoder.h
0x4301;PUS11_InvalidTypeTimeWindow;No description;1;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4302;PUS11_InvalidTimeWindow;No description;2;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4303;PUS11_TimeshiftingNotPossible;No description;3;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4304;PUS11_InvalidRelativeTime;No description;4;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4305;PUS11_ContainedTcTooSmall;No description;5;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4306;PUS11_ContainedTcCrcMissmatch;No description;6;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4307;PUS11_MapIsFull;No description;7;PUS_SERVICE_11;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
0x4400;FILS_GenericFileError;No description;0;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4401;FILS_GenericDirError;No description;1;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4402;FILS_FilesystemInactive;No description;2;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4403;FILS_GenericRenameError;No description;3;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4404;FILS_IsBusy;No description;4;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4405;FILS_InvalidParameters;No description;5;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x440a;FILS_FileDoesNotExist;No description;10;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x440b;FILS_FileAlreadyExists;No description;11;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x440c;FILS_NotAFile;No description;12;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x440d;FILS_FileLocked;No description;13;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x440e;FILS_PermissionDenied;No description;14;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4415;FILS_DirectoryDoesNotExist;No description;21;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4416;FILS_DirectoryAlreadyExists;No description;22;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4417;FILS_NotADirectory;No description;23;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4418;FILS_DirectoryNotEmpty;No description;24;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x441e;FILS_SequencePacketMissingWrite;No description;30;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x441f;FILS_SequencePacketMissingRead;No description;31;FILE_SYSTEM;fsfw/src/fsfw/filesystem/HasFileSystemIF.h
0x4500;UXOS_ExecutionFinished;Execution of the current command has finished;0;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4501;UXOS_CommandPending;Command is pending. This will also be returned if the user tries to load another command but a command is still pending;1;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4502;UXOS_BytesRead;Some bytes have been read from the executing process;2;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4503;UXOS_CommandError;Command execution failed;3;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4504;UXOS_NoCommandLoadedOrPending;;4;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4506;UXOS_PcloseCallError;No description;6;LINUX_OSAL;fsfw/src/fsfw_hal/linux/CommandExecutor.h
0x4600;HSPI_OpeningFileFailed;No description;0;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4601;HSPI_FullDuplexTransferFailed;No description;1;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4602;HSPI_HalfDuplexTransferFailed;No description;2;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4603;HSPI_Timeout;No description;3;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4604;HSPI_Busy;No description;4;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4605;HSPI_GenericError;No description;5;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
0x4701;HURT_UartReadFailure;No description;1;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4702;HURT_UartReadSizeMissmatch;No description;2;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4703;HURT_UartRxBufferTooSmall;No description;3;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
0x4901;HGIO_UnknownGpioId;No description;1;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4902;HGIO_DriveGpioFailure;No description;2;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4903;HGIO_GpioTypeFailure;No description;3;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4904;HGIO_GpioInvalidInstance;No description;4;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4905;HGIO_GpioDuplicateDetected;No description;5;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4906;HGIO_GpioInitFailed;No description;6;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4907;HGIO_GpioGetValueFailed;No description;7;HAL_GPIO;fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
0x4d00;SPPA_NoPacketFound;No description;0;SPACE_PACKET_PARSER;fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
0x4d01;SPPA_SplitPacket;No description;1;SPACE_PACKET_PARSER;fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
0x50a1;HEATER_CommandNotSupported;No description;161;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x50a2;HEATER_InitFailed;No description;162;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x50a3;HEATER_InvalidSwitchNr;No description;163;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x50a4;HEATER_MainSwitchSetTimeout;No description;164;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x50a5;HEATER_CommandAlreadyWaiting;No description;165;HEATER_HANDLER;mission/tcs/HeaterHandler.h
0x51a0;SYRLINKS_CrcFailure;No description;160;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a1;SYRLINKS_UartFraminOrParityErrorAck;No description;161;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a2;SYRLINKS_BadCharacterAck;No description;162;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a3;SYRLINKS_BadParameterValueAck;No description;163;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a4;SYRLINKS_BadEndOfFrameAck;No description;164;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a5;SYRLINKS_UnknownCommandIdAck;No description;165;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a6;SYRLINKS_BadCrcAck;No description;166;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a7;SYRLINKS_ReplyWrongSize;No description;167;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x51a8;SYRLINKS_MissingStartFrameCharacter;No description;168;SYRLINKS_HANDLER;mission/com/SyrlinksHandler.h
0x5200;IMTQ_InvalidCommandCode;No description;0;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5201;IMTQ_MgmMeasurementLowLevelError;No description;1;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5202;IMTQ_ActuateCmdLowLevelError;No description;2;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5203;IMTQ_ParameterMissing;No description;3;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5204;IMTQ_ParameterInvalid;No description;4;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5205;IMTQ_CcUnavailable;No description;5;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5206;IMTQ_InternalProcessingError;No description;6;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5207;IMTQ_RejectedWithoutReason;No description;7;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5208;IMTQ_CmdErrUnknown;No description;8;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x5209;IMTQ_StartupCfgError;No description;9;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x520a;IMTQ_UnexpectedSelfTestReply;The status reply to a self test command was received but no self test command has been sent. This should normally never happen.;10;IMTQ_HANDLER;mission/acs/imtqHelpers.h
0x53a0;RWHA_InvalidSpeed;Action Message with invalid speed was received. Valid speeds must be in the range of [-65000, 1000] or [1000, 65000];160;RW_HANDLER;mission/acs/RwHandler.h
0x53a1;RWHA_InvalidRampTime;Action Message with invalid ramp time was received.;161;RW_HANDLER;mission/acs/RwHandler.h
0x53a2;RWHA_SetSpeedCommandInvalidLength;Received set speed command has invalid length. Should be 6.;162;RW_HANDLER;mission/acs/RwHandler.h
0x53a3;RWHA_ExecutionFailed;Command execution failed;163;RW_HANDLER;mission/acs/RwHandler.h
0x53a4;RWHA_CrcError;Reaction wheel reply has invalid crc;164;RW_HANDLER;mission/acs/RwHandler.h
0x53a5;RWHA_ValueNotRead;No description;165;RW_HANDLER;mission/acs/RwHandler.h
0x53b0;RWHA_SpiWriteFailure;No description;176;RW_HANDLER;mission/acs/rwHelpers.h
0x53b1;RWHA_SpiReadFailure;Used by the spi send function to tell a failing read call;177;RW_HANDLER;mission/acs/rwHelpers.h
0x53b2;RWHA_MissingStartSign;Can be used by the HDLC decoding mechanism to inform about a missing start sign 0x7E;178;RW_HANDLER;mission/acs/rwHelpers.h
0x53b3;RWHA_InvalidSubstitute;Can be used by the HDLC decoding mechanism to inform about an invalid substitution combination;179;RW_HANDLER;mission/acs/rwHelpers.h
0x53b4;RWHA_MissingEndSign;HDLC decoding mechanism never receives the end sign 0x7E;180;RW_HANDLER;mission/acs/rwHelpers.h
0x53b5;RWHA_NoReply;Reaction wheel only responds with empty frames.;181;RW_HANDLER;mission/acs/rwHelpers.h
0x53b6;RWHA_NoStartMarker;Expected a start marker as first byte;182;RW_HANDLER;mission/acs/rwHelpers.h
0x53b7;RWHA_SpiReadTimeout;Timeout when reading reply;183;RW_HANDLER;mission/acs/rwHelpers.h
0x54a0;STRH_TemperatureReqFailed;Status in temperature reply signals error;160;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a1;STRH_PingFailed;Ping command failed;161;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a2;STRH_VersionReqFailed;Status in version reply signals error;162;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a3;STRH_InterfaceReqFailed;Status in interface reply signals error;163;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a4;STRH_PowerReqFailed;Status in power reply signals error;164;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a5;STRH_SetParamFailed;Status of reply to parameter set command signals error;165;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a6;STRH_ActionFailed;Status of reply to action command signals error;166;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a7;STRH_FilePathTooLong;Received invalid path string. Exceeds allowed length;167;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a8;STRH_FilenameTooLong;Name of file received with command is too long;168;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54a9;STRH_InvalidProgram;Received version reply with invalid program ID;169;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54aa;STRH_ReplyError;Status field reply signals error;170;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54ab;STRH_CommandTooShort;Received command which is too short (some data is missing for proper execution);171;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54ac;STRH_InvalidLength;Received command with invalid length (too few or too many parameters);172;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54ad;STRH_RegionMismatch;Region mismatch between send and received data;173;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54ae;STRH_AddressMismatch;Address mismatch between send and received data;174;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54af;STRH_LengthMismatch;Length field mismatch between send and received data;175;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b0;STRH_FileNotExists;Specified file does not exist;176;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b1;STRH_InvalidType;Download blob pixel command has invalid type field;177;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b2;STRH_InvalidId;Received FPGA action command with invalid ID;178;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b3;STRH_ReplyTooShort;Received reply is too short;179;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b4;STRH_CrcFailure;Received reply with invalid CRC;180;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b5;STRH_StrHelperExecuting;Star tracker handler currently executing a command and using the communication interface;181;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b6;STRH_StartrackerAlreadyBooted;Star tracker is already in firmware mode;182;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b7;STRH_StartrackerNotRunningFirmware;Star tracker must be in firmware mode to run this command;183;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x54b8;STRH_StartrackerNotRunningBootloader;Star tracker must be in bootloader mode to run this command;184;STR_HANDLER;mission/acs/str/StarTrackerHandler.h
0x55e0;DWLPWRON_InvalidMode;Received command has invalid JESD mode (valid modes are 0 - 5);224;DWLPWRON_CMD;linux/payload/plocMpsocHelpers.h
0x55e1;DWLPWRON_InvalidLaneRate;Received command has invalid lane rate (valid lane rate are 0 - 9);225;DWLPWRON_CMD;linux/payload/plocMpsocHelpers.h
0x5800;PLSPVhLP_RequestDone;No description;0;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x5801;PLSPVhLP_NoPacketFound;No description;1;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x5802;PLSPVhLP_DecodeBufTooSmall;No description;2;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x5803;PLSPVhLP_PossiblePacketLossConsecutiveStart;No description;3;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x5804;PLSPVhLP_PossiblePacketLossConsecutiveEnd;No description;4;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x5805;PLSPVhLP_HdlcError;No description;5;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x58a0;PLSPVhLP_FileClosedAccidentally;File accidentally close;160;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x58a1;PLSPVhLP_ProcessTerminated;Process has been terminated by command;161;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x58a2;PLSPVhLP_PathNotExists;Received command with invalid pathname;162;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x58a3;PLSPVhLP_EventBufferReplyInvalidApid;Expected event buffer TM but received space packet with other APID;163;PLOC_SUPV_HELPER;linux/payload/PlocSupvUartMan.h
0x59a0;SUSS_ErrorUnlockMutex;No description;160;SUS_HANDLER;mission/acs/archive/LegacySusHandler.h
0x59a1;SUSS_ErrorLockMutex;No description;161;SUS_HANDLER;mission/acs/archive/LegacySusHandler.h
0x5aa0;IPCI_PapbBusy;No description;160;CCSDS_IP_CORE_BRIDGE;linux/ipcore/PapbVcInterface.h
0x5ba0;PTME_UnknownVcId;No description;160;PTME;linux/ipcore/Ptme.h
0x5d01;STRHLP_SdNotMounted;SD card specified in path string not mounted;1;STR_HELPER;linux/acs/StrComHandler.h
0x5d02;STRHLP_FileNotExists;Specified file does not exist on filesystem;2;STR_HELPER;linux/acs/StrComHandler.h
0x5d03;STRHLP_PathNotExists;Specified path does not exist;3;STR_HELPER;linux/acs/StrComHandler.h
0x5d04;STRHLP_FileCreationFailed;Failed to create download image or read flash file;4;STR_HELPER;linux/acs/StrComHandler.h
0x5d05;STRHLP_RegionMismatch;Region in flash write/read reply does not match expected region;5;STR_HELPER;linux/acs/StrComHandler.h
0x5d06;STRHLP_AddressMismatch;Address in flash write/read reply does not match expected address;6;STR_HELPER;linux/acs/StrComHandler.h
0x5d07;STRHLP_LengthMismatch;Length in flash write/read reply does not match expected length;7;STR_HELPER;linux/acs/StrComHandler.h
0x5d08;STRHLP_StatusError;Status field in reply signals error;8;STR_HELPER;linux/acs/StrComHandler.h
0x5d09;STRHLP_InvalidTypeId;Reply has invalid type ID (should be of action reply type);9;STR_HELPER;linux/acs/StrComHandler.h
0x5d0a;STRHLP_ReceptionTimeout;No description;10;STR_HELPER;linux/acs/StrComHandler.h
0x5d0b;STRHLP_DecodingError;No description;11;STR_HELPER;linux/acs/StrComHandler.h
0x5e00;GOMS_PacketTooLong;No description;0;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5e01;GOMS_InvalidTableId;No description;1;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5e02;GOMS_InvalidAddress;No description;2;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5e03;GOMS_InvalidParamSize;No description;3;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5e04;GOMS_InvalidPayloadSize;No description;4;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5e05;GOMS_UnknownReplyId;No description;5;GOM_SPACE_HANDLER;mission/power/GomspaceDeviceHandler.h
0x5fa0;PLMEMDUMP_MramAddressTooHigh;The capacity of the MRAM amounts to 512 kB. Thus the maximum address must not be higher than 0x7d000.;160;PLOC_MEMORY_DUMPER;linux/payload/PlocMemoryDumper.h
0x5fa1;PLMEMDUMP_MramInvalidAddressCombination;The specified end address is lower than the start address;161;PLOC_MEMORY_DUMPER;linux/payload/PlocMemoryDumper.h
0x60a0;PDEC_AbandonedCltuRetval;No description;160;PDEC_HANDLER;linux/ipcore/pdec.h
0x60a1;PDEC_FrameDirtyRetval;No description;161;PDEC_HANDLER;linux/ipcore/pdec.h
0x60a2;PDEC_FrameIllegalMultipleReasons;No description;162;PDEC_HANDLER;linux/ipcore/pdec.h
0x60a3;PDEC_AdDiscardedLockoutRetval;No description;163;PDEC_HANDLER;linux/ipcore/pdec.h
0x60a4;PDEC_AdDiscardedWaitRetval;No description;164;PDEC_HANDLER;linux/ipcore/pdec.h
0x60a5;PDEC_AdDiscardedNsVs;No description;165;PDEC_HANDLER;linux/ipcore/pdec.h
0x60a6;PDEC_NoReportRetval;No description;166;PDEC_HANDLER;linux/ipcore/pdec.h
0x60a7;PDEC_ErrorVersionNumberRetval;No description;167;PDEC_HANDLER;linux/ipcore/pdec.h
0x60a8;PDEC_IllegalCombinationRetval;No description;168;PDEC_HANDLER;linux/ipcore/pdec.h
0x60a9;PDEC_InvalidScIdRetval;No description;169;PDEC_HANDLER;linux/ipcore/pdec.h
0x60aa;PDEC_InvalidVcIdMsbRetval;No description;170;PDEC_HANDLER;linux/ipcore/pdec.h
0x60ab;PDEC_InvalidVcIdLsbRetval;No description;171;PDEC_HANDLER;linux/ipcore/pdec.h
0x60ac;PDEC_NsNotZeroRetval;No description;172;PDEC_HANDLER;linux/ipcore/pdec.h
0x60ae;PDEC_InvalidBcCc;No description;174;PDEC_HANDLER;linux/ipcore/pdec.h
0x60b0;PDEC_CommandNotImplemented;Received action message with unknown action id;176;PDEC_HANDLER;linux/ipcore/pdec.h
0x61a0;CCSDS_CommandNotImplemented;Received action message with unknown action id;160;CCSDS_HANDLER;mission/com/CcsdsIpCoreHandler.h
0x62a0;RS_RateNotSupported;The commanded rate is not supported by the current FPGA design;160;RATE_SETTER;linux/ipcore/PtmeConfig.h
0x62a1;RS_BadBitRate;Bad bitrate has been commanded (e.g. 0);161;RATE_SETTER;linux/ipcore/PtmeConfig.h
0x62a2;RS_ClkInversionFailed;Failed to invert clock and thus change the time the data is updated with respect to the tx clock;162;RATE_SETTER;linux/ipcore/PtmeConfig.h
0x62a3;RS_TxManipulatorConfigFailed;Failed to change configuration bit of tx clock manipulator;163;RATE_SETTER;linux/ipcore/PtmeConfig.h
0x6301;JSONBASE_JsonFileNotExists;Specified json file does not exist;1;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x6302;JSONBASE_SetNotExists;Requested set does not exist in json file;2;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x6303;JSONBASE_ParamNotExists;Requested parameter does not exist in json file;3;ARCSEC_JSON_BASE;mission/acs/str/ArcsecJsonParamBase.h
0x64a0;NVMB_KeyNotExists;Specified key does not exist in json file;160;NVM_PARAM_BASE;mission/memory/NvmParameterBase.h
0x65a0;FSHLP_SdNotMounted;SD card specified with path string not mounted;160;FILE_SYSTEM_HELPER;bsp_q7s/fs/FilesystemHelper.h
0x65a1;FSHLP_FileNotExists;Specified file does not exist on filesystem;161;FILE_SYSTEM_HELPER;bsp_q7s/fs/FilesystemHelper.h
0x66a0;PLMPHLP_FileWriteError;File error occured for file transfers from OBC to the MPSoC.;160;PLOC_MPSOC_HELPER;linux/payload/PlocMpsocSpecialComHelper.h
0x66a1;PLMPHLP_FileReadError;File error occured for file transfers from MPSoC to OBC.;161;PLOC_MPSOC_HELPER;linux/payload/PlocMpsocSpecialComHelper.h
0x67a0;SADPL_CommandNotSupported;No description;160;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x67a1;SADPL_DeploymentAlreadyExecuting;No description;161;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x67a2;SADPL_MainSwitchTimeoutFailure;No description;162;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x67a3;SADPL_SwitchingDeplSa1Failed;No description;163;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x67a4;SADPL_SwitchingDeplSa2Failed;No description;164;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
0x6810;MPSOCRTVIF_CommandTimeout;Command has timed out.;16;MPSOC_RETURN_VALUES_IF;linux/payload/plocMpsocHelpers.h
0x68a0;MPSOCRTVIF_CrcFailure;Space Packet received from PLOC has invalid CRC;160;MPSOC_RETURN_VALUES_IF;linux/payload/plocMpsocHelpers.h
0x68a1;MPSOCRTVIF_ReceivedAckFailure;Received ACK failure reply from PLOC;161;MPSOC_RETURN_VALUES_IF;linux/payload/plocMpsocHelpers.h
0x68a2;MPSOCRTVIF_ReceivedExeFailure;Received execution failure reply from PLOC;162;MPSOC_RETURN_VALUES_IF;linux/payload/plocMpsocHelpers.h
0x68a3;MPSOCRTVIF_InvalidApid;Received space packet with invalid APID from PLOC;163;MPSOC_RETURN_VALUES_IF;linux/payload/plocMpsocHelpers.h
0x68a4;MPSOCRTVIF_InvalidLength;Received command with invalid length;164;MPSOC_RETURN_VALUES_IF;linux/payload/plocMpsocHelpers.h
0x68a5;MPSOCRTVIF_FilenameTooLong;Filename of file in OBC filesystem is too long;165;MPSOC_RETURN_VALUES_IF;linux/payload/plocMpsocHelpers.h
0x68a6;MPSOCRTVIF_MpsocHelperExecuting;MPSoC helper is currently executing a command;166;MPSOC_RETURN_VALUES_IF;linux/payload/plocMpsocHelpers.h
0x68a7;MPSOCRTVIF_MpsocFilenameTooLong;Filename of MPSoC file is to long (max. 256 bytes);167;MPSOC_RETURN_VALUES_IF;linux/payload/plocMpsocHelpers.h
0x68a8;MPSOCRTVIF_InvalidParameter;Command has invalid parameter;168;MPSOC_RETURN_VALUES_IF;linux/payload/plocMpsocHelpers.h
0x68a9;MPSOCRTVIF_NameTooLong;Received command has file string with invalid length;169;MPSOC_RETURN_VALUES_IF;linux/payload/plocMpsocHelpers.h
0x69a0;SPVRTVIF_CrcFailure;Space Packet received from PLOC supervisor has invalid CRC;160;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69a1;SPVRTVIF_InvalidServiceId;No description;161;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69a2;SPVRTVIF_ReceivedAckFailure;Received ACK failure reply from PLOC supervisor;162;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69a3;SPVRTVIF_ReceivedExeFailure;Received execution failure reply from PLOC supervisor;163;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69a4;SPVRTVIF_InvalidApid;Received space packet with invalid APID from PLOC supervisor;164;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69a5;SPVRTVIF_GetTimeFailure;Failed to read current system time;165;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69a6;SPVRTVIF_InvalidWatchdog;Received command with invalid watchdog parameter. Valid watchdogs are 0 for PS, 1 for PL and 2 for INT;166;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69a7;SPVRTVIF_InvalidWatchdogTimeout;Received watchdog timeout config command with invalid timeout. Valid timeouts must be in the range between 1000 and 360000 ms.;167;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69a8;SPVRTVIF_InvalidLatchupId;Received latchup config command with invalid latchup ID;168;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69a9;SPVRTVIF_SweepPeriodTooSmall;Received set adc sweep period command with invalid sweep period. Must be larger than 21.;169;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69aa;SPVRTVIF_InvalidTestParam;Receive auto EM test command with invalid test param. Valid params are 1 and 2.;170;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69ab;SPVRTVIF_MramPacketParsingFailure;Returned when scanning for MRAM dump packets failed.;171;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69ac;SPVRTVIF_InvalidMramAddresses;Returned when the start and stop addresses of the MRAM dump or MRAM wipe commands are invalid (e.g. start address bigger than stop address);172;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69ad;SPVRTVIF_NoMramPacket;Expect reception of an MRAM dump packet but received space packet with other apid.;173;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69ae;SPVRTVIF_PathDoesNotExist;Path to PLOC directory on SD card does not exist;174;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69af;SPVRTVIF_MramFileNotExists;MRAM dump file does not exists. The file should actually already have been created with the reception of the first dump packet.;175;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69b0;SPVRTVIF_InvalidReplyLength;No description;176;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69b1;SPVRTVIF_InvalidLength;Received action command has invalid length;177;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69b2;SPVRTVIF_FilenameTooLong;Filename too long;178;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69b3;SPVRTVIF_UpdateStatusReportInvalidLength;Received update status report with invalid packet length field;179;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69b4;SPVRTVIF_UpdateCrcFailure;Update status report does not contain expected CRC. There might be a bit flip in the update memory region.;180;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69b5;SPVRTVIF_SupvHelperExecuting;Supervisor helper task ist currently executing a command (wait until helper tas has finished or interrupt by sending the terminate command);181;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69c0;SPVRTVIF_BufTooSmall;No description;192;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x69c1;SPVRTVIF_NoReplyTimeout;No description;193;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
0x6aa0;ACSCTRL_FileDeletionFailed;File deletion failed and at least one file is still existent.;160;ACS_CTRL;mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
0x6aa1;ACSCTRL_WriteFileFailed;Writing the TLE to the file has failed.;161;ACS_CTRL;mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
0x6aa2;ACSCTRL_ReadFileFailed;Reading the TLE to the file has failed.;162;ACS_CTRL;mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
0x6aa3;ACSCTRL_SingleRwUnavailable;A single RW has failed.;163;ACS_CTRL;mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
0x6aa4;ACSCTRL_MultipleRwUnavailable;Multiple RWs have failed.;164;ACS_CTRL;mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
0x6b02;ACSMEKF_MekfUninitialized;No description;2;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b03;ACSMEKF_MekfNoGyrData;No description;3;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b04;ACSMEKF_MekfNoModelVectors;No description;4;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b05;ACSMEKF_MekfNoSusMgmStrData;No description;5;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b06;ACSMEKF_MekfCovarianceInversionFailed;No description;6;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b07;ACSMEKF_MekfNotFinite;No description;7;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b08;ACSMEKF_MekfInitialized;No description;8;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6b09;ACSMEKF_MekfRunning;No description;9;ACS_MEKF;mission/controller/acs/MultiplicativeKalmanFilter.h
0x6c00;SDMA_OpOngoing;No description;0;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6c01;SDMA_AlreadyOn;No description;1;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6c02;SDMA_AlreadyMounted;No description;2;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6c03;SDMA_AlreadyOff;No description;3;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6c0a;SDMA_StatusFileNexists;No description;10;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6c0b;SDMA_StatusFileFormatInvalid;No description;11;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6c0c;SDMA_MountError;No description;12;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6c0d;SDMA_UnmountError;No description;13;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6c0e;SDMA_SystemCallError;No description;14;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6c0f;SDMA_PopenCallError;No description;15;SD_CARD_MANAGER;bsp_q7s/fs/SdCardManager.h
0x6d00;LPH_SdNotReady;No description;0;LOCAL_PARAM_HANDLER;bsp_q7s/memory/LocalParameterHandler.h
0x6e00;PTM_DumpDone;No description;0;PERSISTENT_TM_STORE;mission/tmtc/PersistentTmStore.h
0x6e01;PTM_BusyDumping;No description;1;PERSISTENT_TM_STORE;mission/tmtc/PersistentTmStore.h
0x6f00;TMS_IsBusy;No description;0;TM_SINK;mission/tmtc/DirectTmSinkIF.h
0x6f01;TMS_PartiallyWritten;No description;1;TM_SINK;mission/tmtc/DirectTmSinkIF.h
0x6f02;TMS_NoWriteActive;No description;2;TM_SINK;mission/tmtc/DirectTmSinkIF.h
0x6f03;TMS_Timeout;No description;3;TM_SINK;mission/tmtc/DirectTmSinkIF.h
0x7000;VCS_ChannelDoesNotExist;No description;0;VIRTUAL_CHANNEL;mission/com/VirtualChannel.h
0x7100;PLMPCOM_PacketReceived;No description;0;PLOC_MPSOC_COM;linux/payload/MpsocCommunication.h
0x7101;PLMPCOM_FaultyPacketSize;No description;1;PLOC_MPSOC_COM;linux/payload/MpsocCommunication.h
0x7102;PLMPCOM_CrcCheckFailed;No description;2;PLOC_MPSOC_COM;linux/payload/MpsocCommunication.h
0x7300;SCBU_KeyNotFound;No description;0;SCRATCH_BUFFER;bsp_q7s/memory/scratchApi.h

1 Full ID (hex) Name Description Unique ID Subsytem Name File Path
210 0x27a8 DHI_NoReplyExpected No description 168 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
211 0x27a9 DHI_NonOpTemperature No description 169 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
212 0x27aa DHI_CommandNotImplemented No description 170 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
213 0x27ab DHI_NonOpStateOfCharge No description 171 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
214 0x27b0 DHI_ChecksumError No description 176 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
215 0x27b1 DHI_LengthMissmatch No description 177 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
216 0x27b2 DHI_InvalidData No description 178 DEVICE_HANDLER_IF fsfw/src/fsfw/devicehandlers/DeviceHandlerIF.h
323 0x3405 DC_NotActive No description 5 DEVICE_COMMUNICATION_IF fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
324 0x3406 DC_TooMuchData No description 6 DEVICE_COMMUNICATION_IF fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
325 0x3407 DC_Busy No description 7 DEVICE_COMMUNICATION_IF fsfw/src/fsfw/devicehandlers/DeviceCommunicationIF.h
326 0x3601 CFDP_InvalidTlvType No description 1 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
327 0x3602 CFDP_InvalidDirectiveField No description 2 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
328 0x3603 CFDP_InvalidPduDatafieldLen No description 3 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
329 0x3604 CFDP_InvalidAckDirectiveFields No description 4 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
330 0x3605 CFDP_MetadataCantParseOptions No description 5 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
331 0x3606 CFDP_NakCantParseOptions No description 6 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
332 0x3607 CFDP_FinishedCantParseFsResponses No description 7 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
333 0x3608 CFDP_FilestoreRequiresSecondFile No description 8 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
334 0x3609 CFDP_FilestoreResponseCantParseFsMessage No description 9 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
335 0x360a CFDP_InvalidPduFormat No description 10 CFDP CFDP_BASE fsfw/src/fsfw/cfdp/definitions.h
336 0x3701 0x3700 TSI_BadTimestamp CFDP_SourceTransactionPending No description 1 0 TIME_STAMPER_IF CFDP_HANDLER fsfw/src/fsfw/timemanager/TimeStampIF.h fsfw/src/fsfw/cfdp/handler/defs.h
337 0x38a1 0x3701 SGP4_InvalidEccentricity CFDP_FileDoesNotExist No description 161 1 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
338 0x38a2 0x3702 SGP4_InvalidMeanMotion CFDP_FileSegmentLenInvalid No description 162 2 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
339 0x38a3 0x3703 SGP4_InvalidPerturbationElements CFDP_SourceNameEmpty No description 163 3 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
340 0x38a4 0x3704 SGP4_InvalidSemiLatusRectum CFDP_DestNameEmpty No description 164 4 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
341 0x38a5 0x3705 SGP4_InvalidEpochElements CFDP_WrongRemoteCfgEntityId No description 165 5 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
342 0x38a6 0x3706 SGP4_SatelliteHasDecayed CFDP_TargetMsgQueueFull No description 166 6 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
343 0x38b1 0x3707 SGP4_TleTooOld CFDP_TmStoreFull No description 177 7 SGP4PROPAGATOR_CLASS CFDP_HANDLER fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/cfdp/handler/defs.h
344 0x38b2 0x3801 SGP4_TleNotInitialized TSI_BadTimestamp No description 178 1 SGP4PROPAGATOR_CLASS TIME_STAMPER_IF fsfw/src/fsfw/coordinates/Sgp4Propagator.h fsfw/src/fsfw/timemanager/TimeStampIF.h
345 0x3901 0x39a1 MUX_NotEnoughResources SGP4_InvalidEccentricity No description 1 161 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
346 0x3902 0x39a2 MUX_InsufficientMemory SGP4_InvalidMeanMotion No description 2 162 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
347 0x3903 0x39a3 MUX_NoPrivilege SGP4_InvalidPerturbationElements No description 3 163 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
348 0x3904 0x39a4 MUX_WrongAttributeSetting SGP4_InvalidSemiLatusRectum No description 4 164 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
349 0x3905 0x39a5 MUX_MutexAlreadyLocked SGP4_InvalidEpochElements No description 5 165 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
350 0x3906 0x39a6 MUX_MutexNotFound SGP4_SatelliteHasDecayed No description 6 166 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
351 0x3907 0x39b1 MUX_MutexMaxLocks SGP4_TleTooOld No description 7 177 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
352 0x3908 0x39b2 MUX_CurrThreadAlreadyOwnsMutex SGP4_TleNotInitialized No description 8 178 MUTEX_IF SGP4PROPAGATOR_CLASS fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/coordinates/Sgp4Propagator.h
353 0x3909 0x3a01 MUX_CurrThreadDoesNotOwnMutex MUX_NotEnoughResources No description 9 1 MUTEX_IF fsfw/src/fsfw/ipc/MutexIF.h
354 0x390a 0x3a02 MUX_MutexTimeout MUX_InsufficientMemory No description 10 2 MUTEX_IF fsfw/src/fsfw/ipc/MutexIF.h
355 0x390b 0x3a03 MUX_MutexInvalidId MUX_NoPrivilege No description 11 3 MUTEX_IF fsfw/src/fsfw/ipc/MutexIF.h
356 0x390c 0x3a04 MUX_MutexDestroyedWhileWaiting MUX_WrongAttributeSetting No description 12 4 MUTEX_IF fsfw/src/fsfw/ipc/MutexIF.h
357 0x3a01 0x3a05 MQI_Empty MUX_MutexAlreadyLocked No description 1 5 MESSAGE_QUEUE_IF MUTEX_IF fsfw/src/fsfw/ipc/MessageQueueIF.h fsfw/src/fsfw/ipc/MutexIF.h
358 0x3a02 0x3a06 MQI_Full MUX_MutexNotFound No space left for more messages No description 2 6 MESSAGE_QUEUE_IF MUTEX_IF fsfw/src/fsfw/ipc/MessageQueueIF.h fsfw/src/fsfw/ipc/MutexIF.h
359 0x3a03 0x3a07 MQI_NoReplyPartner MUX_MutexMaxLocks Returned if a reply method was called without partner No description 3 7 MESSAGE_QUEUE_IF MUTEX_IF fsfw/src/fsfw/ipc/MessageQueueIF.h fsfw/src/fsfw/ipc/MutexIF.h
360 0x3a04 0x3a08 MQI_DestinationInvalid MUX_CurrThreadAlreadyOwnsMutex Returned if the target destination is invalid. No description 4 8 MESSAGE_QUEUE_IF MUTEX_IF fsfw/src/fsfw/ipc/MessageQueueIF.h fsfw/src/fsfw/ipc/MutexIF.h
361 0x3b00 0x3a09 SPH_ConnBroken MUX_CurrThreadDoesNotOwnMutex No description 0 9 SEMAPHORE_IF MUTEX_IF fsfw/src/fsfw/osal/common/TcpTmTcServer.h fsfw/src/fsfw/ipc/MutexIF.h
362 0x3b01 0x3a0a SPH_SemaphoreTimeout MUX_MutexTimeout No description 1 10 SEMAPHORE_IF MUTEX_IF fsfw/src/fsfw/tasks/SemaphoreIF.h fsfw/src/fsfw/ipc/MutexIF.h
363 0x3b02 0x3a0b SPH_SemaphoreNotOwned MUX_MutexInvalidId No description 2 11 SEMAPHORE_IF MUTEX_IF fsfw/src/fsfw/tasks/SemaphoreIF.h fsfw/src/fsfw/ipc/MutexIF.h
364 0x3b03 0x3a0c SPH_SemaphoreInvalid MUX_MutexDestroyedWhileWaiting No description 3 12 SEMAPHORE_IF MUTEX_IF fsfw/src/fsfw/tasks/SemaphoreIF.h fsfw/src/fsfw/ipc/MutexIF.h
365 0x3c00 0x3b01 LPIF_PoolEntryNotFound MQI_Empty No description 0 1 LOCAL_POOL_OWNER_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h fsfw/src/fsfw/ipc/MessageQueueIF.h
366 0x3c01 0x3b02 LPIF_PoolEntryTypeConflict MQI_Full No description No space left for more messages 1 2 LOCAL_POOL_OWNER_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h fsfw/src/fsfw/ipc/MessageQueueIF.h
367 0x3da0 0x3b03 PVA_InvalidReadWriteMode MQI_NoReplyPartner No description Returned if a reply method was called without partner 160 3 POOL_VARIABLE_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/datapool/PoolVariableIF.h fsfw/src/fsfw/ipc/MessageQueueIF.h
368 0x3da1 0x3b04 PVA_InvalidPoolEntry MQI_DestinationInvalid No description Returned if the target destination is invalid. 161 4 POOL_VARIABLE_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/datapool/PoolVariableIF.h fsfw/src/fsfw/ipc/MessageQueueIF.h
369 0x3e00 0x3c01 HKM_QueueOrDestinationInvalid SPH_SemaphoreTimeout No description 0 1 HOUSEKEEPING_MANAGER SEMAPHORE_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/tasks/SemaphoreIF.h
370 0x3e01 0x3c02 HKM_WrongHkPacketType SPH_SemaphoreNotOwned No description 1 2 HOUSEKEEPING_MANAGER SEMAPHORE_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/tasks/SemaphoreIF.h
371 0x3e02 0x3c03 HKM_ReportingStatusUnchanged SPH_SemaphoreInvalid No description 2 3 HOUSEKEEPING_MANAGER SEMAPHORE_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/tasks/SemaphoreIF.h
372 0x3e03 0x3d00 HKM_PeriodicHelperInvalid LPIF_PoolEntryNotFound No description 3 0 HOUSEKEEPING_MANAGER LOCAL_POOL_OWNER_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
373 0x3e04 0x3d01 HKM_PoolobjectNotFound LPIF_PoolEntryTypeConflict No description 4 1 HOUSEKEEPING_MANAGER LOCAL_POOL_OWNER_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h
374 0x3e05 0x3ea0 HKM_DatasetNotFound PVA_InvalidReadWriteMode No description 5 160 HOUSEKEEPING_MANAGER POOL_VARIABLE_IF fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/datapool/PoolVariableIF.h
375 0x3f01 0x3ea1 DLEE_StreamTooShort PVA_InvalidPoolEntry No description 1 161 DLE_ENCODER POOL_VARIABLE_IF fsfw/src/fsfw/globalfunctions/DleEncoder.h fsfw/src/fsfw/datapool/PoolVariableIF.h
376 0x3f02 0x3f00 DLEE_DecodingError HKM_QueueOrDestinationInvalid No description 2 0 DLE_ENCODER HOUSEKEEPING_MANAGER fsfw/src/fsfw/globalfunctions/DleEncoder.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
377 0x4201 0x3f01 PUS11_InvalidTypeTimeWindow HKM_WrongHkPacketType No description 1 PUS_SERVICE_11 HOUSEKEEPING_MANAGER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
378 0x4202 0x3f02 PUS11_InvalidTimeWindow HKM_ReportingStatusUnchanged No description 2 PUS_SERVICE_11 HOUSEKEEPING_MANAGER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
379 0x4203 0x3f03 PUS11_TimeshiftingNotPossible HKM_PeriodicHelperInvalid No description 3 PUS_SERVICE_11 HOUSEKEEPING_MANAGER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
380 0x4204 0x3f04 PUS11_InvalidRelativeTime HKM_PoolobjectNotFound No description 4 PUS_SERVICE_11 HOUSEKEEPING_MANAGER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
381 0x4205 0x3f05 PUS11_ContainedTcTooSmall HKM_DatasetNotFound No description 5 PUS_SERVICE_11 HOUSEKEEPING_MANAGER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
382 0x4206 0x4001 PUS11_ContainedTcCrcMissmatch DLEE_StreamTooShort No description 6 1 PUS_SERVICE_11 DLE_ENCODER fsfw/src/fsfw/pus/Service11TelecommandScheduling.h fsfw/src/fsfw/globalfunctions/DleEncoder.h
383 0x4300 0x4002 FILS_GenericFileError DLEE_DecodingError No description 0 2 FILE_SYSTEM DLE_ENCODER fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/globalfunctions/DleEncoder.h
384 0x4301 FILS_GenericDirError PUS11_InvalidTypeTimeWindow No description 1 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
385 0x4302 FILS_FilesystemInactive PUS11_InvalidTimeWindow No description 2 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
386 0x4303 FILS_GenericRenameError PUS11_TimeshiftingNotPossible No description 3 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
387 0x4304 FILS_IsBusy PUS11_InvalidRelativeTime No description 4 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
388 0x4305 FILS_InvalidParameters PUS11_ContainedTcTooSmall No description 5 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
389 0x430a 0x4306 FILS_FileDoesNotExist PUS11_ContainedTcCrcMissmatch No description 10 6 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
390 0x430b 0x4307 FILS_FileAlreadyExists PUS11_MapIsFull No description 11 7 FILE_SYSTEM PUS_SERVICE_11 fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
391 0x430c 0x4400 FILS_NotAFile FILS_GenericFileError No description 12 0 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
392 0x430d 0x4401 FILS_FileLocked FILS_GenericDirError No description 13 1 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
393 0x430e 0x4402 FILS_PermissionDenied FILS_FilesystemInactive No description 14 2 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
394 0x4315 0x4403 FILS_DirectoryDoesNotExist FILS_GenericRenameError No description 21 3 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
395 0x4316 0x4404 FILS_DirectoryAlreadyExists FILS_IsBusy No description 22 4 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
396 0x4317 0x4405 FILS_NotADirectory FILS_InvalidParameters No description 23 5 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
397 0x4318 0x440a FILS_DirectoryNotEmpty FILS_FileDoesNotExist No description 24 10 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
398 0x431e 0x440b FILS_SequencePacketMissingWrite FILS_FileAlreadyExists No description 30 11 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
399 0x431f 0x440c FILS_SequencePacketMissingRead FILS_NotAFile No description 31 12 FILE_SYSTEM fsfw/src/fsfw/filesystem/HasFileSystemIF.h
400 0x4400 0x440d UXOS_ExecutionFinished FILS_FileLocked Execution of the current command has finished No description 0 13 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
401 0x4401 0x440e UXOS_CommandPending FILS_PermissionDenied Command is pending. This will also be returned if the user tries to load another command but a command is still pending No description 1 14 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
402 0x4402 0x4415 UXOS_BytesRead FILS_DirectoryDoesNotExist Some bytes have been read from the executing process No description 2 21 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
403 0x4403 0x4416 UXOS_CommandError FILS_DirectoryAlreadyExists Command execution failed No description 3 22 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
404 0x4404 0x4417 UXOS_NoCommandLoadedOrPending FILS_NotADirectory No description 4 23 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
405 0x4406 0x4418 UXOS_PcloseCallError FILS_DirectoryNotEmpty No description 6 24 LINUX_OSAL FILE_SYSTEM fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
406 0x4500 0x441e HSPI_OpeningFileFailed FILS_SequencePacketMissingWrite No description 0 30 HAL_SPI FILE_SYSTEM fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
407 0x4501 0x441f HSPI_FullDuplexTransferFailed FILS_SequencePacketMissingRead No description 1 31 HAL_SPI FILE_SYSTEM fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw/filesystem/HasFileSystemIF.h
408 0x4502 0x4500 HSPI_HalfDuplexTransferFailed UXOS_ExecutionFinished No description Execution of the current command has finished 2 0 HAL_SPI LINUX_OSAL fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
409 0x4503 0x4501 HSPI_Timeout UXOS_CommandPending No description Command is pending. This will also be returned if the user tries to load another command but a command is still pending 3 1 HAL_SPI LINUX_OSAL fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
410 0x4504 0x4502 HSPI_Busy UXOS_BytesRead No description Some bytes have been read from the executing process 4 2 HAL_SPI LINUX_OSAL fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
411 0x4505 0x4503 HSPI_GenericError UXOS_CommandError No description Command execution failed 5 3 HAL_SPI LINUX_OSAL fsfw/src/fsfw_hal/common/spi/spiCommon.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
412 0x4601 0x4504 HURT_UartReadFailure UXOS_NoCommandLoadedOrPending No description 1 4 HAL_UART LINUX_OSAL fsfw/src/fsfw_hal/linux/serial/SerialComIF.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
413 0x4602 0x4506 HURT_UartReadSizeMissmatch UXOS_PcloseCallError No description 2 6 HAL_UART LINUX_OSAL fsfw/src/fsfw_hal/linux/serial/SerialComIF.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
414 0x4603 0x4600 HURT_UartRxBufferTooSmall HSPI_OpeningFileFailed No description 3 0 HAL_UART HAL_SPI fsfw/src/fsfw_hal/linux/serial/SerialComIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
415 0x4801 0x4601 HGIO_UnknownGpioId HSPI_FullDuplexTransferFailed No description 1 HAL_GPIO HAL_SPI fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
416 0x4802 0x4602 HGIO_DriveGpioFailure HSPI_HalfDuplexTransferFailed No description 2 HAL_GPIO HAL_SPI fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
417 0x4803 0x4603 HGIO_GpioTypeFailure HSPI_Timeout No description 3 HAL_GPIO HAL_SPI fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
418 0x4804 0x4604 HGIO_GpioInvalidInstance HSPI_Busy No description 4 HAL_GPIO HAL_SPI fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
419 0x4805 0x4605 HGIO_GpioDuplicateDetected HSPI_GenericError No description 5 HAL_GPIO HAL_SPI fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
420 0x4806 0x4701 HGIO_GpioInitFailed HURT_UartReadFailure No description 6 1 HAL_GPIO HAL_UART fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
421 0x4807 0x4702 HGIO_GpioGetValueFailed HURT_UartReadSizeMissmatch No description 7 2 HAL_GPIO HAL_UART fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
422 0x4c00 0x4703 SPPA_NoPacketFound HURT_UartRxBufferTooSmall No description 0 3 SPACE_PACKET_PARSER HAL_UART fsfw/src/fsfw/tmtcservices/SpacePacketParser.h fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
423 0x4c01 0x4901 SPPA_SplitPacket HGIO_UnknownGpioId No description 1 SPACE_PACKET_PARSER HAL_GPIO fsfw/src/fsfw/tmtcservices/SpacePacketParser.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
424 0x4fa1 0x4902 HEATER_CommandNotSupported HGIO_DriveGpioFailure No description 161 2 HEATER_HANDLER HAL_GPIO mission/tcs/HeaterHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
425 0x4fa2 0x4903 HEATER_InitFailed HGIO_GpioTypeFailure No description 162 3 HEATER_HANDLER HAL_GPIO mission/tcs/HeaterHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
426 0x4fa3 0x4904 HEATER_InvalidSwitchNr HGIO_GpioInvalidInstance No description 163 4 HEATER_HANDLER HAL_GPIO mission/tcs/HeaterHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
427 0x4fa4 0x4905 HEATER_MainSwitchSetTimeout HGIO_GpioDuplicateDetected No description 164 5 HEATER_HANDLER HAL_GPIO mission/tcs/HeaterHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
428 0x4fa5 0x4906 HEATER_CommandAlreadyWaiting HGIO_GpioInitFailed No description 165 6 HEATER_HANDLER HAL_GPIO mission/tcs/HeaterHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
429 0x50a0 0x4907 SYRLINKS_CrcFailure HGIO_GpioGetValueFailed No description 160 7 SYRLINKS_HANDLER HAL_GPIO mission/com/SyrlinksHandler.h fsfw/src/fsfw_hal/linux/gpio/LinuxLibgpioIF.h
430 0x50a1 0x4d00 SYRLINKS_UartFraminOrParityErrorAck SPPA_NoPacketFound No description 161 0 SYRLINKS_HANDLER SPACE_PACKET_PARSER mission/com/SyrlinksHandler.h fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
431 0x50a2 0x4d01 SYRLINKS_BadCharacterAck SPPA_SplitPacket No description 162 1 SYRLINKS_HANDLER SPACE_PACKET_PARSER mission/com/SyrlinksHandler.h fsfw/src/fsfw/tmtcservices/SpacePacketParser.h
432 0x50a3 0x50a1 SYRLINKS_BadParameterValueAck HEATER_CommandNotSupported No description 163 161 SYRLINKS_HANDLER HEATER_HANDLER mission/com/SyrlinksHandler.h mission/tcs/HeaterHandler.h
433 0x50a4 0x50a2 SYRLINKS_BadEndOfFrameAck HEATER_InitFailed No description 164 162 SYRLINKS_HANDLER HEATER_HANDLER mission/com/SyrlinksHandler.h mission/tcs/HeaterHandler.h
434 0x50a5 0x50a3 SYRLINKS_UnknownCommandIdAck HEATER_InvalidSwitchNr No description 165 163 SYRLINKS_HANDLER HEATER_HANDLER mission/com/SyrlinksHandler.h mission/tcs/HeaterHandler.h
435 0x50a6 0x50a4 SYRLINKS_BadCrcAck HEATER_MainSwitchSetTimeout No description 166 164 SYRLINKS_HANDLER HEATER_HANDLER mission/com/SyrlinksHandler.h mission/tcs/HeaterHandler.h
436 0x50a7 0x50a5 SYRLINKS_ReplyWrongSize HEATER_CommandAlreadyWaiting No description 167 165 SYRLINKS_HANDLER HEATER_HANDLER mission/com/SyrlinksHandler.h mission/tcs/HeaterHandler.h
437 0x50a8 0x51a0 SYRLINKS_MissingStartFrameCharacter SYRLINKS_CrcFailure No description 168 160 SYRLINKS_HANDLER mission/com/SyrlinksHandler.h
438 0x5100 0x51a1 IMTQ_InvalidCommandCode SYRLINKS_UartFraminOrParityErrorAck No description 0 161 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
439 0x5101 0x51a2 IMTQ_MgmMeasurementLowLevelError SYRLINKS_BadCharacterAck No description 1 162 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
440 0x5102 0x51a3 IMTQ_ActuateCmdLowLevelError SYRLINKS_BadParameterValueAck No description 2 163 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
441 0x5103 0x51a4 IMTQ_ParameterMissing SYRLINKS_BadEndOfFrameAck No description 3 164 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
442 0x5104 0x51a5 IMTQ_ParameterInvalid SYRLINKS_UnknownCommandIdAck No description 4 165 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
443 0x5105 0x51a6 IMTQ_CcUnavailable SYRLINKS_BadCrcAck No description 5 166 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
444 0x5106 0x51a7 IMTQ_InternalProcessingError SYRLINKS_ReplyWrongSize No description 6 167 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
445 0x5107 0x51a8 IMTQ_RejectedWithoutReason SYRLINKS_MissingStartFrameCharacter No description 7 168 IMTQ_HANDLER SYRLINKS_HANDLER mission/acs/imtqHelpers.h mission/com/SyrlinksHandler.h
446 0x5108 0x5200 IMTQ_CmdErrUnknown IMTQ_InvalidCommandCode No description 8 0 IMTQ_HANDLER mission/acs/imtqHelpers.h
447 0x5109 0x5201 IMTQ_StartupCfgError IMTQ_MgmMeasurementLowLevelError No description 9 1 IMTQ_HANDLER mission/acs/imtqHelpers.h
448 0x510a 0x5202 IMTQ_UnexpectedSelfTestReply IMTQ_ActuateCmdLowLevelError The status reply to a self test command was received but no self test command has been sent. This should normally never happen. No description 10 2 IMTQ_HANDLER mission/acs/imtqHelpers.h
449 0x52b0 0x5203 RWHA_SpiWriteFailure IMTQ_ParameterMissing No description 176 3 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
450 0x52b1 0x5204 RWHA_SpiReadFailure IMTQ_ParameterInvalid Used by the spi send function to tell a failing read call No description 177 4 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
451 0x52b2 0x5205 RWHA_MissingStartSign IMTQ_CcUnavailable Can be used by the HDLC decoding mechanism to inform about a missing start sign 0x7E No description 178 5 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
452 0x52b3 0x5206 RWHA_InvalidSubstitute IMTQ_InternalProcessingError Can be used by the HDLC decoding mechanism to inform about an invalid substitution combination No description 179 6 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
453 0x52b4 0x5207 RWHA_MissingEndSign IMTQ_RejectedWithoutReason HDLC decoding mechanism never receives the end sign 0x7E No description 180 7 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
454 0x52b5 0x5208 RWHA_NoReply IMTQ_CmdErrUnknown Reaction wheel only responds with empty frames. No description 181 8 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
455 0x52b6 0x5209 RWHA_NoStartMarker IMTQ_StartupCfgError Expected a start marker as first byte No description 182 9 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
456 0x52b7 0x520a RWHA_SpiReadTimeout IMTQ_UnexpectedSelfTestReply Timeout when reading reply The status reply to a self test command was received but no self test command has been sent. This should normally never happen. 183 10 RW_HANDLER IMTQ_HANDLER mission/acs/rwHelpers.h mission/acs/imtqHelpers.h
457 0x53a0 STRH_TemperatureReqFailed RWHA_InvalidSpeed Status in temperature reply signals error Action Message with invalid speed was received. Valid speeds must be in the range of [-65000, 1000] or [1000, 65000] 160 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
458 0x53a1 STRH_PingFailed RWHA_InvalidRampTime Ping command failed Action Message with invalid ramp time was received. 161 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
459 0x53a2 STRH_VersionReqFailed RWHA_SetSpeedCommandInvalidLength Status in version reply signals error Received set speed command has invalid length. Should be 6. 162 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
460 0x53a3 STRH_InterfaceReqFailed RWHA_ExecutionFailed Status in interface reply signals error Command execution failed 163 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
461 0x53a4 STRH_PowerReqFailed RWHA_CrcError Status in power reply signals error Reaction wheel reply has invalid crc 164 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
462 0x53a5 STRH_SetParamFailed RWHA_ValueNotRead Status of reply to parameter set command signals error No description 165 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/RwHandler.h
463 0x53a6 0x53b0 STRH_ActionFailed RWHA_SpiWriteFailure Status of reply to action command signals error No description 166 176 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
464 0x53a7 0x53b1 STRH_FilePathTooLong RWHA_SpiReadFailure Received invalid path string. Exceeds allowed length Used by the spi send function to tell a failing read call 167 177 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
465 0x53a8 0x53b2 STRH_FilenameTooLong RWHA_MissingStartSign Name of file received with command is too long Can be used by the HDLC decoding mechanism to inform about a missing start sign 0x7E 168 178 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
466 0x53a9 0x53b3 STRH_InvalidProgram RWHA_InvalidSubstitute Received version reply with invalid program ID Can be used by the HDLC decoding mechanism to inform about an invalid substitution combination 169 179 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
467 0x53aa 0x53b4 STRH_ReplyError RWHA_MissingEndSign Status field reply signals error HDLC decoding mechanism never receives the end sign 0x7E 170 180 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
468 0x53ab 0x53b5 STRH_CommandTooShort RWHA_NoReply Received command which is too short (some data is missing for proper execution) Reaction wheel only responds with empty frames. 171 181 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
469 0x53ac 0x53b6 STRH_InvalidLength RWHA_NoStartMarker Received command with invalid length (too few or too many parameters) Expected a start marker as first byte 172 182 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
470 0x53ad 0x53b7 STRH_RegionMismatch RWHA_SpiReadTimeout Region mismatch between send and received data Timeout when reading reply 173 183 STR_HANDLER RW_HANDLER mission/acs/str/StarTrackerHandler.h mission/acs/rwHelpers.h
471 0x53ae 0x54a0 STRH_AddressMismatch STRH_TemperatureReqFailed Address mismatch between send and received data Status in temperature reply signals error 174 160 STR_HANDLER mission/acs/str/StarTrackerHandler.h
472 0x53af 0x54a1 STRH_LengthMismatch STRH_PingFailed Length field mismatch between send and received data Ping command failed 175 161 STR_HANDLER mission/acs/str/StarTrackerHandler.h
473 0x53b0 0x54a2 STRH_FileNotExists STRH_VersionReqFailed Specified file does not exist Status in version reply signals error 176 162 STR_HANDLER mission/acs/str/StarTrackerHandler.h
474 0x53b1 0x54a3 STRH_InvalidType STRH_InterfaceReqFailed Download blob pixel command has invalid type field Status in interface reply signals error 177 163 STR_HANDLER mission/acs/str/StarTrackerHandler.h
475 0x53b2 0x54a4 STRH_InvalidId STRH_PowerReqFailed Received FPGA action command with invalid ID Status in power reply signals error 178 164 STR_HANDLER mission/acs/str/StarTrackerHandler.h
476 0x53b3 0x54a5 STRH_ReplyTooShort STRH_SetParamFailed Received reply is too short Status of reply to parameter set command signals error 179 165 STR_HANDLER mission/acs/str/StarTrackerHandler.h
477 0x53b4 0x54a6 STRH_CrcFailure STRH_ActionFailed Received reply with invalid CRC Status of reply to action command signals error 180 166 STR_HANDLER mission/acs/str/StarTrackerHandler.h
478 0x53b5 0x54a7 STRH_StrHelperExecuting STRH_FilePathTooLong Star tracker handler currently executing a command and using the communication interface Received invalid path string. Exceeds allowed length 181 167 STR_HANDLER mission/acs/str/StarTrackerHandler.h
479 0x53b6 0x54a8 STRH_StartrackerAlreadyBooted STRH_FilenameTooLong Star tracker is already in firmware mode Name of file received with command is too long 182 168 STR_HANDLER mission/acs/str/StarTrackerHandler.h
480 0x53b7 0x54a9 STRH_StartrackerNotRunningFirmware STRH_InvalidProgram Star tracker must be in firmware mode to run this command Received version reply with invalid program ID 183 169 STR_HANDLER mission/acs/str/StarTrackerHandler.h
481 0x53b8 0x54aa STRH_StartrackerNotRunningBootloader STRH_ReplyError Star tracker must be in bootloader mode to run this command Status field reply signals error 184 170 STR_HANDLER mission/acs/str/StarTrackerHandler.h
482 0x54e0 0x54ab DWLPWRON_InvalidMode STRH_CommandTooShort Received command has invalid JESD mode (valid modes are 0 - 5) Received command which is too short (some data is missing for proper execution) 224 171 DWLPWRON_CMD STR_HANDLER linux/payload/plocMpsocHelpers.h mission/acs/str/StarTrackerHandler.h
483 0x54e1 0x54ac DWLPWRON_InvalidLaneRate STRH_InvalidLength Received command has invalid lane rate (valid lane rate are 0 - 9) Received command with invalid length (too few or too many parameters) 225 172 DWLPWRON_CMD STR_HANDLER linux/payload/plocMpsocHelpers.h mission/acs/str/StarTrackerHandler.h
484 0x5700 0x54ad PLSPVhLP_RequestDone STRH_RegionMismatch No description Region mismatch between send and received data 0 173 PLOC_SUPV_HELPER STR_HANDLER linux/payload/PlocSupvUartMan.h mission/acs/str/StarTrackerHandler.h
485 0x5701 0x54ae PLSPVhLP_NoPacketFound STRH_AddressMismatch No description Address mismatch between send and received data 1 174 PLOC_SUPV_HELPER STR_HANDLER linux/payload/PlocSupvUartMan.h mission/acs/str/StarTrackerHandler.h
486 0x5702 0x54af PLSPVhLP_DecodeBufTooSmall STRH_LengthMismatch No description Length field mismatch between send and received data 2 175 PLOC_SUPV_HELPER STR_HANDLER linux/payload/PlocSupvUartMan.h mission/acs/str/StarTrackerHandler.h
487 0x5703 0x54b0 PLSPVhLP_PossiblePacketLossConsecutiveStart STRH_FileNotExists No description Specified file does not exist 3 176 PLOC_SUPV_HELPER STR_HANDLER linux/payload/PlocSupvUartMan.h mission/acs/str/StarTrackerHandler.h
488 0x5704 0x54b1 PLSPVhLP_PossiblePacketLossConsecutiveEnd STRH_InvalidType No description Download blob pixel command has invalid type field 4 177 PLOC_SUPV_HELPER STR_HANDLER linux/payload/PlocSupvUartMan.h mission/acs/str/StarTrackerHandler.h
489 0x5705 0x54b2 PLSPVhLP_HdlcError STRH_InvalidId No description Received FPGA action command with invalid ID 5 178 PLOC_SUPV_HELPER STR_HANDLER linux/payload/PlocSupvUartMan.h mission/acs/str/StarTrackerHandler.h
490 0x57a0 0x54b3 PLSPVhLP_FileClosedAccidentally STRH_ReplyTooShort File accidentally close Received reply is too short 160 179 PLOC_SUPV_HELPER STR_HANDLER linux/payload/PlocSupvUartMan.h mission/acs/str/StarTrackerHandler.h
491 0x57a1 0x54b4 PLSPVhLP_ProcessTerminated STRH_CrcFailure Process has been terminated by command Received reply with invalid CRC 161 180 PLOC_SUPV_HELPER STR_HANDLER linux/payload/PlocSupvUartMan.h mission/acs/str/StarTrackerHandler.h
492 0x57a2 0x54b5 PLSPVhLP_PathNotExists STRH_StrHelperExecuting Received command with invalid pathname Star tracker handler currently executing a command and using the communication interface 162 181 PLOC_SUPV_HELPER STR_HANDLER linux/payload/PlocSupvUartMan.h mission/acs/str/StarTrackerHandler.h
493 0x57a3 0x54b6 PLSPVhLP_EventBufferReplyInvalidApid STRH_StartrackerAlreadyBooted Expected event buffer TM but received space packet with other APID Star tracker is already in firmware mode 163 182 PLOC_SUPV_HELPER STR_HANDLER linux/payload/PlocSupvUartMan.h mission/acs/str/StarTrackerHandler.h
494 0x58a0 0x54b7 SUSS_InvalidSpeed STRH_StartrackerNotRunningFirmware Action Message with invalid speed was received. Valid speeds must be in the range of [-65000, 1000] or [1000, 65000] Star tracker must be in firmware mode to run this command 160 183 SUS_HANDLER STR_HANDLER mission/acs/RwHandler.h mission/acs/str/StarTrackerHandler.h
495 0x58a1 0x54b8 SUSS_InvalidRampTime STRH_StartrackerNotRunningBootloader Action Message with invalid ramp time was received. Star tracker must be in bootloader mode to run this command 161 184 SUS_HANDLER STR_HANDLER mission/acs/RwHandler.h mission/acs/str/StarTrackerHandler.h
496 0x58a2 0x55e0 SUSS_SetSpeedCommandInvalidLength DWLPWRON_InvalidMode Received set speed command has invalid length. Should be 6. Received command has invalid JESD mode (valid modes are 0 - 5) 162 224 SUS_HANDLER DWLPWRON_CMD mission/acs/RwHandler.h linux/payload/plocMpsocHelpers.h
497 0x58a3 0x55e1 SUSS_ExecutionFailed DWLPWRON_InvalidLaneRate Command execution failed Received command has invalid lane rate (valid lane rate are 0 - 9) 163 225 SUS_HANDLER DWLPWRON_CMD mission/acs/RwHandler.h linux/payload/plocMpsocHelpers.h
498 0x58a4 0x5800 SUSS_CrcError PLSPVhLP_RequestDone Reaction wheel reply has invalid crc No description 164 0 SUS_HANDLER PLOC_SUPV_HELPER mission/acs/RwHandler.h linux/payload/PlocSupvUartMan.h
499 0x58a5 0x5801 SUSS_ValueNotRead PLSPVhLP_NoPacketFound No description 165 1 SUS_HANDLER PLOC_SUPV_HELPER mission/acs/RwHandler.h linux/payload/PlocSupvUartMan.h
500 0x59a0 0x5802 IPCI_PapbBusy PLSPVhLP_DecodeBufTooSmall No description 160 2 CCSDS_IP_CORE_BRIDGE PLOC_SUPV_HELPER linux/ipcore/PapbVcInterface.h linux/payload/PlocSupvUartMan.h
501 0x5aa0 0x5803 PTME_UnknownVcId PLSPVhLP_PossiblePacketLossConsecutiveStart No description 160 3 PTME PLOC_SUPV_HELPER linux/ipcore/Ptme.h linux/payload/PlocSupvUartMan.h
502 0x5c01 0x5804 STRHLP_SdNotMounted PLSPVhLP_PossiblePacketLossConsecutiveEnd SD card specified in path string not mounted No description 1 4 STR_HELPER PLOC_SUPV_HELPER linux/acs/StrComHandler.h linux/payload/PlocSupvUartMan.h
503 0x5c02 0x5805 STRHLP_FileNotExists PLSPVhLP_HdlcError Specified file does not exist on filesystem No description 2 5 STR_HELPER PLOC_SUPV_HELPER linux/acs/StrComHandler.h linux/payload/PlocSupvUartMan.h
504 0x5c03 0x58a0 STRHLP_PathNotExists PLSPVhLP_FileClosedAccidentally Specified path does not exist File accidentally close 3 160 STR_HELPER PLOC_SUPV_HELPER linux/acs/StrComHandler.h linux/payload/PlocSupvUartMan.h
505 0x5c04 0x58a1 STRHLP_FileCreationFailed PLSPVhLP_ProcessTerminated Failed to create download image or read flash file Process has been terminated by command 4 161 STR_HELPER PLOC_SUPV_HELPER linux/acs/StrComHandler.h linux/payload/PlocSupvUartMan.h
506 0x5c05 0x58a2 STRHLP_RegionMismatch PLSPVhLP_PathNotExists Region in flash write/read reply does not match expected region Received command with invalid pathname 5 162 STR_HELPER PLOC_SUPV_HELPER linux/acs/StrComHandler.h linux/payload/PlocSupvUartMan.h
507 0x5c06 0x58a3 STRHLP_AddressMismatch PLSPVhLP_EventBufferReplyInvalidApid Address in flash write/read reply does not match expected address Expected event buffer TM but received space packet with other APID 6 163 STR_HELPER PLOC_SUPV_HELPER linux/acs/StrComHandler.h linux/payload/PlocSupvUartMan.h
508 0x5c07 0x59a0 STRHLP_LengthMismatch SUSS_ErrorUnlockMutex Length in flash write/read reply does not match expected length No description 7 160 STR_HELPER SUS_HANDLER linux/acs/StrComHandler.h mission/acs/archive/LegacySusHandler.h
509 0x5c08 0x59a1 STRHLP_StatusError SUSS_ErrorLockMutex Status field in reply signals error No description 8 161 STR_HELPER SUS_HANDLER linux/acs/StrComHandler.h mission/acs/archive/LegacySusHandler.h
510 0x5c09 0x5aa0 STRHLP_InvalidTypeId IPCI_PapbBusy Reply has invalid type ID (should be of action reply type) No description 9 160 STR_HELPER CCSDS_IP_CORE_BRIDGE linux/acs/StrComHandler.h linux/ipcore/PapbVcInterface.h
511 0x5c0a 0x5ba0 STRHLP_ReceptionTimeout PTME_UnknownVcId No description 10 160 STR_HELPER PTME linux/acs/StrComHandler.h linux/ipcore/Ptme.h
512 0x5c0b 0x5d01 STRHLP_DecodingError STRHLP_SdNotMounted No description SD card specified in path string not mounted 11 1 STR_HELPER linux/acs/StrComHandler.h
513 0x5d00 0x5d02 GOMS_PacketTooLong STRHLP_FileNotExists No description Specified file does not exist on filesystem 0 2 GOM_SPACE_HANDLER STR_HELPER mission/power/GomspaceDeviceHandler.h linux/acs/StrComHandler.h
514 0x5d01 0x5d03 GOMS_InvalidTableId STRHLP_PathNotExists No description Specified path does not exist 1 3 GOM_SPACE_HANDLER STR_HELPER mission/power/GomspaceDeviceHandler.h linux/acs/StrComHandler.h
515 0x5d02 0x5d04 GOMS_InvalidAddress STRHLP_FileCreationFailed No description Failed to create download image or read flash file 2 4 GOM_SPACE_HANDLER STR_HELPER mission/power/GomspaceDeviceHandler.h linux/acs/StrComHandler.h
516 0x5d03 0x5d05 GOMS_InvalidParamSize STRHLP_RegionMismatch No description Region in flash write/read reply does not match expected region 3 5 GOM_SPACE_HANDLER STR_HELPER mission/power/GomspaceDeviceHandler.h linux/acs/StrComHandler.h
517 0x5d04 0x5d06 GOMS_InvalidPayloadSize STRHLP_AddressMismatch No description Address in flash write/read reply does not match expected address 4 6 GOM_SPACE_HANDLER STR_HELPER mission/power/GomspaceDeviceHandler.h linux/acs/StrComHandler.h
518 0x5d05 0x5d07 GOMS_UnknownReplyId STRHLP_LengthMismatch No description Length in flash write/read reply does not match expected length 5 7 GOM_SPACE_HANDLER STR_HELPER mission/power/GomspaceDeviceHandler.h linux/acs/StrComHandler.h
519 0x5ea0 0x5d08 PLMEMDUMP_MramAddressTooHigh STRHLP_StatusError The capacity of the MRAM amounts to 512 kB. Thus the maximum address must not be higher than 0x7d000. Status field in reply signals error 160 8 PLOC_MEMORY_DUMPER STR_HELPER linux/payload/PlocMemoryDumper.h linux/acs/StrComHandler.h
520 0x5ea1 0x5d09 PLMEMDUMP_MramInvalidAddressCombination STRHLP_InvalidTypeId The specified end address is lower than the start address Reply has invalid type ID (should be of action reply type) 161 9 PLOC_MEMORY_DUMPER STR_HELPER linux/payload/PlocMemoryDumper.h linux/acs/StrComHandler.h
521 0x5fa0 0x5d0a PDEC_AbandonedCltuRetval STRHLP_ReceptionTimeout No description 160 10 PDEC_HANDLER STR_HELPER linux/ipcore/pdec.h linux/acs/StrComHandler.h
522 0x5fa1 0x5d0b PDEC_FrameDirtyRetval STRHLP_DecodingError No description 161 11 PDEC_HANDLER STR_HELPER linux/ipcore/pdec.h linux/acs/StrComHandler.h
523 0x5fa2 0x5e00 PDEC_FrameIllegalMultipleReasons GOMS_PacketTooLong No description 162 0 PDEC_HANDLER GOM_SPACE_HANDLER linux/ipcore/pdec.h mission/power/GomspaceDeviceHandler.h
524 0x5fa3 0x5e01 PDEC_AdDiscardedLockoutRetval GOMS_InvalidTableId No description 163 1 PDEC_HANDLER GOM_SPACE_HANDLER linux/ipcore/pdec.h mission/power/GomspaceDeviceHandler.h
525 0x5fa4 0x5e02 PDEC_AdDiscardedWaitRetval GOMS_InvalidAddress No description 164 2 PDEC_HANDLER GOM_SPACE_HANDLER linux/ipcore/pdec.h mission/power/GomspaceDeviceHandler.h
526 0x5fa5 0x5e03 PDEC_AdDiscardedNsVs GOMS_InvalidParamSize No description 165 3 PDEC_HANDLER GOM_SPACE_HANDLER linux/ipcore/pdec.h mission/power/GomspaceDeviceHandler.h
527 0x5fa6 0x5e04 PDEC_NoReportRetval GOMS_InvalidPayloadSize No description 166 4 PDEC_HANDLER GOM_SPACE_HANDLER linux/ipcore/pdec.h mission/power/GomspaceDeviceHandler.h
528 0x5fa7 0x5e05 PDEC_ErrorVersionNumberRetval GOMS_UnknownReplyId No description 167 5 PDEC_HANDLER GOM_SPACE_HANDLER linux/ipcore/pdec.h mission/power/GomspaceDeviceHandler.h
529 0x5fa8 0x5fa0 PDEC_IllegalCombinationRetval PLMEMDUMP_MramAddressTooHigh No description The capacity of the MRAM amounts to 512 kB. Thus the maximum address must not be higher than 0x7d000. 168 160 PDEC_HANDLER PLOC_MEMORY_DUMPER linux/ipcore/pdec.h linux/payload/PlocMemoryDumper.h
530 0x5fa9 0x5fa1 PDEC_InvalidScIdRetval PLMEMDUMP_MramInvalidAddressCombination No description The specified end address is lower than the start address 169 161 PDEC_HANDLER PLOC_MEMORY_DUMPER linux/ipcore/pdec.h linux/payload/PlocMemoryDumper.h
531 0x5faa 0x60a0 PDEC_InvalidVcIdMsbRetval PDEC_AbandonedCltuRetval No description 170 160 PDEC_HANDLER linux/ipcore/pdec.h
532 0x5fab 0x60a1 PDEC_InvalidVcIdLsbRetval PDEC_FrameDirtyRetval No description 171 161 PDEC_HANDLER linux/ipcore/pdec.h
533 0x5fac 0x60a2 PDEC_NsNotZeroRetval PDEC_FrameIllegalMultipleReasons No description 172 162 PDEC_HANDLER linux/ipcore/pdec.h
534 0x5fae 0x60a3 PDEC_InvalidBcCc PDEC_AdDiscardedLockoutRetval No description 174 163 PDEC_HANDLER linux/ipcore/pdec.h
535 0x5fb0 0x60a4 PDEC_CommandNotImplemented PDEC_AdDiscardedWaitRetval Received action message with unknown action id No description 176 164 PDEC_HANDLER linux/ipcore/pdec.h
536 0x60a0 0x60a5 CCSDS_CommandNotImplemented PDEC_AdDiscardedNsVs Received action message with unknown action id No description 160 165 CCSDS_HANDLER PDEC_HANDLER mission/com/CcsdsIpCoreHandler.h linux/ipcore/pdec.h
537 0x61a0 0x60a6 RS_RateNotSupported PDEC_NoReportRetval The commanded rate is not supported by the current FPGA design No description 160 166 RATE_SETTER PDEC_HANDLER linux/ipcore/PtmeConfig.h linux/ipcore/pdec.h
538 0x61a1 0x60a7 RS_BadBitRate PDEC_ErrorVersionNumberRetval Bad bitrate has been commanded (e.g. 0) No description 161 167 RATE_SETTER PDEC_HANDLER linux/ipcore/PtmeConfig.h linux/ipcore/pdec.h
539 0x61a2 0x60a8 RS_ClkInversionFailed PDEC_IllegalCombinationRetval Failed to invert clock and thus change the time the data is updated with respect to the tx clock No description 162 168 RATE_SETTER PDEC_HANDLER linux/ipcore/PtmeConfig.h linux/ipcore/pdec.h
540 0x61a3 0x60a9 RS_TxManipulatorConfigFailed PDEC_InvalidScIdRetval Failed to change configuration bit of tx clock manipulator No description 163 169 RATE_SETTER PDEC_HANDLER linux/ipcore/PtmeConfig.h linux/ipcore/pdec.h
541 0x6201 0x60aa JSONBASE_JsonFileNotExists PDEC_InvalidVcIdMsbRetval Specified json file does not exist No description 1 170 ARCSEC_JSON_BASE PDEC_HANDLER mission/acs/str/ArcsecJsonParamBase.h linux/ipcore/pdec.h
542 0x6202 0x60ab JSONBASE_SetNotExists PDEC_InvalidVcIdLsbRetval Requested set does not exist in json file No description 2 171 ARCSEC_JSON_BASE PDEC_HANDLER mission/acs/str/ArcsecJsonParamBase.h linux/ipcore/pdec.h
543 0x6203 0x60ac JSONBASE_ParamNotExists PDEC_NsNotZeroRetval Requested parameter does not exist in json file No description 3 172 ARCSEC_JSON_BASE PDEC_HANDLER mission/acs/str/ArcsecJsonParamBase.h linux/ipcore/pdec.h
544 0x63a0 0x60ae NVMB_KeyNotExists PDEC_InvalidBcCc Specified key does not exist in json file No description 160 174 NVM_PARAM_BASE PDEC_HANDLER mission/memory/NvmParameterBase.h linux/ipcore/pdec.h
545 0x64a0 0x60b0 FSHLP_SdNotMounted PDEC_CommandNotImplemented SD card specified with path string not mounted Received action message with unknown action id 160 176 FILE_SYSTEM_HELPER PDEC_HANDLER bsp_q7s/fs/FilesystemHelper.h linux/ipcore/pdec.h
546 0x64a1 0x61a0 FSHLP_FileNotExists CCSDS_CommandNotImplemented Specified file does not exist on filesystem Received action message with unknown action id 161 160 FILE_SYSTEM_HELPER CCSDS_HANDLER bsp_q7s/fs/FilesystemHelper.h mission/com/CcsdsIpCoreHandler.h
547 0x65a0 0x62a0 PLMPHLP_FileWriteError RS_RateNotSupported File error occured for file transfers from OBC to the MPSoC. The commanded rate is not supported by the current FPGA design 160 PLOC_MPSOC_HELPER RATE_SETTER linux/payload/PlocMpsocSpecialComHelper.h linux/ipcore/PtmeConfig.h
548 0x65a1 0x62a1 PLMPHLP_FileReadError RS_BadBitRate File error occured for file transfers from MPSoC to OBC. Bad bitrate has been commanded (e.g. 0) 161 PLOC_MPSOC_HELPER RATE_SETTER linux/payload/PlocMpsocSpecialComHelper.h linux/ipcore/PtmeConfig.h
549 0x66a0 0x62a2 SADPL_CommandNotSupported RS_ClkInversionFailed No description Failed to invert clock and thus change the time the data is updated with respect to the tx clock 160 162 SA_DEPL_HANDLER RATE_SETTER mission/SolarArrayDeploymentHandler.h linux/ipcore/PtmeConfig.h
550 0x66a1 0x62a3 SADPL_DeploymentAlreadyExecuting RS_TxManipulatorConfigFailed No description Failed to change configuration bit of tx clock manipulator 161 163 SA_DEPL_HANDLER RATE_SETTER mission/SolarArrayDeploymentHandler.h linux/ipcore/PtmeConfig.h
551 0x66a2 0x6301 SADPL_MainSwitchTimeoutFailure JSONBASE_JsonFileNotExists No description Specified json file does not exist 162 1 SA_DEPL_HANDLER ARCSEC_JSON_BASE mission/SolarArrayDeploymentHandler.h mission/acs/str/ArcsecJsonParamBase.h
552 0x66a3 0x6302 SADPL_SwitchingDeplSa1Failed JSONBASE_SetNotExists No description Requested set does not exist in json file 163 2 SA_DEPL_HANDLER ARCSEC_JSON_BASE mission/SolarArrayDeploymentHandler.h mission/acs/str/ArcsecJsonParamBase.h
553 0x66a4 0x6303 SADPL_SwitchingDeplSa2Failed JSONBASE_ParamNotExists No description Requested parameter does not exist in json file 164 3 SA_DEPL_HANDLER ARCSEC_JSON_BASE mission/SolarArrayDeploymentHandler.h mission/acs/str/ArcsecJsonParamBase.h
554 0x67a0 0x64a0 MPSOCRTVIF_CrcFailure NVMB_KeyNotExists Space Packet received from PLOC has invalid CRC Specified key does not exist in json file 160 MPSOC_RETURN_VALUES_IF NVM_PARAM_BASE linux/payload/mpsocRetvals.h mission/memory/NvmParameterBase.h
555 0x67a1 0x65a0 MPSOCRTVIF_ReceivedAckFailure FSHLP_SdNotMounted Received ACK failure reply from PLOC SD card specified with path string not mounted 161 160 MPSOC_RETURN_VALUES_IF FILE_SYSTEM_HELPER linux/payload/mpsocRetvals.h bsp_q7s/fs/FilesystemHelper.h
556 0x67a2 0x65a1 MPSOCRTVIF_ReceivedExeFailure FSHLP_FileNotExists Received execution failure reply from PLOC Specified file does not exist on filesystem 162 161 MPSOC_RETURN_VALUES_IF FILE_SYSTEM_HELPER linux/payload/mpsocRetvals.h bsp_q7s/fs/FilesystemHelper.h
557 0x67a3 0x66a0 MPSOCRTVIF_InvalidApid PLMPHLP_FileWriteError Received space packet with invalid APID from PLOC File error occured for file transfers from OBC to the MPSoC. 163 160 MPSOC_RETURN_VALUES_IF PLOC_MPSOC_HELPER linux/payload/mpsocRetvals.h linux/payload/PlocMpsocSpecialComHelper.h
558 0x67a4 0x66a1 MPSOCRTVIF_InvalidLength PLMPHLP_FileReadError Received command with invalid length File error occured for file transfers from MPSoC to OBC. 164 161 MPSOC_RETURN_VALUES_IF PLOC_MPSOC_HELPER linux/payload/mpsocRetvals.h linux/payload/PlocMpsocSpecialComHelper.h
559 0x67a5 0x67a0 MPSOCRTVIF_FilenameTooLong SADPL_CommandNotSupported Filename of file in OBC filesystem is too long No description 165 160 MPSOC_RETURN_VALUES_IF SA_DEPL_HANDLER linux/payload/mpsocRetvals.h mission/SolarArrayDeploymentHandler.h
560 0x67a6 0x67a1 MPSOCRTVIF_MpsocHelperExecuting SADPL_DeploymentAlreadyExecuting MPSoC helper is currently executing a command No description 166 161 MPSOC_RETURN_VALUES_IF SA_DEPL_HANDLER linux/payload/mpsocRetvals.h mission/SolarArrayDeploymentHandler.h
561 0x67a7 0x67a2 MPSOCRTVIF_MpsocFilenameTooLong SADPL_MainSwitchTimeoutFailure Filename of MPSoC file is to long (max. 256 bytes) No description 167 162 MPSOC_RETURN_VALUES_IF SA_DEPL_HANDLER linux/payload/mpsocRetvals.h mission/SolarArrayDeploymentHandler.h
562 0x67a8 0x67a3 MPSOCRTVIF_InvalidParameter SADPL_SwitchingDeplSa1Failed Command has invalid parameter No description 168 163 MPSOC_RETURN_VALUES_IF SA_DEPL_HANDLER linux/payload/mpsocRetvals.h mission/SolarArrayDeploymentHandler.h
563 0x67a9 0x67a4 MPSOCRTVIF_NameTooLong SADPL_SwitchingDeplSa2Failed Received command has file string with invalid length No description 169 164 MPSOC_RETURN_VALUES_IF SA_DEPL_HANDLER linux/payload/mpsocRetvals.h mission/SolarArrayDeploymentHandler.h
564 0x68a0 0x6810 SPVRTVIF_CrcFailure MPSOCRTVIF_CommandTimeout Space Packet received from PLOC supervisor has invalid CRC Command has timed out. 160 16 SUPV_RETURN_VALUES_IF MPSOC_RETURN_VALUES_IF linux/payload/plocSupvDefs.h linux/payload/plocMpsocHelpers.h
565 0x68a1 0x68a0 SPVRTVIF_InvalidServiceId MPSOCRTVIF_CrcFailure No description Space Packet received from PLOC has invalid CRC 161 160 SUPV_RETURN_VALUES_IF MPSOC_RETURN_VALUES_IF linux/payload/plocSupvDefs.h linux/payload/plocMpsocHelpers.h
566 0x68a2 0x68a1 SPVRTVIF_ReceivedAckFailure MPSOCRTVIF_ReceivedAckFailure Received ACK failure reply from PLOC supervisor Received ACK failure reply from PLOC 162 161 SUPV_RETURN_VALUES_IF MPSOC_RETURN_VALUES_IF linux/payload/plocSupvDefs.h linux/payload/plocMpsocHelpers.h
567 0x68a3 0x68a2 SPVRTVIF_ReceivedExeFailure MPSOCRTVIF_ReceivedExeFailure Received execution failure reply from PLOC supervisor Received execution failure reply from PLOC 163 162 SUPV_RETURN_VALUES_IF MPSOC_RETURN_VALUES_IF linux/payload/plocSupvDefs.h linux/payload/plocMpsocHelpers.h
568 0x68a4 0x68a3 SPVRTVIF_InvalidApid MPSOCRTVIF_InvalidApid Received space packet with invalid APID from PLOC supervisor Received space packet with invalid APID from PLOC 164 163 SUPV_RETURN_VALUES_IF MPSOC_RETURN_VALUES_IF linux/payload/plocSupvDefs.h linux/payload/plocMpsocHelpers.h
569 0x68a5 0x68a4 SPVRTVIF_GetTimeFailure MPSOCRTVIF_InvalidLength Failed to read current system time Received command with invalid length 165 164 SUPV_RETURN_VALUES_IF MPSOC_RETURN_VALUES_IF linux/payload/plocSupvDefs.h linux/payload/plocMpsocHelpers.h
570 0x68a6 0x68a5 SPVRTVIF_InvalidWatchdog MPSOCRTVIF_FilenameTooLong Received command with invalid watchdog parameter. Valid watchdogs are 0 for PS, 1 for PL and 2 for INT Filename of file in OBC filesystem is too long 166 165 SUPV_RETURN_VALUES_IF MPSOC_RETURN_VALUES_IF linux/payload/plocSupvDefs.h linux/payload/plocMpsocHelpers.h
571 0x68a7 0x68a6 SPVRTVIF_InvalidWatchdogTimeout MPSOCRTVIF_MpsocHelperExecuting Received watchdog timeout config command with invalid timeout. Valid timeouts must be in the range between 1000 and 360000 ms. MPSoC helper is currently executing a command 167 166 SUPV_RETURN_VALUES_IF MPSOC_RETURN_VALUES_IF linux/payload/plocSupvDefs.h linux/payload/plocMpsocHelpers.h
572 0x68a8 0x68a7 SPVRTVIF_InvalidLatchupId MPSOCRTVIF_MpsocFilenameTooLong Received latchup config command with invalid latchup ID Filename of MPSoC file is to long (max. 256 bytes) 168 167 SUPV_RETURN_VALUES_IF MPSOC_RETURN_VALUES_IF linux/payload/plocSupvDefs.h linux/payload/plocMpsocHelpers.h
573 0x68a9 0x68a8 SPVRTVIF_SweepPeriodTooSmall MPSOCRTVIF_InvalidParameter Received set adc sweep period command with invalid sweep period. Must be larger than 21. Command has invalid parameter 169 168 SUPV_RETURN_VALUES_IF MPSOC_RETURN_VALUES_IF linux/payload/plocSupvDefs.h linux/payload/plocMpsocHelpers.h
574 0x68aa 0x68a9 SPVRTVIF_InvalidTestParam MPSOCRTVIF_NameTooLong Receive auto EM test command with invalid test param. Valid params are 1 and 2. Received command has file string with invalid length 170 169 SUPV_RETURN_VALUES_IF MPSOC_RETURN_VALUES_IF linux/payload/plocSupvDefs.h linux/payload/plocMpsocHelpers.h
575 0x68ab 0x69a0 SPVRTVIF_MramPacketParsingFailure SPVRTVIF_CrcFailure Returned when scanning for MRAM dump packets failed. Space Packet received from PLOC supervisor has invalid CRC 171 160 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
576 0x68ac 0x69a1 SPVRTVIF_InvalidMramAddresses SPVRTVIF_InvalidServiceId Returned when the start and stop addresses of the MRAM dump or MRAM wipe commands are invalid (e.g. start address bigger than stop address) No description 172 161 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
577 0x68ad 0x69a2 SPVRTVIF_NoMramPacket SPVRTVIF_ReceivedAckFailure Expect reception of an MRAM dump packet but received space packet with other apid. Received ACK failure reply from PLOC supervisor 173 162 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
578 0x68ae 0x69a3 SPVRTVIF_PathDoesNotExist SPVRTVIF_ReceivedExeFailure Path to PLOC directory on SD card does not exist Received execution failure reply from PLOC supervisor 174 163 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
579 0x68af 0x69a4 SPVRTVIF_MramFileNotExists SPVRTVIF_InvalidApid MRAM dump file does not exists. The file should actually already have been created with the reception of the first dump packet. Received space packet with invalid APID from PLOC supervisor 175 164 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
580 0x68b0 0x69a5 SPVRTVIF_InvalidReplyLength SPVRTVIF_GetTimeFailure No description Failed to read current system time 176 165 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
581 0x68b1 0x69a6 SPVRTVIF_InvalidLength SPVRTVIF_InvalidWatchdog Received action command has invalid length Received command with invalid watchdog parameter. Valid watchdogs are 0 for PS, 1 for PL and 2 for INT 177 166 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
582 0x68b2 0x69a7 SPVRTVIF_FilenameTooLong SPVRTVIF_InvalidWatchdogTimeout Filename too long Received watchdog timeout config command with invalid timeout. Valid timeouts must be in the range between 1000 and 360000 ms. 178 167 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
583 0x68b3 0x69a8 SPVRTVIF_UpdateStatusReportInvalidLength SPVRTVIF_InvalidLatchupId Received update status report with invalid packet length field Received latchup config command with invalid latchup ID 179 168 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
584 0x68b4 0x69a9 SPVRTVIF_UpdateCrcFailure SPVRTVIF_SweepPeriodTooSmall Update status report does not contain expected CRC. There might be a bit flip in the update memory region. Received set adc sweep period command with invalid sweep period. Must be larger than 21. 180 169 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
585 0x68b5 0x69aa SPVRTVIF_SupvHelperExecuting SPVRTVIF_InvalidTestParam Supervisor helper task ist currently executing a command (wait until helper tas has finished or interrupt by sending the terminate command) Receive auto EM test command with invalid test param. Valid params are 1 and 2. 181 170 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
586 0x68c0 0x69ab SPVRTVIF_BufTooSmall SPVRTVIF_MramPacketParsingFailure No description Returned when scanning for MRAM dump packets failed. 192 171 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
587 0x68c1 0x69ac SPVRTVIF_NoReplyTimeout SPVRTVIF_InvalidMramAddresses No description Returned when the start and stop addresses of the MRAM dump or MRAM wipe commands are invalid (e.g. start address bigger than stop address) 193 172 SUPV_RETURN_VALUES_IF linux/payload/plocSupvDefs.h
588 0x6900 0x69ad ACSCTRL_FileDeletionFailed SPVRTVIF_NoMramPacket File deletion failed and at least one file is still existent. Expect reception of an MRAM dump packet but received space packet with other apid. 0 173 ACS_CTRL SUPV_RETURN_VALUES_IF mission/controller/AcsController.h linux/payload/plocSupvDefs.h
589 0x6a02 0x69ae ACSMEKF_MekfUninitialized SPVRTVIF_PathDoesNotExist No description Path to PLOC directory on SD card does not exist 2 174 ACS_MEKF SUPV_RETURN_VALUES_IF mission/controller/acs/MultiplicativeKalmanFilter.h linux/payload/plocSupvDefs.h
590 0x6a03 0x69af ACSMEKF_MekfNoGyrData SPVRTVIF_MramFileNotExists No description MRAM dump file does not exists. The file should actually already have been created with the reception of the first dump packet. 3 175 ACS_MEKF SUPV_RETURN_VALUES_IF mission/controller/acs/MultiplicativeKalmanFilter.h linux/payload/plocSupvDefs.h
591 0x6a04 0x69b0 ACSMEKF_MekfNoModelVectors SPVRTVIF_InvalidReplyLength No description 4 176 ACS_MEKF SUPV_RETURN_VALUES_IF mission/controller/acs/MultiplicativeKalmanFilter.h linux/payload/plocSupvDefs.h
592 0x6a05 0x69b1 ACSMEKF_MekfNoSusMgmStrData SPVRTVIF_InvalidLength No description Received action command has invalid length 5 177 ACS_MEKF SUPV_RETURN_VALUES_IF mission/controller/acs/MultiplicativeKalmanFilter.h linux/payload/plocSupvDefs.h
593 0x6a06 0x69b2 ACSMEKF_MekfCovarianceInversionFailed SPVRTVIF_FilenameTooLong No description Filename too long 6 178 ACS_MEKF SUPV_RETURN_VALUES_IF mission/controller/acs/MultiplicativeKalmanFilter.h linux/payload/plocSupvDefs.h
594 0x6a07 0x69b3 ACSMEKF_MekfNotFinite SPVRTVIF_UpdateStatusReportInvalidLength No description Received update status report with invalid packet length field 7 179 ACS_MEKF SUPV_RETURN_VALUES_IF mission/controller/acs/MultiplicativeKalmanFilter.h linux/payload/plocSupvDefs.h
595 0x6a08 0x69b4 ACSMEKF_MekfInitialized SPVRTVIF_UpdateCrcFailure No description Update status report does not contain expected CRC. There might be a bit flip in the update memory region. 8 180 ACS_MEKF SUPV_RETURN_VALUES_IF mission/controller/acs/MultiplicativeKalmanFilter.h linux/payload/plocSupvDefs.h
596 0x6a09 0x69b5 ACSMEKF_MekfRunning SPVRTVIF_SupvHelperExecuting No description Supervisor helper task ist currently executing a command (wait until helper tas has finished or interrupt by sending the terminate command) 9 181 ACS_MEKF SUPV_RETURN_VALUES_IF mission/controller/acs/MultiplicativeKalmanFilter.h linux/payload/plocSupvDefs.h
597 0x6b00 0x69c0 SDMA_OpOngoing SPVRTVIF_BufTooSmall No description 0 192 SD_CARD_MANAGER SUPV_RETURN_VALUES_IF bsp_q7s/fs/SdCardManager.h linux/payload/plocSupvDefs.h
598 0x6b01 0x69c1 SDMA_AlreadyOn SPVRTVIF_NoReplyTimeout No description 1 193 SD_CARD_MANAGER SUPV_RETURN_VALUES_IF bsp_q7s/fs/SdCardManager.h linux/payload/plocSupvDefs.h
599 0x6b02 0x6aa0 SDMA_AlreadyMounted ACSCTRL_FileDeletionFailed No description File deletion failed and at least one file is still existent. 2 160 SD_CARD_MANAGER ACS_CTRL bsp_q7s/fs/SdCardManager.h mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
600 0x6b03 0x6aa1 SDMA_AlreadyOff ACSCTRL_WriteFileFailed No description Writing the TLE to the file has failed. 3 161 SD_CARD_MANAGER ACS_CTRL bsp_q7s/fs/SdCardManager.h mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
601 0x6b0a 0x6aa2 SDMA_StatusFileNexists ACSCTRL_ReadFileFailed No description Reading the TLE to the file has failed. 10 162 SD_CARD_MANAGER ACS_CTRL bsp_q7s/fs/SdCardManager.h mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
602 0x6b0b 0x6aa3 SDMA_StatusFileFormatInvalid ACSCTRL_SingleRwUnavailable No description A single RW has failed. 11 163 SD_CARD_MANAGER ACS_CTRL bsp_q7s/fs/SdCardManager.h mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
603 0x6b0c 0x6aa4 SDMA_MountError ACSCTRL_MultipleRwUnavailable No description Multiple RWs have failed. 12 164 SD_CARD_MANAGER ACS_CTRL bsp_q7s/fs/SdCardManager.h mission/controller/controllerdefinitions/AcsCtrlDefinitions.h
604 0x6b0d 0x6b02 SDMA_UnmountError ACSMEKF_MekfUninitialized No description 13 2 SD_CARD_MANAGER ACS_MEKF bsp_q7s/fs/SdCardManager.h mission/controller/acs/MultiplicativeKalmanFilter.h
605 0x6b0e 0x6b03 SDMA_SystemCallError ACSMEKF_MekfNoGyrData No description 14 3 SD_CARD_MANAGER ACS_MEKF bsp_q7s/fs/SdCardManager.h mission/controller/acs/MultiplicativeKalmanFilter.h
606 0x6b0f 0x6b04 SDMA_PopenCallError ACSMEKF_MekfNoModelVectors No description 15 4 SD_CARD_MANAGER ACS_MEKF bsp_q7s/fs/SdCardManager.h mission/controller/acs/MultiplicativeKalmanFilter.h
607 0x6c00 0x6b05 LPH_SdNotReady ACSMEKF_MekfNoSusMgmStrData No description 0 5 LOCAL_PARAM_HANDLER ACS_MEKF bsp_q7s/memory/LocalParameterHandler.h mission/controller/acs/MultiplicativeKalmanFilter.h
608 0x6d00 0x6b06 PTM_DumpDone ACSMEKF_MekfCovarianceInversionFailed No description 0 6 PERSISTENT_TM_STORE ACS_MEKF mission/tmtc/PersistentTmStore.h mission/controller/acs/MultiplicativeKalmanFilter.h
609 0x6d01 0x6b07 PTM_BusyDumping ACSMEKF_MekfNotFinite No description 1 7 PERSISTENT_TM_STORE ACS_MEKF mission/tmtc/PersistentTmStore.h mission/controller/acs/MultiplicativeKalmanFilter.h
610 0x6e00 0x6b08 TMS_IsBusy ACSMEKF_MekfInitialized No description 0 8 TM_SINK ACS_MEKF mission/tmtc/DirectTmSinkIF.h mission/controller/acs/MultiplicativeKalmanFilter.h
611 0x7000 0x6b09 SCBU_KeyNotFound ACSMEKF_MekfRunning No description 0 9 SCRATCH_BUFFER ACS_MEKF bsp_q7s/memory/scratchApi.h mission/controller/acs/MultiplicativeKalmanFilter.h
612 0x6c00 SDMA_OpOngoing No description 0 SD_CARD_MANAGER bsp_q7s/fs/SdCardManager.h
613 0x6c01 SDMA_AlreadyOn No description 1 SD_CARD_MANAGER bsp_q7s/fs/SdCardManager.h
614 0x6c02 SDMA_AlreadyMounted No description 2 SD_CARD_MANAGER bsp_q7s/fs/SdCardManager.h
615 0x6c03 SDMA_AlreadyOff No description 3 SD_CARD_MANAGER bsp_q7s/fs/SdCardManager.h
616 0x6c0a SDMA_StatusFileNexists No description 10 SD_CARD_MANAGER bsp_q7s/fs/SdCardManager.h
617 0x6c0b SDMA_StatusFileFormatInvalid No description 11 SD_CARD_MANAGER bsp_q7s/fs/SdCardManager.h
618 0x6c0c SDMA_MountError No description 12 SD_CARD_MANAGER bsp_q7s/fs/SdCardManager.h
619 0x6c0d SDMA_UnmountError No description 13 SD_CARD_MANAGER bsp_q7s/fs/SdCardManager.h
620 0x6c0e SDMA_SystemCallError No description 14 SD_CARD_MANAGER bsp_q7s/fs/SdCardManager.h
621 0x6c0f SDMA_PopenCallError No description 15 SD_CARD_MANAGER bsp_q7s/fs/SdCardManager.h
622 0x6d00 LPH_SdNotReady No description 0 LOCAL_PARAM_HANDLER bsp_q7s/memory/LocalParameterHandler.h
623 0x6e00 PTM_DumpDone No description 0 PERSISTENT_TM_STORE mission/tmtc/PersistentTmStore.h
624 0x6e01 PTM_BusyDumping No description 1 PERSISTENT_TM_STORE mission/tmtc/PersistentTmStore.h
625 0x6f00 TMS_IsBusy No description 0 TM_SINK mission/tmtc/DirectTmSinkIF.h
626 0x6f01 TMS_PartiallyWritten No description 1 TM_SINK mission/tmtc/DirectTmSinkIF.h
627 0x6f02 TMS_NoWriteActive No description 2 TM_SINK mission/tmtc/DirectTmSinkIF.h
628 0x6f03 TMS_Timeout No description 3 TM_SINK mission/tmtc/DirectTmSinkIF.h
629 0x7000 VCS_ChannelDoesNotExist No description 0 VIRTUAL_CHANNEL mission/com/VirtualChannel.h
630 0x7100 PLMPCOM_PacketReceived No description 0 PLOC_MPSOC_COM linux/payload/MpsocCommunication.h
631 0x7101 PLMPCOM_FaultyPacketSize No description 1 PLOC_MPSOC_COM linux/payload/MpsocCommunication.h
632 0x7102 PLMPCOM_CrcCheckFailed No description 2 PLOC_MPSOC_COM linux/payload/MpsocCommunication.h
633 0x7300 SCBU_KeyNotFound No description 0 SCRATCH_BUFFER bsp_q7s/memory/scratchApi.h

View File

@ -60,3 +60,5 @@
142;COM_SUBSYSTEM
143;PERSISTENT_TM_STORE
144;SYRLINKS_COM
145;SUS_HANDLER
146;CFDP_APP

1 22 MEMORY
60 142 COM_SUBSYSTEM
61 143 PERSISTENT_TM_STORE
62 144 SYRLINKS_COM
63 145 SUS_HANDLER
64 146 CFDP_APP

View File

@ -54,9 +54,13 @@ class BspConfig:
# Store this file in the root of the generators folder
self.csv_filename = Path(f"{ROOT_DIR}/{self.bsp_dir_name}_events.csv")
self.subsystems_csv_filename = Path(f"{ROOT_DIR}/{self.bsp_dir_name}_subsystems.csv")
self.subsystems_csv_filename = Path(
f"{ROOT_DIR}/{self.bsp_dir_name}_subsystems.csv"
)
self.csv_copy_dest = Path(f"{OBSW_ROOT_DIR}/tmtc/eive_tmtc/config/events.csv")
self.subsystem_csv_copy_dest = Path(f"{OBSW_ROOT_DIR}/tmtc/eive_tmtc/config/subsystems.csv")
self.subsystem_csv_copy_dest = Path(
f"{OBSW_ROOT_DIR}/tmtc/eive_tmtc/config/subsystems.csv"
)
if (
self.bsp_select == BspType.BSP_Q7S

View File

@ -1,7 +1,7 @@
/**
* @brief Auto-generated event translation file. Contains 296 translations.
* @brief Auto-generated event translation file. Contains 325 translations.
* @details
* Generated on: 2023-06-21 19:01:02
* Generated on: 2024-05-06 13:47:38
*/
#include "translateEvents.h"
@ -82,8 +82,11 @@ const char *BIT_LOCK_STRING = "BIT_LOCK";
const char *BIT_LOCK_LOST_STRING = "BIT_LOCK_LOST";
const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED";
const char *CLOCK_SET_STRING = "CLOCK_SET";
const char *CLOCK_DUMP_STRING = "CLOCK_DUMP";
const char *CLOCK_DUMP_LEGACY_STRING = "CLOCK_DUMP_LEGACY";
const char *CLOCK_SET_FAILURE_STRING = "CLOCK_SET_FAILURE";
const char *CLOCK_DUMP_STRING = "CLOCK_DUMP";
const char *CLOCK_DUMP_BEFORE_SETTING_TIME_STRING = "CLOCK_DUMP_BEFORE_SETTING_TIME";
const char *CLOCK_DUMP_AFTER_SETTING_TIME_STRING = "CLOCK_DUMP_AFTER_SETTING_TIME";
const char *TC_DELETION_FAILED_STRING = "TC_DELETION_FAILED";
const char *TEST_STRING = "TEST";
const char *CHANGE_OF_SETUP_PARAMETER_STRING = "CHANGE_OF_SETUP_PARAMETER";
@ -92,18 +95,28 @@ const char *MSG_QUEUE_ERROR_STRING = "MSG_QUEUE_ERROR";
const char *SERIALIZATION_ERROR_STRING = "SERIALIZATION_ERROR";
const char *FILESTORE_ERROR_STRING = "FILESTORE_ERROR";
const char *FILENAME_TOO_LARGE_ERROR_STRING = "FILENAME_TOO_LARGE_ERROR";
const char *HANDLING_CFDP_REQUEST_FAILED_STRING = "HANDLING_CFDP_REQUEST_FAILED";
const char *SAFE_RATE_VIOLATION_STRING = "SAFE_RATE_VIOLATION";
const char *SAFE_RATE_RECOVERY_STRING = "SAFE_RATE_RECOVERY";
const char *RATE_RECOVERY_STRING = "RATE_RECOVERY";
const char *MULTIPLE_RW_INVALID_STRING = "MULTIPLE_RW_INVALID";
const char *MEKF_INVALID_INFO_STRING = "MEKF_INVALID_INFO";
const char *MEKF_RECOVERY_STRING = "MEKF_RECOVERY";
const char *MEKF_AUTOMATIC_RESET_STRING = "MEKF_AUTOMATIC_RESET";
const char *MEKF_INVALID_MODE_VIOLATION_STRING = "MEKF_INVALID_MODE_VIOLATION";
const char *PTG_CTRL_NO_ATTITUDE_INFORMATION_STRING = "PTG_CTRL_NO_ATTITUDE_INFORMATION";
const char *SAFE_MODE_CONTROLLER_FAILURE_STRING = "SAFE_MODE_CONTROLLER_FAILURE";
const char *TLE_TOO_OLD_STRING = "TLE_TOO_OLD";
const char *TLE_FILE_READ_FAILED_STRING = "TLE_FILE_READ_FAILED";
const char *PTG_RATE_VIOLATION_STRING = "PTG_RATE_VIOLATION";
const char *DETUMBLE_TRANSITION_FAILED_STRING = "DETUMBLE_TRANSITION_FAILED";
const char *SWITCH_CMD_SENT_STRING = "SWITCH_CMD_SENT";
const char *SWITCH_HAS_CHANGED_STRING = "SWITCH_HAS_CHANGED";
const char *SWITCHING_Q7S_DENIED_STRING = "SWITCHING_Q7S_DENIED";
const char *FDIR_REACTION_IGNORED_STRING = "FDIR_REACTION_IGNORED";
const char *DATASET_READ_FAILED_STRING = "DATASET_READ_FAILED";
const char *VOLTAGE_OUT_OF_BOUNDS_STRING = "VOLTAGE_OUT_OF_BOUNDS";
const char *TIMEDELTA_OUT_OF_BOUNDS_STRING = "TIMEDELTA_OUT_OF_BOUNDS";
const char *POWER_LEVEL_LOW_STRING = "POWER_LEVEL_LOW";
const char *POWER_LEVEL_CRITICAL_STRING = "POWER_LEVEL_CRITICAL";
const char *GPIO_PULL_HIGH_FAILED_STRING = "GPIO_PULL_HIGH_FAILED";
const char *GPIO_PULL_LOW_FAILED_STRING = "GPIO_PULL_LOW_FAILED";
const char *HEATER_WENT_ON_STRING = "HEATER_WENT_ON";
@ -127,6 +140,9 @@ const char *EXE_FAILURE_STRING = "EXE_FAILURE";
const char *MPSOC_HANDLER_CRC_FAILURE_STRING = "MPSOC_HANDLER_CRC_FAILURE";
const char *MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH_STRING = "MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH";
const char *MPSOC_SHUTDOWN_FAILED_STRING = "MPSOC_SHUTDOWN_FAILED";
const char *SUPV_NOT_ON_STRING = "SUPV_NOT_ON";
const char *SUPV_REPLY_TIMEOUT_STRING = "SUPV_REPLY_TIMEOUT";
const char *CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE_STRING = "CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE";
const char *SELF_TEST_I2C_FAILURE_STRING = "SELF_TEST_I2C_FAILURE";
const char *SELF_TEST_SPI_FAILURE_STRING = "SELF_TEST_SPI_FAILURE";
const char *SELF_TEST_ADC_FAILURE_STRING = "SELF_TEST_ADC_FAILURE";
@ -139,6 +155,7 @@ const char *ERROR_STATE_STRING = "ERROR_STATE";
const char *RESET_OCCURED_STRING = "RESET_OCCURED";
const char *BOOTING_FIRMWARE_FAILED_EVENT_STRING = "BOOTING_FIRMWARE_FAILED_EVENT";
const char *BOOTING_BOOTLOADER_FAILED_EVENT_STRING = "BOOTING_BOOTLOADER_FAILED_EVENT";
const char *COM_ERROR_REPLY_RECEIVED_STRING = "COM_ERROR_REPLY_RECEIVED";
const char *SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING = "SUPV_MEMORY_READ_RPT_CRC_FAILURE";
const char *SUPV_UNKNOWN_TM_STRING = "SUPV_UNKNOWN_TM";
const char *SUPV_UNINIMPLEMENTED_TM_STRING = "SUPV_UNINIMPLEMENTED_TM";
@ -147,6 +164,8 @@ const char *SUPV_EXE_FAILURE_STRING = "SUPV_EXE_FAILURE";
const char *SUPV_CRC_FAILURE_EVENT_STRING = "SUPV_CRC_FAILURE_EVENT";
const char *SUPV_HELPER_EXECUTING_STRING = "SUPV_HELPER_EXECUTING";
const char *SUPV_MPSOC_SHUTDOWN_BUILD_FAILED_STRING = "SUPV_MPSOC_SHUTDOWN_BUILD_FAILED";
const char *SUPV_ACK_UNKNOWN_COMMAND_STRING = "SUPV_ACK_UNKNOWN_COMMAND";
const char *SUPV_EXE_ACK_UNKNOWN_COMMAND_STRING = "SUPV_EXE_ACK_UNKNOWN_COMMAND";
const char *SANITIZATION_FAILED_STRING = "SANITIZATION_FAILED";
const char *MOUNTED_SD_CARD_STRING = "MOUNTED_SD_CARD";
const char *SEND_MRAM_DUMP_FAILED_STRING = "SEND_MRAM_DUMP_FAILED";
@ -166,6 +185,7 @@ const char *PDEC_TRYING_RESET_NO_INIT_STRING = "PDEC_TRYING_RESET_NO_INIT";
const char *PDEC_RESET_FAILED_STRING = "PDEC_RESET_FAILED";
const char *OPEN_IRQ_FILE_FAILED_STRING = "OPEN_IRQ_FILE_FAILED";
const char *PDEC_INIT_FAILED_STRING = "PDEC_INIT_FAILED";
const char *PDEC_CONFIG_CORRUPTED_STRING = "PDEC_CONFIG_CORRUPTED";
const char *IMAGE_UPLOAD_FAILED_STRING = "IMAGE_UPLOAD_FAILED";
const char *IMAGE_DOWNLOAD_FAILED_STRING = "IMAGE_DOWNLOAD_FAILED";
const char *IMAGE_UPLOAD_SUCCESSFUL_STRING = "IMAGE_UPLOAD_SUCCESSFUL";
@ -225,6 +245,7 @@ const char *SIDE_SWITCH_TRANSITION_NOT_ALLOWED_12903_STRING = "SIDE_SWITCH_TRANS
const char *CHILDREN_LOST_MODE_STRING = "CHILDREN_LOST_MODE";
const char *GPS_FIX_CHANGE_STRING = "GPS_FIX_CHANGE";
const char *CANT_GET_FIX_STRING = "CANT_GET_FIX";
const char *RESET_FAIL_STRING = "RESET_FAIL";
const char *P60_BOOT_COUNT_STRING = "P60_BOOT_COUNT";
const char *BATT_MODE_STRING = "BATT_MODE";
const char *BATT_MODE_CHANGED_STRING = "BATT_MODE_CHANGED";
@ -260,6 +281,7 @@ const char *TX_OFF_STRING = "TX_OFF";
const char *MISSING_PACKET_STRING = "MISSING_PACKET";
const char *EXPERIMENT_TIMEDOUT_STRING = "EXPERIMENT_TIMEDOUT";
const char *MULTI_PACKET_COMMAND_DONE_STRING = "MULTI_PACKET_COMMAND_DONE";
const char *FS_UNUSABLE_STRING = "FS_UNUSABLE";
const char *SET_CONFIGFILEVALUE_FAILED_STRING = "SET_CONFIGFILEVALUE_FAILED";
const char *GET_CONFIGFILEVALUE_FAILED_STRING = "GET_CONFIGFILEVALUE_FAILED";
const char *INSERT_CONFIGFILEVALUE_FAILED_STRING = "INSERT_CONFIGFILEVALUE_FAILED";
@ -278,6 +300,7 @@ const char *TRYING_I2C_RECOVERY_STRING = "TRYING_I2C_RECOVERY";
const char *I2C_REBOOT_STRING = "I2C_REBOOT";
const char *PDEC_REBOOT_STRING = "PDEC_REBOOT";
const char *FIRMWARE_INFO_STRING = "FIRMWARE_INFO";
const char *ACTIVE_SD_INFO_STRING = "ACTIVE_SD_INFO";
const char *NO_VALID_SENSOR_TEMPERATURE_STRING = "NO_VALID_SENSOR_TEMPERATURE";
const char *NO_HEALTHY_HEATER_AVAILABLE_STRING = "NO_HEALTHY_HEATER_AVAILABLE";
const char *SYRLINKS_OVERHEATING_STRING = "SYRLINKS_OVERHEATING";
@ -286,6 +309,9 @@ const char *CAMERA_OVERHEATING_STRING = "CAMERA_OVERHEATING";
const char *PCDU_SYSTEM_OVERHEATING_STRING = "PCDU_SYSTEM_OVERHEATING";
const char *HEATER_NOT_OFF_FOR_OFF_MODE_STRING = "HEATER_NOT_OFF_FOR_OFF_MODE";
const char *MGT_OVERHEATING_STRING = "MGT_OVERHEATING";
const char *TCS_SWITCHING_HEATER_ON_STRING = "TCS_SWITCHING_HEATER_ON";
const char *TCS_SWITCHING_HEATER_OFF_STRING = "TCS_SWITCHING_HEATER_OFF";
const char *TCS_HEATER_MAX_BURN_TIME_REACHED_STRING = "TCS_HEATER_MAX_BURN_TIME_REACHED";
const char *TX_TIMER_EXPIRED_STRING = "TX_TIMER_EXPIRED";
const char *BIT_LOCK_TX_ON_STRING = "BIT_LOCK_TX_ON";
const char *POSSIBLE_FILE_CORRUPTION_STRING = "POSSIBLE_FILE_CORRUPTION";
@ -301,6 +327,9 @@ const char *DUMP_NOK_CANCELLED_STRING = "DUMP_NOK_CANCELLED";
const char *DUMP_MISC_CANCELLED_STRING = "DUMP_MISC_CANCELLED";
const char *DUMP_HK_CANCELLED_STRING = "DUMP_HK_CANCELLED";
const char *DUMP_CFDP_CANCELLED_STRING = "DUMP_CFDP_CANCELLED";
const char *TEMPERATURE_ALL_ONES_START_STRING = "TEMPERATURE_ALL_ONES_START";
const char *TEMPERATURE_ALL_ONES_RECOVERY_STRING = "TEMPERATURE_ALL_ONES_RECOVERY";
const char *FAULT_HANDLER_TRIGGERED_STRING = "FAULT_HANDLER_TRIGGERED";
const char *translateEvents(Event event) {
switch ((event & 0xFFFF)) {
@ -459,9 +488,15 @@ const char *translateEvents(Event event) {
case (8900):
return CLOCK_SET_STRING;
case (8901):
return CLOCK_DUMP_STRING;
return CLOCK_DUMP_LEGACY_STRING;
case (8902):
return CLOCK_SET_FAILURE_STRING;
case (8903):
return CLOCK_DUMP_STRING;
case (8904):
return CLOCK_DUMP_BEFORE_SETTING_TIME_STRING;
case (8905):
return CLOCK_DUMP_AFTER_SETTING_TIME_STRING;
case (9100):
return TC_DELETION_FAILED_STRING;
case (9700):
@ -478,10 +513,12 @@ const char *translateEvents(Event event) {
return FILESTORE_ERROR_STRING;
case (10804):
return FILENAME_TOO_LARGE_ERROR_STRING;
case (10805):
return HANDLING_CFDP_REQUEST_FAILED_STRING;
case (11200):
return SAFE_RATE_VIOLATION_STRING;
case (11201):
return SAFE_RATE_RECOVERY_STRING;
return RATE_RECOVERY_STRING;
case (11202):
return MULTIPLE_RW_INVALID_STRING;
case (11203):
@ -491,9 +528,17 @@ const char *translateEvents(Event event) {
case (11205):
return MEKF_AUTOMATIC_RESET_STRING;
case (11206):
return MEKF_INVALID_MODE_VIOLATION_STRING;
return PTG_CTRL_NO_ATTITUDE_INFORMATION_STRING;
case (11207):
return SAFE_MODE_CONTROLLER_FAILURE_STRING;
case (11208):
return TLE_TOO_OLD_STRING;
case (11209):
return TLE_FILE_READ_FAILED_STRING;
case (11210):
return PTG_RATE_VIOLATION_STRING;
case (11211):
return DETUMBLE_TRANSITION_FAILED_STRING;
case (11300):
return SWITCH_CMD_SENT_STRING;
case (11301):
@ -502,6 +547,16 @@ const char *translateEvents(Event event) {
return SWITCHING_Q7S_DENIED_STRING;
case (11303):
return FDIR_REACTION_IGNORED_STRING;
case (11304):
return DATASET_READ_FAILED_STRING;
case (11305):
return VOLTAGE_OUT_OF_BOUNDS_STRING;
case (11306):
return TIMEDELTA_OUT_OF_BOUNDS_STRING;
case (11307):
return POWER_LEVEL_LOW_STRING;
case (11308):
return POWER_LEVEL_CRITICAL_STRING;
case (11400):
return GPIO_PULL_HIGH_FAILED_STRING;
case (11401):
@ -548,6 +603,12 @@ const char *translateEvents(Event event) {
return MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH_STRING;
case (11606):
return MPSOC_SHUTDOWN_FAILED_STRING;
case (11607):
return SUPV_NOT_ON_STRING;
case (11608):
return SUPV_REPLY_TIMEOUT_STRING;
case (11609):
return CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE_STRING;
case (11701):
return SELF_TEST_I2C_FAILURE_STRING;
case (11702):
@ -572,6 +633,8 @@ const char *translateEvents(Event event) {
return BOOTING_FIRMWARE_FAILED_EVENT_STRING;
case (11902):
return BOOTING_BOOTLOADER_FAILED_EVENT_STRING;
case (11903):
return COM_ERROR_REPLY_RECEIVED_STRING;
case (12001):
return SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING;
case (12002):
@ -588,6 +651,10 @@ const char *translateEvents(Event event) {
return SUPV_HELPER_EXECUTING_STRING;
case (12008):
return SUPV_MPSOC_SHUTDOWN_BUILD_FAILED_STRING;
case (12009):
return SUPV_ACK_UNKNOWN_COMMAND_STRING;
case (12010):
return SUPV_EXE_ACK_UNKNOWN_COMMAND_STRING;
case (12100):
return SANITIZATION_FAILED_STRING;
case (12101):
@ -626,6 +693,8 @@ const char *translateEvents(Event event) {
return OPEN_IRQ_FILE_FAILED_STRING;
case (12414):
return PDEC_INIT_FAILED_STRING;
case (12415):
return PDEC_CONFIG_CORRUPTED_STRING;
case (12500):
return IMAGE_UPLOAD_FAILED_STRING;
case (12501):
@ -744,6 +813,8 @@ const char *translateEvents(Event event) {
return GPS_FIX_CHANGE_STRING;
case (13101):
return CANT_GET_FIX_STRING;
case (13102):
return RESET_FAIL_STRING;
case (13200):
return P60_BOOT_COUNT_STRING;
case (13201):
@ -814,6 +885,8 @@ const char *translateEvents(Event event) {
return EXPERIMENT_TIMEDOUT_STRING;
case (13802):
return MULTI_PACKET_COMMAND_DONE_STRING;
case (13803):
return FS_UNUSABLE_STRING;
case (13901):
return SET_CONFIGFILEVALUE_FAILED_STRING;
case (13902):
@ -850,6 +923,8 @@ const char *translateEvents(Event event) {
return PDEC_REBOOT_STRING;
case (14013):
return FIRMWARE_INFO_STRING;
case (14014):
return ACTIVE_SD_INFO_STRING;
case (14100):
return NO_VALID_SENSOR_TEMPERATURE_STRING;
case (14101):
@ -866,6 +941,12 @@ const char *translateEvents(Event event) {
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
case (14108):
return MGT_OVERHEATING_STRING;
case (14109):
return TCS_SWITCHING_HEATER_ON_STRING;
case (14110):
return TCS_SWITCHING_HEATER_OFF_STRING;
case (14111):
return TCS_HEATER_MAX_BURN_TIME_REACHED_STRING;
case (14201):
return TX_TIMER_EXPIRED_STRING;
case (14202):
@ -896,6 +977,12 @@ const char *translateEvents(Event event) {
return DUMP_HK_CANCELLED_STRING;
case (14314):
return DUMP_CFDP_CANCELLED_STRING;
case (14500):
return TEMPERATURE_ALL_ONES_START_STRING;
case (14501):
return TEMPERATURE_ALL_ONES_RECOVERY_STRING;
case (14600):
return FAULT_HANDLER_TRIGGERED_STRING;
default:
return "UNKNOWN_EVENT";
}

View File

@ -1,15 +1,17 @@
/**
* @brief Auto-generated object translation file.
* @details
* Contains 175 translations.
* Generated on: 2023-06-21 19:01:02
* Contains 180 translations.
* Generated on: 2024-05-06 13:47:38
*/
#include "translateObjects.h"
const char *P60DOCK_TEST_TASK_STRING = "P60DOCK_TEST_TASK";
const char *ACS_CONTROLLER_STRING = "ACS_CONTROLLER";
const char *CORE_CONTROLLER_STRING = "CORE_CONTROLLER";
const char *POWER_CONTROLLER_STRING = "POWER_CONTROLLER";
const char *GLOBAL_JSON_CFG_STRING = "GLOBAL_JSON_CFG";
const char *XIPHOS_WDT_STRING = "XIPHOS_WDT";
const char *THERMAL_CONTROLLER_STRING = "THERMAL_CONTROLLER";
const char *MGM_0_LIS3_HANDLER_STRING = "MGM_0_LIS3_HANDLER";
const char *GYRO_0_ADIS_HANDLER_STRING = "GYRO_0_ADIS_HANDLER";
@ -62,6 +64,7 @@ const char *PTME_VC3_CFDP_TM_STRING = "PTME_VC3_CFDP_TM";
const char *PLOC_MPSOC_HANDLER_STRING = "PLOC_MPSOC_HANDLER";
const char *PLOC_SUPERVISOR_HANDLER_STRING = "PLOC_SUPERVISOR_HANDLER";
const char *PLOC_SUPERVISOR_HELPER_STRING = "PLOC_SUPERVISOR_HELPER";
const char *PLOC_MPSOC_COMMUNICATION_STRING = "PLOC_MPSOC_COMMUNICATION";
const char *SCEX_STRING = "SCEX";
const char *SOLAR_ARRAY_DEPL_HANDLER_STRING = "SOLAR_ARRAY_DEPL_HANDLER";
const char *HEATER_HANDLER_STRING = "HEATER_HANDLER";
@ -164,11 +167,13 @@ const char *PUS_TM_FUNNEL_STRING = "PUS_TM_FUNNEL";
const char *CFDP_TM_FUNNEL_STRING = "CFDP_TM_FUNNEL";
const char *CFDP_HANDLER_STRING = "CFDP_HANDLER";
const char *CFDP_DISTRIBUTOR_STRING = "CFDP_DISTRIBUTOR";
const char *CFDP_FAULT_HANDLER_STRING = "CFDP_FAULT_HANDLER";
const char *EIVE_SYSTEM_STRING = "EIVE_SYSTEM";
const char *ACS_SUBSYSTEM_STRING = "ACS_SUBSYSTEM";
const char *PL_SUBSYSTEM_STRING = "PL_SUBSYSTEM";
const char *TCS_SUBSYSTEM_STRING = "TCS_SUBSYSTEM";
const char *COM_SUBSYSTEM_STRING = "COM_SUBSYSTEM";
const char *EPS_SUBSYSTEM_STRING = "EPS_SUBSYSTEM";
const char *MISC_TM_STORE_STRING = "MISC_TM_STORE";
const char *OK_TM_STORE_STRING = "OK_TM_STORE";
const char *NOT_OK_TM_STORE_STRING = "NOT_OK_TM_STORE";
@ -190,8 +195,12 @@ const char *translateObject(object_id_t object) {
return ACS_CONTROLLER_STRING;
case 0x43000003:
return CORE_CONTROLLER_STRING;
case 0x43000004:
return POWER_CONTROLLER_STRING;
case 0x43000006:
return GLOBAL_JSON_CFG_STRING;
case 0x43000007:
return XIPHOS_WDT_STRING;
case 0x43400001:
return THERMAL_CONTROLLER_STRING;
case 0x44120006:
@ -296,6 +305,8 @@ const char *translateObject(object_id_t object) {
return PLOC_SUPERVISOR_HANDLER_STRING;
case 0x44330017:
return PLOC_SUPERVISOR_HELPER_STRING;
case 0x44330018:
return PLOC_MPSOC_COMMUNICATION_STRING;
case 0x44330032:
return SCEX_STRING;
case 0x444100A2:
@ -500,6 +511,8 @@ const char *translateObject(object_id_t object) {
return CFDP_HANDLER_STRING;
case 0x73000206:
return CFDP_DISTRIBUTOR_STRING;
case 0x73000207:
return CFDP_FAULT_HANDLER_STRING;
case 0x73010000:
return EIVE_SYSTEM_STRING;
case 0x73010001:
@ -510,6 +523,8 @@ const char *translateObject(object_id_t object) {
return TCS_SUBSYSTEM_STRING;
case 0x73010004:
return COM_SUBSYSTEM_STRING;
case 0x73010005:
return EPS_SUBSYSTEM_STRING;
case 0x73020001:
return MISC_TM_STORE_STRING;
case 0x73020002:

View File

@ -13,6 +13,7 @@
#include <linux/tcs/Max31865RtdPolling.h>
#include <mission/acs/SusHandler.h>
#include <mission/controller/AcsController.h>
#include <mission/controller/PowerController.h>
#include <mission/genericFactory.h>
#include <mission/payload/ScexDeviceHandler.h>
#include <mission/system/acs/SusAssembly.h>
@ -23,13 +24,10 @@
#include "OBSWConfig.h"
#include "devConf.h"
#include "devices/addresses.h"
#include "devices/gpioIds.h"
#include "eive/definitions.h"
#include "mission/system/acs/acsModeTree.h"
#include "mission/system/tcs/tcsModeTree.h"
#include "mission/system/tree/payloadModeTree.h"
#include "mission/tcs/defs.h"
#include "mission/system/payload/payloadModeTree.h"
#include "mission/system/power/epsModeTree.h"
void ObjectFactory::createSunSensorComponents(GpioIF* gpioComIF, SpiComIF* spiComIF,
PowerSwitchIF& pwrSwitcher, std::string spiDev,
@ -204,74 +202,78 @@ void ObjectFactory::createRtdComponents(std::string spiDev, GpioIF* gpioComIF,
GpioCallback* gpioRtdIc0 = new GpioCallback("Chip select RTD IC0", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_3, gpioRtdIc0);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_0, gpioRtdIc0);
GpioCallback* gpioRtdIc1 = new GpioCallback("Chip select RTD IC1", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_4, gpioRtdIc1);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_1, gpioRtdIc1);
GpioCallback* gpioRtdIc2 = new GpioCallback("Chip select RTD IC2", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_5, gpioRtdIc2);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_2, gpioRtdIc2);
GpioCallback* gpioRtdIc3 = new GpioCallback("Chip select RTD IC3", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_6, gpioRtdIc3);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_3, gpioRtdIc3);
GpioCallback* gpioRtdIc4 = new GpioCallback("Chip select RTD IC4", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_7, gpioRtdIc4);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_4, gpioRtdIc4);
GpioCallback* gpioRtdIc5 = new GpioCallback("Chip select RTD IC5", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_8, gpioRtdIc5);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_5, gpioRtdIc5);
GpioCallback* gpioRtdIc6 = new GpioCallback("Chip select RTD IC6", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_9, gpioRtdIc6);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_6, gpioRtdIc6);
GpioCallback* gpioRtdIc7 = new GpioCallback("Chip select RTD IC7", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_10, gpioRtdIc7);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_7, gpioRtdIc7);
GpioCallback* gpioRtdIc8 = new GpioCallback("Chip select RTD IC8", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_11, gpioRtdIc8);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_8, gpioRtdIc8);
GpioCallback* gpioRtdIc9 = new GpioCallback("Chip select RTD IC9", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_12, gpioRtdIc9);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_9, gpioRtdIc9);
GpioCallback* gpioRtdIc10 = new GpioCallback("Chip select RTD IC10", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_13, gpioRtdIc10);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_10, gpioRtdIc10);
GpioCallback* gpioRtdIc11 = new GpioCallback("Chip select RTD IC11", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_14, gpioRtdIc11);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_11, gpioRtdIc11);
GpioCallback* gpioRtdIc12 = new GpioCallback("Chip select RTD IC12", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_15, gpioRtdIc12);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_12, gpioRtdIc12);
GpioCallback* gpioRtdIc13 = new GpioCallback("Chip select RTD IC13", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_16, gpioRtdIc13);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_13, gpioRtdIc13);
GpioCallback* gpioRtdIc14 = new GpioCallback("Chip select RTD IC14", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_17, gpioRtdIc14);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_14, gpioRtdIc14);
GpioCallback* gpioRtdIc15 = new GpioCallback("Chip select RTD IC15", Direction::OUT, Levels::HIGH,
&gpioCallbacks::spiCsDecoderCallback, gpioComIF);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_18, gpioRtdIc15);
rtdGpioCookie->addGpio(gpioIds::RTD_IC_15, gpioRtdIc15);
gpioChecker(gpioComIF->addGpios(rtdGpioCookie), "RTDs");
#if OBSW_ADD_RTD_DEVICES == 1
using namespace EiveMax31855;
// ! NOTE !
// The chip selects for device 9 and 11 are swapped here. It is strongly suspected the cables
// for those devices were swapped during integration. This is probably the easiest way to
// fix the issue.
std::array<std::pair<address_t, gpioId_t>, NUM_RTDS> cookieArgs = {{
{addresses::RTD_IC_0, gpioIds::RTD_IC_0},
{addresses::RTD_IC_1, gpioIds::RTD_IC_1},
{addresses::RTD_IC_2, gpioIds::RTD_IC_2},
{addresses::RTD_IC_3, gpioIds::RTD_IC_3},
{addresses::RTD_IC_4, gpioIds::RTD_IC_4},
{addresses::RTD_IC_5, gpioIds::RTD_IC_5},
{addresses::RTD_IC_6, gpioIds::RTD_IC_6},
{addresses::RTD_IC_7, gpioIds::RTD_IC_7},
{addresses::RTD_IC_8, gpioIds::RTD_IC_8},
{addresses::RTD_IC_9, gpioIds::RTD_IC_9},
{addresses::RTD_IC_10, gpioIds::RTD_IC_10},
{addresses::RTD_IC_11, gpioIds::RTD_IC_11},
{addresses::RTD_IC_10, gpioIds::RTD_IC_10},
{addresses::RTD_IC_9, gpioIds::RTD_IC_9},
{addresses::RTD_IC_12, gpioIds::RTD_IC_12},
{addresses::RTD_IC_13, gpioIds::RTD_IC_13},
{addresses::RTD_IC_14, gpioIds::RTD_IC_14},
{addresses::RTD_IC_15, gpioIds::RTD_IC_15},
{addresses::RTD_IC_16, gpioIds::RTD_IC_16},
{addresses::RTD_IC_17, gpioIds::RTD_IC_17},
{addresses::RTD_IC_18, gpioIds::RTD_IC_18},
}};
// HSPD: Heatspreader
@ -329,14 +331,23 @@ void ObjectFactory::createScexComponents(std::string uartDev, PowerSwitchIF* pwr
scexHandler->connectModeTreeParent(satsystem::payload::SUBSYSTEM);
}
AcsController* ObjectFactory::createAcsController(bool connectSubsystem, bool enableHkSets) {
auto acsCtrl = new AcsController(objects::ACS_CONTROLLER, enableHkSets);
AcsController* ObjectFactory::createAcsController(bool connectSubsystem, bool enableHkSets,
SdCardMountedIF& mountedIF) {
auto acsCtrl = new AcsController(objects::ACS_CONTROLLER, enableHkSets, mountedIF);
if (connectSubsystem) {
acsCtrl->connectModeTreeParent(satsystem::acs::ACS_SUBSYSTEM);
}
return acsCtrl;
}
PowerController* ObjectFactory::createPowerController(bool connectSubsystem, bool enableHkSets) {
auto pwrCtrl = new PowerController(objects::POWER_CONTROLLER, enableHkSets);
if (connectSubsystem) {
pwrCtrl->connectModeTreeParent(satsystem::eps::EPS_SUBSYSTEM);
}
return pwrCtrl;
}
void ObjectFactory::gpioChecker(ReturnValue_t result, std::string output) {
if (result != returnvalue::OK) {
sif::error << "ObjectFactory: Adding GPIOs failed for " << output << std::endl;

View File

@ -16,6 +16,7 @@ class GpioIF;
class SpiComIF;
class PowerSwitchIF;
class AcsController;
class PowerController;
namespace ObjectFactory {
@ -30,6 +31,8 @@ void createScexComponents(std::string uartDev, PowerSwitchIF* pwrSwitcher,
void gpioChecker(ReturnValue_t result, std::string output);
AcsController* createAcsController(bool connectSubsystem, bool enableHkSets);
AcsController* createAcsController(bool connectSubsystem, bool enableHkSets,
SdCardMountedIF& mountedIF);
PowerController* createPowerController(bool connectSubsystem, bool enableHkSets);
} // namespace ObjectFactory

View File

@ -767,6 +767,9 @@ void AcsBoardPolling::mgmRm3100Handler(MgmRm3100& mgm) {
mgm.replyResult = result;
return;
}
// For some reason, bit 1 is sometimes set on the reply, even if it is not set for the
// command.. Ignore it for now by clearing it.
rawReply[1] &= ~(1 << 1);
if (rawReply[1] != mgmRm3100::CMM_VALUE) {
sif::error << "AcsBoardPolling: MGM RM3100 read back CMM invalid" << std::endl;
mgm.replyResult = result;

119
linux/acs/GPSDefinitions.h Normal file
View File

@ -0,0 +1,119 @@
#ifndef MISSION_ACS_ARCHIVE_GPSDEFINITIONS_H_
#define MISSION_ACS_ARCHIVE_GPSDEFINITIONS_H_
#include "eive/eventSubsystemIds.h"
#include "fsfw/datapoollocal/StaticLocalDataSet.h"
#include "fsfw/devicehandlers/DeviceHandlerIF.h"
namespace GpsHyperion {
enum FixMode : uint8_t { NOT_SEEN = 0, NO_FIX = 1, FIX_2D = 2, FIX_3D = 3 };
enum GnssChip : uint8_t { A_SIDE = 0, B_SIDE = 1 };
static constexpr uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::GPS_HANDLER;
//! [EXPORT] : [COMMENT] Fix has changed. P1: New fix. P2: Missed fix changes
//! 0: Not seen, 1: No Fix, 2: 2D-Fix, 3: 3D-Fix
static constexpr Event GPS_FIX_CHANGE = event::makeEvent(SUBSYSTEM_ID, 0, severity::INFO);
//! [EXPORT] : [COMMENT] Could not get fix in maximum allowed time. Trying to reset both GNSS
//! devices. P1: Maximum allowed time to get a fix after the GPS was switched on.
static constexpr Event CANT_GET_FIX = event::makeEvent(SUBSYSTEM_ID, 1, severity::MEDIUM);
//! [EXPORT] : [COMMENT] Failed to reset an GNNS Device. P1: Board-Side.
static constexpr Event RESET_FAIL = event::makeEvent(SUBSYSTEM_ID, 2, severity::HIGH);
static constexpr DeviceCommandId_t GPS_REPLY = 0;
static constexpr DeviceCommandId_t TRIGGER_RESET_PIN_GNSS = 5;
enum SetIds : uint32_t {
CORE_DATASET,
SKYVIEW_DATASET,
};
enum GpsPoolIds : lp_id_t {
LATITUDE,
LONGITUDE,
ALTITUDE,
SPEED,
FIX_MODE,
SATS_IN_USE,
SATS_IN_VIEW,
UNIX_SECONDS,
YEAR,
MONTH,
DAY,
HOURS,
MINUTES,
SECONDS,
SKYVIEW_UNIX_SECONDS,
PRN_ID,
AZIMUTH,
ELEVATION,
SIGNAL2NOISE,
USED,
};
static constexpr uint8_t CORE_DATASET_ENTRIES = 14;
static constexpr uint8_t SKYVIEW_ENTRIES = 6;
static constexpr uint8_t MAX_SATELLITES = 30;
} // namespace GpsHyperion
class GpsPrimaryDataset : public StaticLocalDataSet<GpsHyperion::CORE_DATASET_ENTRIES> {
public:
GpsPrimaryDataset(object_id_t gpsId)
: StaticLocalDataSet(sid_t(gpsId, GpsHyperion::CORE_DATASET)) {
setAllVariablesReadOnly();
}
lp_var_t<double> latitude = lp_var_t<double>(sid.objectId, GpsHyperion::LATITUDE, this);
lp_var_t<double> longitude = lp_var_t<double>(sid.objectId, GpsHyperion::LONGITUDE, this);
lp_var_t<double> altitude = lp_var_t<double>(sid.objectId, GpsHyperion::ALTITUDE, this);
lp_var_t<double> speed = lp_var_t<double>(sid.objectId, GpsHyperion::SPEED, this);
lp_var_t<uint8_t> fixMode = lp_var_t<uint8_t>(sid.objectId, GpsHyperion::FIX_MODE, this);
lp_var_t<uint8_t> satInUse = lp_var_t<uint8_t>(sid.objectId, GpsHyperion::SATS_IN_USE, this);
lp_var_t<uint8_t> satInView = lp_var_t<uint8_t>(sid.objectId, GpsHyperion::SATS_IN_VIEW, this);
lp_var_t<uint16_t> year = lp_var_t<uint16_t>(sid.objectId, GpsHyperion::YEAR, this);
lp_var_t<uint8_t> month = lp_var_t<uint8_t>(sid.objectId, GpsHyperion::MONTH, this);
lp_var_t<uint8_t> day = lp_var_t<uint8_t>(sid.objectId, GpsHyperion::DAY, this);
lp_var_t<uint8_t> hours = lp_var_t<uint8_t>(sid.objectId, GpsHyperion::HOURS, this);
lp_var_t<uint8_t> minutes = lp_var_t<uint8_t>(sid.objectId, GpsHyperion::MINUTES, this);
lp_var_t<uint8_t> seconds = lp_var_t<uint8_t>(sid.objectId, GpsHyperion::SECONDS, this);
lp_var_t<uint32_t> unixSeconds =
lp_var_t<uint32_t>(sid.objectId, GpsHyperion::UNIX_SECONDS, this);
private:
friend class GpsHyperionLinuxController;
friend class GpsCtrlDummy;
GpsPrimaryDataset(HasLocalDataPoolIF* hkOwner)
: StaticLocalDataSet(hkOwner, GpsHyperion::CORE_DATASET) {}
};
class SkyviewDataset : public StaticLocalDataSet<GpsHyperion::SKYVIEW_ENTRIES> {
public:
SkyviewDataset(object_id_t gpsId)
: StaticLocalDataSet(sid_t(gpsId, GpsHyperion::SKYVIEW_DATASET)) {
setAllVariablesReadOnly();
}
lp_var_t<double> unixSeconds =
lp_var_t<double>(sid.objectId, GpsHyperion::SKYVIEW_UNIX_SECONDS, this);
lp_vec_t<int16_t, GpsHyperion::MAX_SATELLITES> prn_id =
lp_vec_t<int16_t, GpsHyperion::MAX_SATELLITES>(sid.objectId, GpsHyperion::PRN_ID, this);
lp_vec_t<int16_t, GpsHyperion::MAX_SATELLITES> azimuth =
lp_vec_t<int16_t, GpsHyperion::MAX_SATELLITES>(sid.objectId, GpsHyperion::AZIMUTH, this);
lp_vec_t<int16_t, GpsHyperion::MAX_SATELLITES> elevation =
lp_vec_t<int16_t, GpsHyperion::MAX_SATELLITES>(sid.objectId, GpsHyperion::ELEVATION, this);
lp_vec_t<double, GpsHyperion::MAX_SATELLITES> signal2noise =
lp_vec_t<double, GpsHyperion::MAX_SATELLITES>(sid.objectId, GpsHyperion::SIGNAL2NOISE, this);
lp_vec_t<uint8_t, GpsHyperion::MAX_SATELLITES> used =
lp_vec_t<uint8_t, GpsHyperion::MAX_SATELLITES>(sid.objectId, GpsHyperion::USED, this);
private:
friend class GpsHyperionLinuxController;
friend class GpsCtrlDummy;
SkyviewDataset(HasLocalDataPoolIF* hkOwner)
: StaticLocalDataSet(hkOwner, GpsHyperion::SKYVIEW_DATASET) {}
};
#endif /* MISSION_ACS_ARCHIVE_GPSDEFINITIONS_H_ */

View File

@ -21,6 +21,7 @@ GpsHyperionLinuxController::GpsHyperionLinuxController(object_id_t objectId, obj
bool enableHkSets, bool debugHyperionGps)
: ExtendedControllerBase(objectId),
gpsSet(this),
skyviewSet(this),
enableHkSets(enableHkSets),
debugHyperionGps(debugHyperionGps) {}
@ -29,28 +30,35 @@ GpsHyperionLinuxController::~GpsHyperionLinuxController() {
gps_close(&gps);
}
LocalPoolDataSetBase *GpsHyperionLinuxController::getDataSetHandle(sid_t sid) { return &gpsSet; }
LocalPoolDataSetBase *GpsHyperionLinuxController::getDataSetHandle(sid_t sid) {
switch (sid.ownerSetId) {
case GpsHyperion::CORE_DATASET:
return &gpsSet;
case GpsHyperion::SKYVIEW_DATASET:
return &skyviewSet;
default:
return nullptr;
}
return nullptr;
}
ReturnValue_t GpsHyperionLinuxController::checkModeCommand(Mode_t mode, Submode_t submode,
uint32_t *msToReachTheMode) {
if (not modeCommanded) {
if (mode == MODE_ON or mode == MODE_OFF) {
// 5h time to reach fix
*msToReachTheMode = MAX_SECONDS_TO_REACH_FIX;
maxTimeToReachFix.resetTimer();
modeCommanded = true;
} else if (mode == MODE_NORMAL) {
return HasModesIF::INVALID_MODE;
}
if (mode == MODE_ON) {
maxTimeToReachFix.resetTimer();
gainedNewFix.timeOut();
} else if (mode == MODE_NORMAL) {
return HasModesIF::INVALID_MODE;
}
if (mode == MODE_OFF) {
maxTimeToReachFix.timeOut();
gainedNewFix.timeOut();
PoolReadGuard pg(&gpsSet);
gpsSet.setValidity(false, true);
// There can't be a fix with a device that is off.
triggerEvent(GpsHyperion::GPS_FIX_CHANGE, gpsSet.fixMode.value, 0);
gpsSet.fixMode.value = 0;
// The ctrl is off, so it cannot detect the data from the devices.
handleFixChangedEvent(GpsHyperion::FixMode::NOT_SEEN);
gpsSet.fixMode.value = GpsHyperion::FixMode::NOT_SEEN;
oneShotSwitches.reset();
modeCommanded = false;
}
return returnvalue::OK;
}
@ -64,13 +72,16 @@ ReturnValue_t GpsHyperionLinuxController::executeAction(ActionId_t actionId,
PoolReadGuard pg(&gpsSet);
// Set HK entries invalid
gpsSet.setValidity(false, true);
resetCallback(data, size, resetCallbackArgs);
ReturnValue_t result = resetCallback(data, size, resetCallbackArgs);
if (result != returnvalue::OK) {
return result;
}
return HasActionsIF::EXECUTION_FINISHED;
}
return DeviceHandlerIF::COMMAND_NOT_IMPLEMENTED;
}
}
return returnvalue::OK;
return HasActionsIF::INVALID_ACTION_ID;
}
ReturnValue_t GpsHyperionLinuxController::initializeLocalDataPool(
@ -89,7 +100,14 @@ ReturnValue_t GpsHyperionLinuxController::initializeLocalDataPool(
localDataPoolMap.emplace(GpsHyperion::SATS_IN_USE, new PoolEntry<uint8_t>());
localDataPoolMap.emplace(GpsHyperion::SATS_IN_VIEW, new PoolEntry<uint8_t>());
localDataPoolMap.emplace(GpsHyperion::FIX_MODE, new PoolEntry<uint8_t>());
poolManager.subscribeForRegularPeriodicPacket({gpsSet.getSid(), enableHkSets, 30.0});
poolManager.subscribeForRegularPeriodicPacket({gpsSet.getSid(), enableHkSets, 60.0});
localDataPoolMap.emplace(GpsHyperion::SKYVIEW_UNIX_SECONDS, new PoolEntry<double>());
localDataPoolMap.emplace(GpsHyperion::PRN_ID, new PoolEntry<int16_t>());
localDataPoolMap.emplace(GpsHyperion::AZIMUTH, new PoolEntry<int16_t>());
localDataPoolMap.emplace(GpsHyperion::ELEVATION, new PoolEntry<int16_t>());
localDataPoolMap.emplace(GpsHyperion::SIGNAL2NOISE, new PoolEntry<double>());
localDataPoolMap.emplace(GpsHyperion::USED, new PoolEntry<uint8_t>());
poolManager.subscribeForRegularPeriodicPacket({skyviewSet.getSid(), false, 120.0});
return returnvalue::OK;
}
@ -166,49 +184,53 @@ bool GpsHyperionLinuxController::readGpsDataFromGpsd() {
if (mode == MODE_OFF) {
return false;
}
unsigned int readIdx = 0;
if (readMode == ReadModes::SOCKET) {
// Poll the GPS.
if (gps_waiting(&gps, 0)) {
if (-1 == gps_read(&gps)) {
while (gps_waiting(&gps, 0)) {
int retval = gps_read(&gps);
if (retval < 0) {
readError();
return false;
}
oneShotSwitches.gpsReadFailedSwitch = true;
ReturnValue_t result = handleGpsReadData();
if (result == returnvalue::OK) {
return true;
} else {
return false;
readIdx++;
if (readIdx >= 40) {
sif::warning << "GpsHyperionLinuxController: Received " << readIdx
<< " GPSD message consecutively" << std::endl;
break;
}
noModeSetCntr = 0;
} else {
return false;
}
if (readIdx > 0) {
oneShotSwitches.gpsReadFailedSwitch = true;
handleGpsReadData();
}
} else if (readMode == ReadModes::SHM) {
sif::error << "GpsHyperionLinuxController::readGpsDataFromGpsdPermanentLoop: "
"SHM read not implemented"
<< std::endl;
}
return true;
return false;
}
ReturnValue_t GpsHyperionLinuxController::handleGpsReadData() {
bool modeIsSet = true;
if (MODE_SET != (MODE_SET & gps.set)) {
if (mode != MODE_OFF) {
if (maxTimeToReachFix.hasTimedOut() and oneShotSwitches.cantGetFixSwitch) {
sif::warning << "GpsHyperionLinuxController: No mode could be set in allowed "
<< maxTimeToReachFix.getTimeoutMs() / 1000 << " seconds" << std::endl;
triggerEvent(GpsHyperion::CANT_GET_FIX, maxTimeToReachFix.getTimeoutMs());
oneShotSwitches.cantGetFixSwitch = false;
}
modeIsSet = false;
} else {
// GPS device is off anyway, so do other handling
// GPS ctrl is off anyway, so do other handling
return returnvalue::FAILED;
}
}
ReturnValue_t result = handleCoreTelemetry(modeIsSet);
if (result != returnvalue::OK) {
return result;
}
result = handleSkyviewTelemetry();
return result;
}
ReturnValue_t GpsHyperionLinuxController::handleCoreTelemetry(bool modeIsSet) {
PoolReadGuard pg(&gpsSet);
if (pg.getReadResult() != returnvalue::OK) {
#if FSFW_VERBOSE_LEVEL >= 1
@ -221,25 +243,44 @@ ReturnValue_t GpsHyperionLinuxController::handleGpsReadData() {
uint8_t newFix = 0;
if (modeIsSet) {
// 0: Not seen, 1: No fix, 2: 2D-Fix, 3: 3D-Fix
if (gps.fix.mode == 2 or gps.fix.mode == 3) {
if (gps.fix.mode == GpsHyperion::FixMode::FIX_2D or
gps.fix.mode == GpsHyperion::FixMode::FIX_3D) {
validFix = true;
maxTimeToReachFix.resetTimer();
}
newFix = gps.fix.mode;
if (newFix == 0 or newFix == 1) {
if (modeCommanded and maxTimeToReachFix.hasTimedOut()) {
// We are supposed to be on and functioning, but no fix was found
if (mode == MODE_ON or mode == MODE_NORMAL) {
mode = MODE_OFF;
}
modeCommanded = false;
}
}
}
if (gpsSet.fixMode.value != newFix) {
triggerEvent(GpsHyperion::GPS_FIX_CHANGE, gpsSet.fixMode.value, newFix);
handleFixChangedEvent(newFix);
}
gpsSet.fixMode = newFix;
gpsSet.fixMode.setValid(modeIsSet);
// We are supposed to be on and functioning, but no fix was found
if (not validFix) {
if (maxTimeToReachFix.hasTimedOut()) {
// Set HK entries invalid
gpsSet.setValidity(false, true);
if (oneShotSwitches.cantGetFixSwitch) {
sif::warning << "GpsHyperionLinuxController: No fix detected in allowed "
<< maxTimeToReachFix.getTimeoutMs() / 1000 << " seconds" << std::endl;
triggerEvent(GpsHyperion::CANT_GET_FIX, maxTimeToReachFix.getTimeoutMs());
oneShotSwitches.cantGetFixSwitch = false;
// Try resetting the devices
if (resetCallback != nullptr) {
uint8_t chip = GpsHyperion::GnssChip::A_SIDE;
ReturnValue_t result = resetCallback(&chip, 1, resetCallbackArgs);
if (result != returnvalue::OK) {
triggerEvent(GpsHyperion::RESET_FAIL, chip);
}
chip = GpsHyperion::GnssChip::B_SIDE;
result = resetCallback(&chip, 1, resetCallbackArgs);
if (result != returnvalue::OK) {
triggerEvent(GpsHyperion::RESET_FAIL, chip);
}
}
}
}
}
// Only set on specific messages, so only set a valid flag to invalid
// if not set for more than a full message set (10 messages here)
@ -252,9 +293,12 @@ ReturnValue_t GpsHyperionLinuxController::handleGpsReadData() {
}
satNotSetCounter = 0;
} else {
satNotSetCounter++;
if (gpsSet.satInUse.isValid() and satNotSetCounter >= 10) {
if (satNotSetCounter < 10) {
satNotSetCounter++;
} else {
gpsSet.satInUse.value = 0;
gpsSet.satInUse.setValid(false);
gpsSet.satInView.value = 0;
gpsSet.satInView.setValid(false);
}
}
@ -262,22 +306,24 @@ ReturnValue_t GpsHyperionLinuxController::handleGpsReadData() {
// LATLON is set for every message, no need for a counter
bool latValid = false;
bool longValid = false;
if (LATLON_SET == (LATLON_SET & gps.set)) {
if (std::isfinite(gps.fix.latitude)) {
// Negative latitude -> South direction
gpsSet.latitude.value = gps.fix.latitude;
// As specified in gps.h: Only valid if mode >= 2
if (gps.fix.mode >= 2) {
latValid = true;
if (modeIsSet) {
if (LATLON_SET == (LATLON_SET & gps.set)) {
if (std::isfinite(gps.fix.latitude)) {
// Negative latitude -> South direction
gpsSet.latitude.value = gps.fix.latitude;
// As specified in gps.h: Only valid if mode >= 2
if (gps.fix.mode >= GpsHyperion::FixMode::FIX_2D) {
latValid = true;
}
}
}
if (std::isfinite(gps.fix.longitude)) {
// Negative longitude -> West direction
gpsSet.longitude.value = gps.fix.longitude;
// As specified in gps.h: Only valid if mode >= 2
if (gps.fix.mode >= 2) {
longValid = true;
if (std::isfinite(gps.fix.longitude)) {
// Negative longitude -> West direction
gpsSet.longitude.value = gps.fix.longitude;
// As specified in gps.h: Only valid if mode >= 2
if (gps.fix.mode >= GpsHyperion::FixMode::FIX_2D) {
longValid = true;
}
}
}
}
@ -286,20 +332,24 @@ ReturnValue_t GpsHyperionLinuxController::handleGpsReadData() {
// ALTITUDE is set for every message, no need for a counter
bool altitudeValid = false;
if (ALTITUDE_SET == (ALTITUDE_SET & gps.set) && std::isfinite(gps.fix.altitude)) {
gpsSet.altitude.value = gps.fix.altitude;
// As specified in gps.h: Only valid if mode == 3
if (gps.fix.mode == 3) {
altitudeValid = true;
if (modeIsSet) {
if (ALTITUDE_SET == (ALTITUDE_SET & gps.set) && std::isfinite(gps.fix.altitude)) {
gpsSet.altitude.value = gps.fix.altitude;
// As specified in gps.h: Only valid if mode == 3
if (gps.fix.mode == GpsHyperion::FixMode::FIX_3D) {
altitudeValid = true;
}
}
}
gpsSet.altitude.setValid(altitudeValid);
// SPEED is set for every message, no need for a counter
bool speedValid = false;
if (SPEED_SET == (SPEED_SET & gps.set) && std::isfinite(gps.fix.speed)) {
gpsSet.speed.value = gps.fix.speed;
speedValid = true;
if (modeIsSet) {
if (SPEED_SET == (SPEED_SET & gps.set) && std::isfinite(gps.fix.speed)) {
gpsSet.speed.value = gps.fix.speed;
speedValid = true;
}
}
gpsSet.speed.setValid(speedValid);
@ -369,6 +419,22 @@ ReturnValue_t GpsHyperionLinuxController::handleGpsReadData() {
return returnvalue::OK;
}
ReturnValue_t GpsHyperionLinuxController::handleSkyviewTelemetry() {
PoolReadGuard pg(&skyviewSet);
if (pg.getReadResult() != returnvalue::OK) {
return returnvalue::FAILED;
}
skyviewSet.unixSeconds.value = gps.skyview_time;
for (int sat = 0; sat < GpsHyperion::MAX_SATELLITES; sat++) {
skyviewSet.prn_id.value[sat] = gps.skyview[sat].PRN;
skyviewSet.azimuth.value[sat] = gps.skyview[sat].azimuth;
skyviewSet.elevation.value[sat] = gps.skyview[sat].elevation;
skyviewSet.signal2noise.value[sat] = gps.skyview[sat].ss;
skyviewSet.used.value[sat] = gps.skyview[sat].used;
}
return returnvalue::OK;
}
void GpsHyperionLinuxController::overwriteTimeIfNotSane(timeval time, bool validFix) {
if (not timeInit and validFix) {
if (not utility::timeSanityCheck()) {
@ -384,3 +450,14 @@ void GpsHyperionLinuxController::overwriteTimeIfNotSane(timeval time, bool valid
timeInit = true;
}
}
void GpsHyperionLinuxController::handleFixChangedEvent(uint8_t newFix) {
if (gainedNewFix.hasTimedOut()) {
triggerEvent(GpsHyperion::GPS_FIX_CHANGE, newFix, fixChangeCounter);
fixChangeCounter = 0;
gainedNewFix.resetTimer();
return;
}
fixChangeCounter++;
gainedNewFix.resetTimer();
}

View File

@ -1,14 +1,13 @@
#ifndef MISSION_DEVICES_GPSHYPERIONHANDLER_H_
#define MISSION_DEVICES_GPSHYPERIONHANDLER_H_
#include <mission/acs/archive/GPSDefinitions.h>
#include <common/config/eive/eventSubsystemIds.h>
#include <fsfw/FSFW.h>
#include <fsfw/controller/ExtendedControllerBase.h>
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
#include <linux/acs/GPSDefinitions.h>
#include <mission/utility/trace.h>
#include "eive/eventSubsystemIds.h"
#include "fsfw/FSFW.h"
#include "fsfw/controller/ExtendedControllerBase.h"
#include "fsfw/devicehandlers/DeviceHandlerBase.h"
#ifdef FSFW_OSAL_LINUX
#include <gps.h>
#include <libgpsmm.h>
@ -24,8 +23,8 @@
*/
class GpsHyperionLinuxController : public ExtendedControllerBase {
public:
// 30 minutes
static constexpr uint32_t MAX_SECONDS_TO_REACH_FIX = 60 * 30;
// 15 minutes
static constexpr uint32_t MAX_SECONDS_TO_REACH_FIX = 60 * 15;
enum ReadModes { SHM = 0, SOCKET = 1 };
@ -54,15 +53,19 @@ class GpsHyperionLinuxController : public ExtendedControllerBase {
LocalDataPoolManager& poolManager) override;
ReturnValue_t handleGpsReadData();
ReturnValue_t handleCoreTelemetry(bool modeIsSet);
ReturnValue_t handleSkyviewTelemetry();
private:
GpsPrimaryDataset gpsSet;
SkyviewDataset skyviewSet;
gps_data_t gps = {};
bool enableHkSets = false;
const char* currentClientBuf = nullptr;
ReadModes readMode = ReadModes::SOCKET;
Countdown maxTimeToReachFix = Countdown(MAX_SECONDS_TO_REACH_FIX * 1000);
bool modeCommanded = false;
Countdown gainedNewFix = Countdown(60 * 2 * 1000);
uint32_t fixChangeCounter = 0;
bool timeInit = false;
uint8_t satNotSetCounter = 0;
@ -81,7 +84,6 @@ class GpsHyperionLinuxController : public ExtendedControllerBase {
} oneShotSwitches;
bool debugHyperionGps = false;
int32_t noModeSetCntr = 0;
// Returns true if the function should be called again or false if other
// controller handling can be done.
@ -90,6 +92,8 @@ class GpsHyperionLinuxController : public ExtendedControllerBase {
// we set it with the roughly valid time from the GPS. For some reason, NTP might only work
// if the time difference between sys time and current time is not too large
void overwriteTimeIfNotSane(timeval time, bool validFix);
void handleFixChangedEvent(uint8_t newFix);
};
#endif /* MISSION_DEVICES_GPSHYPERIONHANDLER_H_ */

View File

@ -2,6 +2,7 @@
#include <fcntl.h>
#include <fsfw/filesystem/HasFileSystemIF.h>
#include <fsfw/globalfunctions/arrayprinter.h>
#include <fsfw/tasks/TaskFactory.h>
#include <fsfw/timemanager/Stopwatch.h>
#include <mission/acs/str/strHelpers.h>
@ -23,6 +24,8 @@ extern "C" {
using namespace returnvalue;
static constexpr bool PACKET_WIRETAPPING = false;
StrComHandler::StrComHandler(object_id_t objectId) : SystemObject(objectId) {
lock = MutexFactory::instance()->createMutex();
semaphore.acquire();
@ -51,8 +54,8 @@ ReturnValue_t StrComHandler::performOperation(uint8_t operationCode) {
switch (state) {
case InternalState::POLL_ONE_REPLY: {
// Stopwatch watch;
replyTimeout.setTimeout(200);
replyResult = readOneReply(static_cast<uint32_t>(state));
replyTimeout.setTimeout(400);
readOneReply(static_cast<uint32_t>(state));
{
MutexGuard mg(lock);
replyWasReceived = true;
@ -172,7 +175,8 @@ void StrComHandler::setDownloadImageName(std::string filename) {
void StrComHandler::setFlashReadFilename(std::string filename) { flashRead.filename = filename; }
ReturnValue_t StrComHandler::startFirmwareUpdate(std::string fullname) {
ReturnValue_t StrComHandler::startFirmwareUpdate(std::string fullname,
startracker::FirmwareTarget target) {
{
MutexGuard mg(lock);
if (state != InternalState::SLEEPING) {
@ -189,8 +193,13 @@ ReturnValue_t StrComHandler::startFirmwareUpdate(std::string fullname) {
if (not std::filesystem::exists(flashWrite.fullname)) {
return FILE_NOT_EXISTS;
}
flashWrite.firstRegion = static_cast<uint8_t>(startracker::FirmwareRegions::FIRST);
flashWrite.lastRegion = static_cast<uint8_t>(startracker::FirmwareRegions::LAST);
if (target == startracker::FirmwareTarget::MAIN) {
flashWrite.firstRegion = static_cast<uint8_t>(startracker::FirmwareRegions::FIRST_MAIN);
flashWrite.lastRegion = static_cast<uint8_t>(startracker::FirmwareRegions::LAST_MAIN);
} else if (target == startracker::FirmwareTarget::BACKUP) {
flashWrite.firstRegion = static_cast<uint8_t>(startracker::FirmwareRegions::FIRST_BACKUP);
flashWrite.lastRegion = static_cast<uint8_t>(startracker::FirmwareRegions::LAST_BACKUP);
}
{
MutexGuard mg(lock);
replyWasReceived = false;
@ -261,7 +270,7 @@ ReturnValue_t StrComHandler::performImageDownload() {
file.close();
return returnvalue::OK;
}
arc_pack_download_action_req(&downloadReq, cmdBuf.data(), &size);
prv_arc_pack_download_action_req(&downloadReq, cmdBuf.data(), &size);
result = sendAndRead(size, downloadReq.position);
if (result != returnvalue::OK) {
if (retries < CONFIG_MAX_DOWNLOAD_RETRIES) {
@ -272,7 +281,7 @@ ReturnValue_t StrComHandler::performImageDownload() {
file.close();
return result;
}
result = checkActionReply(replySize);
result = checkActionReply(replySize, "downloading image");
if (result != returnvalue::OK) {
if (retries < CONFIG_MAX_DOWNLOAD_RETRIES) {
serial::flushRxBuf(serialPort);
@ -340,12 +349,12 @@ ReturnValue_t StrComHandler::performImageUpload() {
}
file.seekg(uploadReq.position * SIZE_IMAGE_PART, file.beg);
file.read(reinterpret_cast<char*>(uploadReq.data), SIZE_IMAGE_PART);
arc_pack_upload_action_req(&uploadReq, cmdBuf.data(), &size);
prv_arc_pack_upload_action_req(&uploadReq, cmdBuf.data(), &size);
result = sendAndRead(size, uploadReq.position);
if (result != returnvalue::OK) {
return returnvalue::FAILED;
}
result = checkActionReply(replyLen);
result = checkActionReply(replyLen, "sky image upload");
if (result != returnvalue::OK) {
return result;
}
@ -366,12 +375,12 @@ ReturnValue_t StrComHandler::performImageUpload() {
file.seekg(fullChunks * SIZE_IMAGE_PART, file.beg);
file.read(reinterpret_cast<char*>(uploadReq.data), remainder);
file.close();
arc_pack_upload_action_req(&uploadReq, cmdBuf.data(), &size);
prv_arc_pack_upload_action_req(&uploadReq, cmdBuf.data(), &size);
result = sendAndRead(size, uploadReq.position);
if (result != returnvalue::OK) {
return returnvalue::FAILED;
}
result = checkActionReply(replyLen);
result = checkActionReply(replyLen, "sky image upload");
if (result != returnvalue::OK) {
return result;
}
@ -385,8 +394,7 @@ ReturnValue_t StrComHandler::performImageUpload() {
ReturnValue_t StrComHandler::performFirmwareUpdate() {
using namespace startracker;
ReturnValue_t result = returnvalue::OK;
result = unlockAndEraseRegions(static_cast<uint32_t>(startracker::FirmwareRegions::FIRST),
static_cast<uint32_t>(startracker::FirmwareRegions::LAST));
result = unlockAndEraseRegions(flashWrite.firstRegion, flashWrite.lastRegion);
if (result != returnvalue::OK) {
return result;
}
@ -437,12 +445,12 @@ ReturnValue_t StrComHandler::performFlashWrite() {
bytesWrittenInRegion = 0;
}
req.address = bytesWrittenInRegion;
arc_pack_write_action_req(&req, cmdBuf.data(), &size);
prv_arc_pack_write_action_req(&req, cmdBuf.data(), &size);
result = sendAndRead(size, req.address);
if (result != returnvalue::OK) {
return result;
}
result = checkActionReply(replyLen);
result = checkActionReply(replyLen, "firmware image upload");
if (result != returnvalue::OK) {
return result;
}
@ -480,12 +488,12 @@ ReturnValue_t StrComHandler::performFlashWrite() {
req.length = remainingBytes;
totalBytesWritten += CHUNK_SIZE;
bytesWrittenInRegion += remainingBytes;
arc_pack_write_action_req(&req, cmdBuf.data(), &size);
prv_arc_pack_write_action_req(&req, cmdBuf.data(), &size);
result = sendAndRead(size, req.address);
if (result != returnvalue::OK) {
return result;
}
result = checkActionReply(replyLen);
result = checkActionReply(replyLen, "flash write");
if (result != returnvalue::OK) {
return result;
}
@ -528,7 +536,7 @@ ReturnValue_t StrComHandler::performFlashRead() {
} else {
req.length = CHUNK_SIZE;
}
arc_pack_read_action_req(&req, cmdBuf.data(), &size);
prv_arc_pack_read_action_req(&req, cmdBuf.data(), &size);
result = sendAndRead(size, req.address);
if (result != returnvalue::OK) {
if (retries < CONFIG_MAX_DOWNLOAD_RETRIES) {
@ -539,7 +547,7 @@ ReturnValue_t StrComHandler::performFlashRead() {
file.close();
return result;
}
result = checkActionReply(replyLen);
result = checkActionReply(replyLen, "flash read");
if (result != returnvalue::OK) {
if (retries < CONFIG_MAX_DOWNLOAD_RETRIES) {
serial::flushRxBuf(serialPort);
@ -581,7 +589,7 @@ ReturnValue_t StrComHandler::sendAndRead(size_t size, uint32_t failParameter) {
return readOneReply(failParameter);
}
ReturnValue_t StrComHandler::checkActionReply(size_t replySize) {
ReturnValue_t StrComHandler::checkActionReply(size_t replySize, const char* context) {
uint8_t type = startracker::getReplyFrameType(replyPtr);
if (type != TMTC_ACTIONREPLY) {
sif::warning << "StrHelper::checkActionReply: Received reply with invalid type ID" << std::endl;
@ -589,7 +597,7 @@ ReturnValue_t StrComHandler::checkActionReply(size_t replySize) {
}
uint8_t status = startracker::getStatusField(replyPtr);
if (status != ArcsecDatalinkLayer::STATUS_OK) {
sif::warning << "StrHelper::checkActionReply: Status failure: "
sif::warning << "StrHelper::checkActionReply: Status failure for " << context << ": "
<< static_cast<unsigned int>(status) << std::endl;
return STATUS_ERROR;
}
@ -680,6 +688,10 @@ ReturnValue_t StrComHandler::sendMessage(CookieIF* cookie, const uint8_t* sendDa
const uint8_t* txFrame;
size_t frameLen;
datalinkLayer.encodeFrame(sendData, sendLen, &txFrame, frameLen);
if (PACKET_WIRETAPPING) {
sif::debug << "Sending STR frame" << std::endl;
arrayprinter::print(txFrame, frameLen);
}
ssize_t bytesWritten = write(serialPort, txFrame, frameLen);
if (bytesWritten != static_cast<ssize_t>(frameLen)) {
sif::warning << "StrComHandler: Sending packet failed" << std::endl;
@ -709,8 +721,6 @@ ReturnValue_t StrComHandler::requestReceiveMessage(CookieIF* cookie, size_t requ
}
ReturnValue_t StrComHandler::readReceivedMessage(CookieIF* cookie, uint8_t** buffer, size_t* size) {
// Consider it a configuration error if the task is not done with a command -> reply cycle
// in time.
bool replyWasReceived = false;
{
MutexGuard mg(lock);
@ -739,23 +749,26 @@ ReturnValue_t StrComHandler::unlockAndEraseRegions(uint32_t from, uint32_t to) {
struct UnlockActionRequest unlockReq;
struct EraseActionRequest eraseReq;
uint32_t size = 0;
for (uint32_t idx = from; idx <= to; idx++) {
for (uint32_t idx = from; idx < to; idx++) {
unlockReq.region = idx;
unlockReq.code = startracker::region_secrets::secret[idx];
arc_pack_unlock_action_req(&unlockReq, cmdBuf.data(), &size);
unlockReq.code = startracker::region_secrets::SECRETS[idx];
prv_arc_pack_unlock_action_req(&unlockReq, cmdBuf.data(), &size);
result = sendAndRead(size, unlockReq.region);
if (result != returnvalue::OK) {
return result;
}
result = checkActionReply(replyLen);
result = checkActionReply(replyLen, "unlocking region");
if (result != returnvalue::OK) {
sif::warning << "StrHelper::unlockAndEraseRegions: Failed to unlock region with id "
<< static_cast<unsigned int>(unlockReq.region) << std::endl;
return result;
}
eraseReq.region = idx;
arc_pack_erase_action_req(&eraseReq, cmdBuf.data(), &size);
prv_arc_pack_erase_action_req(&eraseReq, cmdBuf.data(), &size);
result = sendAndRead(size, eraseReq.region);
if (result != returnvalue::OK) {
}
result = checkActionReply(replyLen, "erasing region");
if (result != returnvalue::OK) {
sif::warning << "StrHelper::unlockAndEraseRegions: Failed to erase region with id "
<< static_cast<unsigned int>(eraseReq.region) << std::endl;
@ -782,8 +795,10 @@ ReturnValue_t StrComHandler::handleSerialReception() {
<< std::endl;
return FAILED;
} else if (bytesRead > 0) {
// sif::info << "Received " << bytesRead << " bytes from the STR" << std::endl;
// arrayprinter::print(recBuf.data(), bytesRead);
if (PACKET_WIRETAPPING) {
sif::info << "Received " << bytesRead << " bytes from the STR" << std::endl;
arrayprinter::print(recBuf.data(), bytesRead);
}
datalinkLayer.feedData(recBuf.data(), bytesRead);
}
return OK;
@ -797,6 +812,10 @@ ReturnValue_t StrComHandler::readOneReply(uint32_t failParameter) {
handleSerialReception();
result = datalinkLayer.checkRingBufForFrame(&replyPtr, replyLen);
if (result == returnvalue::OK) {
if (PACKET_WIRETAPPING) {
sif::debug << "Received STR reply frame" << std::endl;
arrayprinter::print(replyPtr, replyLen);
}
return returnvalue::OK;
} else if (result != ArcsecDatalinkLayer::DEC_IN_PROGRESS) {
triggerEvent(STR_HELPER_DEC_ERROR, result, failParameter);

View File

@ -6,6 +6,7 @@
#include <string>
#include "OBSWConfig.h"
#include "mission/acs/str/strHelpers.h"
#ifdef XIPHOS_Q7S
#include "bsp_q7s/fs/SdCardManager.h"
@ -127,7 +128,7 @@ class StrComHandler : public SystemObject, public DeviceCommunicationIF, public
* @param fullname Full name including absolute path of file containing firmware
* update.
*/
ReturnValue_t startFirmwareUpdate(std::string fullname);
ReturnValue_t startFirmwareUpdate(std::string fullname, startracker::FirmwareTarget target);
/**
* @brief Starts the flash read procedure
@ -334,7 +335,7 @@ class StrComHandler : public SystemObject, public DeviceCommunicationIF, public
*
* @return returnvalue::OK if reply confirms success of packet transfer, otherwise REUTRN_FAILED
*/
ReturnValue_t checkActionReply(size_t replySize);
ReturnValue_t checkActionReply(size_t replySize, const char *context);
/**
* @brief Checks the position field in a star tracker upload/download reply.

View File

@ -170,18 +170,12 @@ ReturnValue_t SusPolling::handleSusPolling() {
}
MutexGuard mg(ipcLock);
susDevs[idx].ownReply.tempRaw = ((rawReply[0] & 0x0f) << 8) | rawReply[1];
// Reply is all ones. Sensor is probably off or faulty when
// it should not be.
if (susDevs[idx].ownReply.tempRaw == 0x0fff) {
susDevs[idx].replyResult = returnvalue::FAILED;
} else {
susDevs[idx].replyResult = returnvalue::OK;
for (unsigned chIdx = 0; chIdx < 6; chIdx++) {
susDevs[idx].ownReply.channelsRaw[chIdx] =
(rawReply[chIdx * 2 + 2] << 8) | rawReply[chIdx * 2 + 3];
}
susDevs[idx].ownReply.dataWasSet = true;
susDevs[idx].replyResult = returnvalue::OK;
for (unsigned chIdx = 0; chIdx < 6; chIdx++) {
susDevs[idx].ownReply.channelsRaw[chIdx] =
(rawReply[chIdx * 2 + 2] << 8) | rawReply[chIdx * 2 + 3];
}
susDevs[idx].ownReply.dataWasSet = true;
}
}
return OK;

View File

@ -11,7 +11,7 @@
#include <array>
//#include "lwgps/lwgps.h"
// #include "lwgps/lwgps.h"
#include "test/TestTask.h"
class ScexUartReader;

View File

@ -21,6 +21,18 @@ void gpioCallbacks::spiCsDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gp
if (value == gpio::Levels::HIGH) {
switch (gpioId) {
case (gpioIds::RTD_IC_0): {
disableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_1): {
disableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_2): {
disableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_3): {
disableDecoderTcsIc1(gpioIF);
break;
@ -42,15 +54,15 @@ void gpioCallbacks::spiCsDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gp
break;
}
case (gpioIds::RTD_IC_8): {
disableDecoderTcsIc1(gpioIF);
disableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_9): {
disableDecoderTcsIc1(gpioIF);
disableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_10): {
disableDecoderTcsIc1(gpioIF);
disableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_11): {
@ -73,18 +85,6 @@ void gpioCallbacks::spiCsDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gp
disableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_16): {
disableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_17): {
disableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_18): {
disableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::CS_SUS_0): {
disableDecoderInterfaceBoardIc1(gpioIF);
break;
@ -154,82 +154,82 @@ void gpioCallbacks::spiCsDecoderCallback(gpioId_t gpioId, gpio::GpioOperation gp
}
} else if (value == gpio::Levels::LOW) {
switch (gpioId) {
case (gpioIds::RTD_IC_3): {
case (gpioIds::RTD_IC_0): {
selectY7(gpioIF);
enableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_1): {
selectY6(gpioIF);
enableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_2): {
selectY5(gpioIF);
enableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_3): {
selectY4(gpioIF);
enableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_4): {
selectY6(gpioIF);
selectY3(gpioIF);
enableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_5): {
selectY5(gpioIF);
selectY2(gpioIF);
enableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_6): {
selectY4(gpioIF);
selectY1(gpioIF);
enableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_7): {
selectY3(gpioIF);
enableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_8): {
selectY2(gpioIF);
enableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_9): {
selectY1(gpioIF);
enableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_10): {
selectY0(gpioIF);
enableDecoderTcsIc1(gpioIF);
break;
}
case (gpioIds::RTD_IC_11): {
case (gpioIds::RTD_IC_8): {
selectY7(gpioIF);
enableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_12): {
case (gpioIds::RTD_IC_9): {
selectY6(gpioIF);
enableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_13): {
case (gpioIds::RTD_IC_10): {
selectY5(gpioIF);
enableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_14): {
case (gpioIds::RTD_IC_11): {
selectY4(gpioIF);
enableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_15): {
case (gpioIds::RTD_IC_12): {
selectY3(gpioIF);
enableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_16): {
case (gpioIds::RTD_IC_13): {
selectY2(gpioIF);
enableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_17): {
case (gpioIds::RTD_IC_14): {
selectY1(gpioIF);
enableDecoderTcsIc2(gpioIF);
break;
}
case (gpioIds::RTD_IC_18): {
case (gpioIds::RTD_IC_15): {
selectY0(gpioIF);
enableDecoderTcsIc2(gpioIF);
break;

View File

@ -1,7 +1,7 @@
/**
* @brief Auto-generated event translation file. Contains 296 translations.
* @brief Auto-generated event translation file. Contains 325 translations.
* @details
* Generated on: 2023-06-21 19:01:02
* Generated on: 2024-05-06 13:47:38
*/
#include "translateEvents.h"
@ -82,8 +82,11 @@ const char *BIT_LOCK_STRING = "BIT_LOCK";
const char *BIT_LOCK_LOST_STRING = "BIT_LOCK_LOST";
const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED";
const char *CLOCK_SET_STRING = "CLOCK_SET";
const char *CLOCK_DUMP_STRING = "CLOCK_DUMP";
const char *CLOCK_DUMP_LEGACY_STRING = "CLOCK_DUMP_LEGACY";
const char *CLOCK_SET_FAILURE_STRING = "CLOCK_SET_FAILURE";
const char *CLOCK_DUMP_STRING = "CLOCK_DUMP";
const char *CLOCK_DUMP_BEFORE_SETTING_TIME_STRING = "CLOCK_DUMP_BEFORE_SETTING_TIME";
const char *CLOCK_DUMP_AFTER_SETTING_TIME_STRING = "CLOCK_DUMP_AFTER_SETTING_TIME";
const char *TC_DELETION_FAILED_STRING = "TC_DELETION_FAILED";
const char *TEST_STRING = "TEST";
const char *CHANGE_OF_SETUP_PARAMETER_STRING = "CHANGE_OF_SETUP_PARAMETER";
@ -92,18 +95,28 @@ const char *MSG_QUEUE_ERROR_STRING = "MSG_QUEUE_ERROR";
const char *SERIALIZATION_ERROR_STRING = "SERIALIZATION_ERROR";
const char *FILESTORE_ERROR_STRING = "FILESTORE_ERROR";
const char *FILENAME_TOO_LARGE_ERROR_STRING = "FILENAME_TOO_LARGE_ERROR";
const char *HANDLING_CFDP_REQUEST_FAILED_STRING = "HANDLING_CFDP_REQUEST_FAILED";
const char *SAFE_RATE_VIOLATION_STRING = "SAFE_RATE_VIOLATION";
const char *SAFE_RATE_RECOVERY_STRING = "SAFE_RATE_RECOVERY";
const char *RATE_RECOVERY_STRING = "RATE_RECOVERY";
const char *MULTIPLE_RW_INVALID_STRING = "MULTIPLE_RW_INVALID";
const char *MEKF_INVALID_INFO_STRING = "MEKF_INVALID_INFO";
const char *MEKF_RECOVERY_STRING = "MEKF_RECOVERY";
const char *MEKF_AUTOMATIC_RESET_STRING = "MEKF_AUTOMATIC_RESET";
const char *MEKF_INVALID_MODE_VIOLATION_STRING = "MEKF_INVALID_MODE_VIOLATION";
const char *PTG_CTRL_NO_ATTITUDE_INFORMATION_STRING = "PTG_CTRL_NO_ATTITUDE_INFORMATION";
const char *SAFE_MODE_CONTROLLER_FAILURE_STRING = "SAFE_MODE_CONTROLLER_FAILURE";
const char *TLE_TOO_OLD_STRING = "TLE_TOO_OLD";
const char *TLE_FILE_READ_FAILED_STRING = "TLE_FILE_READ_FAILED";
const char *PTG_RATE_VIOLATION_STRING = "PTG_RATE_VIOLATION";
const char *DETUMBLE_TRANSITION_FAILED_STRING = "DETUMBLE_TRANSITION_FAILED";
const char *SWITCH_CMD_SENT_STRING = "SWITCH_CMD_SENT";
const char *SWITCH_HAS_CHANGED_STRING = "SWITCH_HAS_CHANGED";
const char *SWITCHING_Q7S_DENIED_STRING = "SWITCHING_Q7S_DENIED";
const char *FDIR_REACTION_IGNORED_STRING = "FDIR_REACTION_IGNORED";
const char *DATASET_READ_FAILED_STRING = "DATASET_READ_FAILED";
const char *VOLTAGE_OUT_OF_BOUNDS_STRING = "VOLTAGE_OUT_OF_BOUNDS";
const char *TIMEDELTA_OUT_OF_BOUNDS_STRING = "TIMEDELTA_OUT_OF_BOUNDS";
const char *POWER_LEVEL_LOW_STRING = "POWER_LEVEL_LOW";
const char *POWER_LEVEL_CRITICAL_STRING = "POWER_LEVEL_CRITICAL";
const char *GPIO_PULL_HIGH_FAILED_STRING = "GPIO_PULL_HIGH_FAILED";
const char *GPIO_PULL_LOW_FAILED_STRING = "GPIO_PULL_LOW_FAILED";
const char *HEATER_WENT_ON_STRING = "HEATER_WENT_ON";
@ -127,6 +140,9 @@ const char *EXE_FAILURE_STRING = "EXE_FAILURE";
const char *MPSOC_HANDLER_CRC_FAILURE_STRING = "MPSOC_HANDLER_CRC_FAILURE";
const char *MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH_STRING = "MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH";
const char *MPSOC_SHUTDOWN_FAILED_STRING = "MPSOC_SHUTDOWN_FAILED";
const char *SUPV_NOT_ON_STRING = "SUPV_NOT_ON";
const char *SUPV_REPLY_TIMEOUT_STRING = "SUPV_REPLY_TIMEOUT";
const char *CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE_STRING = "CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE";
const char *SELF_TEST_I2C_FAILURE_STRING = "SELF_TEST_I2C_FAILURE";
const char *SELF_TEST_SPI_FAILURE_STRING = "SELF_TEST_SPI_FAILURE";
const char *SELF_TEST_ADC_FAILURE_STRING = "SELF_TEST_ADC_FAILURE";
@ -139,6 +155,7 @@ const char *ERROR_STATE_STRING = "ERROR_STATE";
const char *RESET_OCCURED_STRING = "RESET_OCCURED";
const char *BOOTING_FIRMWARE_FAILED_EVENT_STRING = "BOOTING_FIRMWARE_FAILED_EVENT";
const char *BOOTING_BOOTLOADER_FAILED_EVENT_STRING = "BOOTING_BOOTLOADER_FAILED_EVENT";
const char *COM_ERROR_REPLY_RECEIVED_STRING = "COM_ERROR_REPLY_RECEIVED";
const char *SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING = "SUPV_MEMORY_READ_RPT_CRC_FAILURE";
const char *SUPV_UNKNOWN_TM_STRING = "SUPV_UNKNOWN_TM";
const char *SUPV_UNINIMPLEMENTED_TM_STRING = "SUPV_UNINIMPLEMENTED_TM";
@ -147,6 +164,8 @@ const char *SUPV_EXE_FAILURE_STRING = "SUPV_EXE_FAILURE";
const char *SUPV_CRC_FAILURE_EVENT_STRING = "SUPV_CRC_FAILURE_EVENT";
const char *SUPV_HELPER_EXECUTING_STRING = "SUPV_HELPER_EXECUTING";
const char *SUPV_MPSOC_SHUTDOWN_BUILD_FAILED_STRING = "SUPV_MPSOC_SHUTDOWN_BUILD_FAILED";
const char *SUPV_ACK_UNKNOWN_COMMAND_STRING = "SUPV_ACK_UNKNOWN_COMMAND";
const char *SUPV_EXE_ACK_UNKNOWN_COMMAND_STRING = "SUPV_EXE_ACK_UNKNOWN_COMMAND";
const char *SANITIZATION_FAILED_STRING = "SANITIZATION_FAILED";
const char *MOUNTED_SD_CARD_STRING = "MOUNTED_SD_CARD";
const char *SEND_MRAM_DUMP_FAILED_STRING = "SEND_MRAM_DUMP_FAILED";
@ -166,6 +185,7 @@ const char *PDEC_TRYING_RESET_NO_INIT_STRING = "PDEC_TRYING_RESET_NO_INIT";
const char *PDEC_RESET_FAILED_STRING = "PDEC_RESET_FAILED";
const char *OPEN_IRQ_FILE_FAILED_STRING = "OPEN_IRQ_FILE_FAILED";
const char *PDEC_INIT_FAILED_STRING = "PDEC_INIT_FAILED";
const char *PDEC_CONFIG_CORRUPTED_STRING = "PDEC_CONFIG_CORRUPTED";
const char *IMAGE_UPLOAD_FAILED_STRING = "IMAGE_UPLOAD_FAILED";
const char *IMAGE_DOWNLOAD_FAILED_STRING = "IMAGE_DOWNLOAD_FAILED";
const char *IMAGE_UPLOAD_SUCCESSFUL_STRING = "IMAGE_UPLOAD_SUCCESSFUL";
@ -225,6 +245,7 @@ const char *SIDE_SWITCH_TRANSITION_NOT_ALLOWED_12903_STRING = "SIDE_SWITCH_TRANS
const char *CHILDREN_LOST_MODE_STRING = "CHILDREN_LOST_MODE";
const char *GPS_FIX_CHANGE_STRING = "GPS_FIX_CHANGE";
const char *CANT_GET_FIX_STRING = "CANT_GET_FIX";
const char *RESET_FAIL_STRING = "RESET_FAIL";
const char *P60_BOOT_COUNT_STRING = "P60_BOOT_COUNT";
const char *BATT_MODE_STRING = "BATT_MODE";
const char *BATT_MODE_CHANGED_STRING = "BATT_MODE_CHANGED";
@ -260,6 +281,7 @@ const char *TX_OFF_STRING = "TX_OFF";
const char *MISSING_PACKET_STRING = "MISSING_PACKET";
const char *EXPERIMENT_TIMEDOUT_STRING = "EXPERIMENT_TIMEDOUT";
const char *MULTI_PACKET_COMMAND_DONE_STRING = "MULTI_PACKET_COMMAND_DONE";
const char *FS_UNUSABLE_STRING = "FS_UNUSABLE";
const char *SET_CONFIGFILEVALUE_FAILED_STRING = "SET_CONFIGFILEVALUE_FAILED";
const char *GET_CONFIGFILEVALUE_FAILED_STRING = "GET_CONFIGFILEVALUE_FAILED";
const char *INSERT_CONFIGFILEVALUE_FAILED_STRING = "INSERT_CONFIGFILEVALUE_FAILED";
@ -278,6 +300,7 @@ const char *TRYING_I2C_RECOVERY_STRING = "TRYING_I2C_RECOVERY";
const char *I2C_REBOOT_STRING = "I2C_REBOOT";
const char *PDEC_REBOOT_STRING = "PDEC_REBOOT";
const char *FIRMWARE_INFO_STRING = "FIRMWARE_INFO";
const char *ACTIVE_SD_INFO_STRING = "ACTIVE_SD_INFO";
const char *NO_VALID_SENSOR_TEMPERATURE_STRING = "NO_VALID_SENSOR_TEMPERATURE";
const char *NO_HEALTHY_HEATER_AVAILABLE_STRING = "NO_HEALTHY_HEATER_AVAILABLE";
const char *SYRLINKS_OVERHEATING_STRING = "SYRLINKS_OVERHEATING";
@ -286,6 +309,9 @@ const char *CAMERA_OVERHEATING_STRING = "CAMERA_OVERHEATING";
const char *PCDU_SYSTEM_OVERHEATING_STRING = "PCDU_SYSTEM_OVERHEATING";
const char *HEATER_NOT_OFF_FOR_OFF_MODE_STRING = "HEATER_NOT_OFF_FOR_OFF_MODE";
const char *MGT_OVERHEATING_STRING = "MGT_OVERHEATING";
const char *TCS_SWITCHING_HEATER_ON_STRING = "TCS_SWITCHING_HEATER_ON";
const char *TCS_SWITCHING_HEATER_OFF_STRING = "TCS_SWITCHING_HEATER_OFF";
const char *TCS_HEATER_MAX_BURN_TIME_REACHED_STRING = "TCS_HEATER_MAX_BURN_TIME_REACHED";
const char *TX_TIMER_EXPIRED_STRING = "TX_TIMER_EXPIRED";
const char *BIT_LOCK_TX_ON_STRING = "BIT_LOCK_TX_ON";
const char *POSSIBLE_FILE_CORRUPTION_STRING = "POSSIBLE_FILE_CORRUPTION";
@ -301,6 +327,9 @@ const char *DUMP_NOK_CANCELLED_STRING = "DUMP_NOK_CANCELLED";
const char *DUMP_MISC_CANCELLED_STRING = "DUMP_MISC_CANCELLED";
const char *DUMP_HK_CANCELLED_STRING = "DUMP_HK_CANCELLED";
const char *DUMP_CFDP_CANCELLED_STRING = "DUMP_CFDP_CANCELLED";
const char *TEMPERATURE_ALL_ONES_START_STRING = "TEMPERATURE_ALL_ONES_START";
const char *TEMPERATURE_ALL_ONES_RECOVERY_STRING = "TEMPERATURE_ALL_ONES_RECOVERY";
const char *FAULT_HANDLER_TRIGGERED_STRING = "FAULT_HANDLER_TRIGGERED";
const char *translateEvents(Event event) {
switch ((event & 0xFFFF)) {
@ -459,9 +488,15 @@ const char *translateEvents(Event event) {
case (8900):
return CLOCK_SET_STRING;
case (8901):
return CLOCK_DUMP_STRING;
return CLOCK_DUMP_LEGACY_STRING;
case (8902):
return CLOCK_SET_FAILURE_STRING;
case (8903):
return CLOCK_DUMP_STRING;
case (8904):
return CLOCK_DUMP_BEFORE_SETTING_TIME_STRING;
case (8905):
return CLOCK_DUMP_AFTER_SETTING_TIME_STRING;
case (9100):
return TC_DELETION_FAILED_STRING;
case (9700):
@ -478,10 +513,12 @@ const char *translateEvents(Event event) {
return FILESTORE_ERROR_STRING;
case (10804):
return FILENAME_TOO_LARGE_ERROR_STRING;
case (10805):
return HANDLING_CFDP_REQUEST_FAILED_STRING;
case (11200):
return SAFE_RATE_VIOLATION_STRING;
case (11201):
return SAFE_RATE_RECOVERY_STRING;
return RATE_RECOVERY_STRING;
case (11202):
return MULTIPLE_RW_INVALID_STRING;
case (11203):
@ -491,9 +528,17 @@ const char *translateEvents(Event event) {
case (11205):
return MEKF_AUTOMATIC_RESET_STRING;
case (11206):
return MEKF_INVALID_MODE_VIOLATION_STRING;
return PTG_CTRL_NO_ATTITUDE_INFORMATION_STRING;
case (11207):
return SAFE_MODE_CONTROLLER_FAILURE_STRING;
case (11208):
return TLE_TOO_OLD_STRING;
case (11209):
return TLE_FILE_READ_FAILED_STRING;
case (11210):
return PTG_RATE_VIOLATION_STRING;
case (11211):
return DETUMBLE_TRANSITION_FAILED_STRING;
case (11300):
return SWITCH_CMD_SENT_STRING;
case (11301):
@ -502,6 +547,16 @@ const char *translateEvents(Event event) {
return SWITCHING_Q7S_DENIED_STRING;
case (11303):
return FDIR_REACTION_IGNORED_STRING;
case (11304):
return DATASET_READ_FAILED_STRING;
case (11305):
return VOLTAGE_OUT_OF_BOUNDS_STRING;
case (11306):
return TIMEDELTA_OUT_OF_BOUNDS_STRING;
case (11307):
return POWER_LEVEL_LOW_STRING;
case (11308):
return POWER_LEVEL_CRITICAL_STRING;
case (11400):
return GPIO_PULL_HIGH_FAILED_STRING;
case (11401):
@ -548,6 +603,12 @@ const char *translateEvents(Event event) {
return MPSOC_HANDLER_SEQUENCE_COUNT_MISMATCH_STRING;
case (11606):
return MPSOC_SHUTDOWN_FAILED_STRING;
case (11607):
return SUPV_NOT_ON_STRING;
case (11608):
return SUPV_REPLY_TIMEOUT_STRING;
case (11609):
return CAM_MUST_BE_ON_FOR_SNAPSHOT_MODE_STRING;
case (11701):
return SELF_TEST_I2C_FAILURE_STRING;
case (11702):
@ -572,6 +633,8 @@ const char *translateEvents(Event event) {
return BOOTING_FIRMWARE_FAILED_EVENT_STRING;
case (11902):
return BOOTING_BOOTLOADER_FAILED_EVENT_STRING;
case (11903):
return COM_ERROR_REPLY_RECEIVED_STRING;
case (12001):
return SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING;
case (12002):
@ -588,6 +651,10 @@ const char *translateEvents(Event event) {
return SUPV_HELPER_EXECUTING_STRING;
case (12008):
return SUPV_MPSOC_SHUTDOWN_BUILD_FAILED_STRING;
case (12009):
return SUPV_ACK_UNKNOWN_COMMAND_STRING;
case (12010):
return SUPV_EXE_ACK_UNKNOWN_COMMAND_STRING;
case (12100):
return SANITIZATION_FAILED_STRING;
case (12101):
@ -626,6 +693,8 @@ const char *translateEvents(Event event) {
return OPEN_IRQ_FILE_FAILED_STRING;
case (12414):
return PDEC_INIT_FAILED_STRING;
case (12415):
return PDEC_CONFIG_CORRUPTED_STRING;
case (12500):
return IMAGE_UPLOAD_FAILED_STRING;
case (12501):
@ -744,6 +813,8 @@ const char *translateEvents(Event event) {
return GPS_FIX_CHANGE_STRING;
case (13101):
return CANT_GET_FIX_STRING;
case (13102):
return RESET_FAIL_STRING;
case (13200):
return P60_BOOT_COUNT_STRING;
case (13201):
@ -814,6 +885,8 @@ const char *translateEvents(Event event) {
return EXPERIMENT_TIMEDOUT_STRING;
case (13802):
return MULTI_PACKET_COMMAND_DONE_STRING;
case (13803):
return FS_UNUSABLE_STRING;
case (13901):
return SET_CONFIGFILEVALUE_FAILED_STRING;
case (13902):
@ -850,6 +923,8 @@ const char *translateEvents(Event event) {
return PDEC_REBOOT_STRING;
case (14013):
return FIRMWARE_INFO_STRING;
case (14014):
return ACTIVE_SD_INFO_STRING;
case (14100):
return NO_VALID_SENSOR_TEMPERATURE_STRING;
case (14101):
@ -866,6 +941,12 @@ const char *translateEvents(Event event) {
return HEATER_NOT_OFF_FOR_OFF_MODE_STRING;
case (14108):
return MGT_OVERHEATING_STRING;
case (14109):
return TCS_SWITCHING_HEATER_ON_STRING;
case (14110):
return TCS_SWITCHING_HEATER_OFF_STRING;
case (14111):
return TCS_HEATER_MAX_BURN_TIME_REACHED_STRING;
case (14201):
return TX_TIMER_EXPIRED_STRING;
case (14202):
@ -896,6 +977,12 @@ const char *translateEvents(Event event) {
return DUMP_HK_CANCELLED_STRING;
case (14314):
return DUMP_CFDP_CANCELLED_STRING;
case (14500):
return TEMPERATURE_ALL_ONES_START_STRING;
case (14501):
return TEMPERATURE_ALL_ONES_RECOVERY_STRING;
case (14600):
return FAULT_HANDLER_TRIGGERED_STRING;
default:
return "UNKNOWN_EVENT";
}

View File

@ -1,15 +1,17 @@
/**
* @brief Auto-generated object translation file.
* @details
* Contains 175 translations.
* Generated on: 2023-06-21 19:01:02
* Contains 180 translations.
* Generated on: 2024-05-06 13:47:38
*/
#include "translateObjects.h"
const char *P60DOCK_TEST_TASK_STRING = "P60DOCK_TEST_TASK";
const char *ACS_CONTROLLER_STRING = "ACS_CONTROLLER";
const char *CORE_CONTROLLER_STRING = "CORE_CONTROLLER";
const char *POWER_CONTROLLER_STRING = "POWER_CONTROLLER";
const char *GLOBAL_JSON_CFG_STRING = "GLOBAL_JSON_CFG";
const char *XIPHOS_WDT_STRING = "XIPHOS_WDT";
const char *THERMAL_CONTROLLER_STRING = "THERMAL_CONTROLLER";
const char *MGM_0_LIS3_HANDLER_STRING = "MGM_0_LIS3_HANDLER";
const char *GYRO_0_ADIS_HANDLER_STRING = "GYRO_0_ADIS_HANDLER";
@ -62,6 +64,7 @@ const char *PTME_VC3_CFDP_TM_STRING = "PTME_VC3_CFDP_TM";
const char *PLOC_MPSOC_HANDLER_STRING = "PLOC_MPSOC_HANDLER";
const char *PLOC_SUPERVISOR_HANDLER_STRING = "PLOC_SUPERVISOR_HANDLER";
const char *PLOC_SUPERVISOR_HELPER_STRING = "PLOC_SUPERVISOR_HELPER";
const char *PLOC_MPSOC_COMMUNICATION_STRING = "PLOC_MPSOC_COMMUNICATION";
const char *SCEX_STRING = "SCEX";
const char *SOLAR_ARRAY_DEPL_HANDLER_STRING = "SOLAR_ARRAY_DEPL_HANDLER";
const char *HEATER_HANDLER_STRING = "HEATER_HANDLER";
@ -164,11 +167,13 @@ const char *PUS_TM_FUNNEL_STRING = "PUS_TM_FUNNEL";
const char *CFDP_TM_FUNNEL_STRING = "CFDP_TM_FUNNEL";
const char *CFDP_HANDLER_STRING = "CFDP_HANDLER";
const char *CFDP_DISTRIBUTOR_STRING = "CFDP_DISTRIBUTOR";
const char *CFDP_FAULT_HANDLER_STRING = "CFDP_FAULT_HANDLER";
const char *EIVE_SYSTEM_STRING = "EIVE_SYSTEM";
const char *ACS_SUBSYSTEM_STRING = "ACS_SUBSYSTEM";
const char *PL_SUBSYSTEM_STRING = "PL_SUBSYSTEM";
const char *TCS_SUBSYSTEM_STRING = "TCS_SUBSYSTEM";
const char *COM_SUBSYSTEM_STRING = "COM_SUBSYSTEM";
const char *EPS_SUBSYSTEM_STRING = "EPS_SUBSYSTEM";
const char *MISC_TM_STORE_STRING = "MISC_TM_STORE";
const char *OK_TM_STORE_STRING = "OK_TM_STORE";
const char *NOT_OK_TM_STORE_STRING = "NOT_OK_TM_STORE";
@ -190,8 +195,12 @@ const char *translateObject(object_id_t object) {
return ACS_CONTROLLER_STRING;
case 0x43000003:
return CORE_CONTROLLER_STRING;
case 0x43000004:
return POWER_CONTROLLER_STRING;
case 0x43000006:
return GLOBAL_JSON_CFG_STRING;
case 0x43000007:
return XIPHOS_WDT_STRING;
case 0x43400001:
return THERMAL_CONTROLLER_STRING;
case 0x44120006:
@ -296,6 +305,8 @@ const char *translateObject(object_id_t object) {
return PLOC_SUPERVISOR_HANDLER_STRING;
case 0x44330017:
return PLOC_SUPERVISOR_HELPER_STRING;
case 0x44330018:
return PLOC_MPSOC_COMMUNICATION_STRING;
case 0x44330032:
return SCEX_STRING;
case 0x444100A2:
@ -500,6 +511,8 @@ const char *translateObject(object_id_t object) {
return CFDP_HANDLER_STRING;
case 0x73000206:
return CFDP_DISTRIBUTOR_STRING;
case 0x73000207:
return CFDP_FAULT_HANDLER_STRING;
case 0x73010000:
return EIVE_SYSTEM_STRING;
case 0x73010001:
@ -510,6 +523,8 @@ const char *translateObject(object_id_t object) {
return TCS_SUBSYSTEM_STRING;
case 0x73010004:
return COM_SUBSYSTEM_STRING;
case 0x73010005:
return EPS_SUBSYSTEM_STRING;
case 0x73020001:
return MISC_TM_STORE_STRING;
case 0x73020002:

View File

@ -16,9 +16,9 @@ AxiPtmeConfig::AxiPtmeConfig(object_id_t objectId, std::string axiUio, int mapNu
AxiPtmeConfig::~AxiPtmeConfig() {}
ReturnValue_t AxiPtmeConfig::initialize() {
ReturnValue_t result = returnvalue::OK;
UioMapper uioMapper(axiUio, mapNum);
result = uioMapper.getMappedAdress(&baseAddress, UioMapper::Permissions::READ_WRITE);
ReturnValue_t result =
uioMapper.getMappedAdress(&baseAddress, UioMapper::Permissions::READ_WRITE);
if (result != returnvalue::OK) {
return result;
}
@ -26,8 +26,7 @@ ReturnValue_t AxiPtmeConfig::initialize() {
}
ReturnValue_t AxiPtmeConfig::writeCaduRateReg(uint8_t rateVal) {
ReturnValue_t result = returnvalue::OK;
result = mutex->lockMutex(timeoutType, mutexTimeout);
ReturnValue_t result = mutex->lockMutex(timeoutType, mutexTimeout);
if (result != returnvalue::OK) {
sif::warning << "AxiPtmeConfig::writeCaduRateReg: Failed to lock mutex" << std::endl;
return returnvalue::FAILED;
@ -41,6 +40,11 @@ ReturnValue_t AxiPtmeConfig::writeCaduRateReg(uint8_t rateVal) {
return returnvalue::OK;
}
uint8_t AxiPtmeConfig::readCaduRateReg() {
MutexGuard mg(mutex);
return static_cast<uint8_t>(*(baseAddress + CADU_BITRATE_REG));
}
void AxiPtmeConfig::enableTxclockManipulator() {
writeBit(COMMON_CONFIG_REG, true, BitPos::EN_TX_CLK_MANIPULATOR);
}

View File

@ -38,6 +38,7 @@ class AxiPtmeConfig : public SystemObject {
* frequency of the clock connected to the bit clock input of PTME.
*/
ReturnValue_t writeCaduRateReg(uint8_t rateVal);
uint8_t readCaduRateReg();
/**
* @brief Next to functions control the tx clock manipulator component

View File

@ -8,8 +8,12 @@
#include "fsfw/serviceinterface/ServiceInterface.h"
PapbVcInterface::PapbVcInterface(LinuxLibgpioIF* gpioComIF, gpioId_t papbEmptyId,
std::string uioFile, int mapNum)
: gpioComIF(gpioComIF), papbEmptyId(papbEmptyId), uioFile(std::move(uioFile)), mapNum(mapNum) {}
std::string uioFile, int mapNum, size_t maxPacketSize)
: gpioComIF(gpioComIF),
papbEmptyId(papbEmptyId),
packetBuf(maxPacketSize),
uioFile(std::move(uioFile)),
mapNum(mapNum) {}
PapbVcInterface::~PapbVcInterface() {}
@ -23,38 +27,75 @@ ReturnValue_t PapbVcInterface::initialize() {
return returnvalue::OK;
}
ReturnValue_t PapbVcInterface::write(const uint8_t* data, size_t size) {
ReturnValue_t PapbVcInterface::write(const uint8_t* data, size_t size, size_t& writtenSize) {
// There are no packets smaller than 4, this is considered a configuration error.
if (size < 4) {
sif::warning << "PapbVcInterface::write: Passed packet smaller than 4 bytes" << std::endl;
return returnvalue::FAILED;
}
// The user must call advance until completion before starting a new packet transfer.
if (writeActiveStatus) {
return IS_BUSY;
}
if (size > packetBuf.capacity()) {
sif::error << "PapbVcInterface: Packet with size " << size << " larger than maximum configured"
<< " byte size " << packetBuf.capacity() << std::endl;
return returnvalue::FAILED;
}
std::memcpy(packetBuf.data(), data, size);
currentPacketSize = size;
currentPacketIndex = 0;
if (pollReadyForPacket()) {
startPacketTransfer(ByteWidthCfg::ONE);
} else {
return DirectTmSinkIF::IS_BUSY;
}
for (size_t idx = 0; idx < size; idx++) {
// if (pollInterfaceReadiness(2, false) == returnvalue::OK) {
*(vcBaseReg + DATA_REG_OFFSET) = static_cast<uint32_t>(data[idx]);
}
completePacketTransfer();
return returnvalue::OK;
return advanceWrite(writtenSize);
}
void PapbVcInterface::startPacketTransfer(ByteWidthCfg initWidth) {
*vcBaseReg = CONFIG_DATA_INPUT | initWidth;
writeActiveStatus = true;
}
void PapbVcInterface::completePacketTransfer() { *vcBaseReg = CONFIG_END; }
bool PapbVcInterface::pollReadyForPacket() const {
// Check if PAPB interface is ready to receive data. Use the configuration register for this.
// Bit 5, see PTME ptme_001_01-0-7-r2 Table 31.
uint32_t reg = *vcBaseReg;
// bool busy = (reg >> 5) & 0b1;
return (reg >> 6) & 0b1;
}
ReturnValue_t PapbVcInterface::advanceWrite(size_t& writtenSize) {
if (!writeActiveStatus) {
return NO_WRITE_ACTIVE;
}
if (not pollReadyForPacket()) {
return IS_BUSY;
}
while (currentPacketIndex < currentPacketSize) {
if (not pollReadyForOctet(MAX_BUSY_POLLS)) {
if (not pollReadyForPacket()) {
return PARTIALLY_WRITTEN;
}
abortPacketTransfer();
return returnvalue::FAILED;
}
*(vcBaseReg + DATA_REG_OFFSET) = static_cast<uint32_t>(packetBuf[currentPacketIndex++]);
writtenSize++;
}
if (not pollReadyForOctet(MAX_BUSY_POLLS)) {
if (not pollReadyForPacket()) {
return PARTIALLY_WRITTEN;
}
abortPacketTransfer();
return returnvalue::FAILED;
}
completePacketTransfer();
return returnvalue::OK;
}
bool PapbVcInterface::writeActive() const { return writeActiveStatus; }
bool PapbVcInterface::isVcInterfaceBufferEmpty() {
ReturnValue_t result = returnvalue::OK;
gpio::Levels papbEmptyState = gpio::Levels::HIGH;
@ -77,21 +118,30 @@ bool PapbVcInterface::isBusy() const { return not pollReadyForPacket(); }
void PapbVcInterface::cancelTransfer() { abortPacketTransfer(); }
ReturnValue_t PapbVcInterface::sendTestFrame() {
/** Size of one complete transfer frame data field amounts to 1105 bytes */
uint8_t testPacket[1105];
/** Fill one test packet */
for (int idx = 0; idx < 1105; idx++) {
testPacket[idx] = static_cast<uint8_t>(idx & 0xFF);
inline bool PapbVcInterface::pollReadyForOctet(uint32_t maxCycles) const {
uint32_t reg;
uint32_t idx = 0;
while (idx < maxCycles) {
reg = *vcBaseReg;
// Busy bit.
if (not((reg >> 5) & 0b1)) {
return true;
}
idx++;
}
ReturnValue_t result = write(testPacket, 1105);
if (result != returnvalue::OK) {
return result;
}
return returnvalue::OK;
return false;
}
void PapbVcInterface::abortPacketTransfer() { *vcBaseReg = CONFIG_ABORT; }
void PapbVcInterface::abortPacketTransfer() {
*vcBaseReg = CONFIG_ABORT;
writeActiveStatus = false;
currentPacketIndex = 0;
currentPacketSize = 0;
}
void PapbVcInterface::completePacketTransfer() {
*vcBaseReg = CONFIG_END;
writeActiveStatus = false;
currentPacketIndex = 0;
currentPacketSize = 0;
}

View File

@ -6,6 +6,7 @@
#include <linux/ipcore/VirtualChannelIF.h>
#include <atomic>
#include <vector>
#include "OBSWConfig.h"
#include "fsfw/returnvalues/returnvalue.h"
@ -30,20 +31,22 @@ class PapbVcInterface : public VirtualChannelIF {
* @param uioFile UIO file providing access to the PAPB bus
* @param mapNum Map number of UIO map associated with this virtual channel
*/
PapbVcInterface(LinuxLibgpioIF* gpioComIF, gpioId_t papbEmptyId, std::string uioFile, int mapNum);
PapbVcInterface(LinuxLibgpioIF* gpioComIF, gpioId_t papbEmptyId, std::string uioFile, int mapNum,
size_t maxPacketSize);
virtual ~PapbVcInterface();
// See interface function documentation for docs on these functions.
bool isBusy() const override;
/**
*
* @param data
* @param size
* @return returnvalue::OK on successfull write, PAPB_BUSY if PAPB is busy.
*/
ReturnValue_t write(const uint8_t* data, size_t size) override;
ReturnValue_t write(const uint8_t* data, size_t size, size_t& writtenSize) override;
ReturnValue_t advanceWrite(size_t& remainingSize) override;
void cancelTransfer() override;
bool writeActive() const override;
ReturnValue_t initialize() override;
private:
@ -80,16 +83,20 @@ class PapbVcInterface : public VirtualChannelIF {
static constexpr long int FIRST_DELAY_PAPB_POLLING_NS = 10;
static constexpr long int MAX_DELAY_PAPB_POLLING_NS = 40;
static constexpr uint32_t MAX_BUSY_POLLS = 1000;
LinuxLibgpioIF* gpioComIF = nullptr;
/** High when external buffer memory of virtual channel is empty */
gpioId_t papbEmptyId = gpio::NO_GPIO;
std::vector<uint8_t> packetBuf;
std::string uioFile;
int mapNum = 0;
bool writeActiveStatus = false;
size_t currentPacketIndex = 0;
size_t currentPacketSize = 0;
mutable struct timespec nextDelay = {.tv_sec = 0, .tv_nsec = 0};
const struct timespec BETWEEN_POLL_DELAY = {.tv_sec = 0, .tv_nsec = 10};
mutable struct timespec remDelay;
volatile uint32_t* vcBaseReg = nullptr;
@ -118,17 +125,13 @@ class PapbVcInterface : public VirtualChannelIF {
*/
inline bool pollReadyForPacket() const;
inline bool pollReadyForOctet(uint32_t maxCycles) const;
/**
* @brief This function can be used for debugging to check whether there are packets in
* the packet buffer of the virtual channel or not.
*/
bool isVcInterfaceBufferEmpty();
/**
* @brief This function sends a complete telemetry transfer frame data field (1105 bytes)
* to the papb interface of the PTME IP Core. Can be used to test the implementation.
*/
ReturnValue_t sendTestFrame();
};
#endif /* LINUX_OBC_PAPBVCINTERFACE_H_ */

View File

@ -22,11 +22,11 @@ ReturnValue_t PdecConfig::write() {
if (result != returnvalue::OK) {
return result;
}
result = writeFrameHeaderFirstOctet();
result = writeFrameHeaderFirstWord();
if (result != returnvalue::OK) {
return result;
}
result = writeFrameHeaderSecondOctet();
result = writeFrameHeaderSecondWord();
if (result != returnvalue::OK) {
return result;
}
@ -77,7 +77,7 @@ ReturnValue_t PdecConfig::setPositiveWindow(uint8_t pw) {
return result;
}
// Rewrite second config word which contains the positive window parameter
writeFrameHeaderSecondOctet();
writeFrameHeaderSecondWord();
return returnvalue::OK;
}
@ -92,7 +92,7 @@ ReturnValue_t PdecConfig::setNegativeWindow(uint8_t nw) {
return result;
}
// Rewrite second config word which contains the negative window parameter
writeFrameHeaderSecondOctet();
writeFrameHeaderSecondWord();
return returnvalue::OK;
}
@ -114,43 +114,23 @@ ReturnValue_t PdecConfig::getNegativeWindow(uint8_t& negativeWindow) {
return returnvalue::OK;
}
ReturnValue_t PdecConfig::writeFrameHeaderFirstOctet() {
ReturnValue_t PdecConfig::writeFrameHeaderFirstWord() {
uint32_t word = 0;
word |= (VERSION_ID << 30);
// Setting the bypass flag and the control command flag should not have any
// implication on the operation of the PDEC IP Core
word |= (BYPASS_FLAG << 29);
word |= (CONTROL_COMMAND_FLAG << 28);
word |= (RESERVED_FIELD_A << 26);
word |= (SPACECRAFT_ID << 16);
word |= (VIRTUAL_CHANNEL << 10);
word |= (DUMMY_BITS << 8);
uint8_t positiveWindow = 0;
ReturnValue_t result =
localParameterHandler.getValue(pdecconfigdefs::paramkeys::POSITIVE_WINDOW, positiveWindow);
ReturnValue_t result = createFirstWord(&word);
if (result != returnvalue::OK) {
return result;
}
word |= static_cast<uint32_t>(positiveWindow);
*(memoryBaseAddress + FRAME_HEADER_OFFSET) = word;
*(memoryBaseAddress + FRAME_HEADER_OFFSET + OFFSET_FIRST_CONFIG_WORD) = word;
return returnvalue::OK;
}
ReturnValue_t PdecConfig::writeFrameHeaderSecondOctet() {
uint8_t negativeWindow = 0;
ReturnValue_t result =
localParameterHandler.getValue(pdecconfigdefs::paramkeys::NEGATIVE_WINDOW, negativeWindow);
ReturnValue_t PdecConfig::writeFrameHeaderSecondWord() {
uint32_t word = 0;
ReturnValue_t result = createSecondWord(&word);
if (result != returnvalue::OK) {
return result;
}
uint32_t word = 0;
word = 0;
word |= (static_cast<uint32_t>(negativeWindow) << 24);
word |= (HIGH_AU_MAP_ID << 16);
word |= (ENABLE_DERANDOMIZER << 8);
*(memoryBaseAddress + FRAME_HEADER_OFFSET + 1) = word;
*(memoryBaseAddress + FRAME_HEADER_OFFSET + OFFSET_SECOND_CONFIG_WORD) = word;
return returnvalue::OK;
}
@ -189,3 +169,49 @@ uint8_t PdecConfig::getOddParity(uint8_t number) {
parityBit = ~(countBits & 0x1) & 0x1;
return parityBit;
}
ReturnValue_t PdecConfig::createFirstWord(uint32_t* word) {
*word = 0;
*word |= (VERSION_ID << 30);
// Setting the bypass flag and the control command flag should not have any
// implication on the operation of the PDEC IP Core
*word |= (BYPASS_FLAG << 29);
*word |= (CONTROL_COMMAND_FLAG << 28);
*word |= (RESERVED_FIELD_A << 26);
*word |= (SPACECRAFT_ID << 16);
*word |= (VIRTUAL_CHANNEL << 10);
*word |= (DUMMY_BITS << 8);
uint8_t positiveWindow = 0;
ReturnValue_t result =
localParameterHandler.getValue(pdecconfigdefs::paramkeys::POSITIVE_WINDOW, positiveWindow);
if (result != returnvalue::OK) {
return result;
}
*word |= static_cast<uint32_t>(positiveWindow);
return returnvalue::OK;
}
ReturnValue_t PdecConfig::createSecondWord(uint32_t* word) {
uint8_t negativeWindow = 0;
ReturnValue_t result =
localParameterHandler.getValue(pdecconfigdefs::paramkeys::NEGATIVE_WINDOW, negativeWindow);
if (result != returnvalue::OK) {
return result;
}
*word = 0;
*word = 0;
*word |= (static_cast<uint32_t>(negativeWindow) << 24);
*word |= (HIGH_AU_MAP_ID << 16);
*word |= (ENABLE_DERANDOMIZER << 8);
return returnvalue::OK;
}
uint32_t PdecConfig::readbackFirstWord() {
return *(memoryBaseAddress + FRAME_HEADER_OFFSET + OFFSET_FIRST_CONFIG_WORD);
}
uint32_t PdecConfig::readbackSecondWord() {
return *(memoryBaseAddress + FRAME_HEADER_OFFSET + OFFSET_SECOND_CONFIG_WORD);
}

View File

@ -48,6 +48,39 @@ class PdecConfig {
ReturnValue_t getPositiveWindow(uint8_t& positiveWindow);
ReturnValue_t getNegativeWindow(uint8_t& negativeWindow);
/**
* @brief Creates the first word of the PDEC configuration
*
* @param word The created word will be written to this pointer
*
* @return OK if successful, otherwise error return value
*
*/
ReturnValue_t createFirstWord(uint32_t* word);
/**
* @brief Creates the second word of the PDEC configuration
*
* @param word The created word will be written to this pointer
*
* @return OK if successful, otherwise error return value
*/
ReturnValue_t createSecondWord(uint32_t* word);
/**
* @brief Reads first config word from the config memory
*
* @return The config word
*/
uint32_t readbackFirstWord();
/**
* @brief Reads the second config word from the config memory
*
* @return The config word
*/
uint32_t readbackSecondWord();
private:
// TC transfer frame configuration parameters
static const uint8_t VERSION_ID = 0;
@ -66,6 +99,8 @@ class PdecConfig {
// 0x200 / 4 = 0x80
static const uint32_t FRAME_HEADER_OFFSET = 0x80;
static const uint32_t OFFSET_FIRST_CONFIG_WORD = 0;
static const uint32_t OFFSET_SECOND_CONFIG_WORD = 1;
static const uint32_t MAP_ADDR_LUT_OFFSET = 0xA0;
static const uint32_t MAP_CLK_FREQ_OFFSET = 0x90;
@ -102,8 +137,8 @@ class PdecConfig {
*/
ReturnValue_t createPersistentConfig();
ReturnValue_t writeFrameHeaderFirstOctet();
ReturnValue_t writeFrameHeaderSecondOctet();
ReturnValue_t writeFrameHeaderFirstWord();
ReturnValue_t writeFrameHeaderSecondWord();
void writeMapConfig();
/**

Some files were not shown because too many files have changed in this diff Show More