let's not do that for now..
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-main This commit looks good
This commit is contained in:
parent
1f8dc67922
commit
5dd0c2a5cb
@ -16,6 +16,15 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
|
# [v8.1.1] 2024-06-05
|
||||||
|
|
||||||
|
## Added
|
||||||
|
|
||||||
|
- PLOC SUPV MPSoC update re-try logic for the `WRITE_MEMORY` command. These packets form > 98%
|
||||||
|
of all packets required for a software update, but the update mechanism is not tolerant against
|
||||||
|
occasional glitches on the RS485 communication to the PLOC SUPV. A simple re-try mechanism which
|
||||||
|
tries to re-attempt packet handling up to three times for those packets is introduced.
|
||||||
|
|
||||||
# [v8.1.0] 2024-05-29
|
# [v8.1.0] 2024-05-29
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
@ -465,7 +465,10 @@ ReturnValue_t PlocSupvUartManager::writeMemoryHandlingWithRetryLogic(supv::Write
|
|||||||
}
|
}
|
||||||
triggerEvent(WRITE_MEMORY_FAILED, buildProgParams1(progPercent, update.sequenceCount),
|
triggerEvent(WRITE_MEMORY_FAILED, buildProgParams1(progPercent, update.sequenceCount),
|
||||||
update.bytesWritten);
|
update.bytesWritten);
|
||||||
|
// Clear data structures related to reply handling.
|
||||||
serial::flushTxRxBuf(serialPort);
|
serial::flushTxRxBuf(serialPort);
|
||||||
|
recRingBuf.clear();
|
||||||
|
decodedRingBuf.clear();
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -577,10 +580,11 @@ ReturnValue_t PlocSupvUartManager::handlePacketTransmissionNoReply(
|
|||||||
ReturnValue_t status = handleUartReception();
|
ReturnValue_t status = handleUartReception();
|
||||||
if (status != returnvalue::OK) {
|
if (status != returnvalue::OK) {
|
||||||
result = status;
|
result = status;
|
||||||
// We probably missed a packet or the communication was temporarily corrupted..
|
|
||||||
// It probably would be good to bail immediately for re-try logic.
|
|
||||||
if (result == HDLC_ERROR) {
|
if (result == HDLC_ERROR) {
|
||||||
return result;
|
// We could bail here immediately.. but I prefer to wait for the timeout, because we should
|
||||||
|
// ensure that all packets which might be related to the transfer are still received and
|
||||||
|
// cleared from all data structures related to reply handling.
|
||||||
|
// return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (not decodedQueue.empty()) {
|
if (not decodedQueue.empty()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user