Compare commits

...

22 Commits

Author SHA1 Message Date
18304c31fa prep v5.1.0
Some checks failed
EIVE/-/pipeline/head There was a failure building this commit
2023-06-28 13:39:20 +02:00
8caa408cbd Merge pull request 'Internal error reporter' (#211) from internal-error-reporter into main
Some checks failed
EIVE/-/pipeline/head There was a failure building this commit
Reviewed-on: #211
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-28 13:16:37 +02:00
4a983958bf changelog
All checks were successful
EIVE/-/pipeline/pr-main This commit looks good
2023-06-28 13:15:01 +02:00
03ec5bdc39 changelog
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-06-28 13:14:07 +02:00
9c5d6a15db APP logger should be root logger
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-06-28 13:10:10 +02:00
ddc80071e0 changelogge
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-06-28 10:43:11 +02:00
ec0ebc3653 handle FW info event
Some checks failed
EIVE/-/pipeline/head There was a failure building this commit
2023-06-23 02:05:04 +02:00
c9f4a8070d Merge pull request 'v5.0.0' (#209) from v5.0.0-dev into main
Some checks failed
EIVE/-/pipeline/head There was a failure building this commit
Reviewed-on: #209
2023-06-22 17:33:52 +02:00
b917358b9f prep v5.0.0
Some checks are pending
EIVE/-/pipeline/head Build started...
2023-06-22 17:33:20 +02:00
5db9f383a6 Merge pull request 'CP Helper force flag' (#208) from cp-helper-force-flag into v5.0.0-dev
All checks were successful
EIVE/-/pipeline/head This commit looks good
Reviewed-on: #208
2023-06-22 16:37:22 +02:00
fe3accb9ad Merge branch 'main' into cp-helper-force-flag
Some checks are pending
EIVE/-/pipeline/pr-main Build queued...
2023-06-22 16:27:44 +02:00
68d74a4748 fix
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-06-22 16:26:47 +02:00
b6ec7da7fa force flag cp helper 2023-06-22 16:26:33 +02:00
c7df13fa68 Merge pull request 'Core Controller Extension' (#207) from core-ctrl-extension into main
All checks were successful
EIVE/-/pipeline/head This commit looks good
Reviewed-on: #207
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-22 16:25:31 +02:00
daceb6bc1d remove pass
Some checks are pending
EIVE/-/pipeline/pr-main Build queued...
2023-06-22 16:18:52 +02:00
8239e610cc works
All checks were successful
EIVE/-/pipeline/head This commit looks good
2023-06-22 14:52:28 +02:00
b28d938468 core controller extension 2023-06-22 14:40:46 +02:00
e0457831d7 Merge pull request 'fw info event' (#206) from new-fw-info-event into main
All checks were successful
EIVE/-/pipeline/head This commit looks good
Reviewed-on: #206
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-22 09:19:31 +02:00
96fab88a55 Merge branch 'main' into new-fw-info-event
All checks were successful
EIVE/-/pipeline/pr-main This commit looks good
2023-06-21 20:26:31 +02:00
50f2eb42f3 Merge pull request 'Additions for I2C' (#204) from additions-for-i2c-2 into main
Some checks failed
EIVE/-/pipeline/head There was a failure building this commit
Reviewed-on: #204
Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
2023-06-21 19:14:15 +02:00
1bb8bea8d9 fw info event
All checks were successful
EIVE/-/pipeline/head This commit looks good
EIVE/-/pipeline/pr-main This commit looks good
2023-06-21 19:01:19 +02:00
80d231586e Squashed commit of the following:
All checks were successful
EIVE/-/pipeline/head This commit looks good
EIVE/-/pipeline/pr-main This commit looks good
commit 79060acfb6
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Sun Jun 18 16:19:00 2023 +0200

    add enable HK set cmd

commit b9038f1c86
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Sun Jun 18 13:37:21 2023 +0200

    add back PL PCDU 1

commit fd20a9fe3c
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Sun Jun 18 13:30:45 2023 +0200

    add TMP1075 HK handling

commit 936dcdf334
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Thu Jun 15 05:15:05 2023 +0200

    remove sw update, add fake test files

commit 29fc7a5fca
Merge: e106e0b 2202c95
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 14 07:46:34 2023 +0200

    Merge pull request 'Some minor tweaks for BPX commands' (#202) from add-bpx-man-heater-cmds into main

    Reviewed-on: #202

commit 2202c95c4c
Merge: b38da20 e106e0b
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 14 07:46:23 2023 +0200

    Merge branch 'main' into add-bpx-man-heater-cmds

commit b38da20953
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 14 07:46:00 2023 +0200

    some better doc

commit f9a61fa485
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 14 07:45:03 2023 +0200

    clean up batt cmds a bit

commit e106e0bc63
Merge: 970c899 d1bd8f1
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 14 07:43:19 2023 +0200

    Merge pull request 'added BPX manual heater commands' (#201) from add-bpx-man-heater-cmds into main

    Reviewed-on: #201

commit d1bd8f15d9
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 14 07:42:12 2023 +0200

    added BPX manual heater commands

commit 970c8998f0
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 14 06:16:17 2023 +0200

    prep v4.1.0

commit 8a87d83653
Merge: eae0120 cf55b36
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 14 06:06:58 2023 +0200

    Merge pull request 'Add more heater commands' (#200) from add-heater-cmd-ids into main

    Reviewed-on: #200

commit cf55b3630c
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 14 05:16:21 2023 +0200

    add set cfg and rst cfg

commit 656e75052b
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 14 02:59:20 2023 +0200

    fix broken IDs

commit e91bf01daf
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 14 02:03:20 2023 +0200

    add heater cmd IDs

commit eae0120643
Merge: 4a990e7 fc3cf48
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Sun Jun 11 13:36:27 2023 +0200

    Merge pull request 'switched to prebuilt docker image' (#198) from mohr/docker into main

    Reviewed-on: #198

commit fc3cf480dc
Author: Ulrich Mohr <mohr@irs.uni-stuttgart.de>
Date:   Sun Jun 11 12:14:52 2023 +0200

    bump docker version

commit acca981260
Author: Ulrich Mohr <mohr@irs.uni-stuttgart.de>
Date:   Sun Jun 11 12:12:47 2023 +0200

    jenkins user in docker

commit 822eaa4c89
Author: Ulrich Mohr <mohr@irs.uni-stuttgart.de>
Date:   Sun Jun 11 12:01:26 2023 +0200

    removed empty `environment` block in Jenkinsfile which Jenkins does not like

    diva....

commit 252d140b8e
Author: Ulrich Mohr <mohr@irs.uni-stuttgart.de>
Date:   Sun Jun 11 11:56:39 2023 +0200

    switched to prebuilt docker image

commit 4a990e704b
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 10 14:58:15 2023 +0200

    added basic automation file

commit 522f273c99
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 10 14:48:02 2023 +0200

    add date in changelog

commit 1724a90a26
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 10 14:46:00 2023 +0200

    add release checklist

commit 7b21070363
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Sat Jun 10 14:42:28 2023 +0200

    linter fixes, version bump

commit d390168829
Merge: 238bbd5 a969481
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Sat Jun 10 14:10:42 2023 +0200

    Merge pull request 'v4.0.0-dev' (#197) from v4.0.0-dev into main

    Reviewed-on: #197

commit a969481698
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 9 18:53:11 2023 +0200

    imtq parsing fixes

commit 8bdba71dc3
Merge: 8804a4e e3800ac
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Fri Jun 9 12:44:00 2023 +0200

    Merge pull request 'Rework logging handling' (#194) from rework_logging_handling into v4.0.0-dev

    Reviewed-on: #194

commit e3800ac0c9
Merge: 1548278 8804a4e
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Fri Jun 9 12:43:21 2023 +0200

    Merge branch 'v4.0.0-dev' into rework_logging_handling

commit 8804a4e8e9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 9 12:43:08 2023 +0200

    bump tmtccmd to v5.0.0rc0

commit 1548278ad6
Merge: 148a52a ac140ae
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 9 12:42:26 2023 +0200

    Merge remote-tracking branch 'origin/v4.0.0-dev' into rework_logging_handling

commit 148a52a69a
Merge: e45072c 238bbd5
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 9 12:42:16 2023 +0200

    Merge remote-tracking branch 'origin/main' into rework_logging_handling

commit ac140aeb2c
Merge: c6c4b9a a5a30d3
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Fri Jun 9 12:41:55 2023 +0200

    Merge pull request 'moved 2 parameters' (#196) from move-pdu-datavar into v4.0.0-dev

    Reviewed-on: #196

commit a5a30d37eb
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 9 12:41:49 2023 +0200

    tweak changelog

commit d9194207a4
Merge: 14d14f1 c6c4b9a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri Jun 9 12:39:38 2023 +0200

    Merge remote-tracking branch 'origin/v4.0.0-dev' into move-pdu-datavar

commit 14d14f12c0
Merge: 17dd9de 238bbd5
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 7 17:27:52 2023 +0200

    Merge branch 'v3.2.0-dev' into move-pdu-datavar

commit 17dd9de51e
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 7 17:25:51 2023 +0200

    moved 2 parameters

commit 238bbd5843
Merge: 6182369 de02d81
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 7 17:16:37 2023 +0200

    Merge pull request 'better exception handling' (#195) from better-exception-handling into v3.2.0-dev

    Reviewed-on: #195

commit de02d81e1d
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Wed Jun 7 16:56:43 2023 +0200

    better exception handling

commit e45072c38d
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Thu May 25 11:31:06 2023 +0200

    import replacement

commit fe96f115d5
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Wed May 24 13:50:37 2023 +0200

    that should be all

commit e9e43f03d2
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Wed May 24 13:44:45 2023 +0200

    more stuff

commit aab093cc0a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Tue May 23 09:54:51 2023 +0200

    rework it

commit c6c4b9a995
Merge: 280c724 5f379bf
Author: Marius Eggert <eggertm@irs.uni-stuttgart.de>
Date:   Mon May 22 10:42:49 2023 +0200

    Merge pull request 'Bugfix CFDP' (#191) from bugfix-cfdp into v4.0.0-dev

    Reviewed-on: #191

commit 6182369e4f
Merge: d23c0c2 620360c
Author: Marius Eggert <eggertm@irs.uni-stuttgart.de>
Date:   Mon May 22 10:41:54 2023 +0200

    Merge pull request 'generic systemctl' (#193) from generic_systemctl into main

    Reviewed-on: #193
    Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>

commit 620360c8e8
Merge: 49dde29 d23c0c2
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Fri May 19 11:02:35 2023 +0200

    Merge branch 'main' into generic_systemctl

commit 49dde29847
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Fri May 19 11:01:06 2023 +0200

    generic systemctl

commit d23c0c20fc
Merge: 280c724 ef1da1e
Author: Marius Eggert <eggertm@irs.uni-stuttgart.de>
Date:   Fri May 19 10:44:01 2023 +0200

    Merge pull request 'new MPSoC events and retvals' (#192) from mpsoc_new_events_retvals into main

    Reviewed-on: #192
    Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>

commit ef1da1e882
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 17 19:00:17 2023 +0200

    changelog

commit 6ec0ce20fa
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Wed May 17 17:15:43 2023 +0200

    new event

commit 5f379bf2bb
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Mon May 15 16:43:40 2023 +0200

    changelog

commit 7c1e7226e0
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Mon May 15 16:42:56 2023 +0200

    bugfix CFDP: bump tmtccmd

commit b8e1c7afe9
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Mon May 15 15:20:56 2023 +0200

    new MPSoC events and retvals

commit 280c72439e
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Mon May 15 14:18:18 2023 +0200

    bugfix MPSoC command

commit 14c42a91ff
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Mon May 15 13:43:26 2023 +0200

    rework read and write prompts for MPSoC

commit dd3e4c649b
Merge: 3b16717 0c1bfc6
Author: Marius Eggert <eggertm@irs.uni-stuttgart.de>
Date:   Mon May 15 09:10:41 2023 +0200

    Merge pull request 'MPSoC flash content reporter' (#190) from mpsoc_action_reply_handler into main

    Reviewed-on: #190
    Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>

commit 3b16717ce2
Merge: 377e98b f1a0334
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Fri May 12 16:27:39 2023 +0200

    Merge pull request 'fixfixfix' (#189) from ploc_pwr_switching_fix into main

    Reviewed-on: #189

commit f1a0334d3d
Merge: f090c3a 377e98b
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Fri May 12 16:27:33 2023 +0200

    Merge branch 'main' into ploc_pwr_switching_fix

commit 0c1bfc6fd3
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 12 16:27:16 2023 +0200

    bump changelog

commit 04bbe057e7
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 12 16:24:45 2023 +0200

    flash c ontent report works now

commit e05a54b076
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 12 16:08:57 2023 +0200

    somethings wrong with the format

commit ef0adef04a
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 12 15:51:17 2023 +0200

    start adding action reply handler for MPSoC

commit 377e98b5c2
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 12 13:22:58 2023 +0200

    bugfix MPSoC HK parsing

commit 87e5abe8eb
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Fri May 12 11:51:47 2023 +0200

    add missing command list of PLOC MPSoC commands

commit f090c3af66
Author: Robin Mueller <muellerr@irs.uni-stuttgart.de>
Date:   Thu May 11 17:55:15 2023 +0200

    fixfixfix

commit 13fd9a7d84
Merge: 4d921e0 bbcc0f9
Author: Marius Eggert <eggertm@irs.uni-stuttgart.de>
Date:   Thu May 4 15:30:49 2023 +0200

    Merge pull request 'impl MPSoC HK parsing' (#188) from mpsoc_commands into main

    Reviewed-on: #188
    Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>

commit bbcc0f9de7
Merge: a0aa652 1ab8710
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu May 4 15:17:12 2023 +0200

    Merge branch 'mpsoc_commands' of https://egit.irs.uni-stuttgart.de/eive/eive-tmtc into mpsoc_commands

commit a0aa6525e4
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu May 4 15:17:00 2023 +0200

    fix

commit 1ab8710040
Merge: f480d86 4d921e0
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Thu May 4 14:51:13 2023 +0200

    Merge branch 'main' into mpsoc_commands

commit f480d86fbd
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu May 4 14:50:38 2023 +0200

    impl MPSoC HK parsing

commit 4d921e01af
Merge: e85d1a1 b505524
Author: Marius Eggert <eggertm@irs.uni-stuttgart.de>
Date:   Thu May 4 12:01:43 2023 +0200

    Merge pull request 'MPSoC module update' (#187) from mpsoc_commands into main

    Reviewed-on: #187
    Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>

commit b505524e0b
Merge: e0e9a31 e85d1a1
Author: Marius Eggert <eggertm@irs.uni-stuttgart.de>
Date:   Thu May 4 12:01:33 2023 +0200

    Merge branch 'main' into mpsoc_commands

commit e0e9a310b9
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu May 4 11:51:50 2023 +0200

    add command to get flash dir content

commit 0e9ebefc87
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Thu May 4 11:27:12 2023 +0200

    new mpsoc commands

commit e85d1a1966
Merge: 60fba8b 4ff50b6
Author: Marius Eggert <eggertm@irs.uni-stuttgart.de>
Date:   Wed May 3 13:36:31 2023 +0200

    Merge pull request 'most important bugfix' (#186) from most-important-bugfix into main

    Reviewed-on: #186

commit 4ff50b6559
Author: meggert <eggertm@irs.uni-stuttgart.de>
Date:   Wed May 3 13:34:14 2023 +0200

    bub

commit 60fba8b6d9
Merge: 5fbd19b 1707f24
Author: Robin Müller <muellerr@irs.uni-stuttgart.de>
Date:   Fri Apr 28 10:25:35 2023 +0200

    Merge pull request 'more system modes' (#185) from more-system-modes into main

    Reviewed-on: #185

commit 1707f24612
Author: meggert <eggertm@irs.uni-stuttgart.de>
Date:   Wed Apr 19 15:10:44 2023 +0200

    more system modes

commit 5fbd19bb6c
Merge: 4083a30 0c6a967
Author: Robin Mueller <robin.mueller.m@gmail.com>
Date:   Mon Apr 17 18:41:08 2023 +0200

    Merge branch 'main' of https://egit.irs.uni-stuttgart.de/eive/eive-tmtc
2023-06-19 17:59:14 +02:00
11 changed files with 199 additions and 69 deletions

View File

@ -10,6 +10,27 @@ list yields a list of all related PRs for each release.
# [unreleased]
# [v5.1.0] 2023-06-28
## Added
- Internal error reporter dataset handling.
## Fixed
- `APP_LOGGER` is the root logger now.
## Changed
- HK is only displayed in brief format per default now. This will soon be adaptable by CLI
argument.
# [v5.0.0] 2023-06-22
## Changed
- Force flag for copy helper.
# [v4.1.0] 2023-06-14
## Added

View File

@ -1,14 +1,14 @@
__version__ = "4.1.0"
__version__ = "5.1.0"
import logging
from pathlib import Path
SW_NAME = "eive-tmtc"
VERSION_MAJOR = 4
VERSION_MAJOR = 5
VERSION_MINOR = 1
VERSION_REVISION = 0
EIVE_TMTC_ROOT = Path(__file__).parent
PACKAGE_ROOT = EIVE_TMTC_ROOT.parent
APP_LOGGER = logging.getLogger(__name__)
APP_LOGGER = logging.getLogger()

View File

@ -271,6 +271,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
14010;0x36ba;TRYING_I2C_RECOVERY;HIGH;I2C is unavailable. Trying recovery of I2C bus by power cycling all I2C devices.;mission/sysDefs.h
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
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

1 Event ID (dec) Event ID (hex) Name Severity Description File Path
271 14010 0x36ba TRYING_I2C_RECOVERY HIGH I2C is unavailable. Trying recovery of I2C bus by power cycling all I2C devices. mission/sysDefs.h
272 14011 0x36bb I2C_REBOOT HIGH I2C is unavailable. Recovery did not work, performing full reboot. mission/sysDefs.h
273 14012 0x36bc PDEC_REBOOT HIGH PDEC recovery through reset was not possible, performing full reboot. mission/sysDefs.h
274 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
275 14100 0x3714 NO_VALID_SENSOR_TEMPERATURE MEDIUM No description mission/controller/tcsDefs.h
276 14101 0x3715 NO_HEALTHY_HEATER_AVAILABLE MEDIUM No description mission/controller/tcsDefs.h
277 14102 0x3716 SYRLINKS_OVERHEATING HIGH No description mission/controller/tcsDefs.h

View File

@ -18,6 +18,7 @@ __OBJECT_ID_DICT = None
# Core Object IDs
SOLAR_ARRAY_DEPLOYMENT_ID = bytes([0x44, 0x41, 0x00, 0xA2])
INTERNAL_ERROR_REPORTER_ID = bytes([0x53, 0x04, 0x00, 0x00])
# Power Object IDs
PCDU_HANDLER_ID = bytes([0x44, 0x20, 0x00, 0xA1])

View File

@ -95,7 +95,7 @@ def handle_event_packet( # noqa C901: Complexity okay here
if info.name == "REBOOT_COUNTER":
boot_count = (event_def.param1 << 32) | event_def.param2
pw.dlog(f"Total boot count: {boot_count}")
if info.name == "VERSION_INFO":
if info.name == "VERSION_INFO" or info.name == "FIRMWARE_INFO":
specific_handler = True
ver_major = (event_def.param1 >> 24) & 0xFF
ver_minor = (event_def.param1 >> 16) & 0xFF
@ -105,8 +105,11 @@ def handle_event_packet( # noqa C901: Complexity okay here
if has_git_sha:
p2_as_bytes = event_def.param2.to_bytes(4, sys.byteorder)
git_sha = p2_as_bytes.decode("ascii")
version_string = f"v{ver_major}.{ver_minor}.{ver_rev}"
pw.dlog(f"Version {version_string}")
if info.name == "VERSION_INFO":
name = "OBSW version: "
else:
name = "Firmware version: "
pw.dlog(f"{name} v{ver_major}.{ver_minor}.{ver_rev}")
if has_git_sha:
pw.dlog(f"Git SHA first four letters: {git_sha}")
if info.name == "CLOCK_SET":

View File

@ -3,6 +3,7 @@ import logging
# from pus_tm.tcp_server_objects import TCP_SEVER_SENSOR_TEMPERATURES
from eive_tmtc.tmtc.acs.acs_ctrl import handle_acs_ctrl_hk_data
from eive_tmtc.tmtc.internal_err_reporter import handle_ier_hk_data
from eive_tmtc.tmtc.payload.ploc_mpsoc import handle_ploc_mpsoc_hk_data
from eive_tmtc.tmtc.tcs.rtd import RTD_NAMES, handle_rtd_hk
from eive_tmtc.tmtc.acs.star_tracker import handle_str_hk_data
@ -44,6 +45,8 @@ _LOGGER = logging.getLogger(__name__)
FORWARD_SENSOR_TEMPS = False
# TODO: Transform this into a CLI argument
HK_OUTPUT_LEVEL = 1
def handle_hk_packet(
@ -70,13 +73,16 @@ def handle_hk_packet(
hk_data=hk_data,
)
try:
handle_regular_hk_print(
printer=printer,
object_id=named_obj_id,
hk_packet=tm_packet,
tm=tm_packet.pus_tm,
hk_data=hk_data,
)
if HK_OUTPUT_LEVEL == 1:
pass
elif HK_OUTPUT_LEVEL > 1:
handle_regular_hk_print(
printer=printer,
object_id=named_obj_id,
hk_packet=tm_packet,
tm=tm_packet.pus_tm,
hk_data=hk_data,
)
except ValueError as e:
_LOGGER.exception(
f"{e} error when parsing HK data coming from {named_obj_id}"
@ -119,6 +125,8 @@ def handle_regular_hk_print( # noqa C901: Complexity okay here
return handle_ploc_mpsoc_hk_data(pw=pw, hk_data=hk_data, set_id=set_id)
elif objb == obj_ids.ACU_HANDLER_ID:
return handle_acu_hk_data(pw=pw, hk_data=hk_data, set_id=set_id)
elif objb == obj_ids.INTERNAL_ERROR_REPORTER_ID:
return handle_ier_hk_data(pw=pw, hk_data=hk_data, set_id=set_id)
elif objb == obj_ids.RAD_SENSOR_ID:
return handle_rad_sensor_data(pw=pw, hk_data=hk_data, set_id=set_id)
elif objb in [obj_ids.RW1_ID, obj_ids.RW2_ID, obj_ids.RW3_ID, obj_ids.RW4_ID]:
@ -177,6 +185,7 @@ def handle_regular_hk_print( # noqa C901: Complexity okay here
obj_ids.TMP1075_HANDLER_TCS_BRD_1_ID,
obj_ids.TMP1075_HANDLER_IF_BRD_ID,
obj_ids.TMP1075_HANDLER_PLPCDU_0_ID,
obj_ids.TMP1075_HANDLER_PLPCDU_1_ID,
]:
return handle_tmp_1075_hk_data(set_id=set_id, hk_data=hk_data, pw=pw)
elif objb == obj_ids.ACS_CONTROLLER:

View File

@ -35,6 +35,7 @@ def pus_factory_hook( # noqa C901 : Complexity okay here
return
try:
tm_packet = PusTelemetry.unpack(packet, CdsShortTimestamp.empty())
# _LOGGER.info(f"Sequence count: {tm_packet.seq_count}")
except ValueError as value_error:
_LOGGER.warning(f"{value_error}")
_LOGGER.warning("Could not generate PUS TM object from raw data")

View File

@ -32,6 +32,7 @@ class ActionId(enum.IntEnum):
RESET_REBOOT_COUNTER = 6
SWITCH_IMG_LOCK = 7
SET_MAX_REBOOT_CNT = 8
READ_REBOOT_MECHANISM_INFO = 9
UPDATE_OBSW_FROM_SD_0 = 10
UPDATE_OBSW_FROM_SD_1 = 11
UPDATE_OBSW_FROM_TMP = 12
@ -87,13 +88,14 @@ class OpCode:
SWITCH_TO_SD_0 = ["switch_to_sd_0"]
SWITCH_TO_SD_1 = ["switch_to_sd_1"]
SWITCH_TO_BOTH_SD_CARDS = ["switch_to_both_sd_cards"]
ENABLE_REBOOT_FILE_HANDLING = ["rbh_off"]
DISABLE_REBOOT_FILE_HANDLING = ["rbh_on"]
RESET_ALL_REBOOT_COUNTERS = ["rbh_reset_a"]
RESET_REBOOT_COUNTER_00 = ["rbh_reset_00"]
RESET_REBOOT_COUNTER_01 = ["rbh_reset_01"]
RESET_REBOOT_COUNTER_10 = ["rbh_reset_10"]
RESET_REBOOT_COUNTER_11 = ["rbh_reset_11"]
READ_REBOOT_MECHANISM_INFO = "rbh_info"
ENABLE_REBOOT_FILE_HANDLING = "rbh_off"
DISABLE_REBOOT_FILE_HANDLING = "rbh_on"
RESET_ALL_REBOOT_COUNTERS = "rbh_reset_a"
RESET_REBOOT_COUNTER_00 = "rbh_reset_00"
RESET_REBOOT_COUNTER_01 = "rbh_reset_01"
RESET_REBOOT_COUNTER_10 = "rbh_reset_10"
RESET_REBOOT_COUNTER_11 = "rbh_reset_11"
SET_MAX_REBOOT_CNT = ["rbh_max_cnt"]
@ -110,6 +112,7 @@ class Info:
OBSW_UPDATE_FROM_SD_0 = "Update OBSW from SD Card 0"
OBSW_UPDATE_FROM_SD_1 = "Update OBSW from SD Card 1"
OBSW_UPDATE_FROM_TMP = "Update OBSW from tmp folder"
READ_REBOOT_MECHANISM_INFO = "Read reboot mechansm information"
SWITCH_TO_SD_0 = "Switch to SD card 0"
SWITCH_TO_SD_1 = "Switch to SD card 1"
SWITCH_TO_BOTH_SD_CARDS = "Switch to both SD cards with specified active card"
@ -154,6 +157,9 @@ def add_core_controller_definitions(defs: TmtcDefinitionWrapper):
oce.add(keys=OpCode.XSC_REBOOT_1_0, info="Reboot 1 0")
oce.add(keys=OpCode.XSC_REBOOT_1_1, info="Reboot 1 1")
oce.add(keys=OpCode.SET_PREF_SD, info=Info.SET_PREF_SD)
oce.add(
keys=OpCode.READ_REBOOT_MECHANISM_INFO, info=Info.READ_REBOOT_MECHANISM_INFO
)
oce.add(keys=OpCode.OBSW_UPDATE_FROM_TMP, info=Info.OBSW_UPDATE_FROM_TMP)
oce.add(keys=OpCode.OBSW_UPDATE_FROM_SD_0, info=Info.OBSW_UPDATE_FROM_SD_0)
oce.add(keys=OpCode.OBSW_UPDATE_FROM_SD_1, info=Info.OBSW_UPDATE_FROM_SD_1)
@ -294,7 +300,15 @@ def pack_core_commands( # noqa C901
chip=Chip.CHIP_1,
copy=Copy.COPY_1_GOLD,
)
elif op_code in OpCode.DISABLE_REBOOT_FILE_HANDLING:
elif op_code == OpCode.READ_REBOOT_MECHANISM_INFO:
q.add_log_cmd(Info.READ_REBOOT_MECHANISM_INFO)
q.add_pus_tc(
create_action_cmd(
object_id=CORE_CONTROLLER_ID,
action_id=ActionId.READ_REBOOT_MECHANISM_INFO,
)
)
elif op_code == OpCode.DISABLE_REBOOT_FILE_HANDLING:
q.add_log_cmd("Disabling reboot file handling")
user_data = bytearray([0])
q.add_pus_tc(
@ -304,7 +318,7 @@ def pack_core_commands( # noqa C901
user_data=user_data,
)
)
elif op_code in OpCode.ENABLE_REBOOT_FILE_HANDLING:
elif op_code == OpCode.ENABLE_REBOOT_FILE_HANDLING:
q.add_log_cmd("Enabling reboot file handling")
user_data = bytearray([1])
q.add_pus_tc(
@ -314,7 +328,7 @@ def pack_core_commands( # noqa C901
user_data=user_data,
)
)
elif op_code in OpCode.RESET_ALL_REBOOT_COUNTERS:
elif op_code == OpCode.RESET_ALL_REBOOT_COUNTERS:
q.add_log_cmd("Resetting all reboot counters")
q.add_pus_tc(
create_action_cmd(
@ -322,13 +336,13 @@ def pack_core_commands( # noqa C901
action_id=ActionId.RESET_REBOOT_COUNTER,
)
)
elif op_code in OpCode.RESET_REBOOT_COUNTER_00:
elif op_code == OpCode.RESET_REBOOT_COUNTER_00:
reset_specific_boot_counter(q, 0, 0)
elif op_code in OpCode.RESET_REBOOT_COUNTER_01:
elif op_code == OpCode.RESET_REBOOT_COUNTER_01:
reset_specific_boot_counter(q, 0, 1)
elif op_code in OpCode.RESET_REBOOT_COUNTER_10:
elif op_code == OpCode.RESET_REBOOT_COUNTER_10:
reset_specific_boot_counter(q, 1, 0)
elif op_code in OpCode.RESET_REBOOT_COUNTER_11:
elif op_code == OpCode.RESET_REBOOT_COUNTER_11:
reset_specific_boot_counter(q, 1, 1)
elif op_code in OpCode.OBSW_UPDATE_FROM_SD_0:
q.add_log_cmd(Info.OBSW_UPDATE_FROM_SD_0)
@ -385,14 +399,17 @@ def pack_core_commands( # noqa C901
domain_id=0,
unique_id=ParamId.PREF_SD,
parameter=pref_sd,
).pack()
)
)
)
elif op_code == OpCode.CP_HELPER:
cp_recursive = int(input("Copy recursively (0/1) ?: "))
if cp_recursive not in [0, 1]:
raise ValueError("Invalid value, only 0 or 1 allowed")
user_data = bytearray([cp_recursive])
cp_force = int(input("Copy with force option(0/1) ?: "))
if cp_force not in [0, 1]:
raise ValueError("Invalid value, only 0 or 1 allowed")
user_data = bytearray([cp_recursive, cp_force])
user_data.extend(packet_source_dest_path("Copy"))
q.add_log_cmd(Info.CP_HELPER)
q.add_pus_tc(
@ -603,43 +620,85 @@ def handle_core_hk_data(pw: PrintWrapper, set_id: int, hk_data: bytes):
def handle_core_ctrl_action_replies(
action_id: int, pw: PrintWrapper, custom_data: bytes
):
if action_id == ActionId.LIST_DIR_DUMP_DIRECTLY:
if len(custom_data) < 4:
_LOGGER.warning("Data unexpectedly small")
return
seq_idx = struct.unpack("!I", custom_data[0:4])[0]
total_chunks = struct.unpack("!I", custom_data[4:8])[0]
compressed = custom_data[8]
ls_cmd = custom_data[9:].split(b"\x00")[0].decode()
# Include length of NULL termination
file_data_offset = 9 + len(ls_cmd) + 1
if action_id == ActionId.READ_REBOOT_MECHANISM_INFO:
handle_reboot_mechanism_info_reply(pw, custom_data)
elif action_id == ActionId.LIST_DIR_DUMP_DIRECTLY:
handle_list_dir_dump_reply(pw, custom_data)
def handle_reboot_mechanism_info_reply(pw: PrintWrapper, custom_data: bytes):
pw.dlog("Received reboot mechansm information")
fmt_str = "!BIIIIIBBBBBBBB"
inc_len = struct.calcsize(fmt_str)
if len(custom_data) < inc_len:
raise ValueError(f"Received custom data shorter than expected {inc_len}")
(
enabled,
max_count,
img00_count,
img01_count,
img10_count,
img11_count,
img00_lock,
img01_lock,
img10_lock,
img11_lock,
last_chip,
last_copy,
next_chip,
next_copy,
) = struct.unpack(fmt_str, custom_data[:inc_len])
pw.dlog(f"Enabled: {enabled}")
pw.dlog(f"Max Count: {max_count}")
pw.dlog(f"Count 00: {img00_count}")
pw.dlog(f"Count 01: {img01_count}")
pw.dlog(f"Count 10: {img10_count}")
pw.dlog(f"Count 11: {img11_count}")
pw.dlog(f"Lock 00: {img00_lock}")
pw.dlog(f"Lock 01: {img01_lock}")
pw.dlog(f"Lock 10: {img10_lock}")
pw.dlog(f"Lock 11: {img11_lock}")
pw.dlog(f"Last Chip: {last_chip}")
pw.dlog(f"Last Copy: {last_copy}")
pw.dlog(f"Next Chip: {next_chip}")
pw.dlog(f"Next Copy: {next_copy}")
def handle_list_dir_dump_reply(pw: PrintWrapper, custom_data: bytes):
if len(custom_data) < 4:
_LOGGER.warning("Data unexpectedly small")
return
seq_idx = struct.unpack("!I", custom_data[0:4])[0]
total_chunks = struct.unpack("!I", custom_data[4:8])[0]
compressed = custom_data[8]
ls_cmd = custom_data[9:].split(b"\x00")[0].decode()
# Include length of NULL termination
file_data_offset = 9 + len(ls_cmd) + 1
pw.dlog(
f"Received directory listing dump for ls command {ls_cmd}. "
f"Chunk {seq_idx + 1}/{total_chunks}"
)
def remove_if_exists_and_new(seq_idx_: int, path_: Path):
if seq_idx_ == 0 and path_.exists():
os.remove(path_)
if compressed:
path = Path("dir_listing.txt.gz")
remove_if_exists_and_new(seq_idx, path)
pw.dlog(
f"Received directory listing dump for ls command {ls_cmd}. "
f"Chunk {seq_idx + 1}/{total_chunks}"
f"Compression option: {compressed}. Dumping file into dir_listing.txt.gz"
)
def remove_if_exists_and_new(seq_idx_: int, path_: Path):
if seq_idx_ == 0 and path_.exists():
os.remove(path_)
if compressed:
path = Path("dir_listing.txt.gz")
remove_if_exists_and_new(seq_idx, path)
pw.dlog(
f"Compression option: {compressed}. Dumping file into dir_listing.txt.gz"
)
with open(path, "ab") as listing_file:
listing_file.write(custom_data[file_data_offset:])
else:
path = Path("dir_listing.txt")
remove_if_exists_and_new(seq_idx, path)
pw.dlog(
f"Compression option: {compressed}. Dumping file into dir_listing.txt"
)
with open(path, "a") as listing_file:
listing_file_str = custom_data[file_data_offset:].decode()
listing_file.write(listing_file_str)
if seq_idx + 1 == total_chunks:
pw.dlog("Full directory listing: ")
with open("dir_listing.txt", "r") as listing_file:
print(listing_file.read())
with open(path, "ab") as listing_file:
listing_file.write(custom_data[file_data_offset:])
else:
path = Path("dir_listing.txt")
remove_if_exists_and_new(seq_idx, path)
pw.dlog(f"Compression option: {compressed}. Dumping file into dir_listing.txt")
with open(path, "a") as listing_file:
listing_file_str = custom_data[file_data_offset:].decode()
listing_file.write(listing_file_str)
if seq_idx + 1 == total_chunks:
pw.dlog("Full directory listing: ")
with open("dir_listing.txt", "r") as listing_file:
print(listing_file.read())

View File

@ -0,0 +1,24 @@
import enum
import struct
from tmtccmd.fsfw.tmtc_printer import FsfwTmTcPrinter
from eive_tmtc.pus_tm.defs import PrintWrapper
class SetId(enum.IntEnum):
ERROR_ID = 0
def handle_ier_hk_data(pw: PrintWrapper, hk_data: bytes, set_id: int):
pw.dlog(f"Received internal error reporter HK data with set ID {set_id}")
if set_id == SetId.ERROR_ID:
fmt_str = "!III"
inc_len = struct.calcsize(fmt_str)
(tm_errors, queue_errors, store_hits) = struct.unpack(
fmt_str, hk_data[:inc_len]
)
pw.dlog(f"TM Errors: {tm_errors}")
pw.dlog(f"Queue Errors: {queue_errors}")
pw.dlog(f"Store Errors: {store_hits}")
pw.dlog(FsfwTmTcPrinter.get_validity_buffer(hk_data[inc_len:], 3))

View File

@ -13,6 +13,7 @@ from tmtccmd.tc.pus_200_fsfw_mode import Mode, create_announce_mode_recursive_co
from tmtccmd.tc.pus_3_fsfw_hk import (
make_sid,
generate_one_hk_command,
create_enable_periodic_hk_command_with_interval,
create_request_one_diag_command,
)
@ -21,6 +22,7 @@ class OpCodeSys:
OFF = ["off"]
NML = ["nml"]
REQUEST_PRIMARY_TEMP_SET = ["temp"]
ENABLE_TEMP_SET = "enable_temp_set"
REQUEST_DEVICE_TEMP_SET = ["temp_devs"]
REQUEST_DEVICE_SUS_SET = ["temp_sus"]
REQUEST_HEATER_INFO = "heater_info"
@ -30,6 +32,7 @@ class OpCodeSys:
class InfoSys:
OFF = "Switch TCS subsystem OFF"
NML = "Switch TCS subsystem NORMAL (nominal)"
ENABLE_TEMP_SET = "Enable Primary Temperature Set"
REQUEST_PRIMARY_TEMP_SET = "Request HK set of primary sensor temperatures"
REQUEST_DEVICE_TEMP_SET = "Request HK set of device sensor temperatures"
REQUEST_DEVICE_SUS_SET = "Request HK set of the SUS temperatures"
@ -67,6 +70,13 @@ def pack_tcs_sys_commands(q: DefaultPusQueueHelper, op_code: str):
if op_code in OpCodeSys.NML:
q.add_log_cmd(InfoSys.NML)
pack_mode_cmd_with_info(TCS_SUBSYSTEM_ID, Mode.NORMAL, 0, q, InfoSys.OFF)
if op_code == OpCodeSys.ENABLE_TEMP_SET:
interval_seconds = float(input("Please specify interval in seconds: "))
cmds = create_enable_periodic_hk_command_with_interval(
False, make_sid(TCS_CONTROLLER, CtrlSetId.PRIMARY_SENSORS), interval_seconds
)
for cmd in cmds:
q.add_pus_tc(cmd)
if op_code == OpCodeSys.ANNOUNCE_MODES:
q.add_log_cmd(InfoSys.ANNOUNCE_MODES)
q.add_pus_tc(create_announce_mode_recursive_command(TCS_SUBSYSTEM_ID))
@ -87,8 +97,9 @@ def add_tcs_subsystem_cmds(defs: TmtcDefinitionWrapper):
oce.add(keys=OpCodeSys.REQUEST_DEVICE_SUS_SET, info=InfoSys.REQUEST_DEVICE_SUS_SET)
oce.add(keys=OpCodeSys.REQUEST_HEATER_INFO, info=InfoSys.REQUEST_HEATER_INFO)
oce.add(keys=OpCodeSys.ANNOUNCE_MODES, info=InfoSys.ANNOUNCE_MODES)
oce.add(keys=OpCodeSys.ENABLE_TEMP_SET, info=InfoSys.ENABLE_TEMP_SET)
defs.add_service(
name=CustomServiceList.TCS,
info="TCS Board",
info="TCS",
op_code_entry=oce,
)

View File

@ -94,7 +94,7 @@ from eive_tmtc.config.definitions import (
CFDP_REMOTE_ENTITY_ID,
)
from eive_tmtc.config.hook import EiveHookObject
from eive_tmtc.pus_tm.factory_hook import pus_factory_hook
from eive_tmtc.pus_tm.pus_demux import pus_factory_hook
from eive_tmtc.pus_tc.procedure_packer import handle_default_procedure
_LOGGER = APP_LOGGER