TMTC Refactoring #276

Merged
muellerr merged 64 commits from mueller/tmtc-stack-refactoring into develop 2022-08-24 16:52:23 +02:00
4 changed files with 42 additions and 44 deletions
Showing only changes of commit 732602a4cc - Show all commits

View File

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

View File

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

2
tmtc

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