temp sync broken

This commit is contained in:
2025-12-30 08:04:26 +01:00
parent 31dda62474
commit 3b2ec32532
27 changed files with 1339 additions and 589 deletions

View File

@@ -381,20 +381,39 @@ void sendFrame (const FrameStruct *frame) {
*/
void retransmitFrame (FrameStruct *frame) {
MESH_LOGD (TAG, "Going to check ReTx");
if (frame->header & ROUTE_TYPE_FLOOD || frame->header & ROUTE_TYPE_TRANSPORT_FLOOD) {
MESH_LOGD (TAG, "Header is flood");
if (frame->header != DONT_RETRANSMIT_HEADER && frame->path.pathLen + 1 < MAX_FLOOD_TTL) {
MESH_LOGD (TAG, "Writing pubkey");
/* -------- FLOOD -------- */
if (frame->header & ROUTE_TYPE_FLOOD ||
frame->header & ROUTE_TYPE_TRANSPORT_FLOOD) {
if (frame->header != DONT_RETRANSMIT_HEADER &&
frame->path.pathLen + 1 < MAX_FLOOD_TTL) {
// append self to END of path
frame->path.path[frame->path.pathLen++] = persistent.pubkey[0];
MESH_LOGD (TAG, "Flooding");
vTaskDelay (10);
LoRaTransmit (frame); // TODO check if correct
MESH_LOGD (TAG, "Flooded");
LoRaTransmit (frame);
}
}
if (frame->header & ROUTE_TYPE_DIRECT || frame->header & ROUTE_TYPE_TRANSPORT_DIRECT) {
/* -------- DIRECT -------- */
if (frame->header & ROUTE_TYPE_DIRECT ||
frame->header & ROUTE_TYPE_TRANSPORT_DIRECT) {
// are we the next hop?
if (frame->path.pathLen > 0 &&
frame->path.path[0] == persistent.pubkey[0]) {
// remove self from START of path
frame->path.pathLen--;
memmove (frame->path.path,
frame->path.path + 1,
frame->path.pathLen);
// forward only if there's another hop
if (frame->path.pathLen > 0) {
LoRaTransmit (frame);
}
}
}
}