diff --git a/examples/simple_repeater/main.cpp b/examples/simple_repeater/main.cpp index 5db62ff1..d8ae9556 100644 --- a/examples/simple_repeater/main.cpp +++ b/examples/simple_repeater/main.cpp @@ -59,6 +59,14 @@ #define ADMIN_PASSWORD "password" #endif +#ifndef SERVER_RESPONSE_DELAY + #define SERVER_RESPONSE_DELAY 300 +#endif + +#ifndef TXT_ACK_DELAY + #define TXT_ACK_DELAY 200 +#endif + #ifdef DISPLAY_CLASS #include "UITask.h" static UITask ui_task(display); @@ -112,8 +120,7 @@ struct NeighbourInfo { int8_t snr; // multiplied by 4, user should divide to get float value }; -// NOTE: need to space the ACK and the reply text apart (in CLI) -#define CLI_REPLY_DELAY_MILLIS 1500 +#define CLI_REPLY_DELAY_MILLIS 1000 class MyMesh : public mesh::Mesh, public CommonCLICallbacks { FILESYSTEM* _fs; @@ -446,14 +453,14 @@ protected: // let this sender know path TO here, so they can use sendDirect(), and ALSO encode the response mesh::Packet* path = createPathReturn(client->id, secret, packet->path, packet->path_len, PAYLOAD_TYPE_RESPONSE, reply_data, reply_len); - if (path) sendFlood(path); + if (path) sendFlood(path, SERVER_RESPONSE_DELAY); } else { mesh::Packet* reply = createDatagram(PAYLOAD_TYPE_RESPONSE, client->id, secret, reply_data, reply_len); if (reply) { if (client->out_path_len >= 0) { // we have an out_path, so send DIRECT - sendDirect(reply, client->out_path, client->out_path_len); + sendDirect(reply, client->out_path, client->out_path_len, SERVER_RESPONSE_DELAY); } else { - sendFlood(reply); + sendFlood(reply, SERVER_RESPONSE_DELAY); } } } @@ -482,9 +489,9 @@ protected: mesh::Packet* ack = createAck(ack_hash); if (ack) { if (client->out_path_len < 0) { - sendFlood(ack); + sendFlood(ack, TXT_ACK_DELAY); } else { - sendDirect(ack, client->out_path, client->out_path_len); + sendDirect(ack, client->out_path, client->out_path_len, TXT_ACK_DELAY); } } } diff --git a/examples/simple_room_server/main.cpp b/examples/simple_room_server/main.cpp index 219c73ab..9f2149fe 100644 --- a/examples/simple_room_server/main.cpp +++ b/examples/simple_room_server/main.cpp @@ -67,6 +67,14 @@ #define MAX_UNSYNCED_POSTS 32 #endif +#ifndef SERVER_RESPONSE_DELAY + #define SERVER_RESPONSE_DELAY 300 +#endif + +#ifndef TXT_ACK_DELAY + #define TXT_ACK_DELAY 200 +#endif + #ifdef DISPLAY_CLASS #include "UITask.h" static UITask ui_task(display); @@ -568,12 +576,12 @@ protected: mesh::Packet* ack = createAck(ack_hash); if (ack) { if (client->out_path_len < 0) { - sendFlood(ack); + sendFlood(ack, TXT_ACK_DELAY); } else { - sendDirect(ack, client->out_path, client->out_path_len); + sendDirect(ack, client->out_path, client->out_path_len, TXT_ACK_DELAY); } } - delay_millis = REPLY_DELAY_MILLIS; + delay_millis = TXT_ACK_DELAY + REPLY_DELAY_MILLIS; } else { delay_millis = 0; } @@ -592,9 +600,9 @@ protected: auto reply = createDatagram(PAYLOAD_TYPE_TXT_MSG, client->id, secret, temp, 5 + text_len); if (reply) { if (client->out_path_len < 0) { - sendFlood(reply, delay_millis); + sendFlood(reply, delay_millis + SERVER_RESPONSE_DELAY); } else { - sendDirect(reply, client->out_path, client->out_path_len, delay_millis); + sendDirect(reply, client->out_path, client->out_path_len, delay_millis + SERVER_RESPONSE_DELAY); } } } @@ -637,7 +645,7 @@ protected: auto reply = createAck(ack_hash); if (reply) { reply->payload[reply->payload_len++] = getUnsyncedCount(client); // NEW: add unsynced counter to end of ACK packet - sendDirect(reply, client->out_path, client->out_path_len); + sendDirect(reply, client->out_path, client->out_path_len, SERVER_RESPONSE_DELAY); } } } else { @@ -647,14 +655,14 @@ protected: // let this sender know path TO here, so they can use sendDirect(), and ALSO encode the response mesh::Packet* path = createPathReturn(client->id, secret, packet->path, packet->path_len, PAYLOAD_TYPE_RESPONSE, reply_data, reply_len); - if (path) sendFlood(path); + if (path) sendFlood(path, SERVER_RESPONSE_DELAY); } else { mesh::Packet* reply = createDatagram(PAYLOAD_TYPE_RESPONSE, client->id, secret, reply_data, reply_len); if (reply) { if (client->out_path_len >= 0) { // we have an out_path, so send DIRECT - sendDirect(reply, client->out_path, client->out_path_len); + sendDirect(reply, client->out_path, client->out_path_len, SERVER_RESPONSE_DELAY); } else { - sendFlood(reply); + sendFlood(reply, SERVER_RESPONSE_DELAY); } } }