Added repeat functionality

This commit is contained in:
CommanderRedYT
2022-08-07 20:15:51 +02:00
parent 8a28084a0a
commit f831895472
3 changed files with 10 additions and 1 deletions

View File

@ -105,6 +105,12 @@ extern "C" void onReceive(const uint8_t *mac_addr, const uint8_t *data, int len)
ESP_LOGI(TAG, "ID: %s - Token: %s", stringSettings.esp_now_door_id.c_str(), stringSettings.esp_now_door_token.c_str());
if (settings.repeatESPNow)
{
ESP_LOGI(TAG, "Repeat ESP-NOW message \"%s\"", message.c_str());
send_espnow_message(message);
}
// Parse the message (msg format: "msg_type:msg_value:msg_token") via find and npos
const size_t pos = message.find(":");
if (pos == std::string::npos) {
@ -240,7 +246,7 @@ void handle()
digitalWrite(PIN_RELAY, LOW);
}
if (!last_send_ms || espchrono::ago(*last_send_ms) > 1s) {
if (!last_send_ms || espchrono::ago(*last_send_ms) > 1s && !settings.repeatESPNow) {
const auto message = fmt::format("T:{}", espchrono::utc_clock::now().time_since_epoch().count());
send_espnow_message(message);
last_send_ms = espchrono::millis_clock::now();

View File

@ -352,6 +352,7 @@ constexpr Settings defaultSettings {
#ifdef FEATURE_ESPNOW
.espnow = defaultEspNowSettings,
#endif
.repeatESPNow = false,
};
StringSettings makeDefaultStringSettings();

View File

@ -233,6 +233,7 @@ struct Settings
bool syncBlink;
} espnow;
#endif
bool repeatESPNow;
template<typename T>
void executeForEveryCommonSetting(T &&callable);
@ -379,6 +380,7 @@ void Settings::executeForEveryCommonSetting(T &&callable)
callable("espnowSyncBl", espnow.syncBlink);
#endif
#endif
callable("repeat", repeatESPNow);
}
template<typename T>