Store TLE presistent #789

Merged
meggert merged 17 commits from persistent-tle-store into dev-7.5.0 2023-12-01 13:04:57 +01:00
24 changed files with 132 additions and 49 deletions
Showing only changes of commit 623427035d - Show all commits

View File

@ -16,6 +16,23 @@ will consitute of a breaking change warranting a new major release:
# [unreleased]
# [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

View File

@ -10,7 +10,7 @@
cmake_minimum_required(VERSION 3.13)
set(OBSW_VERSION_MAJOR 6)
set(OBSW_VERSION_MINOR 4)
set(OBSW_VERSION_MINOR 5)
set(OBSW_VERSION_REVISION 1)
# set(CMAKE_VERBOSE TRUE)

View File

@ -1,7 +1,7 @@
/**
* @brief Auto-generated event translation file. Contains 304 translations.
* @brief Auto-generated event translation file. Contains 306 translations.
* @details
* Generated on: 2023-08-21 15:54:29
* Generated on: 2023-09-12 10:05:17
*/
#include "translateEvents.h"
@ -309,6 +309,8 @@ 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 *translateEvents(Event event) {
switch ((event & 0xFFFF)) {
@ -920,6 +922,10 @@ 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;
default:
return "UNKNOWN_EVENT";
}

View File

@ -2,7 +2,7 @@
* @brief Auto-generated object translation file.
* @details
* Contains 171 translations.
* Generated on: 2023-08-21 15:54:29
* Generated on: 2023-09-12 10:05:17
*/
#include "translateObjects.h"

View File

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

View File

@ -303,3 +303,5 @@ 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 again, resetting invalid message counter. P1: Invalid message counter.;mission/acs/SusHandler.h

1 Event ID (dec) Event ID (hex) Name Severity Description File Path
303 14300 14312 0x37dc 0x37e8 POSSIBLE_FILE_CORRUPTION DUMP_MISC_CANCELLED LOW P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp. P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
304 14301 14313 0x37dd 0x37e9 FILE_TOO_LARGE DUMP_HK_CANCELLED LOW File in store too large. P1: Detected file size P2: Allowed file size P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
305 14302 14314 0x37de 0x37ea BUSY_DUMPING_EVENT DUMP_CFDP_CANCELLED INFO LOW No description P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
306 14500 0x38a4 TEMPERATURE_ALL_ONES_START MEDIUM Detected invalid values, starting invalid message counting mission/acs/SusHandler.h
307 14501 0x38a5 TEMPERATURE_ALL_ONES_RECOVERY INFO Detected valid values again, resetting invalid message counter. P1: Invalid message counter. mission/acs/SusHandler.h

View File

@ -357,6 +357,7 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
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
@ -372,7 +373,6 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
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
0x4100;PUS9_ConnBroken;No description;0;PUS_SERVICE_9;fsfw/src/fsfw/osal/common/TcpTmTcServer.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
@ -402,9 +402,9 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
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_HalTimeoutRetval;No description;0;HAL_SPI;fsfw/src/fsfw_hal/stm32h7/spi/spiDefinitions.h
0x4501;HSPI_HalBusyRetval;No description;1;HAL_SPI;fsfw/src/fsfw_hal/stm32h7/spi/spiDefinitions.h
0x4502;HSPI_HalErrorRetval;No description;2;HAL_SPI;fsfw/src/fsfw_hal/stm32h7/spi/spiDefinitions.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

1 Full ID (hex) Name Description Unique ID Subsytem Name File Path
357 0x3a05 0x3a02 MUX_MutexAlreadyLocked MQI_Full No description No space left for more messages 5 2 MUTEX_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/ipc/MessageQueueIF.h
358 0x3a06 0x3a03 MUX_MutexNotFound MQI_NoReplyPartner No description Returned if a reply method was called without partner 6 3 MUTEX_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/ipc/MessageQueueIF.h
359 0x3a07 0x3a04 MUX_MutexMaxLocks MQI_DestinationInvalid No description Returned if the target destination is invalid. 7 4 MUTEX_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/ipc/MessageQueueIF.h
360 0x3b00 SPH_ConnBroken No description 0 SEMAPHORE_IF fsfw/src/fsfw/osal/common/TcpTmTcServer.h
361 0x3a08 0x3b01 MUX_CurrThreadAlreadyOwnsMutex SPH_SemaphoreTimeout No description 8 1 MUTEX_IF SEMAPHORE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/tasks/SemaphoreIF.h
362 0x3a09 0x3b02 MUX_CurrThreadDoesNotOwnMutex SPH_SemaphoreNotOwned No description 9 2 MUTEX_IF SEMAPHORE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/tasks/SemaphoreIF.h
363 0x3a0a 0x3b03 MUX_MutexTimeout SPH_SemaphoreInvalid No description 10 3 MUTEX_IF SEMAPHORE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/tasks/SemaphoreIF.h
373 0x3d00 0x3e05 LPIF_PoolEntryNotFound HKM_DatasetNotFound No description 0 5 LOCAL_POOL_OWNER_IF HOUSEKEEPING_MANAGER fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
374 0x3d01 0x3f01 LPIF_PoolEntryTypeConflict DLEE_StreamTooShort No description 1 LOCAL_POOL_OWNER_IF DLE_ENCODER fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h fsfw/src/fsfw/globalfunctions/DleEncoder.h
375 0x3ea0 0x3f02 PVA_InvalidReadWriteMode DLEE_DecodingError No description 160 2 POOL_VARIABLE_IF DLE_ENCODER fsfw/src/fsfw/datapool/PoolVariableIF.h fsfw/src/fsfw/globalfunctions/DleEncoder.h
0x3ea1 PVA_InvalidPoolEntry No description 161 POOL_VARIABLE_IF fsfw/src/fsfw/datapool/PoolVariableIF.h
376 0x3f00 0x4201 HKM_QueueOrDestinationInvalid PUS11_InvalidTypeTimeWindow No description 0 1 HOUSEKEEPING_MANAGER PUS_SERVICE_11 fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
377 0x3f01 0x4202 HKM_WrongHkPacketType PUS11_InvalidTimeWindow No description 1 2 HOUSEKEEPING_MANAGER PUS_SERVICE_11 fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
378 0x3f02 0x4203 HKM_ReportingStatusUnchanged PUS11_TimeshiftingNotPossible No description 2 3 HOUSEKEEPING_MANAGER PUS_SERVICE_11 fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
402 0x4416 0x4403 FILS_DirectoryAlreadyExists UXOS_CommandError No description Command execution failed 22 3 FILE_SYSTEM LINUX_OSAL fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
403 0x4417 0x4404 FILS_NotADirectory UXOS_NoCommandLoadedOrPending No description 23 4 FILE_SYSTEM LINUX_OSAL fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
404 0x4418 0x4406 FILS_DirectoryNotEmpty UXOS_PcloseCallError No description 24 6 FILE_SYSTEM LINUX_OSAL fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
405 0x441e 0x4500 FILS_SequencePacketMissingWrite HSPI_OpeningFileFailed No description 30 0 FILE_SYSTEM HAL_SPI fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
406 0x441f 0x4501 FILS_SequencePacketMissingRead HSPI_FullDuplexTransferFailed No description 31 1 FILE_SYSTEM HAL_SPI fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
407 0x4500 0x4502 UXOS_ExecutionFinished HSPI_HalfDuplexTransferFailed Execution of the current command has finished No description 0 2 LINUX_OSAL HAL_SPI fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
408 0x4501 0x4503 UXOS_CommandPending HSPI_Timeout 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 3 LINUX_OSAL HAL_SPI fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
409 0x4502 0x4504 UXOS_BytesRead HSPI_Busy Some bytes have been read from the executing process No description 2 4 LINUX_OSAL HAL_SPI fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
410 0x4503 0x4505 UXOS_CommandError HSPI_GenericError Command execution failed No description 3 5 LINUX_OSAL HAL_SPI fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw_hal/common/spi/spiCommon.h

View File

@ -60,3 +60,4 @@
142;COM_SUBSYSTEM
143;PERSISTENT_TM_STORE
144;SYRLINKS_COM
145;SUS_HANDLER

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

View File

@ -303,3 +303,5 @@ 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 again, resetting invalid message counter. P1: Invalid message counter.;mission/acs/SusHandler.h

1 Event ID (dec) Event ID (hex) Name Severity Description File Path
303 14300 14312 0x37dc 0x37e8 POSSIBLE_FILE_CORRUPTION DUMP_MISC_CANCELLED LOW P1: Result code of TM packet parser. P2: Timestamp of possibly corrupt file as a unix timestamp. P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
304 14301 14313 0x37dd 0x37e9 FILE_TOO_LARGE DUMP_HK_CANCELLED LOW File in store too large. P1: Detected file size P2: Allowed file size P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
305 14302 14314 0x37de 0x37ea BUSY_DUMPING_EVENT DUMP_CFDP_CANCELLED INFO LOW No description P1: Number of dumped packets. P2: Total dumped bytes. mission/persistentTmStoreDefs.h
306 14500 0x38a4 TEMPERATURE_ALL_ONES_START MEDIUM Detected invalid values, starting invalid message counting mission/acs/SusHandler.h
307 14501 0x38a5 TEMPERATURE_ALL_ONES_RECOVERY INFO Detected valid values again, resetting invalid message counter. P1: Invalid message counter. mission/acs/SusHandler.h

View File

@ -357,6 +357,7 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
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
@ -372,7 +373,6 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
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
0x4100;PUS9_ConnBroken;No description;0;PUS_SERVICE_9;fsfw/src/fsfw/osal/common/TcpTmTcServer.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
@ -402,9 +402,9 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
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_HalTimeoutRetval;No description;0;HAL_SPI;fsfw/src/fsfw_hal/stm32h7/spi/spiDefinitions.h
0x4501;HSPI_HalBusyRetval;No description;1;HAL_SPI;fsfw/src/fsfw_hal/stm32h7/spi/spiDefinitions.h
0x4502;HSPI_HalErrorRetval;No description;2;HAL_SPI;fsfw/src/fsfw_hal/stm32h7/spi/spiDefinitions.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

1 Full ID (hex) Name Description Unique ID Subsytem Name File Path
357 0x3a05 0x3a02 MUX_MutexAlreadyLocked MQI_Full No description No space left for more messages 5 2 MUTEX_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/ipc/MessageQueueIF.h
358 0x3a06 0x3a03 MUX_MutexNotFound MQI_NoReplyPartner No description Returned if a reply method was called without partner 6 3 MUTEX_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/ipc/MessageQueueIF.h
359 0x3a07 0x3a04 MUX_MutexMaxLocks MQI_DestinationInvalid No description Returned if the target destination is invalid. 7 4 MUTEX_IF MESSAGE_QUEUE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/ipc/MessageQueueIF.h
360 0x3b00 SPH_ConnBroken No description 0 SEMAPHORE_IF fsfw/src/fsfw/osal/common/TcpTmTcServer.h
361 0x3a08 0x3b01 MUX_CurrThreadAlreadyOwnsMutex SPH_SemaphoreTimeout No description 8 1 MUTEX_IF SEMAPHORE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/tasks/SemaphoreIF.h
362 0x3a09 0x3b02 MUX_CurrThreadDoesNotOwnMutex SPH_SemaphoreNotOwned No description 9 2 MUTEX_IF SEMAPHORE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/tasks/SemaphoreIF.h
363 0x3a0a 0x3b03 MUX_MutexTimeout SPH_SemaphoreInvalid No description 10 3 MUTEX_IF SEMAPHORE_IF fsfw/src/fsfw/ipc/MutexIF.h fsfw/src/fsfw/tasks/SemaphoreIF.h
373 0x3d00 0x3e05 LPIF_PoolEntryNotFound HKM_DatasetNotFound No description 0 5 LOCAL_POOL_OWNER_IF HOUSEKEEPING_MANAGER fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h
374 0x3d01 0x3f01 LPIF_PoolEntryTypeConflict DLEE_StreamTooShort No description 1 LOCAL_POOL_OWNER_IF DLE_ENCODER fsfw/src/fsfw/datapoollocal/localPoolDefinitions.h fsfw/src/fsfw/globalfunctions/DleEncoder.h
375 0x3ea0 0x3f02 PVA_InvalidReadWriteMode DLEE_DecodingError No description 160 2 POOL_VARIABLE_IF DLE_ENCODER fsfw/src/fsfw/datapool/PoolVariableIF.h fsfw/src/fsfw/globalfunctions/DleEncoder.h
0x3ea1 PVA_InvalidPoolEntry No description 161 POOL_VARIABLE_IF fsfw/src/fsfw/datapool/PoolVariableIF.h
376 0x3f00 0x4201 HKM_QueueOrDestinationInvalid PUS11_InvalidTypeTimeWindow No description 0 1 HOUSEKEEPING_MANAGER PUS_SERVICE_11 fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
377 0x3f01 0x4202 HKM_WrongHkPacketType PUS11_InvalidTimeWindow No description 1 2 HOUSEKEEPING_MANAGER PUS_SERVICE_11 fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
378 0x3f02 0x4203 HKM_ReportingStatusUnchanged PUS11_TimeshiftingNotPossible No description 2 3 HOUSEKEEPING_MANAGER PUS_SERVICE_11 fsfw/src/fsfw/datapoollocal/LocalDataPoolManager.h fsfw/src/fsfw/pus/Service11TelecommandScheduling.h
402 0x4416 0x4403 FILS_DirectoryAlreadyExists UXOS_CommandError No description Command execution failed 22 3 FILE_SYSTEM LINUX_OSAL fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
403 0x4417 0x4404 FILS_NotADirectory UXOS_NoCommandLoadedOrPending No description 23 4 FILE_SYSTEM LINUX_OSAL fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
404 0x4418 0x4406 FILS_DirectoryNotEmpty UXOS_PcloseCallError No description 24 6 FILE_SYSTEM LINUX_OSAL fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw_hal/linux/CommandExecutor.h
405 0x441e 0x4500 FILS_SequencePacketMissingWrite HSPI_OpeningFileFailed No description 30 0 FILE_SYSTEM HAL_SPI fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
406 0x441f 0x4501 FILS_SequencePacketMissingRead HSPI_FullDuplexTransferFailed No description 31 1 FILE_SYSTEM HAL_SPI fsfw/src/fsfw/filesystem/HasFileSystemIF.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
407 0x4500 0x4502 UXOS_ExecutionFinished HSPI_HalfDuplexTransferFailed Execution of the current command has finished No description 0 2 LINUX_OSAL HAL_SPI fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
408 0x4501 0x4503 UXOS_CommandPending HSPI_Timeout 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 3 LINUX_OSAL HAL_SPI fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
409 0x4502 0x4504 UXOS_BytesRead HSPI_Busy Some bytes have been read from the executing process No description 2 4 LINUX_OSAL HAL_SPI fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw_hal/common/spi/spiCommon.h
410 0x4503 0x4505 UXOS_CommandError HSPI_GenericError Command execution failed No description 3 5 LINUX_OSAL HAL_SPI fsfw/src/fsfw_hal/linux/CommandExecutor.h fsfw/src/fsfw_hal/common/spi/spiCommon.h

View File

@ -60,3 +60,4 @@
142;COM_SUBSYSTEM
143;PERSISTENT_TM_STORE
144;SYRLINKS_COM
145;SUS_HANDLER

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

View File

@ -1,7 +1,7 @@
/**
* @brief Auto-generated event translation file. Contains 304 translations.
* @brief Auto-generated event translation file. Contains 306 translations.
* @details
* Generated on: 2023-08-21 15:54:29
* Generated on: 2023-09-12 10:05:17
*/
#include "translateEvents.h"
@ -309,6 +309,8 @@ 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 *translateEvents(Event event) {
switch ((event & 0xFFFF)) {
@ -920,6 +922,10 @@ 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;
default:
return "UNKNOWN_EVENT";
}

View File

@ -2,7 +2,7 @@
* @brief Auto-generated object translation file.
* @details
* Contains 175 translations.
* Generated on: 2023-08-21 15:54:29
* Generated on: 2023-09-12 10:05:17
*/
#include "translateObjects.h"

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;

View File

@ -170,11 +170,6 @@ 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] =
@ -183,7 +178,6 @@ ReturnValue_t SusPolling::handleSusPolling() {
susDevs[idx].ownReply.dataWasSet = true;
}
}
}
return OK;
}

