25SegBuffer fix

This commit is contained in:
richonguzman 2024-05-14 01:13:43 -04:00
parent 75fee2f42b
commit e643cf9ac3
2 changed files with 12 additions and 11 deletions

View File

@ -48,7 +48,7 @@ TinyGPSPlus gps;
OneButton userButton = OneButton(BUTTON_PIN, true, true);
#endif
String versionDate = "2024.05.13";
String versionDate = "2024.05.14";
uint8_t myBeaconsIndex = 0;
int myBeaconsSize = Config.beacons.size();

View File

@ -47,7 +47,6 @@ std::vector<String> loadedWLNKMails;
std::vector<String> outputMessagesBuffer;
std::vector<String> outputAckRequestBuffer;
std::vector<String> packet25SegBuffer;
std::vector<uint32_t> packet25SegTimeBuffer;
bool ackRequestState = false;
String ackCallsignRequest = "";
@ -362,9 +361,11 @@ namespace MSG_Utils {
}
void clean25SegBuffer() {
if (!packet25SegTimeBuffer.empty()) {
if (millis() - packet25SegTimeBuffer[0] > 25 * 1000) {
packet25SegTimeBuffer.erase(packet25SegTimeBuffer.begin());
if (!packet25SegBuffer.empty()) {
String deltaTimeString = packet25SegBuffer[0].substring(0, packet25SegBuffer[0].indexOf(","));
uint32_t deltaTime = deltaTimeString.toInt();
if ((millis() - deltaTime) > 25 * 1000) {
Serial.println(packet25SegBuffer[0]);
packet25SegBuffer.erase(packet25SegBuffer.begin());
}
}
@ -374,20 +375,21 @@ namespace MSG_Utils {
if (!packet25SegBuffer.empty()) {
bool shouldBeIgnored = false;
for (int i = 0; i < packet25SegBuffer.size(); i++) {
if (packet25SegBuffer[i].substring(0, packet25SegBuffer[i].indexOf(",")) == station && packet25SegBuffer[i].substring(packet25SegBuffer[i].indexOf(",") + 1) == textMessage) {
String temp = packet25SegBuffer[i].substring(packet25SegBuffer[i].indexOf(",") + 1);
String bufferStation = temp.substring(0, temp.indexOf(","));
String bufferMessage = temp.substring(temp.indexOf(",") + 1);
if (bufferStation == station && bufferMessage == textMessage) {
shouldBeIgnored = true;
}
}
if (shouldBeIgnored) {
return false;
} else {
packet25SegBuffer.push_back(station + "," + textMessage);
packet25SegTimeBuffer.push_back(millis());
packet25SegBuffer.push_back(String(millis()) + "," + station + "," + textMessage);
return true;
}
} else {
packet25SegBuffer.push_back(station + "," + textMessage);
packet25SegTimeBuffer.push_back(millis());
packet25SegBuffer.push_back(String(millis()) + "," + station + "," + textMessage);
return true;
}
}
@ -402,7 +404,6 @@ namespace MSG_Utils {
if (lastReceivedPacket.sender!=currentBeacon->callsign) {
if (check25SegBuffer(lastReceivedPacket.sender, lastReceivedPacket.message)) {
if (Config.bluetoothType == 0 || Config.bluetoothType == 3) { // agregar validador si cliente BLE esta conectado?
BLE_Utils::sendToPhone(packet.text.substring(3));
} else {