a lot of bugfixes
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good

This commit is contained in:
Robin Müller 2023-02-03 16:08:34 +01:00
parent 129399c40e
commit d9514e4184
No known key found for this signature in database
GPG Key ID: 11D4952C8CCEF814
7 changed files with 11 additions and 14 deletions

View File

@ -24,9 +24,14 @@ change warranting a new major release:
- `AcsController`: Parameter fix in `DetumbleParameter`. - `AcsController`: Parameter fix in `DetumbleParameter`.
- Set GPS set entries to invalid on MODE_OFF command. - Set GPS set entries to invalid on MODE_OFF command.
- Bump FSFW for bugfix in `setNormalDatapoolEntriesInvalid` where the validity was not set to false
properly
- Regression: Revert swap of SUS0 and SUS6. Those devices are on separate power lines. In a
future fix, the calibration matrices of SUS0 and SUS6 will be swapped.
## Changed ## Changed
- `ACS::SensorValues` is now an ACS controller member to reduce the risk of stack overflow.
- ACS Subsystem Sequence Mode IDs updated. - ACS Subsystem Sequence Mode IDs updated.
PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/365 PR: https://egit.irs.uni-stuttgart.de/eive/eive-obsw/pulls/365
TMTC PR: https://egit.irs.uni-stuttgart.de/eive/eive-tmtc/pulls/130 TMTC PR: https://egit.irs.uni-stuttgart.de/eive/eive-tmtc/pulls/130

View File

@ -9,7 +9,7 @@
namespace addresses { namespace addresses {
/* Logical addresses have uint32_t datatype */ /* Logical addresses have uint32_t datatype */
enum logicalAddresses : address_t { enum LogicAddress : address_t {
PCDU, PCDU,
MGM_0_LIS3 = objects::MGM_0_LIS3_HANDLER, MGM_0_LIS3 = objects::MGM_0_LIS3_HANDLER,

2
fsfw

@ -1 +1 @@
Subproject commit 3250bbf269b3326683222bb87ce7faecae63ad97 Subproject commit 38789e053b65cfa14604fc625e7bcc8ca03a3f17

View File

@ -79,11 +79,7 @@ void ObjectFactory::createSunSensorComponents(GpioIF* gpioComIF, SpiComIF* spiCo
#if OBSW_ADD_SUN_SENSORS == 1 #if OBSW_ADD_SUN_SENSORS == 1
SusFdir* fdir = nullptr; SusFdir* fdir = nullptr;
std::array<SusHandler*, 12> susHandlers = {}; std::array<SusHandler*, 12> susHandlers = {};
gpioId_t gpioId = gpioIds::CS_SUS_0; SpiCookie* spiCookie = new SpiCookie(addresses::SUS_0, gpioIds::CS_SUS_0, SUS::MAX_CMD_SIZE,
if (swap0And6) {
gpioId = gpioIds::CS_SUS_6;
}
SpiCookie* spiCookie = new SpiCookie(addresses::SUS_0, gpioId, SUS::MAX_CMD_SIZE,
spi::SUS_MAX_1227_MODE, spi::SUS_MAX1227_SPI_FREQ); spi::SUS_MAX_1227_MODE, spi::SUS_MAX1227_SPI_FREQ);
susHandlers[0] = susHandlers[0] =
new SusHandler(objects::SUS_0_N_LOC_XFYFZM_PT_XF, 0, objects::SPI_MAIN_COM_IF, spiCookie); new SusHandler(objects::SUS_0_N_LOC_XFYFZM_PT_XF, 0, objects::SPI_MAIN_COM_IF, spiCookie);
@ -125,11 +121,7 @@ void ObjectFactory::createSunSensorComponents(GpioIF* gpioComIF, SpiComIF* spiCo
fdir = new SusFdir(objects::SUS_5_N_LOC_XFYMZB_PT_ZB); fdir = new SusFdir(objects::SUS_5_N_LOC_XFYMZB_PT_ZB);
susHandlers[5]->setCustomFdir(fdir); susHandlers[5]->setCustomFdir(fdir);
gpioId = gpioIds::CS_SUS_6; spiCookie = new SpiCookie(addresses::SUS_6, gpioIds::CS_SUS_6, SUS::MAX_CMD_SIZE, spi::SUS_MAX_1227_MODE,
if (swap0And6) {
gpioId = gpioIds::CS_SUS_0;
}
spiCookie = new SpiCookie(addresses::SUS_6, gpioId, SUS::MAX_CMD_SIZE, spi::SUS_MAX_1227_MODE,
spi::SUS_MAX1227_SPI_FREQ); spi::SUS_MAX1227_SPI_FREQ);
susHandlers[6] = susHandlers[6] =
new SusHandler(objects::SUS_6_R_LOC_XFYBZM_PT_XF, 6, objects::SPI_MAIN_COM_IF, spiCookie); new SusHandler(objects::SUS_6_R_LOC_XFYBZM_PT_XF, 6, objects::SPI_MAIN_COM_IF, spiCookie);

View File

@ -486,9 +486,9 @@ void AcsController::copyMgmData() {
} }
void AcsController::copySusData() { void AcsController::copySusData() {
ACS::SensorValues sensorValues;
{ {
PoolReadGuard pg(&sensorValues.susSets[0]); PoolReadGuard pg(&sensorValues.susSets[0]);
if (pg.getReadResult() == returnvalue::OK) { if (pg.getReadResult() == returnvalue::OK) {
std::memcpy(susDataRaw.sus0.value, sensorValues.susSets[0].channels.value, std::memcpy(susDataRaw.sus0.value, sensorValues.susSets[0].channels.value,
6 * sizeof(uint16_t)); 6 * sizeof(uint16_t));

View File

@ -60,6 +60,7 @@ class AcsController : public ExtendedControllerBase {
void announceMode(bool recursive); void announceMode(bool recursive);
/* ACS Datasets */ /* ACS Datasets */
ACS::SensorValues sensorValues;
IMTQ::DipoleActuationSet dipoleSet = IMTQ::DipoleActuationSet(objects::IMTQ_HANDLER); IMTQ::DipoleActuationSet dipoleSet = IMTQ::DipoleActuationSet(objects::IMTQ_HANDLER);
// MGMs // MGMs
acsctrl::MgmDataRaw mgmDataRaw; acsctrl::MgmDataRaw mgmDataRaw;

View File

@ -1,6 +1,5 @@
#include <mission/system/objects/AcsSubsystem.h> #include <mission/system/objects/AcsSubsystem.h>
namespace satsystem { namespace satsystem {
namespace acs { namespace acs {