use dipoleSet or overwrite it in case of external command
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...
EIVE/eive-obsw/pipeline/pr-develop This commit looks good

This commit is contained in:
Marius Eggert 2023-03-04 10:15:51 +01:00
parent b20266f153
commit f041655378

View File

@ -194,17 +194,18 @@ ReturnValue_t ImtqHandler::buildCommandFromCommand(DeviceCommandId_t deviceComma
return DeviceHandlerIF::INVALID_COMMAND_PARAMETER; return DeviceHandlerIF::INVALID_COMMAND_PARAMETER;
} }
ImtqRequest request(commandBuffer, sizeof(commandBuffer)); ImtqRequest request(commandBuffer, sizeof(commandBuffer));
{
PoolReadGuard pg(&dipoleSet);
// Commands override anything which was set in the software // Commands override anything which was set in the software
if (commandData != nullptr) { if (commandData != nullptr) {
// Read set dipole values from local pool dipoleSet.setValidityBufferGeneration(false);
PoolReadGuard pg(&dipoleSet); ReturnValue_t result = dipoleSet.deSerialize(&commandData, &commandDataLen,
SerializeIF::Endianness::NETWORK);
int16_t xDipole = 0, yDipole = 0, zDipole = 0; dipoleSet.setValidityBufferGeneration(true);
uint16_t torqueDuration = 0; if (result != returnvalue::OK) {
dipoleSet.xDipole = xDipole; return result;
dipoleSet.yDipole = yDipole; }
dipoleSet.zDipole = zDipole; }
dipoleSet.currentTorqueDurationMs = torqueDuration;
} }
request.setActuateRequest(dipoleSet.xDipole.value, dipoleSet.yDipole.value, request.setActuateRequest(dipoleSet.xDipole.value, dipoleSet.yDipole.value,