Aktionen
  Retransmits » Historie » Revision 2
      « Zurück |
    Revision 2/20
      (diff)
      | Weiter »
    
    Maximilian Seesslen, 24.10.2023 19:25 
    
    
Retransmits¶
- In starting phase there is an auto-tune which requires traffic
 - There are at least some CRC errors
 
Send package¶
- ringTransmitted.canPush()?
 - store essage there
 - Send it via RFM69
 
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
 
 
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
 
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
 
 
Von Maximilian Seesslen vor etwa 2 Jahren aktualisiert · 2 Revisionen