Skip to content

Commit b91eba1

Browse files
committed
additional sequencing guard for recovery
1 parent 0345f6b commit b91eba1

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

podcomm/protocol_radio.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,17 +274,16 @@ def _send_and_get(self, pdm_message, pdm_message_address, ack_address_override=N
274274
timeout = 15
275275
continue
276276
elif repeat_count == 1:
277-
self._reset_sequences()
278277
timeout = 10
279278
time.sleep(2)
280279
continue
281280
elif repeat_count == 2:
282-
self._reset_sequences()
283281
self._radio_init()
284282
timeout = 15
285283
continue
286284
else:
287285
self.logger.debug("Failed recovery")
286+
self._reset_sequences()
288287
raise
289288
elif part < packet_count - 1:
290289
if repeat_count < 2:
@@ -337,6 +336,7 @@ def _send_and_get(self, pdm_message, pdm_message_address, ack_address_override=N
337336
except RecoverableProtocolError as rpe:
338337
self.logger.debug("Trying to recover from protocol error")
339338
self.packet_sequence = (rpe.packet.sequence + 1) % 32
339+
self.message_sequence = (self.message_sequence + 1) % 32
340340
if expected_type == RadioPacketType.POD and rpe.packet.type == RadioPacketType.ACK:
341341
raise StatusUpdateRequired()
342342
continue

0 commit comments

Comments
 (0)