supv ack failure
EIVE/eive-obsw/pipeline/pr-develop This commit looks good Details

This commit is contained in:
Robin Müller 2022-08-18 15:11:32 +02:00
parent d9321a83cf
commit 732602a4cc
No known key found for this signature in database
GPG Key ID: 11D4952C8CCEF814
4 changed files with 42 additions and 44 deletions

View File

@ -418,31 +418,25 @@ class SetTimeRef : public ploc::SpTcBase {
size_t serializedSize = 0;
uint8_t* dataFieldPtr = payloadStart;
uint16_t milliseconds = static_cast<uint16_t>(time->usecond / 1000) | SYNC;
SerializeAdapter::serialize<uint16_t>(&milliseconds, &dataFieldPtr, &serializedSize,
SerializeAdapter::serialize(&milliseconds, &dataFieldPtr, &serializedSize,
sizeof(milliseconds), SerializeIF::Endianness::BIG);
uint8_t second = static_cast<uint8_t>(time->second);
serializedSize = 0;
SerializeAdapter::serialize<uint8_t>(&second, &dataFieldPtr, &serializedSize,
SerializeAdapter::serialize(&second, &dataFieldPtr, &serializedSize,
sizeof(time->second), SerializeIF::Endianness::BIG);
uint8_t minute = static_cast<uint8_t>(time->minute);
serializedSize = 0;
SerializeAdapter::serialize<uint8_t>(&minute, &dataFieldPtr, &serializedSize,
SerializeAdapter::serialize(&minute, &dataFieldPtr, &serializedSize,
sizeof(time->minute), SerializeIF::Endianness::BIG);
uint8_t hour = static_cast<uint8_t>(time->hour);
serializedSize = 0;
SerializeAdapter::serialize<uint8_t>(&hour, &dataFieldPtr, &serializedSize, sizeof(time->hour),
SerializeAdapter::serialize(&hour, &dataFieldPtr, &serializedSize, sizeof(time->hour),
SerializeIF::Endianness::BIG);
uint8_t day = static_cast<uint8_t>(time->day);
serializedSize = 0;
SerializeAdapter::serialize<uint8_t>(&day, &dataFieldPtr, &serializedSize, sizeof(time->day),
SerializeAdapter::serialize(&day, &dataFieldPtr, &serializedSize, sizeof(time->day),
SerializeIF::Endianness::BIG);
uint8_t month = static_cast<uint8_t>(time->month);
serializedSize = 0;
SerializeAdapter::serialize<uint8_t>(&month, &dataFieldPtr, &serializedSize,
SerializeAdapter::serialize(&month, &dataFieldPtr, &serializedSize,
sizeof(time->month), SerializeIF::Endianness::BIG);
uint8_t year = static_cast<uint8_t>(time->year - 1900);
serializedSize = 0;
SerializeAdapter::serialize<uint8_t>(&year, &dataFieldPtr, &serializedSize, sizeof(time->year),
SerializeAdapter::serialize(&year, &dataFieldPtr, &serializedSize, sizeof(time->year),
SerializeIF::Endianness::BIG);
}
};

View File

@ -326,7 +326,7 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
if (result != RETURN_OK) {
break;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
break;
}
case FACTORY_RESET_CLEAR_MIRROR: {
@ -335,7 +335,7 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
if (result != RETURN_OK) {
break;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
break;
}
case FACTORY_RESET_CLEAR_CIRCULAR: {
@ -344,7 +344,7 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
if (result != RETURN_OK) {
break;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
break;
}
case START_MPSOC_QUIET: {
@ -368,7 +368,7 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
if (result != RETURN_OK) {
break;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
break;
}
case DISABLE_AUTO_TM: {
@ -377,7 +377,7 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
if (result != RETURN_OK) {
break;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
break;
}
case LOGGING_REQUEST_COUNTERS: {
@ -386,7 +386,7 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
if (result != RETURN_OK) {
break;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
break;
}
case LOGGING_CLEAR_COUNTERS: {
@ -395,7 +395,7 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
if (result != RETURN_OK) {
break;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
break;
}
case LOGGING_SET_TOPIC: {
@ -405,7 +405,7 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
if (result != RETURN_OK) {
break;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
break;
}
case RESET_PL: {
@ -1397,7 +1397,7 @@ ReturnValue_t PlocSupervisorHandler::prepareEmptyCmd(uint16_t apid) {
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1408,7 +1408,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSelBootImageCmd(const uint8_t* comma
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1425,7 +1425,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetTimeRefCmd() {
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1435,7 +1435,7 @@ ReturnValue_t PlocSupervisorHandler::prepareDisableHk() {
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1447,7 +1447,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetBootTimeoutCmd(const uint8_t* com
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1458,7 +1458,7 @@ ReturnValue_t PlocSupervisorHandler::prepareRestartTriesCmd(const uint8_t* comma
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1476,7 +1476,7 @@ ReturnValue_t PlocSupervisorHandler::prepareLatchupConfigCmd(const uint8_t* comm
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
break;
}
case (supv::DISABLE_LATCHUP_ALERT): {
@ -1485,7 +1485,7 @@ ReturnValue_t PlocSupervisorHandler::prepareLatchupConfigCmd(const uint8_t* comm
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
break;
}
default: {
@ -1512,7 +1512,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetAlertLimitCmd(const uint8_t* comm
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1523,7 +1523,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetAdcEnabledChannelsCmd(const uint8
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1537,7 +1537,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetAdcWindowAndStrideCmd(const uint8
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1549,7 +1549,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetAdcThresholdCmd(const uint8_t* co
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1563,7 +1563,7 @@ ReturnValue_t PlocSupervisorHandler::prepareRunAutoEmTest(const uint8_t* command
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1581,7 +1581,7 @@ ReturnValue_t PlocSupervisorHandler::prepareWipeMramCmd(const uint8_t* commandDa
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1605,7 +1605,7 @@ ReturnValue_t PlocSupervisorHandler::prepareDumpMramCmd(const uint8_t* commandDa
}
receivedMramDumpPackets = 0;
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1618,7 +1618,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetGpioCmd(const uint8_t* commandDat
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1630,11 +1630,15 @@ ReturnValue_t PlocSupervisorHandler::prepareReadGpioCmd(const uint8_t* commandDa
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
void PlocSupervisorHandler::finishTcPrep() { nextReplyId = supv::ACK_REPORT; }
void PlocSupervisorHandler::finishTcPrep(size_t packetLen) {
nextReplyId = supv::ACK_REPORT;
rawPacket = commandBuffer;
rawPacketLen = packetLen;
}
ReturnValue_t PlocSupervisorHandler::prepareSetShutdownTimeoutCmd(const uint8_t* commandData) {
uint32_t timeout = 0;
@ -1652,7 +1656,7 @@ ReturnValue_t PlocSupervisorHandler::prepareSetShutdownTimeoutCmd(const uint8_t*
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1666,7 +1670,7 @@ ReturnValue_t PlocSupervisorHandler::prepareLoggingRequest(const uint8_t* comman
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}
@ -1679,7 +1683,7 @@ ReturnValue_t PlocSupervisorHandler::prepareEnableNvmsCommand(const uint8_t* com
if (result != RETURN_OK) {
return result;
}
finishTcPrep();
finishTcPrep(packet.getFullPacketLen());
return RETURN_OK;
}

View File

@ -287,7 +287,7 @@ class PlocSupervisorHandler : public DeviceHandlerBase {
/**
* @brief Copies the content of a space packet to the command buffer.
*/
void finishTcPrep();
void finishTcPrep(size_t packetLen);
/**
* @brief In case an acknowledgment failure reply has been received this function disables

2
tmtc

@ -1 +1 @@
Subproject commit 7e1eeb85fcee45c3d421a8e344d3678ec6334873
Subproject commit 77a4f493050463cad66c4913aa66b67c678ca34a