This commit is contained in:
parent
129399c40e
commit
d9514e4184
@ -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
|
||||||
|
@ -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
2
fsfw
@ -1 +1 @@
|
|||||||
Subproject commit 3250bbf269b3326683222bb87ce7faecae63ad97
|
Subproject commit 38789e053b65cfa14604fc625e7bcc8ca03a3f17
|
@ -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);
|
||||||
|
@ -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));
|
||||||
|
@ -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;
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
#include <mission/system/objects/AcsSubsystem.h>
|
#include <mission/system/objects/AcsSubsystem.h>
|
||||||
|
|
||||||
|
|
||||||
namespace satsystem {
|
namespace satsystem {
|
||||||
namespace acs {
|
namespace acs {
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user