diff --git a/mission/controller/acs/SensorValues.cpp b/mission/controller/acs/SensorValues.cpp index 3a47937a..b38a35b1 100644 --- a/mission/controller/acs/SensorValues.cpp +++ b/mission/controller/acs/SensorValues.cpp @@ -52,11 +52,20 @@ ReturnValue_t SensorValues::updateGyr() { return result; } +ReturnValue_t SensorValues::updateStr() { + ReturnValue_t result; + PoolReadGuard pgStr(&strSet); + + result = pgStr.getReadResult(); + return result; +} + ReturnValue_t SensorValues::update() { ReturnValue_t mgmUpdate = updateMgm(); ReturnValue_t susUpdate = updateSus(); ReturnValue_t gyrUpdate = updateGyr(); - if ((mgmUpdate && susUpdate && gyrUpdate) == returnvalue::FAILED) { + ReturnValue_t strUpdate = updateStr(); + if ((mgmUpdate && susUpdate && gyrUpdate && strUpdate) == returnvalue::FAILED) { return returnvalue::FAILED; }; return returnvalue::OK; diff --git a/mission/controller/acs/SensorValues.h b/mission/controller/acs/SensorValues.h index 5182215d..4e3a215f 100644 --- a/mission/controller/acs/SensorValues.h +++ b/mission/controller/acs/SensorValues.h @@ -5,6 +5,7 @@ #include "fsfw_hal/devicehandlers/MgmLIS3MDLHandler.h" #include "fsfw_hal/devicehandlers/MgmRM3100Handler.h" +#include "linux/devices/devicedefinitions/StarTrackerDefinitions.h" #include "mission/devices/devicedefinitions/GyroADIS1650XDefinitions.h" #include "mission/devices/devicedefinitions/GyroL3GD20Definitions.h" #include "mission/devices/devicedefinitions/IMTQHandlerDefinitions.h" @@ -21,6 +22,7 @@ class SensorValues { ReturnValue_t updateMgm(); ReturnValue_t updateSus(); ReturnValue_t updateGyr(); + ReturnValue_t updateStr(); MGMLIS3MDL::MgmPrimaryDataset mgm0Lis3Set = MGMLIS3MDL::MgmPrimaryDataset(objects::MGM_0_LIS3_HANDLER); @@ -52,9 +54,11 @@ class SensorValues { AdisGyroPrimaryDataset gyr2AdisSet = AdisGyroPrimaryDataset(objects::GYRO_2_ADIS_HANDLER); GyroPrimaryDataset gyr3L3gSet = GyroPrimaryDataset(objects::GYRO_3_L3G_HANDLER); - double quatJB[4]; // output star tracker. quaternion or dcm ? refrence to which KOS? - bool quatJBValid; - int strIntTime[2]; + startracker::SolutionSet strSet = startracker::SolutionSet(objects::STAR_TRACKER); + + // double quatJB[4]; // output star tracker. quaternion or dcm ? refrence to which KOS? + // bool quatJBValid; + // int strIntTime[2]; double gps0latitude; // Reference is WGS84, so this one will probably be geodetic double gps0longitude; // Should be geocentric for IGRF