Retransmits » Historie » Revision 2
Revision 1 (Maximilian Seesslen, 24.10.2023 19:08) → Revision 2/20 (Maximilian Seesslen, 24.10.2023 19:25)
h1. Retransmits
* In starting phase there is an auto-tune which requires traffic
* There are at least some CRC errors
h1. Send package
* ringTransmitted.canPush()?
* store essage there
* Send it via RFM69
h2. Receive package
* If type is "Acknowledge"
** find corresponding message
** mark slot as acked/nacked
* If regular message/resend
** If resend: is the package older than the last?, drop it
** is it not last+1? send NACK via RFM69
** fill it in the receive buffer
** directly send acknowledge via RFM69
h2. Loop
* iterate Slots
* If WAITing: is message is older than ??ms, perform an resend
* If ACKed, pop it from the ring. Not the first non-ACKed? Error
* If NACKed, resend it, if there is no WAITing before
h2. Open points
* Acknowledge gets lost; retransmit started
** last-id for every net. Drop message if it matches
* RFM-Class receives messages in ISR as fast as possible. Sending acknowledge is done in the loop.
** Order should be preserved.
** Makes things super slow
* In starting phase there is an auto-tune which requires traffic
* There are at least some CRC errors
h1. Send package
* ringTransmitted.canPush()?
* store essage there
* Send it via RFM69
h2. Receive package
* If type is "Acknowledge"
** find corresponding message
** mark slot as acked/nacked
* If regular message/resend
** If resend: is the package older than the last?, drop it
** is it not last+1? send NACK via RFM69
** fill it in the receive buffer
** directly send acknowledge via RFM69
h2. Loop
* iterate Slots
* If WAITing: is message is older than ??ms, perform an resend
* If ACKed, pop it from the ring. Not the first non-ACKed? Error
* If NACKed, resend it, if there is no WAITing before
h2. Open points
* Acknowledge gets lost; retransmit started
** last-id for every net. Drop message if it matches
* RFM-Class receives messages in ISR as fast as possible. Sending acknowledge is done in the loop.
** Order should be preserved.
** Makes things super slow