diff --git a/CHANGELOG.md b/CHANGELOG.md index dfa460bd..a79f1cf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,27 @@ will consitute of a breaking change warranting a new major release: # [unreleased] +## Changed + +- Reverted lower OP limit of `PLOC` to -10°C. +- All pointing laws are now allowed to use the `MEKF` per default. + +# [v7.7.4] 2024-03-21 + +## Changed + +- Rotational rate limit for the GS target pointing is now seperated from controller limit. It + is also reduced to 0.75°/s now. +- PUS time service: Now dumps the time before and after relative timeshift or setting absolute time + +## Fixed + +- Fixed wrong sign in calculation of total current within the `PWR Controller`. + +## Added + +- PUS timeservice relative timeshift. + # [v7.7.3] 2024-03-18 - Bumped `eive-fsfw` diff --git a/CMakeLists.txt b/CMakeLists.txt index 54d804b0..b4314754 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.13) set(OBSW_VERSION_MAJOR 7) set(OBSW_VERSION_MINOR 7) -set(OBSW_VERSION_REVISION 3) +set(OBSW_VERSION_REVISION 4) # set(CMAKE_VERBOSE TRUE) diff --git a/bsp_hosted/fsfwconfig/events/translateEvents.cpp b/bsp_hosted/fsfwconfig/events/translateEvents.cpp index 5cd42682..a787b609 100644 --- a/bsp_hosted/fsfwconfig/events/translateEvents.cpp +++ b/bsp_hosted/fsfwconfig/events/translateEvents.cpp @@ -1,7 +1,7 @@ /** - * @brief Auto-generated event translation file. Contains 320 translations. + * @brief Auto-generated event translation file. Contains 321 translations. * @details - * Generated on: 2024-02-29 13:15:00 + * Generated on: 2024-04-08 13:37:59 */ #include "translateEvents.h" @@ -82,8 +82,9 @@ const char *BIT_LOCK_STRING = "BIT_LOCK"; const char *BIT_LOCK_LOST_STRING = "BIT_LOCK_LOST"; const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED"; const char *CLOCK_SET_STRING = "CLOCK_SET"; -const char *CLOCK_DUMP_STRING = "CLOCK_DUMP"; +const char *CLOCK_DUMP_LEGACY_STRING = "CLOCK_DUMP_LEGACY"; const char *CLOCK_SET_FAILURE_STRING = "CLOCK_SET_FAILURE"; +const char *CLOCK_DUMP_STRING = "CLOCK_DUMP"; const char *TC_DELETION_FAILED_STRING = "TC_DELETION_FAILED"; const char *TEST_STRING = "TEST"; const char *CHANGE_OF_SETUP_PARAMETER_STRING = "CHANGE_OF_SETUP_PARAMETER"; @@ -483,9 +484,11 @@ const char *translateEvents(Event event) { case (8900): return CLOCK_SET_STRING; case (8901): - return CLOCK_DUMP_STRING; + return CLOCK_DUMP_LEGACY_STRING; case (8902): return CLOCK_SET_FAILURE_STRING; + case (8903): + return CLOCK_DUMP_STRING; case (9100): return TC_DELETION_FAILED_STRING; case (9700): diff --git a/bsp_hosted/fsfwconfig/objects/translateObjects.cpp b/bsp_hosted/fsfwconfig/objects/translateObjects.cpp index 46c7481b..3af7f2d3 100644 --- a/bsp_hosted/fsfwconfig/objects/translateObjects.cpp +++ b/bsp_hosted/fsfwconfig/objects/translateObjects.cpp @@ -2,7 +2,7 @@ * @brief Auto-generated object translation file. * @details * Contains 175 translations. - * Generated on: 2024-02-29 13:15:00 + * Generated on: 2024-04-08 13:37:59 */ #include "translateObjects.h" diff --git a/fsfw b/fsfw index 43ea29cb..a229748a 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit 43ea29cb845d4a7d190c87df490eb53c4992618b +Subproject commit a229748aa4c1ff8e2b9f7e268259b857fb8f9051 diff --git a/generators/bsp_hosted_events.csv b/generators/bsp_hosted_events.csv index 200cbdb1..34aa9343 100644 --- a/generators/bsp_hosted_events.csv +++ b/generators/bsp_hosted_events.csv @@ -75,9 +75,10 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path 7902;0x1ede;BIT_LOCK;INFO;A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h 7903;0x1edf;BIT_LOCK_LOST;INFO;A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h 7905;0x1ee1;FRAME_PROCESSING_FAILED;LOW;The CCSDS Board could not interpret a TC;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h -8900;0x22c4;CLOCK_SET;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h -8901;0x22c5;CLOCK_DUMP;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h -8902;0x22c6;CLOCK_SET_FAILURE;LOW;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h +8900;0x22c4;CLOCK_SET;INFO;Clock has been set. P1: old timeval seconds. P2: new timeval seconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h +8901;0x22c5;CLOCK_DUMP_LEGACY;INFO;Clock dump event. P1: timeval seconds P2: timeval milliseconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h +8902;0x22c6;CLOCK_SET_FAILURE;LOW;Clock could not be set. P1: Returncode.;fsfw/src/fsfw/pus/Service9TimeManagement.h +8903;0x22c7;CLOCK_DUMP;INFO;Clock dump event. P1: timeval seconds P2: timeval microseconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h 9100;0x238c;TC_DELETION_FAILED;MEDIUM;Deletion of a TC from the map failed. P1: First 32 bit of request ID, P2. Last 32 bit of Request ID;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h 9700;0x25e4;TEST;INFO;No description;fsfw/src/fsfw/pus/Service17Test.h 10600;0x2968;CHANGE_OF_SETUP_PARAMETER;LOW;No description;fsfw/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h diff --git a/generators/bsp_q7s_events.csv b/generators/bsp_q7s_events.csv index 200cbdb1..34aa9343 100644 --- a/generators/bsp_q7s_events.csv +++ b/generators/bsp_q7s_events.csv @@ -75,9 +75,10 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path 7902;0x1ede;BIT_LOCK;INFO;A Bit Lock signal. Was detected. P1: raw BLO state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h 7903;0x1edf;BIT_LOCK_LOST;INFO;A previously found Bit Lock signal was lost. P1: raw BLO state, P2: 0;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h 7905;0x1ee1;FRAME_PROCESSING_FAILED;LOW;The CCSDS Board could not interpret a TC;fsfw/src/fsfw/datalinklayer/DataLinkLayer.h -8900;0x22c4;CLOCK_SET;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h -8901;0x22c5;CLOCK_DUMP;INFO;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h -8902;0x22c6;CLOCK_SET_FAILURE;LOW;No description;fsfw/src/fsfw/pus/Service9TimeManagement.h +8900;0x22c4;CLOCK_SET;INFO;Clock has been set. P1: old timeval seconds. P2: new timeval seconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h +8901;0x22c5;CLOCK_DUMP_LEGACY;INFO;Clock dump event. P1: timeval seconds P2: timeval milliseconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h +8902;0x22c6;CLOCK_SET_FAILURE;LOW;Clock could not be set. P1: Returncode.;fsfw/src/fsfw/pus/Service9TimeManagement.h +8903;0x22c7;CLOCK_DUMP;INFO;Clock dump event. P1: timeval seconds P2: timeval microseconds.;fsfw/src/fsfw/pus/Service9TimeManagement.h 9100;0x238c;TC_DELETION_FAILED;MEDIUM;Deletion of a TC from the map failed. P1: First 32 bit of request ID, P2. Last 32 bit of Request ID;fsfw/src/fsfw/pus/Service11TelecommandScheduling.h 9700;0x25e4;TEST;INFO;No description;fsfw/src/fsfw/pus/Service17Test.h 10600;0x2968;CHANGE_OF_SETUP_PARAMETER;LOW;No description;fsfw/src/fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h diff --git a/generators/events/translateEvents.cpp b/generators/events/translateEvents.cpp index 5cd42682..a787b609 100644 --- a/generators/events/translateEvents.cpp +++ b/generators/events/translateEvents.cpp @@ -1,7 +1,7 @@ /** - * @brief Auto-generated event translation file. Contains 320 translations. + * @brief Auto-generated event translation file. Contains 321 translations. * @details - * Generated on: 2024-02-29 13:15:00 + * Generated on: 2024-04-08 13:37:59 */ #include "translateEvents.h" @@ -82,8 +82,9 @@ const char *BIT_LOCK_STRING = "BIT_LOCK"; const char *BIT_LOCK_LOST_STRING = "BIT_LOCK_LOST"; const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED"; const char *CLOCK_SET_STRING = "CLOCK_SET"; -const char *CLOCK_DUMP_STRING = "CLOCK_DUMP"; +const char *CLOCK_DUMP_LEGACY_STRING = "CLOCK_DUMP_LEGACY"; const char *CLOCK_SET_FAILURE_STRING = "CLOCK_SET_FAILURE"; +const char *CLOCK_DUMP_STRING = "CLOCK_DUMP"; const char *TC_DELETION_FAILED_STRING = "TC_DELETION_FAILED"; const char *TEST_STRING = "TEST"; const char *CHANGE_OF_SETUP_PARAMETER_STRING = "CHANGE_OF_SETUP_PARAMETER"; @@ -483,9 +484,11 @@ const char *translateEvents(Event event) { case (8900): return CLOCK_SET_STRING; case (8901): - return CLOCK_DUMP_STRING; + return CLOCK_DUMP_LEGACY_STRING; case (8902): return CLOCK_SET_FAILURE_STRING; + case (8903): + return CLOCK_DUMP_STRING; case (9100): return TC_DELETION_FAILED_STRING; case (9700): diff --git a/generators/objects/translateObjects.cpp b/generators/objects/translateObjects.cpp index 6230d3db..110c5c62 100644 --- a/generators/objects/translateObjects.cpp +++ b/generators/objects/translateObjects.cpp @@ -2,7 +2,7 @@ * @brief Auto-generated object translation file. * @details * Contains 179 translations. - * Generated on: 2024-02-29 13:15:00 + * Generated on: 2024-04-08 13:37:59 */ #include "translateObjects.h" diff --git a/linux/fsfwconfig/events/translateEvents.cpp b/linux/fsfwconfig/events/translateEvents.cpp index 5cd42682..a787b609 100644 --- a/linux/fsfwconfig/events/translateEvents.cpp +++ b/linux/fsfwconfig/events/translateEvents.cpp @@ -1,7 +1,7 @@ /** - * @brief Auto-generated event translation file. Contains 320 translations. + * @brief Auto-generated event translation file. Contains 321 translations. * @details - * Generated on: 2024-02-29 13:15:00 + * Generated on: 2024-04-08 13:37:59 */ #include "translateEvents.h" @@ -82,8 +82,9 @@ const char *BIT_LOCK_STRING = "BIT_LOCK"; const char *BIT_LOCK_LOST_STRING = "BIT_LOCK_LOST"; const char *FRAME_PROCESSING_FAILED_STRING = "FRAME_PROCESSING_FAILED"; const char *CLOCK_SET_STRING = "CLOCK_SET"; -const char *CLOCK_DUMP_STRING = "CLOCK_DUMP"; +const char *CLOCK_DUMP_LEGACY_STRING = "CLOCK_DUMP_LEGACY"; const char *CLOCK_SET_FAILURE_STRING = "CLOCK_SET_FAILURE"; +const char *CLOCK_DUMP_STRING = "CLOCK_DUMP"; const char *TC_DELETION_FAILED_STRING = "TC_DELETION_FAILED"; const char *TEST_STRING = "TEST"; const char *CHANGE_OF_SETUP_PARAMETER_STRING = "CHANGE_OF_SETUP_PARAMETER"; @@ -483,9 +484,11 @@ const char *translateEvents(Event event) { case (8900): return CLOCK_SET_STRING; case (8901): - return CLOCK_DUMP_STRING; + return CLOCK_DUMP_LEGACY_STRING; case (8902): return CLOCK_SET_FAILURE_STRING; + case (8903): + return CLOCK_DUMP_STRING; case (9100): return TC_DELETION_FAILED_STRING; case (9700): diff --git a/linux/fsfwconfig/objects/translateObjects.cpp b/linux/fsfwconfig/objects/translateObjects.cpp index 6230d3db..110c5c62 100644 --- a/linux/fsfwconfig/objects/translateObjects.cpp +++ b/linux/fsfwconfig/objects/translateObjects.cpp @@ -2,7 +2,7 @@ * @brief Auto-generated object translation file. * @details * Contains 179 translations. - * Generated on: 2024-02-29 13:15:00 + * Generated on: 2024-04-08 13:37:59 */ #include "translateObjects.h" diff --git a/mission/controller/PowerController.cpp b/mission/controller/PowerController.cpp index 8fb774dc..e4ad9f81 100644 --- a/mission/controller/PowerController.cpp +++ b/mission/controller/PowerController.cpp @@ -182,7 +182,7 @@ void PowerController::calculateStateOfCharge() { } // calculate total battery current - iBat = p60CoreHk.batteryCurrent.value + bpxBatteryHk.dischargeCurrent.value; + iBat = p60CoreHk.batteryCurrent.value - bpxBatteryHk.dischargeCurrent.value; result = calculateOpenCircuitVoltageCharge(); if (result != returnvalue::OK) { diff --git a/mission/controller/ThermalController.h b/mission/controller/ThermalController.h index 6b6d9cde..1062fe97 100644 --- a/mission/controller/ThermalController.h +++ b/mission/controller/ThermalController.h @@ -197,9 +197,9 @@ class ThermalController : public ExtendedControllerBase { tcsCtrl::TempLimits pcduAcuLimits = tcsCtrl::TempLimits(-35.0, -35.0, 80.0, 85.0, 85.0); tcsCtrl::TempLimits pcduPduLimits = tcsCtrl::TempLimits(-35.0, -35.0, 80.0, 85.0, 85.0); tcsCtrl::TempLimits plPcduBoardLimits = tcsCtrl::TempLimits(-55.0, -40.0, 80.0, 85.0, 125.0); - tcsCtrl::TempLimits plocMissionBoardLimits = tcsCtrl::TempLimits(-30.0, -5.0, 40.0, 45.0, 60); + tcsCtrl::TempLimits plocMissionBoardLimits = tcsCtrl::TempLimits(-30.0, -10.0, 40.0, 45.0, 60); tcsCtrl::TempLimits plocProcessingBoardLimits = - tcsCtrl::TempLimits(-30.0, -5.0, 40.0, 45.0, 60.0); + tcsCtrl::TempLimits(-30.0, -10.0, 40.0, 45.0, 60.0); tcsCtrl::TempLimits dacLimits = tcsCtrl::TempLimits(-65.0, -40.0, 113.0, 118.0, 150.0); tcsCtrl::TempLimits cameraLimits = tcsCtrl::TempLimits(-40.0, -30.0, 60.0, 65.0, 85.0); tcsCtrl::TempLimits droLimits = tcsCtrl::TempLimits(-40.0, -30.0, 75.0, 80.0, 90.0); diff --git a/mission/controller/acs/AcsParameters.cpp b/mission/controller/acs/AcsParameters.cpp index 3a7aa726..a9f806ec 100644 --- a/mission/controller/acs/AcsParameters.cpp +++ b/mission/controller/acs/AcsParameters.cpp @@ -554,6 +554,9 @@ ReturnValue_t AcsParameters::getParameter(uint8_t domainId, uint8_t parameterId, case 0xE: parameterWrapper->set(gsTargetModeControllerParameters.altitudeTgt); break; + case 0xF: + parameterWrapper->set(gsTargetModeControllerParameters.rotRateLimit); + break; default: return INVALID_IDENTIFIER_ID; } diff --git a/mission/controller/acs/AcsParameters.h b/mission/controller/acs/AcsParameters.h index 965878e7..dfb99c2c 100644 --- a/mission/controller/acs/AcsParameters.h +++ b/mission/controller/acs/AcsParameters.h @@ -866,7 +866,7 @@ class AcsParameters : public HasParametersIF { double desatMomentumRef[3] = {0, 0, 0}; double deSatGainFactor = 1000; uint8_t desatOn = true; - uint8_t useMekf = false; + uint8_t useMekf = true; } pointingLawParameters; struct IdleModeControllerParameters : PointingLawParameters { @@ -898,6 +898,7 @@ class AcsParameters : public HasParametersIF { double latitudeTgt = 48.7495 * DEG2RAD; // [rad] Latitude double longitudeTgt = 9.10384 * DEG2RAD; // [rad] Longitude double altitudeTgt = 500; // [m] + double rotRateLimit = .75 * DEG2RAD; } gsTargetModeControllerParameters; struct NadirModeControllerParameters : PointingLawParameters { diff --git a/mission/controller/acs/Guidance.cpp b/mission/controller/acs/Guidance.cpp index a6559db3..2c1b3c63 100644 --- a/mission/controller/acs/Guidance.cpp +++ b/mission/controller/acs/Guidance.cpp @@ -251,7 +251,7 @@ void Guidance::limitReferenceRotation(const double xAxisIX[3], double quatIX[4]) QuaternionOperations::inverse(quatIXprev, quatXprevI); QuaternionOperations::multiply(quatIX, quatXprevI, quatXprevX); QuaternionOperations::normalize(quatXprevX); - double phiMax = acsParameters->gsTargetModeControllerParameters.omMax * + double phiMax = acsParameters->gsTargetModeControllerParameters.rotRateLimit * acsParameters->onBoardParams.sampleTime; if (2 * std::acos(quatXprevX[3]) < phiMax) { return; diff --git a/tmtc b/tmtc index c843356c..5a0edbef 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit c843356c8af22bf45a04c71c93813716c9d743ec +Subproject commit 5a0edbefa8449f4796d7d0976822c8fda139c598