diff --git a/CMake/Modules/FindNF_NativeAssemblies.cmake b/CMake/Modules/FindNF_NativeAssemblies.cmake index 2d52b64b7b..0700a6521d 100644 --- a/CMake/Modules/FindNF_NativeAssemblies.cmake +++ b/CMake/Modules/FindNF_NativeAssemblies.cmake @@ -1,4 +1,4 @@ -# +# # Copyright (c) .NET Foundation and Contributors # See LICENSE file in the project root for full license information. # @@ -38,6 +38,7 @@ option(API_nanoFramework.System.Security.Cryptography "option for nanoFramewor # Esp32 only option(API_Hardware.Esp32 "option for Hardware.Esp32") option(API_nanoFramework.Hardware.Esp32.Rmt "option for nanoFramework.Hardware.Esp32.Rmt") +option(API_nanoFramework.EspNow "option for nanoFramework.EspNow") option(API_nanoFramework.Networking.Thread "option for nanoFramework.Networking.Thread API") # Stm32 only @@ -252,6 +253,12 @@ if(API_nanoFramework.Hardware.Esp32.Rmt) PerformSettingsForApiEntry("nanoFramework.Hardware.Esp32.Rmt") endif() +# nanoFramework.EspNow +if(API_nanoFramework.EspNow) + ##### API name here (doted name) + PerformSettingsForApiEntry("nanoFramework.EspNow") +endif() + # nanoFramework.Networking.Thread if(API_nanoFramework.Networking.Thread) ##### API name here (doted name) @@ -565,4 +572,4 @@ macro(nf_add_lib_native_assemblies) # add alias add_library("nano::${LIB_NAME}" ALIAS ${LIB_NAME}) -endmacro() +endmacro() \ No newline at end of file diff --git a/CMake/Modules/FindnanoFramework.Espnow.cmake b/CMake/Modules/FindnanoFramework.Espnow.cmake new file mode 100644 index 0000000000..d506635911 --- /dev/null +++ b/CMake/Modules/FindnanoFramework.Espnow.cmake @@ -0,0 +1,43 @@ +# Copyright (c) .NET Foundation and Contributors +# See LICENSE file in the project root for full license information. +# + +# native code directory +set(BASE_PATH_FOR_THIS_MODULE ${BASE_PATH_FOR_CLASS_LIBRARIES_MODULES}/nanoFramework.EspNow) + + +# set include directories +list(APPEND nanoFramework.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/CLR/Core) +list(APPEND nanoFramework.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/CLR/Include) +list(APPEND nanoFramework.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/HAL/Include) +list(APPEND nanoFramework.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/PAL/Include) +list(APPEND nanoFramework.EspNow_INCLUDE_DIRS ${BASE_PATH_FOR_THIS_MODULE}) +list(APPEND nanoFramework.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/nanoFramework.EspNow) + +# source files +set(nanoFramework.EspNow_SRCS + nanoFramework_espnow_native.cpp + nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController.cpp + nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler.cpp +) + +foreach(SRC_FILE ${nanoFramework.EspNow_SRCS}) + set(nanoFramework.EspNow_SRC_FILE SRC_FILE-NOTFOUND) + find_file(nanoFramework.EspNow_SRC_FILE ${SRC_FILE} + PATHS + ${BASE_PATH_FOR_THIS_MODULE} + ${TARGET_BASE_LOCATION} + ${PROJECT_SOURCE_DIR}/src/nanoFramework.EspNow + CMAKE_FIND_ROOT_PATH_BOTH + ) + + if (BUILD_VERBOSE) + message("${SRC_FILE} >> ${nanoFramework.EspNow_SRC_FILE}") + endif() + + list(APPEND nanoFramework.EspNow_SOURCES ${nanoFramework.EspNow_SRC_FILE}) +endforeach() + +include(FindPackageHandleStandardArgs) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(nanoFramework.EspNow DEFAULT_MSG nanoFramework.EspNow_INCLUDE_DIRS nanoFramework.EspNow_SOURCES) diff --git a/CMake/Modules/NF_Kconfig.cmake b/CMake/Modules/NF_Kconfig.cmake index 1183cbba72..3a99d21468 100644 --- a/CMake/Modules/NF_Kconfig.cmake +++ b/CMake/Modules/NF_Kconfig.cmake @@ -39,6 +39,7 @@ set(_NF_KCONFIG_API_MAP "API_NANOFRAMEWORK_SYSTEM_TEXT|API_nanoFramework.System.Text" "API_NANOFRAMEWORK_SYSTEM_SECURITY_CRYPTOGRAPHY|API_nanoFramework.System.Security.Cryptography" "API_NANOFRAMEWORK_SYSTEM_IO_HASHING|API_nanoFramework.System.IO.Hashing" + "API_NANOFRAMEWORK_ESPNOW|API_nanoFramework.EspNow" "API_NANOFRAMEWORK_NETWORKING_THREAD|API_nanoFramework.Networking.Thread" # Platform-specific APIs diff --git a/Kconfig.apis b/Kconfig.apis index 39b81eff66..2ab702f361 100644 --- a/Kconfig.apis +++ b/Kconfig.apis @@ -102,6 +102,11 @@ config API_NANOFRAMEWORK_SYSTEM_IO_HASHING bool "nanoFramework.System.IO.Hashing" default n +config API_NANOFRAMEWORK_ESPNOW + bool "nanoFramework.EspNow" + depends on RTOS_ESP32 + default n + config API_NANOFRAMEWORK_NETWORKING_THREAD bool "nanoFramework.Networking.Thread" default n diff --git a/src/CLR/Core/TypeSystem.cpp b/src/CLR/Core/TypeSystem.cpp index fcb1e65716..dee6220ddf 100644 --- a/src/CLR/Core/TypeSystem.cpp +++ b/src/CLR/Core/TypeSystem.cpp @@ -2862,6 +2862,8 @@ static const TypeIndexLookup c_TypeIndexLookup[] = { TIL("nanoFramework.UI", "Font", m_Font), TIL("nanoFramework.Touch", "TouchEvent", m_TouchEvent), TIL("nanoFramework.Touch", "TouchInput", m_TouchInput), + TIL("nanoFramework.EspNow", "DataSentEventInternal", m_EspNowDataSentEvent), + TIL("nanoFramework.EspNow", "DataRecvEventInternal", m_EspNowDataRecvEvent), TIL("System.Net.NetworkInformation", "NetworkInterface", m_NetworkInterface), TIL("System.Net.NetworkInformation", "Wireless80211Configuration", m_Wireless80211Configuration), diff --git a/src/CLR/Include/nanoCLR_Runtime.h b/src/CLR/Include/nanoCLR_Runtime.h index 2d1e666eb0..b2b55d6baf 100644 --- a/src/CLR/Include/nanoCLR_Runtime.h +++ b/src/CLR/Include/nanoCLR_Runtime.h @@ -1582,6 +1582,8 @@ struct CLR_RT_WellKnownTypes CLR_RT_TypeDef_Index m_I2cTransferResult_old; CLR_RT_TypeDef_Index m_RmtCommand; + CLR_RT_TypeDef_Index m_EspNowDataRecvEvent; + CLR_RT_TypeDef_Index m_EspNowDataSentEvent; PROHIBIT_COPY_CONSTRUCTORS(CLR_RT_WellKnownTypes); }; diff --git a/src/HAL/Include/nanoHAL_v2.h b/src/HAL/Include/nanoHAL_v2.h index c3a637be4c..705d61e42f 100644 --- a/src/HAL/Include/nanoHAL_v2.h +++ b/src/HAL/Include/nanoHAL_v2.h @@ -115,6 +115,7 @@ typedef enum SLEEP_LEVEL #define EVENT_TOUCH 120 #define EVENT_GESTURE 130 #define EVENT_OPENTHREAD 140 +#define EVENT_ESPNOW 150 #define PAL_EVENT_TOUCH 0x1 #define PAL_EVENT_KEY 0x2 diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.cpp new file mode 100644 index 0000000000..f8e1a5d149 --- /dev/null +++ b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.cpp @@ -0,0 +1,32 @@ +// Copyright (c) .NET Foundation and Contributors +// See LICENSE file in the project root for full license information. + +#include "nanoFramework_espnow_native.h" + +// clang-format off + +static const CLR_RT_MethodHandler method_lookup[] = +{ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::NativeInitialize___I4, + Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::NativeDispose___VOID__BOOLEAN, + Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4, + Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::NativeEspNowAddPeer___I4__SZARRAY_U1__U1__BOOLEAN__SZARRAY_U1, + Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::NativeGetMaximumDataLength___I4, + Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::NativeReadPacket___I4__SZARRAY_U1__SZARRAY_U1__I4, + Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::NativeGetReceiveOverflowCount___I4, + NULL, NULL, NULL, NULL, + Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowControllerEventListener::ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime, + NULL, NULL, NULL, +}; + +const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_EspNow = +{ + "nanoFramework.EspNow", + 0xE70CA3CA, + method_lookup, + { 100, 0, 0, 0 } +}; + +// clang-format on diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h new file mode 100644 index 0000000000..1f1da4f294 --- /dev/null +++ b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h @@ -0,0 +1,87 @@ +// Copyright (c) .NET Foundation and Contributors +// See LICENSE file in the project root for full license information. +// + +#ifndef NANOFRAMEWORK_ESPNOW_NATIVE_H +#define NANOFRAMEWORK_ESPNOW_NATIVE_H + +#include +#include +#include +#include + +#include +#include +#include + +#ifdef ESP_NOW_MAX_DATA_LEN_V2 +#define NF_ESPNOW_MAX_DATA_LEN ESP_NOW_MAX_DATA_LEN_V2 +#else +#define NF_ESPNOW_MAX_DATA_LEN ESP_NOW_MAX_DATA_LEN +#endif + +static constexpr uint32_t NF_ESPNOW_RX_QUEUE_DEPTH = 10; + +struct EspNowPacket +{ + uint8_t peer_mac[ESP_NOW_ETH_ALEN]; + uint8_t data[NF_ESPNOW_MAX_DATA_LEN]; + uint16_t data_len; +}; + +struct Library_nanoFramework_EspNow_native_nanoFramework_EspNow_DataReceivedEventArgs +{ + static const int FIELD__PeerMac = 1; + static const int FIELD__Data = 2; + static const int FIELD__DataLen = 3; + + //--// +}; + +struct Library_nanoFramework_EspNow_native_nanoFramework_EspNow_DataRecvEventInternal +{ + //--// +}; + +struct Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController +{ + static const int FIELD_STATIC__s_instance = 0; + static const int FIELD_STATIC__s_syncLock = 1; + + static const int FIELD___disposed = 1; + static const int FIELD___syncLock = 2; + static const int FIELD___eventHandler = 3; + NANOCLR_NATIVE_DECLARE(NativeInitialize___I4); + NANOCLR_NATIVE_DECLARE(NativeDispose___VOID__BOOLEAN); + NANOCLR_NATIVE_DECLARE(NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4); + NANOCLR_NATIVE_DECLARE(NativeEspNowAddPeer___I4__SZARRAY_U1__U1__BOOLEAN__SZARRAY_U1); + NANOCLR_NATIVE_DECLARE(NativeGetMaximumDataLength___I4); + NANOCLR_NATIVE_DECLARE(NativeReadPacket___I4__SZARRAY_U1__SZARRAY_U1__I4); + NANOCLR_NATIVE_DECLARE(NativeGetReceiveOverflowCount___I4); + + //--// + static void DataSentCb(const wifi_tx_info_t *tx_info, esp_now_send_status_t status); + static void DataRecvCb(const esp_now_recv_info *recv_info, const uint8_t *incomingData, int len); +}; + +struct Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowControllerEventListener +{ + static const int FIELD___controller = 1; + + NANOCLR_NATIVE_DECLARE(ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime); + + //--// + + static HRESULT ProcessEvent_DataRecv(CLR_RT_StackFrame &stack); +}; + +struct Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowException +{ + static const int FIELD__esp_err = 5; + + //--// +}; + +extern const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_EspNow; + +#endif // NANOFRAMEWORK_ESPNOW_NATIVE_H diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController.cpp new file mode 100644 index 0000000000..c4b16d3098 --- /dev/null +++ b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController.cpp @@ -0,0 +1,323 @@ +// Copyright (c) .NET Foundation and Contributors +// See LICENSE file in the project root for full license information. + +#include "nanoFramework_espnow_native.h" + +#include +#include + +static const int EVENT_ESPNOW_DATARECV = 2; +static const int ESPNOW_ERR_ESPNOW_INIT = 10001; +static const int ESPNOW_ERR_INVALID_PEER = 10002; +static const int ESPNOW_ERR_ADD_PEER = 10003; +static const int ESPNOW_ERR_RECEIVE_TIMEOUT = 10004; + +struct EspNowPacketQueue +{ + EspNowPacket packets[NF_ESPNOW_RX_QUEUE_DEPTH]; + uint32_t head; + uint32_t count; + uint32_t overflow_count; + SemaphoreHandle_t mutex; + SemaphoreHandle_t data_available; + uint32_t maximum_data_length; +}; + +static EspNowPacketQueue s_rxQueue = {}; + +static void ResetReceiveQueue(uint32_t maximumDataLength) +{ + s_rxQueue.head = 0; + s_rxQueue.count = 0; + s_rxQueue.overflow_count = 0; + s_rxQueue.maximum_data_length = maximumDataLength; +} + +static void DisposeReceiveQueue() +{ + if (s_rxQueue.data_available != NULL) + { + vSemaphoreDelete(s_rxQueue.data_available); + s_rxQueue.data_available = NULL; + } + + if (s_rxQueue.mutex != NULL) + { + vSemaphoreDelete(s_rxQueue.mutex); + s_rxQueue.mutex = NULL; + } + + ResetReceiveQueue(0); +} + +void Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::DataSentCb( + const wifi_tx_info_t *tx_info, + esp_now_send_status_t status) +{ + // ESP-NOW delivery confirmation remains a native callback only. Send() + // reports the result of esp_now_send() submission synchronously. + (void)tx_info; + (void)status; +} + +void Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::DataRecvCb( + const esp_now_recv_info *recv_info, + const uint8_t *incomingData, + int len) +{ + if (recv_info == NULL || incomingData == NULL || len < 0 || len > (int)NF_ESPNOW_MAX_DATA_LEN + || s_rxQueue.mutex == NULL) + { + return; + } + + if (xSemaphoreTake(s_rxQueue.mutex, 0) != pdTRUE) + { + s_rxQueue.overflow_count++; + return; + } + + if (s_rxQueue.count == NF_ESPNOW_RX_QUEUE_DEPTH) + { + // head points to the oldest packet, so overwrite it and advance head. + s_rxQueue.head = (s_rxQueue.head + 1) % NF_ESPNOW_RX_QUEUE_DEPTH; + s_rxQueue.count--; + s_rxQueue.overflow_count++; + } + + uint32_t writeIndex = (s_rxQueue.head + s_rxQueue.count) % NF_ESPNOW_RX_QUEUE_DEPTH; + EspNowPacket &packet = s_rxQueue.packets[writeIndex]; + memcpy(packet.peer_mac, recv_info->src_addr, ESP_NOW_ETH_ALEN); + memcpy(packet.data, incomingData, len); + packet.data_len = (uint16_t)len; + s_rxQueue.count++; + + xSemaphoreGive(s_rxQueue.mutex); + xSemaphoreGive(s_rxQueue.data_available); + + // Only signal that data is available. The packet itself is read through + // NativeReadPacket by managed code. + PostManagedEvent(EVENT_ESPNOW, 0, EVENT_ESPNOW_DATARECV, 0); +} + +HRESULT Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::NativeInitialize___I4( + CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + + esp_err_t ret = esp_now_init(); + if (ret != ESP_OK) + { + stack.SetResult_I4(ESPNOW_ERR_ESPNOW_INIT); + NANOCLR_NOCLEANUP_NOLABEL(); + } + + uint32_t espNowVersion = 1; + ret = esp_now_get_version(&espNowVersion); + if (ret != ESP_OK) + { + esp_now_deinit(); + stack.SetResult_I4(ESPNOW_ERR_ESPNOW_INIT); + NANOCLR_NOCLEANUP_NOLABEL(); + } + + uint32_t maximumDataLength = ESP_NOW_MAX_DATA_LEN; +#ifdef ESP_NOW_MAX_DATA_LEN_V2 + if (espNowVersion >= 2) + { + maximumDataLength = ESP_NOW_MAX_DATA_LEN_V2; + } +#endif + + s_rxQueue.mutex = xSemaphoreCreateMutex(); + s_rxQueue.data_available = xSemaphoreCreateBinary(); + if (s_rxQueue.mutex == NULL || s_rxQueue.data_available == NULL) + { + DisposeReceiveQueue(); + esp_now_deinit(); + stack.SetResult_I4(ESPNOW_ERR_ESPNOW_INIT); + NANOCLR_NOCLEANUP_NOLABEL(); + } + ResetReceiveQueue(maximumDataLength); + + ret = esp_now_register_recv_cb(DataRecvCb); + if (ret == ESP_OK) + { + ret = esp_now_register_send_cb(DataSentCb); + } + + if (ret != ESP_OK) + { + esp_now_unregister_recv_cb(); + esp_now_unregister_send_cb(); + DisposeReceiveQueue(); + esp_now_deinit(); + stack.SetResult_I4(ESPNOW_ERR_ESPNOW_INIT); + NANOCLR_NOCLEANUP_NOLABEL(); + } + + stack.SetResult_I4(0); + NANOCLR_NOCLEANUP_NOLABEL(); +} + +HRESULT Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::NativeDispose___VOID__BOOLEAN( + CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + + esp_now_unregister_recv_cb(); + esp_now_unregister_send_cb(); + DisposeReceiveQueue(); + esp_now_deinit(); + + NANOCLR_NOCLEANUP_NOLABEL(); +} + +HRESULT Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController:: + NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4(CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + + CLR_RT_HeapBlock_Array *peerMacArg = stack.Arg1().DereferenceArray(); + if (peerMacArg == NULL || peerMacArg->m_numOfElements != ESP_NOW_ETH_ALEN) + { + stack.SetResult_I4(ESPNOW_ERR_INVALID_PEER); + NANOCLR_NOCLEANUP_NOLABEL(); + } + + CLR_RT_HeapBlock_Array *dataArg = stack.Arg2().DereferenceArray(); + if (dataArg == NULL) + { + stack.SetResult_I4(ESPNOW_ERR_INVALID_PEER); + NANOCLR_NOCLEANUP_NOLABEL(); + } + + int32_t dataLen = stack.Arg3().NumericByRef().s4; + if (dataLen < 0 || dataLen > (int32_t)dataArg->m_numOfElements + || s_rxQueue.maximum_data_length == 0 || dataLen > (int32_t)s_rxQueue.maximum_data_length) + { + stack.SetResult_I4(ESPNOW_ERR_INVALID_PEER); + NANOCLR_NOCLEANUP_NOLABEL(); + } + + esp_err_t ret = esp_now_send( + (const uint8_t *)peerMacArg->GetFirstElement(), + (const uint8_t *)dataArg->GetFirstElement(), + dataLen); + + stack.SetResult_I4((int32_t)ret); + NANOCLR_NOCLEANUP_NOLABEL(); +} + +HRESULT Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController:: + NativeEspNowAddPeer___I4__SZARRAY_U1__U1__BOOLEAN__SZARRAY_U1(CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + + CLR_RT_HeapBlock_Array *macArray = stack.Arg1().DereferenceArray(); + if (macArray == NULL || macArray->m_numOfElements != ESP_NOW_ETH_ALEN) + { + stack.SetResult_I4(ESPNOW_ERR_INVALID_PEER); + NANOCLR_NOCLEANUP_NOLABEL(); + } + + uint8_t channel = stack.Arg2().NumericByRef().u1; + bool encrypted = stack.Arg3().NumericByRef().u1 != 0; + uint8_t *peerMac = (uint8_t *)macArray->GetFirstElement(); + + esp_now_peer_info_t peerInfo = {}; + memcpy(peerInfo.peer_addr, peerMac, ESP_NOW_ETH_ALEN); + peerInfo.channel = channel; + peerInfo.ifidx = WIFI_IF_STA; + peerInfo.encrypt = encrypted; + + if (encrypted) + { + CLR_RT_HeapBlock_Array *localMasterKey = stack.Arg4().DereferenceArray(); + if (localMasterKey == NULL || localMasterKey->m_numOfElements != ESP_NOW_KEY_LEN) + { + stack.SetResult_I4(ESPNOW_ERR_INVALID_PEER); + NANOCLR_NOCLEANUP_NOLABEL(); + } + + memcpy(peerInfo.lmk, localMasterKey->GetFirstElement(), ESP_NOW_KEY_LEN); + } + + esp_err_t result = esp_now_add_peer(&peerInfo); + if (result != ESP_OK) + { + stack.SetResult_I4(ESPNOW_ERR_ADD_PEER); + NANOCLR_NOCLEANUP_NOLABEL(); + } + + stack.SetResult_I4(0); + NANOCLR_NOCLEANUP_NOLABEL(); +} + +HRESULT Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::NativeGetMaximumDataLength___I4( + CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + stack.SetResult_I4((int32_t)s_rxQueue.maximum_data_length); + NANOCLR_NOCLEANUP_NOLABEL(); +} + +HRESULT Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController::NativeReadPacket___I4__SZARRAY_U1__SZARRAY_U1__I4( + CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + + CLR_RT_HeapBlock_Array *peerMacArg = stack.Arg1().DereferenceArray(); + CLR_RT_HeapBlock_Array *dataArg = stack.Arg2().DereferenceArray(); + int32_t timeout = stack.Arg3().NumericByRef().s4; + + if (peerMacArg == NULL || peerMacArg->m_numOfElements != ESP_NOW_ETH_ALEN || dataArg == NULL + || dataArg->m_numOfElements < s_rxQueue.maximum_data_length || timeout < 0) + { + stack.SetResult_I4(-ESPNOW_ERR_INVALID_PEER); + NANOCLR_NOCLEANUP_NOLABEL(); + } + + while (true) + { + if (xSemaphoreTake(s_rxQueue.mutex, portMAX_DELAY) == pdTRUE) + { + if (s_rxQueue.count > 0) + { + EspNowPacket &packet = s_rxQueue.packets[s_rxQueue.head]; + memcpy(peerMacArg->GetFirstElement(), packet.peer_mac, ESP_NOW_ETH_ALEN); + memcpy(dataArg->GetFirstElement(), packet.data, packet.data_len); + int32_t dataLength = packet.data_len; + s_rxQueue.head = (s_rxQueue.head + 1) % NF_ESPNOW_RX_QUEUE_DEPTH; + s_rxQueue.count--; + xSemaphoreGive(s_rxQueue.mutex); + stack.SetResult_I4(dataLength); + NANOCLR_NOCLEANUP_NOLABEL(); + } + + xSemaphoreGive(s_rxQueue.mutex); + } + + if (timeout == 0 || xSemaphoreTake(s_rxQueue.data_available, pdMS_TO_TICKS(timeout)) != pdTRUE) + { + stack.SetResult_I4(-ESPNOW_ERR_RECEIVE_TIMEOUT); + NANOCLR_NOCLEANUP_NOLABEL(); + } + } +} + +HRESULT Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowController:: + NativeGetReceiveOverflowCount___I4(CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + + uint32_t overflowCount = 0; + if (s_rxQueue.mutex != NULL && xSemaphoreTake(s_rxQueue.mutex, portMAX_DELAY) == pdTRUE) + { + overflowCount = s_rxQueue.overflow_count; + xSemaphoreGive(s_rxQueue.mutex); + } + + stack.SetResult_I4((int32_t)overflowCount); + NANOCLR_NOCLEANUP_NOLABEL(); +} diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler.cpp new file mode 100644 index 0000000000..37afb61529 --- /dev/null +++ b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler.cpp @@ -0,0 +1,38 @@ +// Copyright (c) .NET Foundation and Contributors +// See LICENSE file in the project root for full license information. + +#include "nanoFramework_espnow_native.h" + +static const int EVENT_ESPNOW_DATARECV = 2; + +HRESULT Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowControllerEventListener::ProcessEvent_DataRecv( + CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + + CLR_RT_HeapBlock &clrRet = stack.PushValue(); + NANOCLR_CHECK_HRESULT( + g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_EspNowDataRecvEvent)); + + NANOCLR_NOCLEANUP(); +} + +HRESULT Library_nanoFramework_EspNow_native_nanoFramework_EspNow_EspNowControllerEventListener:: + ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime(CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + + CLR_UINT32 data1 = stack.Arg1().NumericByRef().u4; + CLR_UINT32 subEvent = data1 >> 16; + + switch (subEvent) + { + case EVENT_ESPNOW_DATARECV: + hr = ProcessEvent_DataRecv(stack); + break; + default: + NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + } + + NANOCLR_NOCLEANUP(); +} diff --git a/targets/ESP32/defconfig/AtomS3_defconfig b/targets/ESP32/defconfig/AtomS3_defconfig index cfc780ee92..4d69934912 100644 --- a/targets/ESP32/defconfig/AtomS3_defconfig +++ b/targets/ESP32/defconfig/AtomS3_defconfig @@ -1,6 +1,5 @@ # defconfig for AtomS3 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_GPIO=y @@ -14,6 +13,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y # CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH is not set # CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE is not set # CONFIG_API_NANOFRAMEWORK_GRAPHICS is not set diff --git a/targets/ESP32/defconfig/ESP32_BLE_REV0_defconfig b/targets/ESP32/defconfig/ESP32_BLE_REV0_defconfig index 64cfe91519..a45ed3f4a8 100644 --- a/targets/ESP32/defconfig/ESP32_BLE_REV0_defconfig +++ b/targets/ESP32/defconfig/ESP32_BLE_REV0_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_BLE_REV0 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y diff --git a/targets/ESP32/defconfig/ESP32_BLE_REV3_defconfig b/targets/ESP32/defconfig/ESP32_BLE_REV3_defconfig index d3ed462bdc..da73e57b82 100644 --- a/targets/ESP32/defconfig/ESP32_BLE_REV3_defconfig +++ b/targets/ESP32/defconfig/ESP32_BLE_REV3_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_BLE_REV3 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y diff --git a/targets/ESP32/defconfig/ESP32_C3_BETA_defconfig b/targets/ESP32/defconfig/ESP32_C3_BETA_defconfig index 87c4f68dce..9497b64340 100644 --- a/targets/ESP32/defconfig/ESP32_C3_BETA_defconfig +++ b/targets/ESP32/defconfig/ESP32_C3_BETA_defconfig @@ -1,6 +1,5 @@ -# defconfig for ESP32_C3 +# defconfig for ESP32_C3 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y # CONFIG_API_SYSTEM_DEVICE_DAC is not set @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y # CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE is not set CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y diff --git a/targets/ESP32/defconfig/ESP32_C3_defconfig b/targets/ESP32/defconfig/ESP32_C3_defconfig index 45b7994e05..d7037d703b 100644 --- a/targets/ESP32/defconfig/ESP32_C3_defconfig +++ b/targets/ESP32/defconfig/ESP32_C3_defconfig @@ -1,6 +1,5 @@ -# defconfig for ESP32_C3_REV3 +# defconfig for ESP32_C3_REV3 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y # CONFIG_API_SYSTEM_DEVICE_DAC is not set @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y # CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE is not set CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y diff --git a/targets/ESP32/defconfig/ESP32_C5_THREAD_defconfig b/targets/ESP32/defconfig/ESP32_C5_THREAD_defconfig index d05455f180..01a2c70b7a 100644 --- a/targets/ESP32/defconfig/ESP32_C5_THREAD_defconfig +++ b/targets/ESP32/defconfig/ESP32_C5_THREAD_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_C5_THREAD # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y # CONFIG_API_SYSTEM_DEVICE_ADC is not set CONFIG_API_SYSTEM_DEVICE_GPIO=y @@ -14,6 +13,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y # CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE is not set CONFIG_API_NANOFRAMEWORK_GRAPHICS=y diff --git a/targets/ESP32/defconfig/ESP32_C61_defconfig b/targets/ESP32/defconfig/ESP32_C61_defconfig index 020c693cda..7a5830952e 100644 --- a/targets/ESP32/defconfig/ESP32_C61_defconfig +++ b/targets/ESP32/defconfig/ESP32_C61_defconfig @@ -1,6 +1,5 @@ -# defconfig for ESP32_C61 +# defconfig for ESP32_C61 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_GPIO=y @@ -14,6 +13,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y # CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE is not set CONFIG_API_NANOFRAMEWORK_GRAPHICS=y diff --git a/targets/ESP32/defconfig/ESP32_C6_THREAD_defconfig b/targets/ESP32/defconfig/ESP32_C6_THREAD_defconfig index d463e6bfc8..986236a914 100644 --- a/targets/ESP32/defconfig/ESP32_C6_THREAD_defconfig +++ b/targets/ESP32/defconfig/ESP32_C6_THREAD_defconfig @@ -1,6 +1,5 @@ -# defconfig for ESP32_C6_THREAD +# defconfig for ESP32_C6_THREAD # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_GPIO=y @@ -14,6 +13,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y # CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE is not set CONFIG_API_NANOFRAMEWORK_GRAPHICS=y diff --git a/targets/ESP32/defconfig/ESP32_ETHERNET_KIT_1.2_defconfig b/targets/ESP32/defconfig/ESP32_ETHERNET_KIT_1.2_defconfig index cd17dbe90c..a4766a2d86 100644 --- a/targets/ESP32/defconfig/ESP32_ETHERNET_KIT_1.2_defconfig +++ b/targets/ESP32/defconfig/ESP32_ETHERNET_KIT_1.2_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_ETHERNET_KIT_1.2 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y diff --git a/targets/ESP32/defconfig/ESP32_GenericDisplay_REV0_defconfig b/targets/ESP32/defconfig/ESP32_GenericDisplay_REV0_defconfig index b1ab46a7a9..d34087a653 100644 --- a/targets/ESP32/defconfig/ESP32_GenericDisplay_REV0_defconfig +++ b/targets/ESP32/defconfig/ESP32_GenericDisplay_REV0_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_GenericDisplay_REV0 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y diff --git a/targets/ESP32/defconfig/ESP32_H2_THREAD_defconfig b/targets/ESP32/defconfig/ESP32_H2_THREAD_defconfig index ff3d5b7c4f..26414f3e48 100644 --- a/targets/ESP32/defconfig/ESP32_H2_THREAD_defconfig +++ b/targets/ESP32/defconfig/ESP32_H2_THREAD_defconfig @@ -1,6 +1,5 @@ -# defconfig for ESP32_H2_THREAD +# defconfig for ESP32_H2_THREAD # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_GPIO=y diff --git a/targets/ESP32/defconfig/ESP32_LILYGO_defconfig b/targets/ESP32/defconfig/ESP32_LILYGO_defconfig index 82311bfda0..d189313224 100644 --- a/targets/ESP32/defconfig/ESP32_LILYGO_defconfig +++ b/targets/ESP32/defconfig/ESP32_LILYGO_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_LILYGO # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y diff --git a/targets/ESP32/defconfig/ESP32_OLIMEX_WROVER_defconfig b/targets/ESP32/defconfig/ESP32_OLIMEX_WROVER_defconfig index bc406f353f..161d90e037 100644 --- a/targets/ESP32/defconfig/ESP32_OLIMEX_WROVER_defconfig +++ b/targets/ESP32/defconfig/ESP32_OLIMEX_WROVER_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_OLIMEX_WROVER # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y diff --git a/targets/ESP32/defconfig/ESP32_OLIMEX_defconfig b/targets/ESP32/defconfig/ESP32_OLIMEX_defconfig index 5a76dffe9a..9fd0e4d7ff 100644 --- a/targets/ESP32/defconfig/ESP32_OLIMEX_defconfig +++ b/targets/ESP32/defconfig/ESP32_OLIMEX_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_OLIMEX # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y diff --git a/targets/ESP32/defconfig/ESP32_P4_REV_LESS3_defconfig b/targets/ESP32/defconfig/ESP32_P4_REV_LESS3_defconfig index cad3897691..bc41cd2fb9 100644 --- a/targets/ESP32/defconfig/ESP32_P4_REV_LESS3_defconfig +++ b/targets/ESP32/defconfig/ESP32_P4_REV_LESS3_defconfig @@ -1,6 +1,5 @@ -# defconfig for ESP32_P4_USB_REV_LESS3 +# defconfig for ESP32_P4_USB_REV_LESS3 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_GPIO=y diff --git a/targets/ESP32/defconfig/ESP32_P4_defconfig b/targets/ESP32/defconfig/ESP32_P4_defconfig index d2d7302652..beb9f57727 100644 --- a/targets/ESP32/defconfig/ESP32_P4_defconfig +++ b/targets/ESP32/defconfig/ESP32_P4_defconfig @@ -1,6 +1,5 @@ -# defconfig for ESP32_P4_USB +# defconfig for ESP32_P4_USB # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_GPIO=y diff --git a/targets/ESP32/defconfig/ESP32_PICO_defconfig b/targets/ESP32/defconfig/ESP32_PICO_defconfig index f31ca0fb40..e4ec10f872 100644 --- a/targets/ESP32/defconfig/ESP32_PICO_defconfig +++ b/targets/ESP32/defconfig/ESP32_PICO_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_PICO # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y CONFIG_API_NANOFRAMEWORK_SYSTEM_COLLECTIONS=y diff --git a/targets/ESP32/defconfig/ESP32_PSRAM_BLE_GenericGraphic_REV3_defconfig b/targets/ESP32/defconfig/ESP32_PSRAM_BLE_GenericGraphic_REV3_defconfig index 44be7f844e..04907a18a1 100644 --- a/targets/ESP32/defconfig/ESP32_PSRAM_BLE_GenericGraphic_REV3_defconfig +++ b/targets/ESP32/defconfig/ESP32_PSRAM_BLE_GenericGraphic_REV3_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_PSRAM_BLE_GenericGraphic_REV3 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y diff --git a/targets/ESP32/defconfig/ESP32_PSRAM_REV0_defconfig b/targets/ESP32/defconfig/ESP32_PSRAM_REV0_defconfig index c993e39c25..fb323348d5 100644 --- a/targets/ESP32/defconfig/ESP32_PSRAM_REV0_defconfig +++ b/targets/ESP32/defconfig/ESP32_PSRAM_REV0_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_PSRAM_REV0 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y diff --git a/targets/ESP32/defconfig/ESP32_PSRAM_REV3_IPV6_defconfig b/targets/ESP32/defconfig/ESP32_PSRAM_REV3_IPV6_defconfig index 0001864f13..ec2d646e76 100644 --- a/targets/ESP32/defconfig/ESP32_PSRAM_REV3_IPV6_defconfig +++ b/targets/ESP32/defconfig/ESP32_PSRAM_REV3_IPV6_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_PSRAM_REV3_IPV6 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y diff --git a/targets/ESP32/defconfig/ESP32_PSRAM_REV3_defconfig b/targets/ESP32/defconfig/ESP32_PSRAM_REV3_defconfig index 32fc1a21a9..8c3e623a8f 100644 --- a/targets/ESP32/defconfig/ESP32_PSRAM_REV3_defconfig +++ b/targets/ESP32/defconfig/ESP32_PSRAM_REV3_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_PSRAM_REV3 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y diff --git a/targets/ESP32/defconfig/ESP32_PSRAM_XTAL26_REV0_defconfig b/targets/ESP32/defconfig/ESP32_PSRAM_XTAL26_REV0_defconfig index b8af2c7332..1f324e3061 100644 --- a/targets/ESP32/defconfig/ESP32_PSRAM_XTAL26_REV0_defconfig +++ b/targets/ESP32/defconfig/ESP32_PSRAM_XTAL26_REV0_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_PSRAM_XTAL26_REV0 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y diff --git a/targets/ESP32/defconfig/ESP32_REV0_defconfig b/targets/ESP32/defconfig/ESP32_REV0_defconfig index 3e721db0ca..837ccb2d1f 100644 --- a/targets/ESP32/defconfig/ESP32_REV0_defconfig +++ b/targets/ESP32/defconfig/ESP32_REV0_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_REV0 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y diff --git a/targets/ESP32/defconfig/ESP32_REV3_defconfig b/targets/ESP32/defconfig/ESP32_REV3_defconfig index da319601fa..0c6973f822 100644 --- a/targets/ESP32/defconfig/ESP32_REV3_defconfig +++ b/targets/ESP32/defconfig/ESP32_REV3_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_REV3 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y diff --git a/targets/ESP32/defconfig/ESP32_S2_defconfig b/targets/ESP32/defconfig/ESP32_S2_defconfig index ae62b9959e..08866d21d5 100644 --- a/targets/ESP32/defconfig/ESP32_S2_defconfig +++ b/targets/ESP32/defconfig/ESP32_S2_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_S2_USB # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y # CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE is not set CONFIG_API_NANOFRAMEWORK_GRAPHICS=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y diff --git a/targets/ESP32/defconfig/ESP32_S3_OCTAL_defconfig b/targets/ESP32/defconfig/ESP32_S3_OCTAL_defconfig index d365d406aa..b75a96ed07 100644 --- a/targets/ESP32/defconfig/ESP32_S3_OCTAL_defconfig +++ b/targets/ESP32/defconfig/ESP32_S3_OCTAL_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_S3_ALL # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_GPIO=y @@ -14,6 +13,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y diff --git a/targets/ESP32/defconfig/ESP32_S3_QUAD_defconfig b/targets/ESP32/defconfig/ESP32_S3_QUAD_defconfig index 082badcf6b..d0ce2fca8e 100644 --- a/targets/ESP32/defconfig/ESP32_S3_QUAD_defconfig +++ b/targets/ESP32/defconfig/ESP32_S3_QUAD_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_S3_BLE # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_GPIO=y @@ -14,6 +13,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y diff --git a/targets/ESP32/defconfig/ESP32_WESP32_defconfig b/targets/ESP32/defconfig/ESP32_WESP32_defconfig index c3ad51e3d7..0ad7488408 100644 --- a/targets/ESP32/defconfig/ESP32_WESP32_defconfig +++ b/targets/ESP32/defconfig/ESP32_WESP32_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_WESP32 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y diff --git a/targets/ESP32/defconfig/ESP32_WT32_ETH01_defconfig b/targets/ESP32/defconfig/ESP32_WT32_ETH01_defconfig index d8bd139eaa..ab71f4c9f3 100644 --- a/targets/ESP32/defconfig/ESP32_WT32_ETH01_defconfig +++ b/targets/ESP32/defconfig/ESP32_WT32_ETH01_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP32_WT32_ETH01 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y diff --git a/targets/ESP32/defconfig/ESP_WROVER_KIT_defconfig b/targets/ESP32/defconfig/ESP_WROVER_KIT_defconfig index d0fbd7474d..268beca93b 100644 --- a/targets/ESP32/defconfig/ESP_WROVER_KIT_defconfig +++ b/targets/ESP32/defconfig/ESP_WROVER_KIT_defconfig @@ -1,6 +1,5 @@ # defconfig for ESP_WROVER_KIT # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y diff --git a/targets/ESP32/defconfig/LilygoTWatch2020_defconfig b/targets/ESP32/defconfig/LilygoTWatch2020_defconfig index a47040b234..523fd94025 100644 --- a/targets/ESP32/defconfig/LilygoTWatch2020_defconfig +++ b/targets/ESP32/defconfig/LilygoTWatch2020_defconfig @@ -1,6 +1,5 @@ # defconfig for LilygoTWatch2020 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y diff --git a/targets/ESP32/defconfig/LilygoTWatch2021_defconfig b/targets/ESP32/defconfig/LilygoTWatch2021_defconfig index 161576b6e1..c4914ae3bc 100644 --- a/targets/ESP32/defconfig/LilygoTWatch2021_defconfig +++ b/targets/ESP32/defconfig/LilygoTWatch2021_defconfig @@ -1,6 +1,5 @@ # defconfig for LilygoTWatch2021 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_DEVICE_WIFI=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y # CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE is not set CONFIG_API_NANOFRAMEWORK_GRAPHICS=y diff --git a/targets/ESP32/defconfig/M5Core2_defconfig b/targets/ESP32/defconfig/M5Core2_defconfig index dcb14f6551..c94ae7bbc9 100644 --- a/targets/ESP32/defconfig/M5Core2_defconfig +++ b/targets/ESP32/defconfig/M5Core2_defconfig @@ -1,6 +1,5 @@ # defconfig for M5Core2 # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y diff --git a/targets/ESP32/defconfig/M5Core_defconfig b/targets/ESP32/defconfig/M5Core_defconfig index 0718912a8c..5a83ba28fa 100644 --- a/targets/ESP32/defconfig/M5Core_defconfig +++ b/targets/ESP32/defconfig/M5Core_defconfig @@ -1,6 +1,5 @@ # defconfig for M5Core # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y diff --git a/targets/ESP32/defconfig/M5Stack_defconfig b/targets/ESP32/defconfig/M5Stack_defconfig index 895a585e42..f81efaa2ad 100644 --- a/targets/ESP32/defconfig/M5Stack_defconfig +++ b/targets/ESP32/defconfig/M5Stack_defconfig @@ -1,6 +1,5 @@ # defconfig for M5Stack # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y # CONFIG_API_NANOFRAMEWORK_DEVICE_BLUETOOTH is not set CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y diff --git a/targets/ESP32/defconfig/M5StickCPlus_defconfig b/targets/ESP32/defconfig/M5StickCPlus_defconfig index 5ec043296e..5323595523 100644 --- a/targets/ESP32/defconfig/M5StickCPlus_defconfig +++ b/targets/ESP32/defconfig/M5StickCPlus_defconfig @@ -1,6 +1,5 @@ -# defconfig for M5StickCPlus +# defconfig for M5StickCPlus # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y diff --git a/targets/ESP32/defconfig/M5StickC_defconfig b/targets/ESP32/defconfig/M5StickC_defconfig index 32d2fcd1e7..4be33b6aca 100644 --- a/targets/ESP32/defconfig/M5StickC_defconfig +++ b/targets/ESP32/defconfig/M5StickC_defconfig @@ -1,6 +1,5 @@ # defconfig for M5StickC # Auto-generated by preset_to_defconfig.py - CONFIG_API_HARDWARE_ESP32=y CONFIG_API_SYSTEM_DEVICE_ADC=y CONFIG_API_SYSTEM_DEVICE_DAC=y @@ -15,6 +14,7 @@ CONFIG_API_SYSTEM_IO_FILESYSTEM=y CONFIG_API_SYSTEM_IO_PORTS=y CONFIG_API_SYSTEM_MATH=y CONFIG_API_SYSTEM_NET=y +CONFIG_API_NANOFRAMEWORK_ESPNOW=y CONFIG_API_NANOFRAMEWORK_DEVICE_ONEWIRE=y CONFIG_API_NANOFRAMEWORK_GRAPHICS=y CONFIG_API_NANOFRAMEWORK_HARDWARE_ESP32_RMT=y