From f0416553788cf9264b5c63e7d6d330557ffcaaba Mon Sep 17 00:00:00 2001 From: meggert Date: Sat, 4 Mar 2023 10:15:51 +0100 Subject: [PATCH] use dipoleSet or overwrite it in case of external command --- mission/devices/ImtqHandler.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/mission/devices/ImtqHandler.cpp b/mission/devices/ImtqHandler.cpp index c9ceec04..068741fa 100644 --- a/mission/devices/ImtqHandler.cpp +++ b/mission/devices/ImtqHandler.cpp @@ -194,17 +194,18 @@ ReturnValue_t ImtqHandler::buildCommandFromCommand(DeviceCommandId_t deviceComma return DeviceHandlerIF::INVALID_COMMAND_PARAMETER; } ImtqRequest request(commandBuffer, sizeof(commandBuffer)); - // Commands override anything which was set in the software - if (commandData != nullptr) { - // Read set dipole values from local pool + { PoolReadGuard pg(&dipoleSet); - - int16_t xDipole = 0, yDipole = 0, zDipole = 0; - uint16_t torqueDuration = 0; - dipoleSet.xDipole = xDipole; - dipoleSet.yDipole = yDipole; - dipoleSet.zDipole = zDipole; - dipoleSet.currentTorqueDurationMs = torqueDuration; + // Commands override anything which was set in the software + if (commandData != nullptr) { + dipoleSet.setValidityBufferGeneration(false); + ReturnValue_t result = dipoleSet.deSerialize(&commandData, &commandDataLen, + SerializeIF::Endianness::NETWORK); + dipoleSet.setValidityBufferGeneration(true); + if (result != returnvalue::OK) { + return result; + } + } } request.setActuateRequest(dipoleSet.xDipole.value, dipoleSet.yDipole.value,