diff --git a/src/helpers/esp32/ESPNOWRadio.cpp b/src/helpers/esp32/ESPNOWRadio.cpp index 7f8f4f71..68f6494a 100644 --- a/src/helpers/esp32/ESPNOWRadio.cpp +++ b/src/helpers/esp32/ESPNOWRadio.cpp @@ -22,7 +22,7 @@ static void OnDataRecv(const uint8_t *mac, const uint8_t *data, int len) { last_rx_len = len; } -void ESPNOWRadio::begin() { +void ESPNOWRadio::init() { // Set device as a Wi-Fi Station WiFi.mode(WIFI_STA); // Long Range mode diff --git a/src/helpers/esp32/ESPNOWRadio.h b/src/helpers/esp32/ESPNOWRadio.h index 7e628344..ab645f12 100644 --- a/src/helpers/esp32/ESPNOWRadio.h +++ b/src/helpers/esp32/ESPNOWRadio.h @@ -9,7 +9,7 @@ protected: public: ESPNOWRadio() { n_recv = n_sent = 0; } - void begin() override; + void init(); int recvRaw(uint8_t* bytes, int sz) override; uint32_t getEstAirtimeFor(int len_bytes) override; void startSendRaw(const uint8_t* bytes, int len) override; diff --git a/variants/generic_espnow/platformio.ini b/variants/generic_espnow/platformio.ini index 802902be..50eede9c 100644 --- a/variants/generic_espnow/platformio.ini +++ b/variants/generic_espnow/platformio.ini @@ -19,7 +19,7 @@ build_flags = ; -D MESH_PACKET_LOGGING=1 ; -D MESH_DEBUG=1 build_src_filter = ${esp32_base.build_src_filter} - + + + +<../variants/generic_espnow> [env:Generic_ESPNOW_terminal_chat] diff --git a/variants/generic_espnow/target.cpp b/variants/generic_espnow/target.cpp index a92b88ac..743a7aeb 100644 --- a/variants/generic_espnow/target.cpp +++ b/variants/generic_espnow/target.cpp @@ -11,7 +11,8 @@ ESP32RTCClock rtc_clock; bool radio_init() { rtc_clock.begin(); - // NOTE: radio_driver.begin() is called by Dispatcher::begin(), so not needed here + radio_driver.init(); + return true; // success } @@ -27,7 +28,16 @@ void radio_set_tx_power(uint8_t dbm) { radio_driver.setTxPower(dbm); } +// NOTE: as we are using the WiFi radio, the ESP_IDF will have enabled hardware RNG: +// https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/random.html +class ESP_RNG : public mesh::RNG { +public: + void random(uint8_t* dest, size_t sz) override { + esp_fill_random(dest, sz); + } +}; + mesh::LocalIdentity radio_new_identity() { - StdRNG rng; // TODO: need stronger True-RNG here + ESP_RNG rng; return mesh::LocalIdentity(&rng); // create new random identity }