Compare commits
19 Commits
Author | SHA1 | Date | |
---|---|---|---|
01b3a894e6 | |||
f075d28905 | |||
83f6a22a75 | |||
a38bae16cd | |||
53666bdeda | |||
00281fdc5e | |||
43b530cdb7 | |||
92ce64cd39 | |||
268c9e3f0b | |||
9edbdf1a8d | |||
004b561b7d | |||
98a9601dd7 | |||
91a8a2e895 | |||
e503450dda | |||
ad08276079 | |||
7e5fa2e61a | |||
dcf7d0af71 | |||
50668ca7a7 | |||
6975fae511 |
11
CHANGELOG.md
11
CHANGELOG.md
@ -10,6 +10,17 @@ list yields a list of all related PRs for each release.
|
|||||||
|
|
||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
|
# [v2.22.1] 2023-04-12
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- Prompts to specify custom filename for OBSW update
|
||||||
|
|
||||||
|
# [v2.22.0] 2023-04-07
|
||||||
|
|
||||||
|
- Various smaller and helper commands added for tests
|
||||||
|
- Update generated files
|
||||||
|
|
||||||
# [v2.21.0] 2023-04-04
|
# [v2.21.0] 2023-04-04
|
||||||
|
|
||||||
## Added
|
## Added
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
__version__ = "2.21.0"
|
__version__ = "2.22.1"
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
SW_NAME = "eive-tmtc"
|
SW_NAME = "eive-tmtc"
|
||||||
VERSION_MAJOR = 2
|
VERSION_MAJOR = 2
|
||||||
VERSION_MINOR = 21
|
VERSION_MINOR = 22
|
||||||
VERSION_REVISION = 0
|
VERSION_REVISION = 1
|
||||||
|
|
||||||
EIVE_TMTC_ROOT = Path(__file__).parent
|
EIVE_TMTC_ROOT = Path(__file__).parent
|
||||||
PACKAGE_ROOT = EIVE_TMTC_ROOT.parent
|
PACKAGE_ROOT = EIVE_TMTC_ROOT.parent
|
||||||
|
@ -101,8 +101,8 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
11401;0x2c89;GPIO_PULL_LOW_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
|
11402;0x2c8a;HEATER_WENT_ON;INFO;No description;mission/tcs/HeaterHandler.h
|
||||||
11403;0x2c8b;HEATER_WENT_OFF;INFO;No description;mission/tcs/HeaterHandler.h
|
11403;0x2c8b;HEATER_WENT_OFF;INFO;No description;mission/tcs/HeaterHandler.h
|
||||||
11404;0x2c8c;SWITCH_ALREADY_ON;LOW;No description;mission/tcs/HeaterHandler.h
|
11404;0x2c8c;SWITCH_ALREADY_ON;INFO;No description;mission/tcs/HeaterHandler.h
|
||||||
11405;0x2c8d;SWITCH_ALREADY_OFF;LOW;No description;mission/tcs/HeaterHandler.h
|
11405;0x2c8d;SWITCH_ALREADY_OFF;INFO;No description;mission/tcs/HeaterHandler.h
|
||||||
11406;0x2c8e;MAIN_SWITCH_TIMEOUT;MEDIUM;No description;mission/tcs/HeaterHandler.h
|
11406;0x2c8e;MAIN_SWITCH_TIMEOUT;MEDIUM;No description;mission/tcs/HeaterHandler.h
|
||||||
11407;0x2c8f;FAULTY_HEATER_WAS_ON;LOW;No description;mission/tcs/HeaterHandler.h
|
11407;0x2c8f;FAULTY_HEATER_WAS_ON;LOW;No description;mission/tcs/HeaterHandler.h
|
||||||
11500;0x2cec;BURN_PHASE_START;INFO;P1: Burn duration in milliseconds, P2: Dry run flag;mission/SolarArrayDeploymentHandler.h
|
11500;0x2cec;BURN_PHASE_START;INFO;P1: Burn duration in milliseconds, P2: Dry run flag;mission/SolarArrayDeploymentHandler.h
|
||||||
@ -251,16 +251,17 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
13903;0x364f;INSERT_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
13903;0x364f;INSERT_CONFIGFILEVALUE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
||||||
13904;0x3650;WRITE_CONFIGFILE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
13904;0x3650;WRITE_CONFIGFILE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
||||||
13905;0x3651;READ_CONFIGFILE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
13905;0x3651;READ_CONFIGFILE_FAILED;MEDIUM;No description;mission/utility/GlobalConfigHandler.h
|
||||||
14000;0x36b0;ALLOC_FAILURE;MEDIUM;No description;bsp_q7s/core/CoreController.h
|
14000;0x36b0;ALLOC_FAILURE;MEDIUM;No description;mission/sysDefs.h
|
||||||
14001;0x36b1;REBOOT_SW;LOW; Software reboot occurred. Can also be a systemd reboot. P1: Current Chip, P2: Current Copy;bsp_q7s/core/CoreController.h
|
14001;0x36b1;REBOOT_SW;LOW; Software reboot occurred. Can also be a systemd reboot. P1: Current Chip, P2: Current Copy;mission/sysDefs.h
|
||||||
14002;0x36b2;REBOOT_MECHANISM_TRIGGERED;MEDIUM;The reboot mechanism was triggered. P1: First 16 bits: Last Chip, Last 16 bits: Last Copy, P2: Each byte is the respective reboot count for the slots;bsp_q7s/core/CoreController.h
|
14002;0x36b2;REBOOT_MECHANISM_TRIGGERED;MEDIUM;The reboot mechanism was triggered. P1: First 16 bits: Last Chip, Last 16 bits: Last Copy, P2: Each byte is the respective reboot count for the slots;mission/sysDefs.h
|
||||||
14003;0x36b3;REBOOT_HW;MEDIUM;No description;bsp_q7s/core/CoreController.h
|
14003;0x36b3;REBOOT_HW;MEDIUM;No description;mission/sysDefs.h
|
||||||
14004;0x36b4;NO_SD_CARD_ACTIVE;HIGH;No SD card was active. Core controller will attempt to re-initialize a SD card.;bsp_q7s/core/CoreController.h
|
14004;0x36b4;NO_SD_CARD_ACTIVE;HIGH;No SD card was active. Core controller will attempt to re-initialize a SD card.;mission/sysDefs.h
|
||||||
14005;0x36b5;VERSION_INFO;INFO;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.;bsp_q7s/core/CoreController.h
|
14005;0x36b5;VERSION_INFO;INFO;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
|
||||||
14006;0x36b6;CURRENT_IMAGE_INFO;INFO;P1: Current Chip, P2: Current Copy;bsp_q7s/core/CoreController.h
|
14006;0x36b6;CURRENT_IMAGE_INFO;INFO;P1: Current Chip, P2: Current Copy;mission/sysDefs.h
|
||||||
14007;0x36b7;REBOOT_COUNTER;INFO;Total reboot counter, which is the sum of the boot count of all individual images.;bsp_q7s/core/CoreController.h
|
14007;0x36b7;REBOOT_COUNTER;INFO;Total reboot counter, which is the sum of the boot count of all individual images.;mission/sysDefs.h
|
||||||
14008;0x36b8;INDIVIDUAL_BOOT_COUNTS;INFO;Get the boot count of the individual images. P1: First 16 bits boot count of image 0 0, last 16 bits boot count of image 0 1. P2: First 16 bits boot count of image 1 0, last 16 bits boot count of image 1 1.;bsp_q7s/core/CoreController.h
|
14008;0x36b8;INDIVIDUAL_BOOT_COUNTS;INFO;Get the boot count of the individual images. P1: First 16 bits boot count of image 0 0, last 16 bits boot count of image 0 1. P2: First 16 bits boot count of image 1 0, last 16 bits boot count of image 1 1.;mission/sysDefs.h
|
||||||
14010;0x36ba;I2C_UNAVAILABLE_REBOOT;MEDIUM;No description;bsp_q7s/core/CoreController.h
|
14010;0x36ba;TRYING_I2C_RECOVERY;MEDIUM;I2C is unavailable. Trying recovery of I2C bus by power cycling all I2C devices.;mission/sysDefs.h
|
||||||
|
14011;0x36bb;I2C_REBOOT;MEDIUM;I2C is unavailable. Recovery did not work, performing full reboot.;mission/sysDefs.h
|
||||||
14100;0x3714;NO_VALID_SENSOR_TEMPERATURE;MEDIUM;No description;mission/controller/tcsDefs.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
|
14101;0x3715;NO_HEALTHY_HEATER_AVAILABLE;MEDIUM;No description;mission/controller/tcsDefs.h
|
||||||
14102;0x3716;SYRLINKS_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
14102;0x3716;SYRLINKS_OVERHEATING;HIGH;No description;mission/controller/tcsDefs.h
|
||||||
|
|
@ -190,8 +190,8 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
|
|||||||
0x2207;TMF_AllDeleted;No description;7;TM_STORE_FRONTEND_IF;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h
|
0x2207;TMF_AllDeleted;No description;7;TM_STORE_FRONTEND_IF;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h
|
||||||
0x2208;TMF_InvalidData;No description;8;TM_STORE_FRONTEND_IF;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h
|
0x2208;TMF_InvalidData;No description;8;TM_STORE_FRONTEND_IF;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h
|
||||||
0x2209;TMF_NotReady;No description;9;TM_STORE_FRONTEND_IF;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h
|
0x2209;TMF_NotReady;No description;9;TM_STORE_FRONTEND_IF;fsfw/src/fsfw/tmstorage/TmStoreFrontendIF.h
|
||||||
0x2401;MT_NoPacketFound;No description;1;MATCH_TREE_CLASS;fsfw/src/fsfw/globalfunctions/DleParser.h
|
0x2401;MT_TooDetailedRequest;No description;1;MATCH_TREE_CLASS;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h
|
||||||
0x2402;MT_PossiblePacketLoss;No description;2;MATCH_TREE_CLASS;fsfw/src/fsfw/globalfunctions/DleParser.h
|
0x2402;MT_TooGeneralRequest;No description;2;MATCH_TREE_CLASS;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h
|
||||||
0x2403;MT_NoMatch;No description;3;MATCH_TREE_CLASS;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h
|
0x2403;MT_NoMatch;No description;3;MATCH_TREE_CLASS;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h
|
||||||
0x2404;MT_Full;No description;4;MATCH_TREE_CLASS;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h
|
0x2404;MT_Full;No description;4;MATCH_TREE_CLASS;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h
|
||||||
0x2405;MT_NewNodeCreated;No description;5;MATCH_TREE_CLASS;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h
|
0x2405;MT_NewNodeCreated;No description;5;MATCH_TREE_CLASS;fsfw/src/fsfw/globalfunctions/matching/MatchTree.h
|
||||||
@ -402,9 +402,12 @@ 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
|
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
|
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
|
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
|
0x4500;HSPI_OpeningFileFailed;No description;0;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
|
||||||
0x4501;HSPI_HalBusyRetval;No description;1;HAL_SPI;fsfw/src/fsfw_hal/stm32h7/spi/spiDefinitions.h
|
0x4501;HSPI_FullDuplexTransferFailed;No description;1;HAL_SPI;fsfw/src/fsfw_hal/common/spi/spiCommon.h
|
||||||
0x4502;HSPI_HalErrorRetval;No description;2;HAL_SPI;fsfw/src/fsfw_hal/stm32h7/spi/spiDefinitions.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
|
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
|
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
|
0x4603;HURT_UartRxBufferTooSmall;No description;3;HAL_UART;fsfw/src/fsfw_hal/linux/serial/SerialComIF.h
|
||||||
@ -440,7 +443,8 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
|
|||||||
0x5106;IMTQ_InternalProcessingError;No description;6;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
|
0x5107;IMTQ_RejectedWithoutReason;No description;7;IMTQ_HANDLER;mission/acs/imtqHelpers.h
|
||||||
0x5108;IMTQ_CmdErrUnknown;No description;8;IMTQ_HANDLER;mission/acs/imtqHelpers.h
|
0x5108;IMTQ_CmdErrUnknown;No description;8;IMTQ_HANDLER;mission/acs/imtqHelpers.h
|
||||||
0x51a7;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.;167;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
|
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
|
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
|
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
|
||||||
@ -494,7 +498,6 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
|
|||||||
0x58a5;SUSS_ValueNotRead;No description;165;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
|
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
|
0x5aa0;PTME_UnknownVcId;No description;160;PTME;linux/ipcore/Ptme.h
|
||||||
0x5c00;STRHLP_NoReplyAvailable;No description;0;STR_HELPER;linux/acs/ImtqPollingTask.h
|
|
||||||
0x5c01;STRHLP_SdNotMounted;SD card specified in path string not mounted;1;STR_HELPER;linux/acs/StrComHandler.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
|
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
|
0x5c03;STRHLP_PathNotExists;Specified path does not exist;3;STR_HELPER;linux/acs/StrComHandler.h
|
||||||
@ -546,7 +549,6 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
|
|||||||
0x66a2;SADPL_MainSwitchTimeoutFailure;No description;162;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
|
0x66a3;SADPL_SwitchingDeplSa1Failed;No description;163;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
|
||||||
0x66a4;SADPL_SwitchingDeplSa2Failed;No description;164;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
|
0x66a4;SADPL_SwitchingDeplSa2Failed;No description;164;SA_DEPL_HANDLER;mission/SolarArrayDeploymentHandler.h
|
||||||
0x6702;MPSOCRTVIF_InvalidCrc;No description;2;MPSOC_RETURN_VALUES_IF;linux/payload/ScexHelper.h
|
|
||||||
0x67a0;MPSOCRTVIF_CrcFailure;Space Packet received from PLOC has invalid CRC;160;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.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
|
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
|
0x67a2;MPSOCRTVIF_ReceivedExeFailure;Received execution failure reply from PLOC;162;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
|
||||||
@ -557,7 +559,6 @@ Full ID (hex); Name; Description; Unique ID; Subsytem Name; File Path
|
|||||||
0x67a7;MPSOCRTVIF_MpsocFilenameTooLong;Filename of MPSoC file is to long (max. 256 bytes);167;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
|
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
|
0x67a9;MPSOCRTVIF_NameTooLong;Received command has file string with invalid length;169;MPSOC_RETURN_VALUES_IF;linux/payload/mpsocRetvals.h
|
||||||
0x6801;SPVRTVIF_NoPacketFound;No description;1;SUPV_RETURN_VALUES_IF;linux/com/SyrlinksComHandler.h
|
|
||||||
0x68a0;SPVRTVIF_CrcFailure;Space Packet received from PLOC supervisor has invalid CRC;160;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.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
|
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
|
0x68a2;SPVRTVIF_ReceivedAckFailure;Received ACK failure reply from PLOC supervisor;162;SUPV_RETURN_VALUES_IF;linux/payload/plocSupvDefs.h
|
||||||
|
|
@ -20,6 +20,7 @@ from tmtccmd.tc.pus_3_fsfw_hk import (
|
|||||||
enable_periodic_hk_command_with_interval,
|
enable_periodic_hk_command_with_interval,
|
||||||
disable_periodic_hk_command,
|
disable_periodic_hk_command,
|
||||||
)
|
)
|
||||||
|
from tmtccmd.tc.pus_8_fsfw_funccmd import create_action_cmd
|
||||||
from spacepackets.ecss.tc import PusTelecommand
|
from spacepackets.ecss.tc import PusTelecommand
|
||||||
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode, Subservice
|
from tmtccmd.tc.pus_200_fsfw_mode import pack_mode_data, Mode, Subservice
|
||||||
from eive_tmtc.config.definitions import CustomServiceList
|
from eive_tmtc.config.definitions import CustomServiceList
|
||||||
@ -28,14 +29,15 @@ from tmtccmd.util.tmtc_printer import FsfwTmTcPrinter
|
|||||||
|
|
||||||
|
|
||||||
class OpCodesDev:
|
class OpCodesDev:
|
||||||
SPEED = ["0", "speed"]
|
SPEED = "speed"
|
||||||
ON = ["1", "on"]
|
ON = "on"
|
||||||
NML = ["2", "nml"]
|
NML = "nml"
|
||||||
OFF = ["3", "off"]
|
OFF = "off"
|
||||||
GET_STATUS = ["4", "status"]
|
GET_STATUS = "status"
|
||||||
GET_TM = ["5", "tm"]
|
GET_TM = "get_tm_set"
|
||||||
ENABLE_STATUS_HK = ["6", "enable_status_hk"]
|
REQ_TM = "req_tm_set"
|
||||||
DISABLE_STATUS_HK = ["7", "disable_status_hk"]
|
ENABLE_STATUS_HK = "enable_status_hk"
|
||||||
|
DISABLE_STATUS_HK = "disable_status_hk"
|
||||||
|
|
||||||
|
|
||||||
class InfoDev:
|
class InfoDev:
|
||||||
@ -45,6 +47,7 @@ class InfoDev:
|
|||||||
OFF = "Set Off"
|
OFF = "Set Off"
|
||||||
GET_STATUS = "Get Status HK"
|
GET_STATUS = "Get Status HK"
|
||||||
GET_TM = "Get TM HK"
|
GET_TM = "Get TM HK"
|
||||||
|
REQ_TM = "Request TM HK"
|
||||||
ENABLE_STATUS_HK = "Enable Status HK"
|
ENABLE_STATUS_HK = "Enable Status HK"
|
||||||
DISABLE_STATUS_HK = "Disable Status HK"
|
DISABLE_STATUS_HK = "Disable Status HK"
|
||||||
|
|
||||||
@ -57,6 +60,10 @@ class OpCodesAss:
|
|||||||
ALL_SPEED_OFF = ["4", "speed_off"]
|
ALL_SPEED_OFF = ["4", "speed_off"]
|
||||||
|
|
||||||
|
|
||||||
|
class ActionId:
|
||||||
|
REQUEST_TM = 9
|
||||||
|
|
||||||
|
|
||||||
class InfoAss:
|
class InfoAss:
|
||||||
ON = "Mode On: 3/4 RWs min. on"
|
ON = "Mode On: 3/4 RWs min. on"
|
||||||
NML = "Mode Normal: 3/4 RWs min. normal"
|
NML = "Mode Normal: 3/4 RWs min. normal"
|
||||||
@ -99,6 +106,7 @@ def add_rw_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
oce.add(info=InfoDev.ON, keys=OpCodesDev.ON)
|
oce.add(info=InfoDev.ON, keys=OpCodesDev.ON)
|
||||||
oce.add(info=InfoDev.OFF, keys=OpCodesDev.OFF)
|
oce.add(info=InfoDev.OFF, keys=OpCodesDev.OFF)
|
||||||
oce.add(info=InfoDev.NML, keys=OpCodesDev.NML)
|
oce.add(info=InfoDev.NML, keys=OpCodesDev.NML)
|
||||||
|
oce.add(info=InfoDev.REQ_TM, keys=OpCodesDev.REQ_TM)
|
||||||
oce.add(info=InfoDev.GET_STATUS, keys=OpCodesDev.GET_STATUS)
|
oce.add(info=InfoDev.GET_STATUS, keys=OpCodesDev.GET_STATUS)
|
||||||
oce.add(info=InfoDev.GET_TM, keys=OpCodesDev.GET_TM)
|
oce.add(info=InfoDev.GET_TM, keys=OpCodesDev.GET_TM)
|
||||||
oce.add(info=InfoDev.ENABLE_STATUS_HK, keys=OpCodesDev.ENABLE_STATUS_HK)
|
oce.add(info=InfoDev.ENABLE_STATUS_HK, keys=OpCodesDev.ENABLE_STATUS_HK)
|
||||||
@ -139,7 +147,7 @@ def add_rw_cmds(defs: TmtcDefinitionWrapper):
|
|||||||
def pack_single_rw_test_into(
|
def pack_single_rw_test_into(
|
||||||
object_id: bytes, rw_idx: int, q: DefaultPusQueueHelper, op_code: str
|
object_id: bytes, rw_idx: int, q: DefaultPusQueueHelper, op_code: str
|
||||||
):
|
):
|
||||||
if op_code in OpCodesDev.SPEED:
|
if op_code == OpCodesDev.SPEED:
|
||||||
speed, ramp_time = prompt_speed_ramp_time()
|
speed, ramp_time = prompt_speed_ramp_time()
|
||||||
q.add_log_cmd(
|
q.add_log_cmd(
|
||||||
f"RW {rw_idx}: {InfoDev.SPEED} with target "
|
f"RW {rw_idx}: {InfoDev.SPEED} with target "
|
||||||
@ -147,28 +155,33 @@ def pack_single_rw_test_into(
|
|||||||
)
|
)
|
||||||
q.add_pus_tc(pack_set_speed_command(object_id, speed, ramp_time))
|
q.add_pus_tc(pack_set_speed_command(object_id, speed, ramp_time))
|
||||||
|
|
||||||
if op_code in OpCodesDev.ON:
|
if op_code == OpCodesDev.ON:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.ON}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.ON}")
|
||||||
mode_data = pack_mode_data(object_id, Mode.ON, 0)
|
mode_data = pack_mode_data(object_id, Mode.ON, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
||||||
|
|
||||||
if op_code in OpCodesDev.NML:
|
if op_code == OpCodesDev.NML:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.NML}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.NML}")
|
||||||
mode_data = pack_mode_data(object_id, Mode.NORMAL, 0)
|
mode_data = pack_mode_data(object_id, Mode.NORMAL, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
||||||
|
|
||||||
if op_code in OpCodesDev.OFF:
|
if op_code == OpCodesDev.OFF:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.OFF}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.OFF}")
|
||||||
mode_data = pack_mode_data(object_id, Mode.OFF, 0)
|
mode_data = pack_mode_data(object_id, Mode.OFF, 0)
|
||||||
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
q.add_pus_tc(PusTelecommand(service=200, subservice=1, app_data=mode_data))
|
||||||
|
|
||||||
if op_code in OpCodesDev.GET_TM:
|
if op_code == OpCodesDev.GET_TM:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.GET_TM}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.GET_TM}")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
generate_one_hk_command(
|
generate_one_hk_command(
|
||||||
sid=make_sid(object_id=object_id, set_id=RwSetId.TM_SET)
|
sid=make_sid(object_id=object_id, set_id=RwSetId.TM_SET)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
if op_code == OpCodesDev.REQ_TM:
|
||||||
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.REQ_TM}")
|
||||||
|
q.add_pus_tc(
|
||||||
|
create_action_cmd(object_id=object_id, action_id=ActionId.REQUEST_TM)
|
||||||
|
)
|
||||||
if op_code in OpCodesDev.GET_STATUS:
|
if op_code in OpCodesDev.GET_STATUS:
|
||||||
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.GET_STATUS}")
|
q.add_log_cmd(f"RW {rw_idx}: {InfoDev.GET_STATUS}")
|
||||||
q.add_pus_tc(
|
q.add_pus_tc(
|
||||||
|
@ -2,6 +2,7 @@ import enum
|
|||||||
|
|
||||||
|
|
||||||
class Mode(enum.IntEnum):
|
class Mode(enum.IntEnum):
|
||||||
|
NONE = 0
|
||||||
RX_ONLY = 10
|
RX_ONLY = 10
|
||||||
RX_AND_TX_DEF_DATARATE = 11
|
RX_AND_TX_DEF_DATARATE = 11
|
||||||
RX_AND_TX_LOW_DATARATE = 12
|
RX_AND_TX_LOW_DATARATE = 12
|
||||||
|
@ -153,7 +153,7 @@ def pack_syrlinks_command(
|
|||||||
q.add_pus_tc(create_mode_command(obyt, Mode.OFF, 0))
|
q.add_pus_tc(create_mode_command(obyt, Mode.OFF, 0))
|
||||||
if op_code == OpCode.ON:
|
if op_code == OpCode.ON:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.ON}")
|
q.add_log_cmd(f"{prefix}: {Info.ON}")
|
||||||
q.add_pus_tc(create_mode_command(obyt, Mode.ON, 0))
|
q.add_pus_tc(create_mode_command(obyt, Mode.ON, ComMode.RX_ONLY))
|
||||||
if op_code == OpCode.NORMAL_RX_ONLY:
|
if op_code == OpCode.NORMAL_RX_ONLY:
|
||||||
normal_mode_cmd(q, Info.NORMAL_RX_ONLY, ComMode.RX_ONLY)
|
normal_mode_cmd(q, Info.NORMAL_RX_ONLY, ComMode.RX_ONLY)
|
||||||
if op_code == OpCode.NORMAL_RX_AND_TX_LOW_DATARATE:
|
if op_code == OpCode.NORMAL_RX_AND_TX_LOW_DATARATE:
|
||||||
|
@ -267,7 +267,7 @@ def pack_core_commands(q: DefaultPusQueueHelper, op_code: str):
|
|||||||
)
|
)
|
||||||
elif op_code in OpCode.SWITCH_TO_BOTH_SD_CARDS:
|
elif op_code in OpCode.SWITCH_TO_BOTH_SD_CARDS:
|
||||||
while True:
|
while True:
|
||||||
active_sd_card = int(input("Please specify active SD cqrd [0/1]: "))
|
active_sd_card = int(input("Please specify active SD card [0/1]: "))
|
||||||
if active_sd_card not in [0, 1]:
|
if active_sd_card not in [0, 1]:
|
||||||
_LOGGER.warning("Invalid SD card specified. Try again")
|
_LOGGER.warning("Invalid SD card specified. Try again")
|
||||||
break
|
break
|
||||||
@ -343,7 +343,11 @@ def determine_chip_and_copy() -> (int, int):
|
|||||||
|
|
||||||
def pack_obsw_update_cmd(action_id: int) -> PusTelecommand:
|
def pack_obsw_update_cmd(action_id: int) -> PusTelecommand:
|
||||||
chip, copy = determine_chip_and_copy()
|
chip, copy = determine_chip_and_copy()
|
||||||
user_data = bytes([chip, copy])
|
user_data = bytearray([chip, copy])
|
||||||
|
custom_file_name = input("Use custom filename [y/n] ?: ")
|
||||||
|
if custom_file_name.lower() in ["y", "yes", "1"]:
|
||||||
|
custom_file_name = input("Specify custom filename: ")
|
||||||
|
user_data.extend(custom_file_name.encode())
|
||||||
return create_action_cmd(
|
return create_action_cmd(
|
||||||
object_id=CORE_CONTROLLER_ID, action_id=action_id, user_data=user_data
|
object_id=CORE_CONTROLLER_ID, action_id=action_id, user_data=user_data
|
||||||
)
|
)
|
||||||
|
@ -11,6 +11,11 @@ from eive_tmtc.config.object_ids import (
|
|||||||
SUS_BOARD_ASS_ID,
|
SUS_BOARD_ASS_ID,
|
||||||
MGM_0_LIS3_HANDLER_ID,
|
MGM_0_LIS3_HANDLER_ID,
|
||||||
MGM_1_RM3100_HANDLER_ID,
|
MGM_1_RM3100_HANDLER_ID,
|
||||||
|
SUS_0_N_LOC_XFYFZM_PT_XF,
|
||||||
|
SUS_6_R_LOC_XFYBZM_PT_XF,
|
||||||
|
RW1_ID,
|
||||||
|
RW2_ID,
|
||||||
|
RTD_0_PLOC_HSPD,
|
||||||
)
|
)
|
||||||
|
|
||||||
SUBSYSTEM_DICT = {
|
SUBSYSTEM_DICT = {
|
||||||
@ -30,8 +35,26 @@ ACS_OBJ_DICT = {
|
|||||||
7: ("MGM 0 LIS3", MGM_0_LIS3_HANDLER_ID),
|
7: ("MGM 0 LIS3", MGM_0_LIS3_HANDLER_ID),
|
||||||
8: ("MGM 1 RM3100", MGM_1_RM3100_HANDLER_ID),
|
8: ("MGM 1 RM3100", MGM_1_RM3100_HANDLER_ID),
|
||||||
9: ("GPS 0 Health Device", GPS_0_HEALTH_DEV),
|
9: ("GPS 0 Health Device", GPS_0_HEALTH_DEV),
|
||||||
|
10: ("SUS 0", SUS_0_N_LOC_XFYFZM_PT_XF),
|
||||||
|
11: ("SUS 6", SUS_6_R_LOC_XFYBZM_PT_XF),
|
||||||
|
12: ("RW 1", RW1_ID),
|
||||||
|
13: ("RW 2", RW2_ID),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TCS_OBJ_DICT = {
|
||||||
|
0: ("RTD 0", RTD_0_PLOC_HSPD),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def get_obj_if_from_dict(lut: dict) -> bytes:
|
||||||
|
for k, v in lut.items():
|
||||||
|
print(f"{k}: {v[0]}")
|
||||||
|
obj_key = int(input("Please specify target object by key: "))
|
||||||
|
name_and_obj_id = lut[obj_key]
|
||||||
|
if name_and_obj_id is None:
|
||||||
|
raise ValueError("invalid key")
|
||||||
|
return name_and_obj_id[1]
|
||||||
|
|
||||||
|
|
||||||
def prompt_object() -> bytes:
|
def prompt_object() -> bytes:
|
||||||
for k, v in SUBSYSTEM_DICT.items():
|
for k, v in SUBSYSTEM_DICT.items():
|
||||||
@ -41,10 +64,9 @@ def prompt_object() -> bytes:
|
|||||||
if subsystem is None:
|
if subsystem is None:
|
||||||
raise ValueError("invalid key")
|
raise ValueError("invalid key")
|
||||||
if subsystem == "acs":
|
if subsystem == "acs":
|
||||||
for k, v in ACS_OBJ_DICT.items():
|
return get_obj_if_from_dict(ACS_OBJ_DICT)
|
||||||
print(f"{k}: {v[0]}")
|
elif subsystem == "tcs":
|
||||||
obj_key = int(input("Please specify target object by key: "))
|
return get_obj_if_from_dict(TCS_OBJ_DICT)
|
||||||
acs_obj = ACS_OBJ_DICT[obj_key]
|
else:
|
||||||
if acs_obj is None:
|
print(f"No object for subsystem {subsystem}")
|
||||||
raise ValueError("invalid key")
|
return bytes()
|
||||||
return acs_obj[1]
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import enum
|
||||||
|
|
||||||
from eive_tmtc.config.definitions import CustomServiceList
|
from eive_tmtc.config.definitions import CustomServiceList
|
||||||
from eive_tmtc.tmtc.acs.subsystem import AcsMode
|
from eive_tmtc.tmtc.acs.subsystem import AcsMode
|
||||||
from tmtccmd.config.tmtc import (
|
from tmtccmd.config.tmtc import (
|
||||||
@ -12,6 +14,7 @@ from tmtccmd.tc.pus_200_fsfw_mode import (
|
|||||||
Mode,
|
Mode,
|
||||||
create_announce_mode_recursive_command,
|
create_announce_mode_recursive_command,
|
||||||
)
|
)
|
||||||
|
from tmtccmd.tc.pus_8_fsfw_funccmd import create_action_cmd
|
||||||
from tmtccmd.tc.decorator import ServiceProviderParams
|
from tmtccmd.tc.decorator import ServiceProviderParams
|
||||||
|
|
||||||
|
|
||||||
@ -21,11 +24,16 @@ class SystemMode:
|
|||||||
IDLE = AcsMode.IDLE
|
IDLE = AcsMode.IDLE
|
||||||
|
|
||||||
|
|
||||||
|
class ActionId(enum.IntEnum):
|
||||||
|
EXECUTE_I2C_REBOOT = 10
|
||||||
|
|
||||||
|
|
||||||
class OpCode:
|
class OpCode:
|
||||||
BOOT_MODE = "boot"
|
BOOT_MODE = "boot"
|
||||||
SAFE_MODE = "safe"
|
SAFE_MODE = "safe"
|
||||||
IDLE_MODE = "idle"
|
IDLE_MODE = "idle"
|
||||||
ANNOUNCE_MODES = "announce_modes"
|
ANNOUNCE_MODES = "announce_modes"
|
||||||
|
REBOOT_I2C = "reboot_i2c"
|
||||||
|
|
||||||
|
|
||||||
class Info:
|
class Info:
|
||||||
@ -33,6 +41,7 @@ class Info:
|
|||||||
SAFE_MODE = "Command System into Safe Mode"
|
SAFE_MODE = "Command System into Safe Mode"
|
||||||
IDLE_MODE = "Command System into Idle Pointing Mode"
|
IDLE_MODE = "Command System into Idle Pointing Mode"
|
||||||
ANNOUNCE_MODES = "Announce mode recursively"
|
ANNOUNCE_MODES = "Announce mode recursively"
|
||||||
|
REBOOT_I2C = "Reboot I2C bus"
|
||||||
|
|
||||||
|
|
||||||
@service_provider(CustomServiceList.SYSTEM.value)
|
@service_provider(CustomServiceList.SYSTEM.value)
|
||||||
@ -52,6 +61,9 @@ def build_system_cmds(p: ServiceProviderParams):
|
|||||||
elif o == OpCode.BOOT_MODE:
|
elif o == OpCode.BOOT_MODE:
|
||||||
q.add_log_cmd(f"{prefix}: {Info.BOOT_MODE}")
|
q.add_log_cmd(f"{prefix}: {Info.BOOT_MODE}")
|
||||||
q.add_pus_tc(create_mode_command(EIVE_SYSTEM_ID, SystemMode.BOOT, 0))
|
q.add_pus_tc(create_mode_command(EIVE_SYSTEM_ID, SystemMode.BOOT, 0))
|
||||||
|
elif o == OpCode.REBOOT_I2C:
|
||||||
|
q.add_log_cmd(f"{prefix}: {Info.REBOOT_I2C}")
|
||||||
|
q.add_pus_tc(create_action_cmd(EIVE_SYSTEM_ID, ActionId.EXECUTE_I2C_REBOOT))
|
||||||
|
|
||||||
|
|
||||||
@tmtc_definitions_provider
|
@tmtc_definitions_provider
|
||||||
@ -61,6 +73,7 @@ def add_system_cmd_defs(defs: TmtcDefinitionWrapper):
|
|||||||
oce.add(keys=OpCode.SAFE_MODE, info=Info.SAFE_MODE)
|
oce.add(keys=OpCode.SAFE_MODE, info=Info.SAFE_MODE)
|
||||||
oce.add(keys=OpCode.IDLE_MODE, info=Info.IDLE_MODE)
|
oce.add(keys=OpCode.IDLE_MODE, info=Info.IDLE_MODE)
|
||||||
oce.add(keys=OpCode.ANNOUNCE_MODES, info=Info.ANNOUNCE_MODES)
|
oce.add(keys=OpCode.ANNOUNCE_MODES, info=Info.ANNOUNCE_MODES)
|
||||||
|
oce.add(keys=OpCode.REBOOT_I2C, info=Info.REBOOT_I2C)
|
||||||
defs.add_service(
|
defs.add_service(
|
||||||
name=CustomServiceList.SYSTEM.value,
|
name=CustomServiceList.SYSTEM.value,
|
||||||
info="EIVE system commands",
|
info="EIVE system commands",
|
||||||
|
Reference in New Issue
Block a user