From 906413e8006800b55ee4493bfd59d955f61fc2e0 Mon Sep 17 00:00:00 2001 From: meggert Date: Fri, 24 Mar 2023 14:51:45 +0100 Subject: [PATCH] also check for inertia --- mission/controller/acs/Guidance.cpp | 13 +++++++++---- mission/controller/acs/Guidance.h | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/mission/controller/acs/Guidance.cpp b/mission/controller/acs/Guidance.cpp index 35a2f025..4368e014 100644 --- a/mission/controller/acs/Guidance.cpp +++ b/mission/controller/acs/Guidance.cpp @@ -539,18 +539,23 @@ ReturnValue_t Guidance::getDistributionMatrixRw(ACS::SensorValues *sensorValues, } } -void Guidance::getTargetParamsSafe(double sunTargetSafe[3], double satRateSafe[3]) { +void Guidance::getTargetParamsSafe(double sunTargetSafe[3], double satRateSafe[3], + double inertiaEive[3][3]) { std::error_code e; if (not std::filesystem::exists(SD_0_SKEWED_PTG_FILE, e) or not std::filesystem::exists(SD_1_SKEWED_PTG_FILE, e)) { std::memcpy(sunTargetSafe, acsParameters->safeModeControllerParameters.sunTargetDir, - 3 * sizeof(double)); + sizeof(&sunTargetSafe)); + std::memcpy(inertiaEive, acsParameters->inertiaEIVE.inertiaMatrixDeployed, + sizeof(&inertiaEive)); } else { std::memcpy(sunTargetSafe, acsParameters->safeModeControllerParameters.sunTargetDirLeop, - 3 * sizeof(double)); + sizeof(&sunTargetSafe)); + std::memcpy(inertiaEive, acsParameters->inertiaEIVE.inertiaMatrixUndeployed, + sizeof(&inertiaEive)); } std::memcpy(satRateSafe, acsParameters->safeModeControllerParameters.satRateRef, - 3 * sizeof(double)); + sizeof(&satRateSafe)); } ReturnValue_t Guidance::solarArrayDeploymentComplete() { diff --git a/mission/controller/acs/Guidance.h b/mission/controller/acs/Guidance.h index f3369092..08183534 100644 --- a/mission/controller/acs/Guidance.h +++ b/mission/controller/acs/Guidance.h @@ -12,7 +12,7 @@ class Guidance { Guidance(AcsParameters *acsParameters_); virtual ~Guidance(); - void getTargetParamsSafe(double sunTargetSafe[3], double satRateRef[3]); + void getTargetParamsSafe(double sunTargetSafe[3], double satRateRef[3], double inertiaEive[3][3]); ReturnValue_t solarArrayDeploymentComplete(); // Function to get the target quaternion and refence rotation rate from gps position and