View File

@ -1,7 +1,7 @@
/**
* @brief Auto-generated event translation file. Contains 304 translations.
* @brief Auto-generated event translation file. Contains 306 translations.
* @details
* Generated on: 2023-08-21 15:54:29
* Generated on: 2023-09-12 10:05:17
*/
#include "translateEvents.h"
@ -309,6 +309,8 @@ 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 *translateEvents(Event event) {
switch ((event & 0xFFFF)) {
@ -920,6 +922,10 @@ 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;
default:
return "UNKNOWN_EVENT";
}

View File

@ -2,7 +2,7 @@
* @brief Auto-generated object translation file.
* @details
* Contains 175 translations.
* Generated on: 2023-08-21 15:54:29
* Generated on: 2023-09-12 10:05:17
*/
#include "translateObjects.h"

View File

@ -20,6 +20,9 @@ void SusHandler::doStartUp() {
}
if (internalState == InternalState::STARTUP) {
if (commandExecuted) {
if (waitingForRecovery) {
waitingForRecovery = false;
}
setMode(MODE_ON);
internalState = InternalState::NONE;
commandExecuted = false;
@ -83,15 +86,36 @@ ReturnValue_t SusHandler::scanForReply(const uint8_t *start, size_t len, DeviceC
}
ReturnValue_t SusHandler::interpretDeviceReply(DeviceCommandId_t id, const uint8_t *packet) {
const auto *reply = reinterpret_cast<const acs::SusReply *>(packet);
if (reply->dataWasSet) {
if (!reply->dataWasSet) {
return returnvalue::OK;
}
if (internalState == InternalState::STARTUP) {
commandExecuted = true;
}
PoolReadGuard pg(&dataset);
// Simple FDIR variant to make the handler more robust to invalid messages which
// appear sometimes for the SUS device: Allow invalid message up to a certain threshold
// before triggering FDIR reactions.
if (reply->tempRaw == 0xfff and not waitingForRecovery) {
if (invalidMsgCounter == 0) {
triggerEvent(TEMPERATURE_ALL_ONES_START);
} else if (invalidMsgCounter == susMax1227::MAX_INVALID_MSG_COUNT) {
triggerEvent(DeviceHandlerIF::DEVICE_WANTS_HARD_REBOOT);
waitingForRecovery = true;
}
invalidMsgCounter++;
dataset.setValidity(false, true);
dataset.tempC = thermal::INVALID_TEMPERATURE;
std::memset(dataset.channels.value, 0, sizeof(dataset.channels.value));
return returnvalue::OK;
}
if (invalidMsgCounter > 0) {
triggerEvent(TEMPERATURE_ALL_ONES_RECOVERY, invalidMsgCounter);
invalidMsgCounter = 0;
}
dataset.setValidity(true, true);
dataset.tempC = max1227::getTemperature(reply->tempRaw);
std::memcpy(dataset.channels.value, reply->channelsRaw, sizeof(reply->channelsRaw));
}
return returnvalue::OK;
}

View File

@ -15,7 +15,15 @@ class SusHandler : public DeviceHandlerBase {
static constexpr DeviceCommandId_t REPLY = 0x77;
static const uint8_t INTERFACE_ID = CLASS_ID::SUS_HANDLER;
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::SUS_BOARD_ASS;
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::SUS_HANDLER;
//! [EXPORT] : [COMMENT] Detected invalid values, starting invalid message counting
static constexpr Event TEMPERATURE_ALL_ONES_START =
event::makeEvent(SUBSYSTEM_ID, 0, severity::MEDIUM);
//! [EXPORT] : [COMMENT] Detected valid values again, resetting invalid message counter.
//! P1: Invalid message counter.
static constexpr Event TEMPERATURE_ALL_ONES_RECOVERY =
event::makeEvent(SUBSYSTEM_ID, 1, severity::INFO);
SusHandler(uint32_t objectId, uint8_t susIdx, object_id_t deviceCommunication,
CookieIF *comCookie);
@ -46,6 +54,8 @@ class SusHandler : public DeviceHandlerBase {
susMax1227::SusDataset dataset;
acs::SusRequest request{};
uint8_t susIdx;
bool waitingForRecovery = true;
uint32_t invalidMsgCounter = 0;
uint32_t transitionDelay = 1000;
bool goToNormalMode = false;

View File

@ -8,6 +8,14 @@
namespace susMax1227 {
// This is 16 seconds for a polling frequency of 0.4 seconds.
static constexpr uint32_t MAX_INVALID_MSG_COUNT = 40;
// Using a decrement time of 32 seconds should cause faulty device incrementation to best faster
// the decrementation, so that FDIR reactions will eventuall be triggered.
// NOTE: Not used currently, we perform the strange reply check logic in the handler and trigger
// a reboot directly using the appropriate event.
static constexpr uint32_t FAULTY_COM_DECREMENT_TIME_MS = 32000;
static const DeviceCommandId_t NONE = 0x0; // Set when no command is pending
static const DeviceCommandId_t WRITE_SETUP = 1;

View File

@ -1372,12 +1372,13 @@ void ThermalController::ctrlPlPcduBoard() {
tooHotHandler(objects::PLPCDU_HANDLER, tooHotFlags.eBandTooHotFlag);
}
// ToDo: remove one of the following 2
void ThermalController::ctrlPlocMissionBoard() {
ctrlCtx.thermalComponent = tcsCtrl::PLOCMISSION_BOARD;
sensors[0].first = sensorTemperatures.plocHeatspreader.isValid();
sensors[0].second = sensorTemperatures.plocHeatspreader.value;
sensors[1].first = sensorTemperatures.plocMissionboard.isValid();
sensors[1].second = sensorTemperatures.plocMissionboard.value;
sensors[0].first = sensorTemperatures.plocMissionboard.isValid();
sensors[0].second = sensorTemperatures.plocMissionboard.value;
sensors[1].first = sensorTemperatures.plocHeatspreader.isValid();
sensors[1].second = sensorTemperatures.plocHeatspreader.value;
sensors[2].first = sensorTemperatures.dacHeatspreader.isValid();
sensors[2].second = sensorTemperatures.dacHeatspreader.value;
numSensors = 3;

View File

@ -79,7 +79,7 @@ class AcsParameters : public HasParametersIF {
float mgm13variance[3] = {pow(1.5e-8, 2), pow(1.5e-8, 2), pow(1.5e-8, 2)};
float mgm4variance[3] = {pow(1.7e-6, 2), pow(1.7e-6, 2), pow(1.7e-6, 2)};
float mgmVectorFilterWeight = 0.85;
float mgmDerivativeFilterWeight = 0.85;
float mgmDerivativeFilterWeight = 0.99;
uint8_t useMgm4 = false;
} mgmHandlingParameters;
@ -771,7 +771,7 @@ class AcsParameters : public HasParametersIF {
-0.000889232196185857, -0.00168429567131815}};
float susBrightnessThreshold = 0.7;
float susVectorFilterWeight = .85;
float susRateFilterWeight = .85;
float susRateFilterWeight = .99;
} susHandlingParameters;
struct GyrHandlingParameters {
@ -834,15 +834,15 @@ class AcsParameters : public HasParametersIF {
double k_alignGyr = 4.0e-5;
double k_parallelGyr = 3.75e-4;
double k_orthoSusMgm = 1.1e-2;
double k_alignSusMgm = 2.0e-5;
double k_parallelSusMgm = 4.4e-4;
double k_orthoSusMgm = 4.4e-3;
double k_alignSusMgm = 4.0e-5;
double k_parallelSusMgm = 3.75e-4;
double sunTargetDirLeop[3] = {0, sqrt(.5), sqrt(.5)};
double sunTargetDir[3] = {0, 0, 1};
uint8_t useMekf = false;
uint8_t useGyr = true;
uint8_t useGyr = false;
uint8_t dampingDuringEclipse = true;
float sineLimitSunRotRate = 0.24;

View File

@ -1,6 +1,7 @@
#include "SusFdir.h"
#include "eive/objects.h"
#include "mission/acs/susMax1227Helpers.h"
SusFdir::SusFdir(object_id_t sensorId)
: DeviceHandlerFailureIsolation(sensorId, objects::SUS_BOARD_ASS) {}

2
tmtc

@ -1 +1 @@
Subproject commit b1fbad39e311634084ee3e6a44b6de6ba2ad6407
Subproject commit d23cc6834ad0895c230d2378b0c8d9ba4f374f8d