From cc36fc6676e8f047b76e1a6a27cb41d8ce8dcddb Mon Sep 17 00:00:00 2001 From: erki Date: Sun, 11 Jun 2023 16:12:45 +0300 Subject: [PATCH] Project configuration items. --- main/Kconfig.projbuild | 23 +++++++++++++++++++++++ main/app_networking.cpp | 13 +++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 main/Kconfig.projbuild diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild new file mode 100644 index 0000000..34f9584 --- /dev/null +++ b/main/Kconfig.projbuild @@ -0,0 +1,23 @@ +menu "EspTunnel Configuration" + + config ESPTNL_PMK + string "ESPNOW primary master key" + default "pmk1234567890123" + help + ESPNOW primary master key. Must be 16 bytes. + + config ESPTNL_LMK + string "ESPNOW local master key" + default "lmk1234567890123" + help + ESPNOW local master key. Must be 16 bytes. + + + config ESPTNL_CHANNEL + int "Channel" + default 1 + range 0 14 + help + The channel for sending and receiving ESPNOW data. + +endmenu \ No newline at end of file diff --git a/main/app_networking.cpp b/main/app_networking.cpp index 14ad246..3efe0cf 100644 --- a/main/app_networking.cpp +++ b/main/app_networking.cpp @@ -21,6 +21,15 @@ static const char* TAG = "Networking"; static_assert(std::is_standard_layout_v && std::is_trivial_v, "EspNowEvent is not compatible with a FreeRTOS queue."); +template +constexpr auto STR_LEN(const char (&s)[N]) +{ + return N; +} + +static_assert(STR_LEN(CONFIG_ESPTNL_PMK) == 16 + 1, "CONFIG_ESPTNL_PMK must be of length 16 bytes + 1 null terminator."); +static_assert(STR_LEN(CONFIG_ESPTNL_LMK) == 16 + 1, "CONFIG_ESPTNL_LMK must be of length 16 bytes + 1 null terminator."); + QueueHandle_t s_esp_now_queue = nullptr; std::array s_rx_buffer; std::variant s_peer; @@ -72,7 +81,7 @@ void setupWifi() ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM)); ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); ESP_ERROR_CHECK(esp_wifi_start()); - ESP_ERROR_CHECK(esp_wifi_set_channel(1, WIFI_SECOND_CHAN_NONE)); + ESP_ERROR_CHECK(esp_wifi_set_channel(CONFIG_ESPTNL_CHANNEL, WIFI_SECOND_CHAN_NONE)); } QueueHandle_t setupEspNow() @@ -81,7 +90,7 @@ QueueHandle_t setupEspNow() ESP_ERROR_CHECK(s_esp_now_queue == nullptr); ESP_ERROR_CHECK(esp_now_init()); - // ESP_ERROR_CHECK(esp_now_set_pmk(nullptr)); + ESP_ERROR_CHECK(esp_now_set_pmk((const std::uint8_t*)CONFIG_ESPTNL_PMK)); ESP_ERROR_CHECK(esp_now_register_send_cb(s_cbEspNowSendComplete)); ESP_ERROR_CHECK(esp_now_register_recv_cb(s_cbEspNowReceiveComplete));