From f825c67b373262d102fa4cca5e41a73576af7201 Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Thu, 23 Dec 2021 22:43:36 +0100 Subject: [PATCH 01/24] nanoFramework.Hardware.Esp32.EspNow skeleton added --- .vscode/cmake-variants-DEVCONTAINER.json | 18 ++++-- .vscode/cmake-variants.TEMPLATE.json | 3 +- CMake/Modules/FindNF_NativeAssemblies.cmake | 8 +++ ...dnanoFramework.Hardware.Esp32.EspNow.cmake | 44 +++++++++++++ build.ps1 | 2 +- targets/ESP32/ESP32/cmake-variants.json | 7 +++ targets/ESP32/ESP32_S2/cmake-variants.json | 2 + ...Framework_hardware_esp32_espnow_native.cpp | 62 +++++++++++++++++++ ...noFramework_hardware_esp32_espnow_native.h | 58 +++++++++++++++++ ...Hardware_Esp32_EspNow_EspNowController.cpp | 59 ++++++++++++++++++ 10 files changed, 256 insertions(+), 7 deletions(-) create mode 100644 CMake/Modules/FindnanoFramework.Hardware.Esp32.EspNow.cmake create mode 100644 targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp create mode 100644 targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h create mode 100644 targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp diff --git a/.vscode/cmake-variants-DEVCONTAINER.json b/.vscode/cmake-variants-DEVCONTAINER.json index 2c315f5761..cdace2c235 100644 --- a/.vscode/cmake-variants-DEVCONTAINER.json +++ b/.vscode/cmake-variants-DEVCONTAINER.json @@ -335,7 +335,8 @@ "API_nanoFramework.Hardware.Esp32.Rmt": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", - "API_nanoFramework.Device.Bluetooth": "OFF" + "API_nanoFramework.Device.Bluetooth": "OFF", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON" } }, "ESP32_REV0_BLE": { @@ -382,7 +383,8 @@ "API_nanoFramework.Hardware.Esp32.Rmt": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", - "API_nanoFramework.Device.Bluetooth": "ON" + "API_nanoFramework.Device.Bluetooth": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON" } }, "ESP32_PICO": { @@ -430,7 +432,8 @@ "API_nanoFramework.Hardware.Esp32.Rmt": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", - "API_nanoFramework.Device.Bluetooth": "OFF" + "API_nanoFramework.Device.Bluetooth": "OFF", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON" } }, "ESP_WROVER_KIT": { @@ -477,6 +480,7 @@ "API_nanoFramework.Hardware.Esp32.Rmt": "ON", "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Graphics": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "GRAPHICS_DISPLAY": "ILI9341_240x320_SPI.cpp", "TOUCHPANEL_DEVICE": "XPT2046.cpp", "GRAPHICS_DISPLAY_INTERFACE": "Spi_To_Display.cpp", @@ -528,7 +532,8 @@ "API_nanoFramework.Hardware.Esp32.Rmt": "ON", "API_nanoFramework.Devices.OneWire": "OFF", "API_nanoFramework.Graphics": "OFF", - "API_nanoFramework.Device.Bluetooth": "OFF" + "API_nanoFramework.Device.Bluetooth": "OFF", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON" } }, "KALUGA_1": { @@ -576,6 +581,7 @@ "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Devices.OneWire": "OFF", "API_nanoFramework.Graphics": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "GRAPHICS_DISPLAY": "ILI9341_240x320_SPI.cpp", "TOUCHPANEL_DEVICE": "", "GRAPHICS_DISPLAY_INTERFACE": "Spi_To_Display.cpp", @@ -626,6 +632,7 @@ "API_nanoFramework.Hardware.Esp32.Rmt": "ON", "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Graphics": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "GRAPHICS_DISPLAY": "ILI9341_240x320_SPI.cpp", "TOUCHPANEL_DEVICE": "XPT2046.cpp", "GRAPHICS_DISPLAY_INTERFACE": "Spi_To_Display.cpp", @@ -678,7 +685,8 @@ "API_nanoFramework.Hardware.Esp32.Rmt": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", - "API_nanoFramework.Device.Bluetooth": "OFF" + "API_nanoFramework.Device.Bluetooth": "OFF", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON" } }, "TI_CC1352R1_LAUNCHXL": { diff --git a/.vscode/cmake-variants.TEMPLATE.json b/.vscode/cmake-variants.TEMPLATE.json index 749421cdde..60bb73efec 100644 --- a/.vscode/cmake-variants.TEMPLATE.json +++ b/.vscode/cmake-variants.TEMPLATE.json @@ -114,7 +114,8 @@ "API_Hardware.Stm32": "OFF-default-ON-to-add-this-API", "API_nanoFramework.TI.EasyLink": "OFF-default-ON-to-add-this-API", "API_nanoFramework.Hardware.Esp32.Rmt": "OFF-default-ON-to-add-this-API", - "API_nanoFramework.Device.Bluetooth": "OFF-default-ON-to-add-this-API" + "API_nanoFramework.Device.Bluetooth": "OFF-default-ON-to-add-this-API", + "API_nanoFramework.Hardware.Esp32.EspNow": "OFF-default-ON-to-add-this-API" } } } diff --git a/CMake/Modules/FindNF_NativeAssemblies.cmake b/CMake/Modules/FindNF_NativeAssemblies.cmake index df5b6bfe87..7ac0edc230 100644 --- a/CMake/Modules/FindNF_NativeAssemblies.cmake +++ b/CMake/Modules/FindNF_NativeAssemblies.cmake @@ -39,6 +39,8 @@ option(API_nanoFramework.Device.Bluetooth "option for nanoFramework.Device # 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.Hardware.Esp32.EspNow "option for nanoFramework.Hardware.Esp32.EspNow") + # Stm32 only @@ -177,6 +179,12 @@ if(API_nanoFramework.Hardware.Esp32.Rmt) PerformSettingsForApiEntry("nanoFramework.Hardware.Esp32.Rmt") endif() +# nanoFramework.Hardware.Esp32.EspNow +if(API_nanoFramework.Hardware.Esp32.EspNow) + ##### API name here (doted name) + PerformSettingsForApiEntry("nanoFramework.Hardware.Esp32.EspNow") +endif() + # nanoFramework.Device.Bluetooth if(API_nanoFramework.Device.Bluetooth) ##### API name here (doted name) diff --git a/CMake/Modules/FindnanoFramework.Hardware.Esp32.EspNow.cmake b/CMake/Modules/FindnanoFramework.Hardware.Esp32.EspNow.cmake new file mode 100644 index 0000000000..0ef8ea09ac --- /dev/null +++ b/CMake/Modules/FindnanoFramework.Hardware.Esp32.EspNow.cmake @@ -0,0 +1,44 @@ +# +# 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.Hardware.Esp32.EspNow) + + +# set include directories +list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/CLR/Core) +list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/CLR/Include) +list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/HAL/Include) +list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/PAL/Include) +list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${BASE_PATH_FOR_THIS_MODULE}) +list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/nanoFramework.Hardware.Esp32.EspNow) + +# source files +set(nanoFramework.Hardware.Esp32.EspNow_SRCS + + nanoFramework_hardware_esp32_espnow_native.cpp + + + nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp + +) + +foreach(SRC_FILE ${nanoFramework.Hardware.Esp32.EspNow_SRCS}) + set(nanoFramework.Hardware.Esp32.EspNow_SRC_FILE SRC_FILE-NOTFOUND) + find_file(nanoFramework.Hardware.Esp32.EspNow_SRC_FILE ${SRC_FILE} + PATHS + ${BASE_PATH_FOR_THIS_MODULE} + ${TARGET_BASE_LOCATION} + ${PROJECT_SOURCE_DIR}/src/nanoFramework.Hardware.Esp32.EspNow + + CMAKE_FIND_ROOT_PATH_BOTH + ) + # message("${SRC_FILE} >> ${nanoFramework.Hardware.Esp32.EspNow_SRC_FILE}") # debug helper + list(APPEND nanoFramework.Hardware.Esp32.EspNow_SOURCES ${nanoFramework.Hardware.Esp32.EspNow_SRC_FILE}) +endforeach() + +include(FindPackageHandleStandardArgs) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(nanoFramework.Hardware.Esp32.EspNow DEFAULT_MSG nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS nanoFramework.Hardware.Esp32.EspNow_SOURCES) diff --git a/build.ps1 b/build.ps1 index 5b5176060d..0a8c5abef3 100644 --- a/build.ps1 +++ b/build.ps1 @@ -54,7 +54,7 @@ elseif ($TargetBoard -eq "ESP32_WROOM_32") { # run the install tools Invoke-Expression "$PSScriptRoot\install-scripts\install-esp32-tools.ps1 -Path $Path" - $cmakeOptions = " -DTARGET_SERIES=ESP32 -DRTOS=ESP32 -DNF_FEATURE_DEBUGGER=ON -DNF_FEATURE_RTC=ON -DNF_FEATURE_HAS_CONFIG_BLOCK=ON -DNF_FEATURE_HAS_SDCARD=ON -DAPI_System.IO.FileSystem=ON -DAPI_System.Math=ON -DAPI_Windows.Devices.Gpio=ON -DAPI_System.Device.Gpio=ON -DAPI_Windows.Devices.Spi=ON -DAPI_System.Device.Spi=ON -DAPI_Windows.Devices.I2c=ON -DAPI_System.Device.I2c=ON -DAPI_Windows.Devices.Pwm=ON -DAPI_Windows.Devices.SerialCommunication=ON -DAPI_System.IO.Ports=ON -DAPI_Windows.Devices.Adc=ON -DAPI_System.Net=ON -DAPI_Windows.Devices.Wifi=ON -DNF_SECURITY_MBEDTLS=ON -DAPI_Hardware.Esp32=ON -DSUPPORT_ANY_BASE_CONVERSION=ON -DAPI_nanoFramework.Devices.OneWire=ON -DAPI_nanoFramework.ResourceManager=ON -DAPI_nanoFramework.System.Collections=ON -DAPI_nanoFramework.System.Text=ON -DAPI_nanoFramework.Hardware.Esp32.Rmt=ON -DAPI_System.Device.Dac=ON " + $cmakeOptions = " -DTARGET_SERIES=ESP32 -DRTOS=ESP32 -DNF_FEATURE_DEBUGGER=ON -DNF_FEATURE_RTC=ON -DNF_FEATURE_HAS_CONFIG_BLOCK=ON -DNF_FEATURE_HAS_SDCARD=ON -DAPI_System.IO.FileSystem=ON -DAPI_System.Math=ON -DAPI_Windows.Devices.Gpio=ON -DAPI_System.Device.Gpio=ON -DAPI_Windows.Devices.Spi=ON -DAPI_System.Device.Spi=ON -DAPI_Windows.Devices.I2c=ON -DAPI_System.Device.I2c=ON -DAPI_Windows.Devices.Pwm=ON -DAPI_Windows.Devices.SerialCommunication=ON -DAPI_System.IO.Ports=ON -DAPI_Windows.Devices.Adc=ON -DAPI_System.Net=ON -DAPI_Windows.Devices.Wifi=ON -DNF_SECURITY_MBEDTLS=ON -DAPI_Hardware.Esp32=ON -DSUPPORT_ANY_BASE_CONVERSION=ON -DAPI_nanoFramework.Devices.OneWire=ON -DAPI_nanoFramework.ResourceManager=ON -DAPI_nanoFramework.System.Collections=ON -DAPI_nanoFramework.System.Text=ON -DAPI_nanoFramework.Hardware.Esp32.Rmt=ON -DAPI_nanoFramework.Hardware.Esp32.EspNow=ON -DAPI_System.Device.Dac=ON " # CMake prep $cmakePrep = " -G Ninja -DCMAKE_TOOLCHAIN_FILE=""CMake/toolchain.xtensa-esp32-elf.cmake"" -DCMAKE_BUILD_TYPE=Debug -DBUILD_VERSION=9.99.999 -DTARGET_BOARD=$TargetBoard -DTARGET_NAME=$TargetBoard $cmakeOptions .." diff --git a/targets/ESP32/ESP32/cmake-variants.json b/targets/ESP32/ESP32/cmake-variants.json index 1852a502e0..81fc7fa96a 100644 --- a/targets/ESP32/ESP32/cmake-variants.json +++ b/targets/ESP32/ESP32/cmake-variants.json @@ -64,6 +64,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF" @@ -111,6 +112,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF" @@ -159,6 +161,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "ON" @@ -208,6 +211,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF" @@ -255,6 +259,7 @@ "API_Windows.Storage": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Graphics": "ON", "GRAPHICS_DISPLAY": "ILI9341_240x320_SPI.cpp", @@ -305,6 +310,7 @@ "API_Windows.Storage": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Graphics": "ON", "GRAPHICS_DISPLAY": "ILI9341_240x320_SPI.cpp", @@ -358,6 +364,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF" diff --git a/targets/ESP32/ESP32_S2/cmake-variants.json b/targets/ESP32/ESP32_S2/cmake-variants.json index e7dc3614f5..673430a1ef 100644 --- a/targets/ESP32/ESP32_S2/cmake-variants.json +++ b/targets/ESP32/ESP32_S2/cmake-variants.json @@ -68,6 +68,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "API_nanoFramework.Devices.OneWire": "OFF", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF" @@ -114,6 +115,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", + "API_nanoFramework.Hardware.Esp32.EspNow": "ON", "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Devices.OneWire": "OFF", "API_nanoFramework.Graphics": "ON", diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp new file mode 100644 index 0000000000..5c362b6504 --- /dev/null +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp @@ -0,0 +1,62 @@ +#include "nanoFramework_hardware_esp32_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, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowInit___I4, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterRecvCb, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterSendCb, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowAddPeer___I4__SZARRAY_U1__U1, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, +}; + +const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow = +{ + "nanoFramework.Hardware.Esp32.EspNow", + 0xDBFB22C7, + method_lookup, + { 0, 9, 99, 999 } +}; + +// clang-format on diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h new file mode 100644 index 0000000000..1d412dc77c --- /dev/null +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -0,0 +1,58 @@ +//----------------------------------------------------------------------------- +// +// ** WARNING! ** +// This file was generated automatically by a tool. +// Re-running the tool will overwrite this file. +// You should copy this file to a custom location +// before adding any customization in the copy to +// prevent loss of your changes when the tool is +// re-run. +// +//----------------------------------------------------------------------------- + +#ifndef _NANOFRAMEWORK_HARDWARE_ESP32_ESPNOW_NATIVE_H_ +#define _NANOFRAMEWORK_HARDWARE_ESP32_ESPNOW_NATIVE_H_ + +#include +#include +#include +#include + +struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataReceivedEventArgs +{ + static const int FIELD__k__BackingField = 1; + static const int FIELD__k__BackingField = 2; + static const int FIELD__k__BackingField = 3; + + //--// + +}; + +struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventArgs +{ + static const int FIELD__k__BackingField = 1; + static const int FIELD__k__BackingField = 2; + + //--// + +}; + +struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController +{ + static const int FIELD__DataSent = 1; + static const int FIELD__DataReceived = 2; + static const int FIELD__isDisposed = 3; + + NANOCLR_NATIVE_DECLARE(NativeEspNowInit___I4); + NANOCLR_NATIVE_DECLARE(NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterRecvCb); + NANOCLR_NATIVE_DECLARE(NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterSendCb); + NANOCLR_NATIVE_DECLARE(NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4); + NANOCLR_NATIVE_DECLARE(NativeEspNowAddPeer___I4__SZARRAY_U1__U1); + + //--// + +}; + +extern const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow; + +#endif //_NANOFRAMEWORK_HARDWARE_ESP32_ESPNOW_NATIVE_H_ diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp new file mode 100644 index 0000000000..651444afd2 --- /dev/null +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -0,0 +1,59 @@ +//----------------------------------------------------------------------------- +// +// ** WARNING! ** +// This file was generated automatically by a tool. +// Re-running the tool will overwrite this file. +// You should copy this file to a custom location +// before adding any customization in the copy to +// prevent loss of your changes when the tool is +// re-run. +// +//----------------------------------------------------------------------------- + +#include "nanoFramework_hardware_esp32_espnow_native.h" + + +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowInit___I4( CLR_RT_StackFrame &stack ) +{ + NANOCLR_HEADER(); + + NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + + NANOCLR_NOCLEANUP(); +} + +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterRecvCb( CLR_RT_StackFrame &stack ) +{ + NANOCLR_HEADER(); + + NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + + NANOCLR_NOCLEANUP(); +} + +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterSendCb( CLR_RT_StackFrame &stack ) +{ + NANOCLR_HEADER(); + + NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + + NANOCLR_NOCLEANUP(); +} + +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4( CLR_RT_StackFrame &stack ) +{ + NANOCLR_HEADER(); + + NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + + NANOCLR_NOCLEANUP(); +} + +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowAddPeer___I4__SZARRAY_U1__U1( CLR_RT_StackFrame &stack ) +{ + NANOCLR_HEADER(); + + NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + + NANOCLR_NOCLEANUP(); +} From e64a0096db0ed9c60639d8ccbb5a53e5e07367ca Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Sun, 26 Dec 2021 15:09:24 +0100 Subject: [PATCH 02/24] Part impl --- ...Framework_hardware_esp32_espnow_native.cpp | 19 +-- ...noFramework_hardware_esp32_espnow_native.h | 20 ++-- ...Hardware_Esp32_EspNow_EspNowController.cpp | 112 ++++++++++++++++-- 3 files changed, 119 insertions(+), 32 deletions(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp index 5c362b6504..75004c95d4 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp @@ -26,19 +26,12 @@ static const CLR_RT_MethodHandler method_lookup[] = NULL, NULL, NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowInit___I4, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterRecvCb, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterSendCb, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowDeinit___I4, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterRecvDelegate, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowUnregisterRecvCb___I4, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterSendDelegate, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowUnregisterSendCb___I4, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowAddPeer___I4__SZARRAY_U1__U1, NULL, @@ -54,7 +47,7 @@ static const CLR_RT_MethodHandler method_lookup[] = const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow = { "nanoFramework.Hardware.Esp32.EspNow", - 0xDBFB22C7, + 0x9F8D5291, method_lookup, { 0, 9, 99, 999 } }; diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index 1d412dc77c..4654065015 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -18,11 +18,14 @@ #include #include +#include +#include + struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataReceivedEventArgs { - static const int FIELD__k__BackingField = 1; - static const int FIELD__k__BackingField = 2; - static const int FIELD__k__BackingField = 3; + static const int FIELD__PeerMac = 1; + static const int FIELD__Data = 2; + static const int FIELD__DataLen = 3; //--// @@ -30,8 +33,8 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventArgs { - static const int FIELD__k__BackingField = 1; - static const int FIELD__k__BackingField = 2; + static const int FIELD__PeerMac = 1; + static const int FIELD__Status = 2; //--// @@ -44,8 +47,11 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static const int FIELD__isDisposed = 3; NANOCLR_NATIVE_DECLARE(NativeEspNowInit___I4); - NANOCLR_NATIVE_DECLARE(NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterRecvCb); - NANOCLR_NATIVE_DECLARE(NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterSendCb); + NANOCLR_NATIVE_DECLARE(NativeEspNowDeinit___I4); + NANOCLR_NATIVE_DECLARE(NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterRecvDelegate); + NANOCLR_NATIVE_DECLARE(NativeEspNowUnregisterRecvCb___I4); + NANOCLR_NATIVE_DECLARE(NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterSendDelegate); + NANOCLR_NATIVE_DECLARE(NativeEspNowUnregisterSendCb___I4); NANOCLR_NATIVE_DECLARE(NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4); NANOCLR_NATIVE_DECLARE(NativeEspNowAddPeer___I4__SZARRAY_U1__U1); diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp index 651444afd2..be11991f50 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -1,6 +1,6 @@ //----------------------------------------------------------------------------- // -// ** WARNING! ** +// ** WARNING! ** // This file was generated automatically by a tool. // Re-running the tool will overwrite this file. // You should copy this file to a custom location @@ -12,48 +12,136 @@ #include "nanoFramework_hardware_esp32_espnow_native.h" +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + NativeEspNowInit___I4(CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + + esp_err_t ret; + + esp_wifi_stop(); + esp_wifi_deinit(); + esp_netif_create_default_wifi_sta(); + + wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); + ret = esp_wifi_init(&cfg); + if (ret == ESP_OK) + { + ret = esp_wifi_set_mode(WIFI_MODE_STA); + if (ret == ESP_OK) + { + ret = esp_wifi_disconnect(); + if (ret == ESP_OK) + { + ret = esp_now_init(); + } + } + } + + stack.SetResult_I4((int32_t)ret); + + NANOCLR_NOCLEANUP_NOLABEL(); +} -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowInit___I4( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + NativeEspNowDeinit___I4(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); - NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + esp_err_t ret = esp_now_deinit(); + stack.SetResult_I4((int32_t)ret); - NANOCLR_NOCLEANUP(); + NANOCLR_NOCLEANUP_NOLABEL(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterRecvCb( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterRecvDelegate( + CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + // NANOCLR_NOCLEANUP_NOLABEL(); NANOCLR_NOCLEANUP(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerEspNowRegisterSendCb( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + NativeEspNowUnregisterRecvCb___I4(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); - NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + esp_err_t ret = esp_now_unregister_recv_cb(); + stack.SetResult_I4((int32_t)ret); - NANOCLR_NOCLEANUP(); + NANOCLR_NOCLEANUP_NOLABEL(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterSendDelegate( + CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + // NANOCLR_NOCLEANUP_NOLABEL(); NANOCLR_NOCLEANUP(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowAddPeer___I4__SZARRAY_U1__U1( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + NativeEspNowUnregisterSendCb___I4(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); - NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + esp_err_t ret = esp_now_unregister_send_cb(); + stack.SetResult_I4((int32_t)ret); - NANOCLR_NOCLEANUP(); + NANOCLR_NOCLEANUP_NOLABEL(); +} + +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4(CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + + esp_err_t ret; + + CLR_RT_HeapBlock_Array *peerMacArg = stack.Arg1().DereferenceArray(); + char *peerMac = (char *)peerMacArg->GetFirstElement(); + + CLR_RT_HeapBlock_Array *dataArg = stack.Arg2().DereferenceArray(); + char *data = (char *)dataArg->GetFirstElement(); + + int32_t dataLen = stack.Arg3().NumericByRef().s4; + + ret = esp_now_send((const uint8_t *)peerMac, (const uint8_t *)data, dataLen); + + stack.SetResult_I4((int32_t)ret); + + NANOCLR_NOCLEANUP_NOLABEL(); +} + +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + NativeEspNowAddPeer___I4__SZARRAY_U1__U1(CLR_RT_StackFrame &stack) +{ + NANOCLR_HEADER(); + + esp_err_t ret; + + CLR_RT_HeapBlock_Array *peerMacArg = stack.Arg1().DereferenceArray(); + char *peerMac = (char *)peerMacArg->GetFirstElement(); + + uint8_t channel = (uint8_t)stack.Arg1().NumericByRef().u1; + + esp_now_peer_info_t peerInfo; + memcpy(peerInfo.peer_addr, peerMac, 6); + peerInfo.channel = channel; + peerInfo.encrypt = false; + + ret = esp_now_add_peer(&peerInfo); + + stack.SetResult_I4((int32_t)ret); + + NANOCLR_NOCLEANUP_NOLABEL(); } From 158b388f233dd56a576bc6f103a296663aa2126c Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Mon, 27 Dec 2021 00:33:59 +0100 Subject: [PATCH 03/24] Try delegates --- ...noFramework_hardware_esp32_espnow_native.h | 4 ++ ...Hardware_Esp32_EspNow_EspNowController.cpp | 41 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index 4654065015..ac42c9461e 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -56,7 +56,11 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware NANOCLR_NATIVE_DECLARE(NativeEspNowAddPeer___I4__SZARRAY_U1__U1); //--// + static CLR_RT_HeapBlock_Delegate *onRecvDelegate; + static CLR_RT_HeapBlock_Delegate *onSentDelegate; + static void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status); + static void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len); }; extern const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow; diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp index be11991f50..7e14c8f972 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -12,6 +12,33 @@ #include "nanoFramework_hardware_esp32_espnow_native.h" +void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) +{ + //if (status != ESP_NOW_SEND_SUCCESS) + { + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***Sending status:\t%d\r\n", status); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } + } +} + +void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) +{ + //memcpy(&recvData, incomingData, sizeof(recvData)); + + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***-> Recv %d bytes from:\t%d\r\n", len, incomingData[0]); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } + +} + + HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: NativeEspNowInit___I4(CLR_RT_StackFrame &stack) { @@ -34,6 +61,14 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar if (ret == ESP_OK) { ret = esp_now_init(); + if (ret == ESP_OK) + { + ret = esp_now_register_recv_cb(OnDataRecv); + if (ret == ESP_OK) + { + ret = esp_now_register_send_cb(OnDataSent); + } + } } } } @@ -60,6 +95,11 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); + onRecvDelegate = stack.Arg1().DereferenceDelegate(); + + + + NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); // NANOCLR_NOCLEANUP_NOLABEL(); @@ -83,6 +123,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); + NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); // NANOCLR_NOCLEANUP_NOLABEL(); From ba2a3eaa6b73b824c3f77f80a07ea8e1f5cab920 Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Tue, 28 Dec 2021 22:21:08 +0100 Subject: [PATCH 04/24] Use native events --- ...dnanoFramework.Hardware.Esp32.EspNow.cmake | 1 + src/CLR/Core/TypeSystem.cpp | 3 + src/CLR/Include/nanoCLR_Runtime.h | 3 + src/HAL/Include/nanoHAL_v2.h | 4 + ...Framework_hardware_esp32_espnow_native.cpp | 18 +-- ...noFramework_hardware_esp32_espnow_native.h | 67 +++++++-- ...Hardware_Esp32_EspNow_EspNowController.cpp | 91 ++++--------- ...w_EspNowController__EspNowEventHandler.cpp | 128 ++++++++++++++++++ 8 files changed, 225 insertions(+), 90 deletions(-) create mode 100644 targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp diff --git a/CMake/Modules/FindnanoFramework.Hardware.Esp32.EspNow.cmake b/CMake/Modules/FindnanoFramework.Hardware.Esp32.EspNow.cmake index 0ef8ea09ac..727b11e8e1 100644 --- a/CMake/Modules/FindnanoFramework.Hardware.Esp32.EspNow.cmake +++ b/CMake/Modules/FindnanoFramework.Hardware.Esp32.EspNow.cmake @@ -22,6 +22,7 @@ set(nanoFramework.Hardware.Esp32.EspNow_SRCS nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp + nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp ) diff --git a/src/CLR/Core/TypeSystem.cpp b/src/CLR/Core/TypeSystem.cpp index a8734eea76..f90fc5529b 100644 --- a/src/CLR/Core/TypeSystem.cpp +++ b/src/CLR/Core/TypeSystem.cpp @@ -2844,6 +2844,9 @@ static const TypeIndexLookup c_TypeIndexLookup[] = { TIL("nanoFramework.Hardware.Esp32.Rmt", "RmtCommand", m_RmtCommand), + TIL("nanoFramework.Hardware.Esp32.EspNow.EspNowController", "DataSentEventInternal", m_Esp32EspNowDataSentEvent), + TIL("nanoFramework.Hardware.Esp32.EspNow.EspNowController", "DataRecvEventInternal", m_Esp32EspNowDataRecvEvent), + #undef TIL }; diff --git a/src/CLR/Include/nanoCLR_Runtime.h b/src/CLR/Include/nanoCLR_Runtime.h index cb86e1f791..9688b1a7dd 100644 --- a/src/CLR/Include/nanoCLR_Runtime.h +++ b/src/CLR/Include/nanoCLR_Runtime.h @@ -1581,6 +1581,9 @@ struct CLR_RT_WellKnownTypes CLR_RT_TypeDef_Index m_RmtCommand; + CLR_RT_TypeDef_Index m_Esp32EspNowDataRecvEvent; + CLR_RT_TypeDef_Index m_Esp32EspNowDataSentEvent; + PROHIBIT_COPY_CONSTRUCTORS(CLR_RT_WellKnownTypes); }; diff --git a/src/HAL/Include/nanoHAL_v2.h b/src/HAL/Include/nanoHAL_v2.h index 3bd5acc3a8..11c4dee513 100644 --- a/src/HAL/Include/nanoHAL_v2.h +++ b/src/HAL/Include/nanoHAL_v2.h @@ -112,6 +112,10 @@ typedef enum SLEEP_LEVEL #define EVENT_TOUCH 120 #define EVENT_GESTURE 130 +// keep in sync with nanoFramework.Hardware.Esp32.EspNow.EspNowController +#define EVENT_ESP32_ESPNOW 140 + + #define PAL_EVENT_TOUCH 0x1 #define PAL_EVENT_KEY 0x2 #define PAL_EVENT_MOUSE 0x4 diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp index 75004c95d4..f4be6a6a7c 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp @@ -18,6 +18,10 @@ static const CLR_RT_MethodHandler method_lookup[] = NULL, NULL, NULL, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeInitialize___I4, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeDispose___VOID__BOOLEAN, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowAddPeer___I4__SZARRAY_U1__U1, NULL, NULL, NULL, @@ -26,28 +30,18 @@ static const CLR_RT_MethodHandler method_lookup[] = NULL, NULL, NULL, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowInit___I4, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowDeinit___I4, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterRecvDelegate, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowUnregisterRecvCb___I4, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterSendDelegate, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowUnregisterSendCb___I4, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowAddPeer___I4__SZARRAY_U1__U1, - NULL, - NULL, - NULL, NULL, NULL, NULL, NULL, + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler::ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime, NULL, }; const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow = { "nanoFramework.Hardware.Esp32.EspNow", - 0x9F8D5291, + 0x8472D2BF, method_lookup, { 0, 9, 99, 999 } }; diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index ac42c9461e..737f560cdd 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -21,6 +21,23 @@ #include #include +#define EVENT_ESP32_ESPNOW_DATASENT 1 +#define EVENT_ESP32_ESPNOW_DATARECV 2 + + +struct EspNowDataSentEventData +{ + uint8_t peer_mac[ESP_NOW_ETH_ALEN]; + esp_now_send_status_t status; +}; + +struct EspNowDataRecvEventData +{ + uint8_t peer_mac[ESP_NOW_ETH_ALEN]; + uint8_t data[ESP_NOW_MAX_DATA_LEN]; + int dataLen; +}; + struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataReceivedEventArgs { static const int FIELD__PeerMac = 1; @@ -46,23 +63,53 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static const int FIELD__DataReceived = 2; static const int FIELD__isDisposed = 3; - NANOCLR_NATIVE_DECLARE(NativeEspNowInit___I4); - NANOCLR_NATIVE_DECLARE(NativeEspNowDeinit___I4); - NANOCLR_NATIVE_DECLARE(NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterRecvDelegate); - NANOCLR_NATIVE_DECLARE(NativeEspNowUnregisterRecvCb___I4); - NANOCLR_NATIVE_DECLARE(NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterSendDelegate); - NANOCLR_NATIVE_DECLARE(NativeEspNowUnregisterSendCb___I4); + 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); //--// - static CLR_RT_HeapBlock_Delegate *onRecvDelegate; - static CLR_RT_HeapBlock_Delegate *onSentDelegate; + static EspNowDataSentEventData dataSentEventData; + static EspNowDataRecvEventData dataRecvEventData; - static void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status); - static void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len); + static void DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status); + static void DataRecvCb(const uint8_t * mac, const uint8_t *incomingData, int len); }; +struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataRecvEventInternal +{ + static const int FIELD__PeerMac = 3; + static const int FIELD__Data = 4; + static const int FIELD__DataLen = 5; + + //--// + +}; + +struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataSentEventInternal +{ + static const int FIELD__PeerMac = 3; + static const int FIELD__Status = 4; + + //--// + +}; + +struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler +{ + static const int FIELD__controllerInstance = 1; + + NANOCLR_NATIVE_DECLARE(ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime); + + //--// + + static HRESULT CopyByteArrayToCLRArray(CLR_RT_HeapBlock &target, uint8_t *src, CLR_UINT32 length); + static HRESULT ProcessEvent_DataSent(CLR_RT_StackFrame &stack); + static HRESULT ProcessEvent_DataRecv(CLR_RT_StackFrame &stack); + +}; + + extern const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow; #endif //_NANOFRAMEWORK_HARDWARE_ESP32_ESPNOW_NATIVE_H_ diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp index 7e14c8f972..603a38bf59 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -13,34 +13,39 @@ #include "nanoFramework_hardware_esp32_espnow_native.h" void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) + DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status) { - //if (status != ESP_NOW_SEND_SUCCESS) - { { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***Sending status:\t%d\r\n", status); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***Sending status:\t%d\r\n", status); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); } - } + + memcpy(dataSentEventData.peer_mac, mac_addr, ESP_NOW_ETH_ALEN); + dataSentEventData.status = status; + + PostManagedEvent(EVENT_ESP32_ESPNOW, 0, EVENT_ESP32_ESPNOW_DATASENT, (CLR_UINT32)&dataSentEventData); } void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) + DataRecvCb(const uint8_t * mac_addr, const uint8_t *incomingData, int len) { - //memcpy(&recvData, incomingData, sizeof(recvData)); - { char temporaryStringBuffer[64]; int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***-> Recv %d bytes from:\t%d\r\n", len, incomingData[0]); CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); } -} + memcpy(dataRecvEventData.peer_mac, mac_addr, ESP_NOW_ETH_ALEN); + memcpy(dataRecvEventData.data, incomingData, len); + dataRecvEventData.dataLen = len; + PostManagedEvent(EVENT_ESP32_ESPNOW, 0, EVENT_ESP32_ESPNOW_DATARECV, (CLR_UINT32)&dataRecvEventData); + +} HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeEspNowInit___I4(CLR_RT_StackFrame &stack) + NativeInitialize___I4( CLR_RT_StackFrame &stack ) { NANOCLR_HEADER(); @@ -63,10 +68,10 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar ret = esp_now_init(); if (ret == ESP_OK) { - ret = esp_now_register_recv_cb(OnDataRecv); + ret = esp_now_register_recv_cb(DataRecvCb); if (ret == ESP_OK) { - ret = esp_now_register_send_cb(OnDataSent); + ret = esp_now_register_send_cb(DataSentCb); } } } @@ -79,67 +84,17 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar } HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeEspNowDeinit___I4(CLR_RT_StackFrame &stack) -{ - NANOCLR_HEADER(); - - esp_err_t ret = esp_now_deinit(); - stack.SetResult_I4((int32_t)ret); - - NANOCLR_NOCLEANUP_NOLABEL(); -} - -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeEspNowRegisterRecvCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterRecvDelegate( - CLR_RT_StackFrame &stack) -{ - NANOCLR_HEADER(); - - onRecvDelegate = stack.Arg1().DereferenceDelegate(); - - - - - NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); - - // NANOCLR_NOCLEANUP_NOLABEL(); - NANOCLR_NOCLEANUP(); -} - -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeEspNowUnregisterRecvCb___I4(CLR_RT_StackFrame &stack) + NativeDispose___VOID__BOOLEAN( CLR_RT_StackFrame &stack ) { NANOCLR_HEADER(); - esp_err_t ret = esp_now_unregister_recv_cb(); - stack.SetResult_I4((int32_t)ret); + esp_now_unregister_recv_cb(); + esp_now_unregister_send_cb(); + esp_now_deinit(); NANOCLR_NOCLEANUP_NOLABEL(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeEspNowRegisterSendCb___I4__nanoFrameworkHardwareEsp32EspNowEspNowControllerRegisterSendDelegate( - CLR_RT_StackFrame &stack) -{ - NANOCLR_HEADER(); - - - NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); - - // NANOCLR_NOCLEANUP_NOLABEL(); - NANOCLR_NOCLEANUP(); -} - -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeEspNowUnregisterSendCb___I4(CLR_RT_StackFrame &stack) -{ - NANOCLR_HEADER(); - - esp_err_t ret = esp_now_unregister_send_cb(); - stack.SetResult_I4((int32_t)ret); - - NANOCLR_NOCLEANUP_NOLABEL(); -} HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4(CLR_RT_StackFrame &stack) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp new file mode 100644 index 0000000000..f0b16d4126 --- /dev/null +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp @@ -0,0 +1,128 @@ +//----------------------------------------------------------------------------- +// +// ** WARNING! ** +// This file was generated automatically by a tool. +// Re-running the tool will overwrite this file. +// You should copy this file to a custom location +// before adding any customization in the copy to +// prevent loss of your changes when the tool is +// re-run. +// +//----------------------------------------------------------------------------- + +#include "nanoFramework_hardware_esp32_espnow_native.h" + +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: + CopyByteArrayToCLRArray(CLR_RT_HeapBlock & target, uint8_t * src, CLR_UINT32 length ) +{ + NANOCLR_HEADER(); + + NANOCLR_CHECK_HRESULT(CLR_RT_HeapBlock_Array::CreateInstance( + target, + 6, + g_CLR_RT_WellKnownTypes.m_UInt8)); + + CLR_RT_HeapBlock_Array * peerMacArray = target.DereferenceArray(); + if (!peerMacArray) + { + NANOCLR_SET_AND_LEAVE(CLR_E_OUT_OF_MEMORY); + } + + CLR_UINT8* buf = peerMacArray->GetFirstElement(); + memcpy( buf, src, length ); + + NANOCLR_NOCLEANUP(); +} + +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: + ProcessEvent_DataSent( CLR_RT_StackFrame &stack ) +{ + NANOCLR_HEADER(); + + EspNowDataSentEventData *sentEventData = (EspNowDataSentEventData *)stack.Arg2().NumericByRef().u4; + + // create nanoFramework.Hardware.Esp32.EspNow.EspNowController.DataSentEventInternal instance to return + CLR_RT_HeapBlock &clrRet = stack.PushValue(); + NANOCLR_CHECK_HRESULT( + g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_Esp32EspNowDataSentEvent)); + CLR_RT_HeapBlock *dataSentEvent = clrRet.Dereference(); + if (!dataSentEvent) + { + NANOCLR_SET_AND_LEAVE(CLR_E_OUT_OF_MEMORY); + } + + // clrRet.PeerMac + NANOCLR_CHECK_HRESULT( + CopyByteArrayToCLRArray( + dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataSentEventInternal::FIELD__PeerMac], + sentEventData->peer_mac, + 6)); + + // clrRet.Status + dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataSentEventInternal::FIELD__Status].SetInteger(sentEventData->status); + + + NANOCLR_NOCLEANUP(); +} + +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: + ProcessEvent_DataRecv( CLR_RT_StackFrame &stack ) +{ + NANOCLR_HEADER(); + + EspNowDataRecvEventData *recvEventData = (EspNowDataRecvEventData *)stack.Arg2().NumericByRef().u4; + + // create nanoFramework.Hardware.Esp32.EspNow.EspNowController.DataRecvEventInternal instance to return + CLR_RT_HeapBlock &clrRet = stack.PushValue(); + NANOCLR_CHECK_HRESULT( + g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_Esp32EspNowDataRecvEvent)); + CLR_RT_HeapBlock *dataRecvEvent = clrRet.Dereference(); + if (!dataRecvEvent) + { + NANOCLR_SET_AND_LEAVE(CLR_E_OUT_OF_MEMORY); + } + + // clrRet.PeerMac + NANOCLR_CHECK_HRESULT( + CopyByteArrayToCLRArray( + dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataRecvEventInternal::FIELD__PeerMac], + recvEventData->peer_mac, + 6)); + + // clrRet.Data + NANOCLR_CHECK_HRESULT( + CopyByteArrayToCLRArray( + dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataRecvEventInternal::FIELD__Data], + recvEventData->data, + recvEventData->dataLen)); + + // clrRet.DataLen + dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataRecvEventInternal::FIELD__DataLen].SetInteger(recvEventData->dataLen); + + + NANOCLR_NOCLEANUP();} + +HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: + 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_ESP32_ESPNOW_DATASENT: + hr = ProcessEvent_DataSent(stack); + break; + case EVENT_ESP32_ESPNOW_DATARECV: + hr = ProcessEvent_DataRecv(stack); + break; + default: + NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); + } + + NANOCLR_NOCLEANUP(); +} + + From 4facdea27ac0759ba8fd5b107ab6d50182e44e9a Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Wed, 29 Dec 2021 09:35:14 +0000 Subject: [PATCH 05/24] Fix comp errors --- ...Hardware_Esp32_EspNow_EspNowController.cpp | 6 ++++++ ...w_EspNowController__EspNowEventHandler.cpp | 21 ++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp index 603a38bf59..e123a661cd 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -12,6 +12,12 @@ #include "nanoFramework_hardware_esp32_espnow_native.h" +EspNowDataSentEventData Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + dataSentEventData; +EspNowDataRecvEventData Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + dataRecvEventData; + + void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status) { diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp index f0b16d4126..7d5053b925 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp @@ -17,19 +17,22 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); + CLR_UINT8* firstTargetByte; + CLR_RT_HeapBlock_Array * targetArray; + NANOCLR_CHECK_HRESULT(CLR_RT_HeapBlock_Array::CreateInstance( target, - 6, + length, g_CLR_RT_WellKnownTypes.m_UInt8)); - CLR_RT_HeapBlock_Array * peerMacArray = target.DereferenceArray(); - if (!peerMacArray) + targetArray = target.DereferenceArray(); + if (!targetArray) { NANOCLR_SET_AND_LEAVE(CLR_E_OUT_OF_MEMORY); } - CLR_UINT8* buf = peerMacArray->GetFirstElement(); - memcpy( buf, src, length ); + firstTargetByte = targetArray->GetFirstElement(); + memcpy( firstTargetByte, src, length ); NANOCLR_NOCLEANUP(); } @@ -40,12 +43,14 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_HEADER(); EspNowDataSentEventData *sentEventData = (EspNowDataSentEventData *)stack.Arg2().NumericByRef().u4; + CLR_RT_HeapBlock *dataSentEvent; // create nanoFramework.Hardware.Esp32.EspNow.EspNowController.DataSentEventInternal instance to return CLR_RT_HeapBlock &clrRet = stack.PushValue(); NANOCLR_CHECK_HRESULT( g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_Esp32EspNowDataSentEvent)); - CLR_RT_HeapBlock *dataSentEvent = clrRet.Dereference(); + + dataSentEvent = clrRet.Dereference(); if (!dataSentEvent) { NANOCLR_SET_AND_LEAVE(CLR_E_OUT_OF_MEMORY); @@ -71,12 +76,14 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_HEADER(); EspNowDataRecvEventData *recvEventData = (EspNowDataRecvEventData *)stack.Arg2().NumericByRef().u4; + CLR_RT_HeapBlock *dataRecvEvent; // create nanoFramework.Hardware.Esp32.EspNow.EspNowController.DataRecvEventInternal instance to return CLR_RT_HeapBlock &clrRet = stack.PushValue(); NANOCLR_CHECK_HRESULT( g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_Esp32EspNowDataRecvEvent)); - CLR_RT_HeapBlock *dataRecvEvent = clrRet.Dereference(); + + dataRecvEvent = clrRet.Dereference(); if (!dataRecvEvent) { NANOCLR_SET_AND_LEAVE(CLR_E_OUT_OF_MEMORY); From f9924e25c0fa9befbed62bb5fbf557abf6f6cf9b Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Wed, 29 Dec 2021 11:13:15 +0100 Subject: [PATCH 06/24] Connector refresh --- .../nanoFramework_hardware_esp32_espnow_native.cpp | 3 ++- .../nanoFramework_hardware_esp32_espnow_native.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp index f4be6a6a7c..50496e145f 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp @@ -34,6 +34,7 @@ static const CLR_RT_MethodHandler method_lookup[] = NULL, NULL, NULL, + NULL, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler::ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime, NULL, }; @@ -41,7 +42,7 @@ static const CLR_RT_MethodHandler method_lookup[] = const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow = { "nanoFramework.Hardware.Esp32.EspNow", - 0x8472D2BF, + 0x89A11F8D, method_lookup, { 0, 9, 99, 999 } }; diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index 737f560cdd..d0e5f50893 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -59,6 +59,8 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController { + static const int FIELD_STATIC__BROADCASTMAC = 0; + static const int FIELD__DataSent = 1; static const int FIELD__DataReceived = 2; static const int FIELD__isDisposed = 3; From 1e217a2ab8caec7597e3c308e3b23ec26d6f454f Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Wed, 29 Dec 2021 10:55:59 +0000 Subject: [PATCH 07/24] Actualized connector --- .../nanoFramework_hardware_esp32_espnow_native.cpp | 2 ++ .../nanoFramework_hardware_esp32_espnow_native.h | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp index 50496e145f..7a551b433f 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp @@ -18,6 +18,7 @@ static const CLR_RT_MethodHandler method_lookup[] = NULL, NULL, NULL, + NULL, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeInitialize___I4, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeDispose___VOID__BOOLEAN, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4, @@ -48,3 +49,4 @@ const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp3 }; // clang-format on + diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index d0e5f50893..04452c98cc 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -63,7 +63,9 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static const int FIELD__DataSent = 1; static const int FIELD__DataReceived = 2; - static const int FIELD__isDisposed = 3; + static const int FIELD__isInitialized = 3; + static const int FIELD__isDisposed = 4; + static const int FIELD__eventHandler = 5; NANOCLR_NATIVE_DECLARE(NativeInitialize___I4); NANOCLR_NATIVE_DECLARE(NativeDispose___VOID__BOOLEAN); From a86a43827129faeb48771bd25d9e1116cf7e2a6f Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Wed, 29 Dec 2021 16:41:28 +0000 Subject: [PATCH 08/24] Debug info added --- ...noFramework_hardware_esp32_espnow_native.h | 2 + ...Hardware_Esp32_EspNow_EspNowController.cpp | 155 ++++++++++++++++++ ...w_EspNowController__EspNowEventHandler.cpp | 65 ++++++++ 3 files changed, 222 insertions(+) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index 04452c98cc..36568a327f 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -21,6 +21,8 @@ #include #include +#define DEBUG_ESPNOW 1 + #define EVENT_ESP32_ESPNOW_DATASENT 1 #define EVENT_ESP32_ESPNOW_DATARECV 2 diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp index e123a661cd..63831fc2e6 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -21,31 +21,53 @@ EspNowDataRecvEventData Library_nanoFramework_hardware_esp32_espnow_native_nanoF void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status) { + +#ifdef DEBUG_ESPNOW { char temporaryStringBuffer[64]; int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***Sending status:\t%d\r\n", status); CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); } +#endif memcpy(dataSentEventData.peer_mac, mac_addr, ESP_NOW_ETH_ALEN); dataSentEventData.status = status; +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***Posting managed SENT event\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + PostManagedEvent(EVENT_ESP32_ESPNOW, 0, EVENT_ESP32_ESPNOW_DATASENT, (CLR_UINT32)&dataSentEventData); } void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: DataRecvCb(const uint8_t * mac_addr, const uint8_t *incomingData, int len) { + +#ifdef DEBUG_ESPNOW { char temporaryStringBuffer[64]; int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***-> Recv %d bytes from:\t%d\r\n", len, incomingData[0]); CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); } +#endif memcpy(dataRecvEventData.peer_mac, mac_addr, ESP_NOW_ETH_ALEN); memcpy(dataRecvEventData.data, incomingData, len); dataRecvEventData.dataLen = len; +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***Posting managed RECV event\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + PostManagedEvent(EVENT_ESP32_ESPNOW, 0, EVENT_ESP32_ESPNOW_DATARECV, (CLR_UINT32)&dataRecvEventData); } @@ -55,28 +77,89 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize entry\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + esp_err_t ret; esp_wifi_stop(); esp_wifi_deinit(); esp_netif_create_default_wifi_sta(); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: WiFi init\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); ret = esp_wifi_init(&cfg); if (ret == ESP_OK) { + +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: WiFi mode set\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + ret = esp_wifi_set_mode(WIFI_MODE_STA); if (ret == ESP_OK) { + +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: WiFi disconnect\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + ret = esp_wifi_disconnect(); if (ret == ESP_OK) { + +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: ESPNOW init\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + ret = esp_now_init(); if (ret == ESP_OK) { + +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: register recvcb\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + ret = esp_now_register_recv_cb(DataRecvCb); if (ret == ESP_OK) { + +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: register sendcb\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + ret = esp_now_register_send_cb(DataSentCb); } } @@ -84,6 +167,14 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar } } +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize ret: %d\r\n", ret); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + stack.SetResult_I4((int32_t)ret); NANOCLR_NOCLEANUP_NOLABEL(); @@ -94,10 +185,26 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeDispose entry\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + esp_now_unregister_recv_cb(); esp_now_unregister_send_cb(); esp_now_deinit(); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeDispose: exit\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + NANOCLR_NOCLEANUP_NOLABEL(); } @@ -107,6 +214,14 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowSend entry\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + esp_err_t ret; CLR_RT_HeapBlock_Array *peerMacArg = stack.Arg1().DereferenceArray(); @@ -117,8 +232,24 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar int32_t dataLen = stack.Arg3().NumericByRef().s4; +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowSend: sending %d bytes\r\n", dataLen); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + ret = esp_now_send((const uint8_t *)peerMac, (const uint8_t *)data, dataLen); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowSend ret: %d\r\n", ret); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + stack.SetResult_I4((int32_t)ret); NANOCLR_NOCLEANUP_NOLABEL(); @@ -129,6 +260,14 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowAddPeer entry\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + esp_err_t ret; CLR_RT_HeapBlock_Array *peerMacArg = stack.Arg1().DereferenceArray(); @@ -141,8 +280,24 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar peerInfo.channel = channel; peerInfo.encrypt = false; +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowAddPeer: add_peer\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + ret = esp_now_add_peer(&peerInfo); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowAddPeer ret: %d\r\n", ret); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + stack.SetResult_I4((int32_t)ret); NANOCLR_NOCLEANUP_NOLABEL(); diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp index 7d5053b925..c58c961b0a 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp @@ -17,6 +17,14 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler CopyByteArrayToCLRArray entry\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + CLR_UINT8* firstTargetByte; CLR_RT_HeapBlock_Array * targetArray; @@ -34,6 +42,14 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar firstTargetByte = targetArray->GetFirstElement(); memcpy( firstTargetByte, src, length ); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler CopyByteArrayToCLRArray exit\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + NANOCLR_NOCLEANUP(); } @@ -42,6 +58,14 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent_DataSent entry\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + EspNowDataSentEventData *sentEventData = (EspNowDataSentEventData *)stack.Arg2().NumericByRef().u4; CLR_RT_HeapBlock *dataSentEvent; @@ -67,6 +91,14 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataSentEventInternal::FIELD__Status].SetInteger(sentEventData->status); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent_DataSent exit\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + NANOCLR_NOCLEANUP(); } @@ -75,6 +107,15 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); + +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent_DataRecv entry\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + EspNowDataRecvEventData *recvEventData = (EspNowDataRecvEventData *)stack.Arg2().NumericByRef().u4; CLR_RT_HeapBlock *dataRecvEvent; @@ -106,6 +147,13 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar // clrRet.DataLen dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataRecvEventInternal::FIELD__DataLen].SetInteger(recvEventData->dataLen); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent_DataRecv exit\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif NANOCLR_NOCLEANUP();} @@ -114,6 +162,14 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent entry\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + CLR_UINT32 data1 = stack.Arg1().NumericByRef().u4; CLR_UINT32 subEvent = data1 >> 16; @@ -129,6 +185,15 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); } +#ifdef DEBUG_ESPNOW + { + char temporaryStringBuffer[64]; + int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent exit\r\n"); + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); + } +#endif + + NANOCLR_NOCLEANUP(); } From 3a21efad0ef9e843f0cc763564baa20df0c84147 Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Wed, 29 Dec 2021 17:32:33 +0000 Subject: [PATCH 09/24] debug cleanup --- ...noFramework_hardware_esp32_espnow_native.h | 19 ++ ...Hardware_Esp32_EspNow_EspNowController.cpp | 178 +++--------------- ...w_EspNowController__EspNowEventHandler.cpp | 71 ++----- 3 files changed, 59 insertions(+), 209 deletions(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index 36568a327f..c10bd33b27 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -23,6 +23,25 @@ #define DEBUG_ESPNOW 1 +#define DEBUG_FENTER() DEBUG_WRITELINE("entry") +#define DEBUG_FEXIT() DEBUG_WRITELINE("exit") +#define DEBUG_FEXIT_RET(v) DEBUG_WRITELINE("return: %d", v) + +#ifdef DEBUG_ESPNOW + #define DEBUG_WRITELINE(...) \ + { \ + char temporaryStringBuffer1[64]; \ + snprintf(temporaryStringBuffer1, sizeof(temporaryStringBuffer1), __VA_ARGS__); \ + char temporaryStringBuffer2[64]; \ + int realStringSize=snprintf(temporaryStringBuffer2, sizeof(temporaryStringBuffer2), "\r\n*** [%s] %s\r\n", __func__, temporaryStringBuffer1); \ + CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer2, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); \ + } + +#else + #define DEBUG_WRITELINE(...) ; +#endif + + #define EVENT_ESP32_ESPNOW_DATASENT 1 #define EVENT_ESP32_ESPNOW_DATARECV 2 diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp index 63831fc2e6..2557b02694 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -21,55 +21,36 @@ EspNowDataRecvEventData Library_nanoFramework_hardware_esp32_espnow_native_nanoF void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status) { + DEBUG_FENTER(); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***Sending status:\t%d\r\n", status); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_WRITELINE("Sending status:\t%d", status); memcpy(dataSentEventData.peer_mac, mac_addr, ESP_NOW_ETH_ALEN); dataSentEventData.status = status; -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***Posting managed SENT event\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_WRITELINE("Posting managed SENT event"); PostManagedEvent(EVENT_ESP32_ESPNOW, 0, EVENT_ESP32_ESPNOW_DATASENT, (CLR_UINT32)&dataSentEventData); + + DEBUG_FEXIT(); } void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: DataRecvCb(const uint8_t * mac_addr, const uint8_t *incomingData, int len) { + DEBUG_FENTER(); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***-> Recv %d bytes from:\t%d\r\n", len, incomingData[0]); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_WRITELINE("Recv %d bytes from[0]:\t%d", len, incomingData[0]); memcpy(dataRecvEventData.peer_mac, mac_addr, ESP_NOW_ETH_ALEN); memcpy(dataRecvEventData.data, incomingData, len); dataRecvEventData.dataLen = len; -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***Posting managed RECV event\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_WRITELINE("Posting managed RECV event"); PostManagedEvent(EVENT_ESP32_ESPNOW, 0, EVENT_ESP32_ESPNOW_DATARECV, (CLR_UINT32)&dataRecvEventData); + DEBUG_FEXIT(); } HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: @@ -77,13 +58,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize entry\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FENTER(); esp_err_t ret; @@ -91,89 +66,40 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar esp_wifi_deinit(); esp_netif_create_default_wifi_sta(); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: WiFi init\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_WRITELINE("WiFi init"); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); ret = esp_wifi_init(&cfg); if (ret == ESP_OK) { -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: WiFi mode set\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_WRITELINE("WiFi mode set"); ret = esp_wifi_set_mode(WIFI_MODE_STA); if (ret == ESP_OK) { -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: WiFi disconnect\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_WRITELINE("ESPNOW init"); - ret = esp_wifi_disconnect(); + ret = esp_now_init(); if (ret == ESP_OK) { -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: ESPNOW init\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_WRITELINE("ESPNOW reg recvcb"); - ret = esp_now_init(); + ret = esp_now_register_recv_cb(DataRecvCb); if (ret == ESP_OK) { -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: register recvcb\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif - - ret = esp_now_register_recv_cb(DataRecvCb); - if (ret == ESP_OK) - { - -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize: register sendcb\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif - - ret = esp_now_register_send_cb(DataSentCb); - } + DEBUG_WRITELINE("ESPNOW reg sendcb"); + + ret = esp_now_register_send_cb(DataSentCb); } } } } -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeInitialize ret: %d\r\n", ret); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FEXIT_RET(ret); stack.SetResult_I4((int32_t)ret); @@ -185,25 +111,13 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeDispose entry\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FENTER(); esp_now_unregister_recv_cb(); esp_now_unregister_send_cb(); esp_now_deinit(); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeDispose: exit\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FEXIT(); NANOCLR_NOCLEANUP_NOLABEL(); } @@ -214,13 +128,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowSend entry\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FENTER(); esp_err_t ret; @@ -232,23 +140,11 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar int32_t dataLen = stack.Arg3().NumericByRef().s4; -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowSend: sending %d bytes\r\n", dataLen); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_WRITELINE("sending %d bytes", dataLen); ret = esp_now_send((const uint8_t *)peerMac, (const uint8_t *)data, dataLen); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowSend ret: %d\r\n", ret); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FEXIT_RET(ret); stack.SetResult_I4((int32_t)ret); @@ -260,13 +156,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowAddPeer entry\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FENTER(); esp_err_t ret; @@ -280,23 +170,11 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar peerInfo.channel = channel; peerInfo.encrypt = false; -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowAddPeer: add_peer\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_WRITELINE("add_peer[0]: %d", peerMac[0]); ret = esp_now_add_peer(&peerInfo); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***NativeEspNowAddPeer ret: %d\r\n", ret); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FEXIT_RET(ret); stack.SetResult_I4((int32_t)ret); diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp index c58c961b0a..d44f7bcc94 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp @@ -17,13 +17,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler CopyByteArrayToCLRArray entry\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FENTER(); CLR_UINT8* firstTargetByte; CLR_RT_HeapBlock_Array * targetArray; @@ -39,16 +33,12 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_SET_AND_LEAVE(CLR_E_OUT_OF_MEMORY); } + DEBUG_WRITELINE("copying %d bytes", length); + firstTargetByte = targetArray->GetFirstElement(); memcpy( firstTargetByte, src, length ); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler CopyByteArrayToCLRArray exit\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FEXIT(); NANOCLR_NOCLEANUP(); } @@ -58,13 +48,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent_DataSent entry\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FENTER(); EspNowDataSentEventData *sentEventData = (EspNowDataSentEventData *)stack.Arg2().NumericByRef().u4; CLR_RT_HeapBlock *dataSentEvent; @@ -90,14 +74,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar // clrRet.Status dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataSentEventInternal::FIELD__Status].SetInteger(sentEventData->status); - -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent_DataSent exit\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FEXIT(); NANOCLR_NOCLEANUP(); } @@ -107,14 +84,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); - -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent_DataRecv entry\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FENTER(); EspNowDataRecvEventData *recvEventData = (EspNowDataRecvEventData *)stack.Arg2().NumericByRef().u4; CLR_RT_HeapBlock *dataRecvEvent; @@ -147,13 +117,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar // clrRet.DataLen dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataRecvEventInternal::FIELD__DataLen].SetInteger(recvEventData->dataLen); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent_DataRecv exit\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FEXIT(); NANOCLR_NOCLEANUP();} @@ -162,17 +126,13 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar { NANOCLR_HEADER(); -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent entry\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif + DEBUG_FENTER(); CLR_UINT32 data1 = stack.Arg1().NumericByRef().u4; CLR_UINT32 subEvent = data1 >> 16; + DEBUG_WRITELINE("subevent: %d", subEvent); + switch(subEvent) { case EVENT_ESP32_ESPNOW_DATASENT: @@ -185,14 +145,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); } -#ifdef DEBUG_ESPNOW - { - char temporaryStringBuffer[64]; - int realStringSize=snprintf(temporaryStringBuffer, sizeof(temporaryStringBuffer), "\r\n***EspNowEventHandler ProcessEvent exit\r\n"); - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); - } -#endif - + DEBUG_FEXIT(); NANOCLR_NOCLEANUP(); } From 27ee936333ced9beda74b26bfd8539780e1c9fee Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Wed, 29 Dec 2021 17:54:23 +0000 Subject: [PATCH 10/24] Updated connector --- .../nanoFramework_hardware_esp32_espnow_native.cpp | 4 ++-- .../nanoFramework_hardware_esp32_espnow_native.h | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp index 7a551b433f..2214e38802 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp @@ -38,15 +38,15 @@ static const CLR_RT_MethodHandler method_lookup[] = NULL, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler::ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime, NULL, + NULL, }; const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow = { "nanoFramework.Hardware.Esp32.EspNow", - 0x89A11F8D, + 0xAA40FE4D, method_lookup, { 0, 9, 99, 999 } }; // clang-format on - diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index c10bd33b27..93b0780bb6 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -135,6 +135,14 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware }; +struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowException +{ + static const int FIELD__esp_err = 5; + + //--// + +}; + extern const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow; #endif //_NANOFRAMEWORK_HARDWARE_ESP32_ESPNOW_NATIVE_H_ From 91f74eb19e255f63960b1c67fe2c2b2c0feda75d Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Wed, 29 Dec 2021 18:13:11 +0000 Subject: [PATCH 11/24] Updated connector --- .../nanoFramework_hardware_esp32_espnow_native.cpp | 1 - .../nanoFramework_hardware_esp32_espnow_native.h | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp index 2214e38802..4e68eb88a6 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp @@ -18,7 +18,6 @@ static const CLR_RT_MethodHandler method_lookup[] = NULL, NULL, NULL, - NULL, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeInitialize___I4, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeDispose___VOID__BOOLEAN, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4, diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index 93b0780bb6..fd5c1f322b 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -84,9 +84,8 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static const int FIELD__DataSent = 1; static const int FIELD__DataReceived = 2; - static const int FIELD__isInitialized = 3; - static const int FIELD__isDisposed = 4; - static const int FIELD__eventHandler = 5; + static const int FIELD__isDisposed = 3; + static const int FIELD__eventHandler = 4; NANOCLR_NATIVE_DECLARE(NativeInitialize___I4); NANOCLR_NATIVE_DECLARE(NativeDispose___VOID__BOOLEAN); From 8a2337c4ffb818fb214b9010750d04adc9a65ff8 Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Wed, 29 Dec 2021 18:56:52 +0000 Subject: [PATCH 12/24] cosmetic --- .../nanoFramework_hardware_esp32_espnow_native.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index fd5c1f322b..584e5ad3ff 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -27,7 +27,7 @@ #define DEBUG_FEXIT() DEBUG_WRITELINE("exit") #define DEBUG_FEXIT_RET(v) DEBUG_WRITELINE("return: %d", v) -#ifdef DEBUG_ESPNOW +#if defined(DEBUG_ESPNOW) #define DEBUG_WRITELINE(...) \ { \ char temporaryStringBuffer1[64]; \ From 8984090db8bb84cfd1e0456e82013cea42c81deb Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Wed, 29 Dec 2021 19:54:09 +0000 Subject: [PATCH 13/24] more debug log space --- .../nanoFramework_hardware_esp32_espnow_native.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index 584e5ad3ff..29d492d089 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -18,6 +18,7 @@ #include #include +#include #include #include @@ -30,9 +31,9 @@ #if defined(DEBUG_ESPNOW) #define DEBUG_WRITELINE(...) \ { \ - char temporaryStringBuffer1[64]; \ + char temporaryStringBuffer1[128]; \ snprintf(temporaryStringBuffer1, sizeof(temporaryStringBuffer1), __VA_ARGS__); \ - char temporaryStringBuffer2[64]; \ + char temporaryStringBuffer2[256]; \ int realStringSize=snprintf(temporaryStringBuffer2, sizeof(temporaryStringBuffer2), "\r\n*** [%s] %s\r\n", __func__, temporaryStringBuffer1); \ CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer2, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); \ } From 544e356d56c2afb83beaaf5e23158d3a0916530d Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Wed, 29 Dec 2021 19:54:52 +0000 Subject: [PATCH 14/24] wifi init --- ...Hardware_Esp32_EspNow_EspNowController.cpp | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp index 2557b02694..88f404d299 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -64,7 +64,11 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar esp_wifi_stop(); esp_wifi_deinit(); - esp_netif_create_default_wifi_sta(); + + esp_netif_init(); + //esp_netif_create_default_wifi_sta(); + //esp_netif_create_default_wifi_ap(); + esp_event_loop_create_default(); DEBUG_WRITELINE("WiFi init"); @@ -73,27 +77,33 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar if (ret == ESP_OK) { - DEBUG_WRITELINE("WiFi mode set"); + DEBUG_WRITELINE("set WiFi mode"); ret = esp_wifi_set_mode(WIFI_MODE_STA); if (ret == ESP_OK) { + DEBUG_WRITELINE("start WiFi"); - DEBUG_WRITELINE("ESPNOW init"); - - ret = esp_now_init(); + ret = esp_wifi_start(); if (ret == ESP_OK) { - DEBUG_WRITELINE("ESPNOW reg recvcb"); + DEBUG_WRITELINE("ESPNOW init"); - ret = esp_now_register_recv_cb(DataRecvCb); + ret = esp_now_init(); if (ret == ESP_OK) { - DEBUG_WRITELINE("ESPNOW reg sendcb"); + DEBUG_WRITELINE("ESPNOW reg recvcb"); + + ret = esp_now_register_recv_cb(DataRecvCb); + if (ret == ESP_OK) + { + + DEBUG_WRITELINE("ESPNOW reg sendcb"); - ret = esp_now_register_send_cb(DataSentCb); + ret = esp_now_register_send_cb(DataSentCb); + } } } } @@ -140,7 +150,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar int32_t dataLen = stack.Arg3().NumericByRef().s4; - DEBUG_WRITELINE("sending %d bytes", dataLen); + DEBUG_WRITELINE("sending %d: bytes to peer mac: %x:%x:%x:%x:%x:%x, data[0]: %x", dataLen, peerMac[0], peerMac[1], peerMac[2], peerMac[3], peerMac[4], peerMac[5], data[0]); ret = esp_now_send((const uint8_t *)peerMac, (const uint8_t *)data, dataLen); @@ -163,14 +173,16 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar CLR_RT_HeapBlock_Array *peerMacArg = stack.Arg1().DereferenceArray(); char *peerMac = (char *)peerMacArg->GetFirstElement(); - uint8_t channel = (uint8_t)stack.Arg1().NumericByRef().u1; + uint8_t channel = (uint8_t)stack.Arg2().NumericByRef().u1; esp_now_peer_info_t peerInfo; - memcpy(peerInfo.peer_addr, peerMac, 6); + memset((void*)&peerInfo, 0, sizeof(peerInfo)); + memcpy(peerInfo.peer_addr, peerMac, ESP_NOW_ETH_ALEN); + peerInfo.ifidx = WIFI_IF_STA; peerInfo.channel = channel; peerInfo.encrypt = false; - DEBUG_WRITELINE("add_peer[0]: %d", peerMac[0]); + DEBUG_WRITELINE("add_peer, mac: %x:%x:%x:%x:%x:%x, ch: %d", peerMac[0], peerMac[1], peerMac[2], peerMac[3], peerMac[4], peerMac[5], channel); ret = esp_now_add_peer(&peerInfo); From 20fa635eaf74e5c7af0912ea626013ec6687d9f0 Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Thu, 30 Dec 2021 14:33:05 +0000 Subject: [PATCH 15/24] init trials --- ...Hardware_Esp32_EspNow_EspNowController.cpp | 72 +++++++++++++------ 1 file changed, 50 insertions(+), 22 deletions(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp index 88f404d299..74730e9905 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -65,49 +65,77 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar esp_wifi_stop(); esp_wifi_deinit(); - esp_netif_init(); - //esp_netif_create_default_wifi_sta(); - //esp_netif_create_default_wifi_ap(); - esp_event_loop_create_default(); + // DEBUG_WRITELINE("NVS init"); - DEBUG_WRITELINE("WiFi init"); + // ret = nvs_flash_init(); + // DEBUG_WRITELINE("nvs init: %d", ret); + // if (ret == ESP_OK) + // { + DEBUG_WRITELINE("netif init"); - wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); - ret = esp_wifi_init(&cfg); - if (ret == ESP_OK) - { - - DEBUG_WRITELINE("set WiFi mode"); - - ret = esp_wifi_set_mode(WIFI_MODE_STA); + ret = esp_netif_init(); if (ret == ESP_OK) { - DEBUG_WRITELINE("start WiFi"); + // DEBUG_WRITELINE("create defaults"); + + // esp_netif_create_default_wifi_sta(); + // esp_netif_create_default_wifi_ap(); - ret = esp_wifi_start(); if (ret == ESP_OK) { - DEBUG_WRITELINE("ESPNOW init"); + DEBUG_WRITELINE("WiFi init"); + + wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); + //cfg.nvs_enable = false; // overrides CONFIG_ESP32_WIFI_NVS_ENABLED - ret = esp_now_init(); + + ret = esp_wifi_init(&cfg); if (ret == ESP_OK) { - DEBUG_WRITELINE("ESPNOW reg recvcb"); + DEBUG_WRITELINE("set WiFi storage"); - ret = esp_now_register_recv_cb(DataRecvCb); + ret = esp_wifi_set_storage(WIFI_STORAGE_RAM); if (ret == ESP_OK) { - DEBUG_WRITELINE("ESPNOW reg sendcb"); + DEBUG_WRITELINE("set WiFi mode"); + + ret = esp_wifi_set_mode(WIFI_MODE_STA); + if (ret == ESP_OK) + { + + DEBUG_WRITELINE("start WiFi"); + + ret = esp_wifi_start(); + if (ret == ESP_OK) + { + + DEBUG_WRITELINE("ESPNOW init"); + + ret = esp_now_init(); + if (ret == ESP_OK) + { + + DEBUG_WRITELINE("ESPNOW reg recvcb"); + + ret = esp_now_register_recv_cb(DataRecvCb); + if (ret == ESP_OK) + { + + DEBUG_WRITELINE("ESPNOW reg sendcb"); - ret = esp_now_register_send_cb(DataSentCb); + ret = esp_now_register_send_cb(DataSentCb); + } + } + } + } } } } } - } +// } DEBUG_FEXIT_RET(ret); From 493a142d4622a4ccd8f7e60dbe744f35fa9f5f88 Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Thu, 30 Dec 2021 22:37:44 +0000 Subject: [PATCH 16/24] fix init seq --- ...Hardware_Esp32_EspNow_EspNowController.cpp | 60 +++++++------------ 1 file changed, 21 insertions(+), 39 deletions(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp index 74730e9905..eb8d3905fa 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -65,77 +65,59 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar esp_wifi_stop(); esp_wifi_deinit(); - // DEBUG_WRITELINE("NVS init"); + DEBUG_WRITELINE("netif init"); - // ret = nvs_flash_init(); - // DEBUG_WRITELINE("nvs init: %d", ret); - // if (ret == ESP_OK) - // { - DEBUG_WRITELINE("netif init"); + ret = esp_netif_init(); + if (ret == ESP_OK) + { - ret = esp_netif_init(); + DEBUG_WRITELINE("WiFi init"); + + wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); + ret = esp_wifi_init(&cfg); if (ret == ESP_OK) { - // DEBUG_WRITELINE("create defaults"); - // esp_netif_create_default_wifi_sta(); - // esp_netif_create_default_wifi_ap(); + DEBUG_WRITELINE("set WiFi storage"); + ret = esp_wifi_set_storage(WIFI_STORAGE_RAM); if (ret == ESP_OK) { - DEBUG_WRITELINE("WiFi init"); - - wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); - //cfg.nvs_enable = false; // overrides CONFIG_ESP32_WIFI_NVS_ENABLED + DEBUG_WRITELINE("set WiFi mode"); - - ret = esp_wifi_init(&cfg); + ret = esp_wifi_set_mode(WIFI_MODE_STA); if (ret == ESP_OK) { - DEBUG_WRITELINE("set WiFi storage"); + DEBUG_WRITELINE("start WiFi"); - ret = esp_wifi_set_storage(WIFI_STORAGE_RAM); + ret = esp_wifi_start(); if (ret == ESP_OK) { - DEBUG_WRITELINE("set WiFi mode"); + DEBUG_WRITELINE("ESPNOW init"); - ret = esp_wifi_set_mode(WIFI_MODE_STA); + ret = esp_now_init(); if (ret == ESP_OK) { - DEBUG_WRITELINE("start WiFi"); + DEBUG_WRITELINE("ESPNOW reg recvcb"); - ret = esp_wifi_start(); + ret = esp_now_register_recv_cb(DataRecvCb); if (ret == ESP_OK) { - DEBUG_WRITELINE("ESPNOW init"); - - ret = esp_now_init(); - if (ret == ESP_OK) - { - - DEBUG_WRITELINE("ESPNOW reg recvcb"); - - ret = esp_now_register_recv_cb(DataRecvCb); - if (ret == ESP_OK) - { - - DEBUG_WRITELINE("ESPNOW reg sendcb"); + DEBUG_WRITELINE("ESPNOW reg sendcb"); - ret = esp_now_register_send_cb(DataSentCb); - } - } + ret = esp_now_register_send_cb(DataSentCb); } } } } } } -// } + } DEBUG_FEXIT_RET(ret); From 440547497acebedcfa2c00e2f9ef82a33360e110 Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Fri, 31 Dec 2021 00:17:57 +0000 Subject: [PATCH 17/24] Event internals shouldnt be nested classes --- src/CLR/Core/TypeSystem.cpp | 4 +- ...Framework_hardware_esp32_espnow_native.cpp | 6 +-- ...noFramework_hardware_esp32_espnow_native.h | 43 ++++++++++--------- ...w_EspNowController__EspNowEventHandler.cpp | 20 ++++++--- 4 files changed, 40 insertions(+), 33 deletions(-) diff --git a/src/CLR/Core/TypeSystem.cpp b/src/CLR/Core/TypeSystem.cpp index f90fc5529b..397d5a0950 100644 --- a/src/CLR/Core/TypeSystem.cpp +++ b/src/CLR/Core/TypeSystem.cpp @@ -2844,8 +2844,8 @@ static const TypeIndexLookup c_TypeIndexLookup[] = { TIL("nanoFramework.Hardware.Esp32.Rmt", "RmtCommand", m_RmtCommand), - TIL("nanoFramework.Hardware.Esp32.EspNow.EspNowController", "DataSentEventInternal", m_Esp32EspNowDataSentEvent), - TIL("nanoFramework.Hardware.Esp32.EspNow.EspNowController", "DataRecvEventInternal", m_Esp32EspNowDataRecvEvent), + TIL("nanoFramework.Hardware.Esp32.EspNow", "DataSentEventInternal", m_Esp32EspNowDataSentEvent), + TIL("nanoFramework.Hardware.Esp32.EspNow", "DataRecvEventInternal", m_Esp32EspNowDataRecvEvent), #undef TIL }; diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp index 4e68eb88a6..ecdeea8340 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp @@ -18,6 +18,8 @@ static const CLR_RT_MethodHandler method_lookup[] = NULL, NULL, NULL, + NULL, + NULL, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeInitialize___I4, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeDispose___VOID__BOOLEAN, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4, @@ -33,8 +35,6 @@ static const CLR_RT_MethodHandler method_lookup[] = NULL, NULL, NULL, - NULL, - NULL, Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler::ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime, NULL, NULL, @@ -43,7 +43,7 @@ static const CLR_RT_MethodHandler method_lookup[] = const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow = { "nanoFramework.Hardware.Esp32.EspNow", - 0xAA40FE4D, + 0x78706373, method_lookup, { 0, 9, 99, 999 } }; diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index 29d492d089..119c4a0b7d 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -31,10 +31,10 @@ #if defined(DEBUG_ESPNOW) #define DEBUG_WRITELINE(...) \ { \ - char temporaryStringBuffer1[128]; \ + char temporaryStringBuffer1[64]; \ snprintf(temporaryStringBuffer1, sizeof(temporaryStringBuffer1), __VA_ARGS__); \ - char temporaryStringBuffer2[256]; \ - int realStringSize=snprintf(temporaryStringBuffer2, sizeof(temporaryStringBuffer2), "\r\n*** [%s] %s\r\n", __func__, temporaryStringBuffer1); \ + char temporaryStringBuffer2[128]; \ + int realStringSize=snprintf(temporaryStringBuffer2, sizeof(temporaryStringBuffer2), "\r\n[%s] %s\r\n", __func__, temporaryStringBuffer1); \ CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer2, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); \ } @@ -70,6 +70,16 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware }; +struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal +{ + static const int FIELD__PeerMac = 3; + static const int FIELD__Data = 4; + static const int FIELD__DataLen = 5; + + //--// + +}; + struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventArgs { static const int FIELD__PeerMac = 1; @@ -79,6 +89,15 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware }; +struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventInternal +{ + static const int FIELD__PeerMac = 3; + static const int FIELD__Status = 4; + + //--// + +}; + struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController { static const int FIELD_STATIC__BROADCASTMAC = 0; @@ -101,24 +120,6 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static void DataRecvCb(const uint8_t * mac, const uint8_t *incomingData, int len); }; -struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataRecvEventInternal -{ - static const int FIELD__PeerMac = 3; - static const int FIELD__Data = 4; - static const int FIELD__DataLen = 5; - - //--// - -}; - -struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataSentEventInternal -{ - static const int FIELD__PeerMac = 3; - static const int FIELD__Status = 4; - - //--// - -}; struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler { diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp index d44f7bcc94..c60b2eeb24 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp @@ -52,9 +52,10 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar EspNowDataSentEventData *sentEventData = (EspNowDataSentEventData *)stack.Arg2().NumericByRef().u4; CLR_RT_HeapBlock *dataSentEvent; - + // create nanoFramework.Hardware.Esp32.EspNow.EspNowController.DataSentEventInternal instance to return - CLR_RT_HeapBlock &clrRet = stack.PushValue(); + CLR_RT_HeapBlock &clrRet = stack.PushValueAndClear(); + NANOCLR_CHECK_HRESULT( g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_Esp32EspNowDataSentEvent)); @@ -67,12 +68,12 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar // clrRet.PeerMac NANOCLR_CHECK_HRESULT( CopyByteArrayToCLRArray( - dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataSentEventInternal::FIELD__PeerMac], + dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventInternal::FIELD__PeerMac], sentEventData->peer_mac, 6)); // clrRet.Status - dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataSentEventInternal::FIELD__Status].SetInteger(sentEventData->status); + dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventInternal::FIELD__Status].SetInteger(sentEventData->status); DEBUG_FEXIT(); @@ -103,19 +104,19 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar // clrRet.PeerMac NANOCLR_CHECK_HRESULT( CopyByteArrayToCLRArray( - dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataRecvEventInternal::FIELD__PeerMac], + dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal::FIELD__PeerMac], recvEventData->peer_mac, 6)); // clrRet.Data NANOCLR_CHECK_HRESULT( CopyByteArrayToCLRArray( - dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataRecvEventInternal::FIELD__Data], + dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal::FIELD__Data], recvEventData->data, recvEventData->dataLen)); // clrRet.DataLen - dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__DataRecvEventInternal::FIELD__DataLen].SetInteger(recvEventData->dataLen); + dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal::FIELD__DataLen].SetInteger(recvEventData->dataLen); DEBUG_FEXIT(); @@ -145,6 +146,11 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_SET_AND_LEAVE(stack.NotImplementedStub()); } + if (FAILED(hr)) + { + DEBUG_WRITELINE("failed hr: %x", hr); + } + DEBUG_FEXIT(); NANOCLR_NOCLEANUP(); From 926e96e8493e4b2a5c7d047aae7c1f136bea09fb Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Fri, 31 Dec 2021 04:06:13 +0000 Subject: [PATCH 18/24] Turn debug messages off --- .../nanoFramework_hardware_esp32_espnow_native.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index 119c4a0b7d..be6b5526c0 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -22,7 +22,7 @@ #include #include -#define DEBUG_ESPNOW 1 +//#define DEBUG_ESPNOW 1 #define DEBUG_FENTER() DEBUG_WRITELINE("entry") #define DEBUG_FEXIT() DEBUG_WRITELINE("exit") From f8aa5315696d84a74441bf8cec03579388a90224 Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Thu, 6 Jan 2022 15:01:24 +0000 Subject: [PATCH 19/24] Unnecessary wifi initialization steps removed. --- ...Hardware_Esp32_EspNow_EspNowController.cpp | 51 +++---------------- 1 file changed, 6 insertions(+), 45 deletions(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp index eb8d3905fa..3b1e92efab 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -62,60 +62,21 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar esp_err_t ret; - esp_wifi_stop(); - esp_wifi_deinit(); + DEBUG_WRITELINE("ESPNOW init"); - DEBUG_WRITELINE("netif init"); - - ret = esp_netif_init(); + ret = esp_now_init(); if (ret == ESP_OK) { - DEBUG_WRITELINE("WiFi init"); + DEBUG_WRITELINE("ESPNOW reg recvcb"); - wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); - ret = esp_wifi_init(&cfg); + ret = esp_now_register_recv_cb(DataRecvCb); if (ret == ESP_OK) { - DEBUG_WRITELINE("set WiFi storage"); - - ret = esp_wifi_set_storage(WIFI_STORAGE_RAM); - if (ret == ESP_OK) - { - - DEBUG_WRITELINE("set WiFi mode"); - - ret = esp_wifi_set_mode(WIFI_MODE_STA); - if (ret == ESP_OK) - { - - DEBUG_WRITELINE("start WiFi"); - - ret = esp_wifi_start(); - if (ret == ESP_OK) - { - - DEBUG_WRITELINE("ESPNOW init"); - - ret = esp_now_init(); - if (ret == ESP_OK) - { - - DEBUG_WRITELINE("ESPNOW reg recvcb"); - - ret = esp_now_register_recv_cb(DataRecvCb); - if (ret == ESP_OK) - { - - DEBUG_WRITELINE("ESPNOW reg sendcb"); + DEBUG_WRITELINE("ESPNOW reg sendcb"); - ret = esp_now_register_send_cb(DataSentCb); - } - } - } - } - } + ret = esp_now_register_send_cb(DataSentCb); } } From 3b287c9ee29e9c5594b22e04ebc05c6294678c06 Mon Sep 17 00:00:00 2001 From: nfbot Date: Thu, 6 Jan 2022 15:25:42 +0000 Subject: [PATCH 20/24] Code style fixes Automated fixes for code style. --- src/HAL/Include/nanoHAL_v2.h | 1 - ...noFramework_hardware_esp32_espnow_native.h | 54 +++++------ ...Hardware_Esp32_EspNow_EspNowController.cpp | 43 ++++++--- ...w_EspNowController__EspNowEventHandler.cpp | 89 ++++++++++--------- 4 files changed, 106 insertions(+), 81 deletions(-) diff --git a/src/HAL/Include/nanoHAL_v2.h b/src/HAL/Include/nanoHAL_v2.h index 11c4dee513..4888c35035 100644 --- a/src/HAL/Include/nanoHAL_v2.h +++ b/src/HAL/Include/nanoHAL_v2.h @@ -115,7 +115,6 @@ typedef enum SLEEP_LEVEL // keep in sync with nanoFramework.Hardware.Esp32.EspNow.EspNowController #define EVENT_ESP32_ESPNOW 140 - #define PAL_EVENT_TOUCH 0x1 #define PAL_EVENT_KEY 0x2 #define PAL_EVENT_MOUSE 0x4 diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h index be6b5526c0..3823de8e56 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h @@ -1,6 +1,6 @@ //----------------------------------------------------------------------------- // -// ** WARNING! ** +// ** WARNING! ** // This file was generated automatically by a tool. // Re-running the tool will overwrite this file. // You should copy this file to a custom location @@ -24,38 +24,45 @@ //#define DEBUG_ESPNOW 1 -#define DEBUG_FENTER() DEBUG_WRITELINE("entry") -#define DEBUG_FEXIT() DEBUG_WRITELINE("exit") +#define DEBUG_FENTER() DEBUG_WRITELINE("entry") +#define DEBUG_FEXIT() DEBUG_WRITELINE("exit") #define DEBUG_FEXIT_RET(v) DEBUG_WRITELINE("return: %d", v) #if defined(DEBUG_ESPNOW) - #define DEBUG_WRITELINE(...) \ - { \ - char temporaryStringBuffer1[64]; \ - snprintf(temporaryStringBuffer1, sizeof(temporaryStringBuffer1), __VA_ARGS__); \ - char temporaryStringBuffer2[128]; \ - int realStringSize=snprintf(temporaryStringBuffer2, sizeof(temporaryStringBuffer2), "\r\n[%s] %s\r\n", __func__, temporaryStringBuffer1); \ - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer2, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); \ +#define DEBUG_WRITELINE(...) \ + { \ + char temporaryStringBuffer1[64]; \ + snprintf(temporaryStringBuffer1, sizeof(temporaryStringBuffer1), __VA_ARGS__); \ + char temporaryStringBuffer2[128]; \ + int realStringSize = snprintf( \ + temporaryStringBuffer2, \ + sizeof(temporaryStringBuffer2), \ + "\r\n[%s] %s\r\n", \ + __func__, \ + temporaryStringBuffer1); \ + CLR_EE_DBG_EVENT_BROADCAST( \ + CLR_DBG_Commands_c_Monitor_Message, \ + realStringSize, \ + temporaryStringBuffer2, \ + WP_Flags_c_NonCritical | WP_Flags_c_NoCaching); \ } -#else - #define DEBUG_WRITELINE(...) ; +#else +#define DEBUG_WRITELINE(...) ; #endif - #define EVENT_ESP32_ESPNOW_DATASENT 1 #define EVENT_ESP32_ESPNOW_DATARECV 2 - struct EspNowDataSentEventData { - uint8_t peer_mac[ESP_NOW_ETH_ALEN]; + uint8_t peer_mac[ESP_NOW_ETH_ALEN]; esp_now_send_status_t status; }; struct EspNowDataRecvEventData { - uint8_t peer_mac[ESP_NOW_ETH_ALEN]; + uint8_t peer_mac[ESP_NOW_ETH_ALEN]; uint8_t data[ESP_NOW_MAX_DATA_LEN]; int dataLen; }; @@ -67,7 +74,6 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static const int FIELD__DataLen = 3; //--// - }; struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal @@ -77,7 +83,6 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static const int FIELD__DataLen = 5; //--// - }; struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventArgs @@ -86,7 +91,6 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static const int FIELD__Status = 2; //--// - }; struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventInternal @@ -95,7 +99,6 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static const int FIELD__Status = 4; //--// - }; struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController @@ -117,11 +120,11 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static EspNowDataRecvEventData dataRecvEventData; static void DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status); - static void DataRecvCb(const uint8_t * mac, const uint8_t *incomingData, int len); + static void DataRecvCb(const uint8_t *mac, const uint8_t *incomingData, int len); }; - -struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler +struct + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler { static const int FIELD__controllerInstance = 1; @@ -132,18 +135,15 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static HRESULT CopyByteArrayToCLRArray(CLR_RT_HeapBlock &target, uint8_t *src, CLR_UINT32 length); static HRESULT ProcessEvent_DataSent(CLR_RT_StackFrame &stack); static HRESULT ProcessEvent_DataRecv(CLR_RT_StackFrame &stack); - }; - struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowException { static const int FIELD__esp_err = 5; //--// - }; extern const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow; -#endif //_NANOFRAMEWORK_HARDWARE_ESP32_ESPNOW_NATIVE_H_ +#endif //_NANOFRAMEWORK_HARDWARE_ESP32_ESPNOW_NATIVE_H_ diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp index 3b1e92efab..7afabf2e0d 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp @@ -12,14 +12,15 @@ #include "nanoFramework_hardware_esp32_espnow_native.h" -EspNowDataSentEventData Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - dataSentEventData; -EspNowDataRecvEventData Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - dataRecvEventData; - +EspNowDataSentEventData + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + dataSentEventData; +EspNowDataRecvEventData + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: + dataRecvEventData; void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status) + DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status) { DEBUG_FENTER(); @@ -36,7 +37,7 @@ void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_E } void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - DataRecvCb(const uint8_t * mac_addr, const uint8_t *incomingData, int len) + DataRecvCb(const uint8_t *mac_addr, const uint8_t *incomingData, int len) { DEBUG_FENTER(); @@ -54,7 +55,7 @@ void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_E } HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeInitialize___I4( CLR_RT_StackFrame &stack ) + NativeInitialize___I4(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -88,7 +89,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar } HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeDispose___VOID__BOOLEAN( CLR_RT_StackFrame &stack ) + NativeDispose___VOID__BOOLEAN(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -103,7 +104,6 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_NOCLEANUP_NOLABEL(); } - HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4(CLR_RT_StackFrame &stack) { @@ -121,7 +121,16 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar int32_t dataLen = stack.Arg3().NumericByRef().s4; - DEBUG_WRITELINE("sending %d: bytes to peer mac: %x:%x:%x:%x:%x:%x, data[0]: %x", dataLen, peerMac[0], peerMac[1], peerMac[2], peerMac[3], peerMac[4], peerMac[5], data[0]); + DEBUG_WRITELINE( + "sending %d: bytes to peer mac: %x:%x:%x:%x:%x:%x, data[0]: %x", + dataLen, + peerMac[0], + peerMac[1], + peerMac[2], + peerMac[3], + peerMac[4], + peerMac[5], + data[0]); ret = esp_now_send((const uint8_t *)peerMac, (const uint8_t *)data, dataLen); @@ -147,13 +156,21 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar uint8_t channel = (uint8_t)stack.Arg2().NumericByRef().u1; esp_now_peer_info_t peerInfo; - memset((void*)&peerInfo, 0, sizeof(peerInfo)); + memset((void *)&peerInfo, 0, sizeof(peerInfo)); memcpy(peerInfo.peer_addr, peerMac, ESP_NOW_ETH_ALEN); peerInfo.ifidx = WIFI_IF_STA; peerInfo.channel = channel; peerInfo.encrypt = false; - DEBUG_WRITELINE("add_peer, mac: %x:%x:%x:%x:%x:%x, ch: %d", peerMac[0], peerMac[1], peerMac[2], peerMac[3], peerMac[4], peerMac[5], channel); + DEBUG_WRITELINE( + "add_peer, mac: %x:%x:%x:%x:%x:%x, ch: %d", + peerMac[0], + peerMac[1], + peerMac[2], + peerMac[3], + peerMac[4], + peerMac[5], + channel); ret = esp_now_add_peer(&peerInfo); diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp index c60b2eeb24..8dde13c9fe 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp @@ -1,6 +1,6 @@ //----------------------------------------------------------------------------- // -// ** WARNING! ** +// ** WARNING! ** // This file was generated automatically by a tool. // Re-running the tool will overwrite this file. // You should copy this file to a custom location @@ -12,20 +12,18 @@ #include "nanoFramework_hardware_esp32_espnow_native.h" -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: - CopyByteArrayToCLRArray(CLR_RT_HeapBlock & target, uint8_t * src, CLR_UINT32 length ) +HRESULT + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: + CopyByteArrayToCLRArray(CLR_RT_HeapBlock &target, uint8_t *src, CLR_UINT32 length) { NANOCLR_HEADER(); DEBUG_FENTER(); - CLR_UINT8* firstTargetByte; - CLR_RT_HeapBlock_Array * targetArray; + CLR_UINT8 *firstTargetByte; + CLR_RT_HeapBlock_Array *targetArray; - NANOCLR_CHECK_HRESULT(CLR_RT_HeapBlock_Array::CreateInstance( - target, - length, - g_CLR_RT_WellKnownTypes.m_UInt8)); + NANOCLR_CHECK_HRESULT(CLR_RT_HeapBlock_Array::CreateInstance(target, length, g_CLR_RT_WellKnownTypes.m_UInt8)); targetArray = target.DereferenceArray(); if (!targetArray) @@ -36,15 +34,16 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar DEBUG_WRITELINE("copying %d bytes", length); firstTargetByte = targetArray->GetFirstElement(); - memcpy( firstTargetByte, src, length ); + memcpy(firstTargetByte, src, length); DEBUG_FEXIT(); NANOCLR_NOCLEANUP(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: - ProcessEvent_DataSent( CLR_RT_StackFrame &stack ) +HRESULT + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: + ProcessEvent_DataSent(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -58,7 +57,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_CHECK_HRESULT( g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_Esp32EspNowDataSentEvent)); - + dataSentEvent = clrRet.Dereference(); if (!dataSentEvent) { @@ -66,22 +65,27 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar } // clrRet.PeerMac - NANOCLR_CHECK_HRESULT( - CopyByteArrayToCLRArray( - dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventInternal::FIELD__PeerMac], - sentEventData->peer_mac, - 6)); + NANOCLR_CHECK_HRESULT(CopyByteArrayToCLRArray( + dataSentEvent + [Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventInternal:: + FIELD__PeerMac], + sentEventData->peer_mac, + 6)); // clrRet.Status - dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventInternal::FIELD__Status].SetInteger(sentEventData->status); + dataSentEvent + [Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventInternal:: + FIELD__Status] + .SetInteger(sentEventData->status); DEBUG_FEXIT(); NANOCLR_NOCLEANUP(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: - ProcessEvent_DataRecv( CLR_RT_StackFrame &stack ) +HRESULT + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: + ProcessEvent_DataRecv(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -89,12 +93,12 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar EspNowDataRecvEventData *recvEventData = (EspNowDataRecvEventData *)stack.Arg2().NumericByRef().u4; CLR_RT_HeapBlock *dataRecvEvent; - + // create nanoFramework.Hardware.Esp32.EspNow.EspNowController.DataRecvEventInternal instance to return CLR_RT_HeapBlock &clrRet = stack.PushValue(); NANOCLR_CHECK_HRESULT( g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_Esp32EspNowDataRecvEvent)); - + dataRecvEvent = clrRet.Dereference(); if (!dataRecvEvent) { @@ -102,28 +106,35 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar } // clrRet.PeerMac - NANOCLR_CHECK_HRESULT( - CopyByteArrayToCLRArray( - dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal::FIELD__PeerMac], - recvEventData->peer_mac, - 6)); + NANOCLR_CHECK_HRESULT(CopyByteArrayToCLRArray( + dataRecvEvent + [Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal:: + FIELD__PeerMac], + recvEventData->peer_mac, + 6)); // clrRet.Data - NANOCLR_CHECK_HRESULT( - CopyByteArrayToCLRArray( - dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal::FIELD__Data], - recvEventData->data, - recvEventData->dataLen)); + NANOCLR_CHECK_HRESULT(CopyByteArrayToCLRArray( + dataRecvEvent + [Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal:: + FIELD__Data], + recvEventData->data, + recvEventData->dataLen)); // clrRet.DataLen - dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal::FIELD__DataLen].SetInteger(recvEventData->dataLen); + dataRecvEvent + [Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal:: + FIELD__DataLen] + .SetInteger(recvEventData->dataLen); DEBUG_FEXIT(); - NANOCLR_NOCLEANUP();} + NANOCLR_NOCLEANUP(); +} -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: - ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime( CLR_RT_StackFrame &stack ) +HRESULT + Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: + ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -134,7 +145,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar DEBUG_WRITELINE("subevent: %d", subEvent); - switch(subEvent) + switch (subEvent) { case EVENT_ESP32_ESPNOW_DATASENT: hr = ProcessEvent_DataSent(stack); @@ -155,5 +166,3 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_NOCLEANUP(); } - - From d94745caa77f4b3cf7d4dd0ccf0b5f81e49ff7bf Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Sun, 16 Jan 2022 22:50:07 +0100 Subject: [PATCH 21/24] Namespace moved --- .devcontainer/devcontainer.json | 8 ++- .vscode/cmake-variants-DEVCONTAINER.json | 16 +++--- .vscode/cmake-variants.TEMPLATE.json | 2 +- CMake/Modules/FindNF_NativeAssemblies.cmake | 8 +-- CMake/Modules/FindnanoFramework.Espnow.cmake | 45 ++++++++++++++++ ...dnanoFramework.Hardware.Esp32.EspNow.cmake | 45 ---------------- build.ps1 | 2 +- src/CLR/Core/TypeSystem.cpp | 4 +- src/HAL/Include/nanoHAL_v2.h | 4 +- .../nanoFramework_espnow_native.cpp | 51 +++++++++++++++++++ .../nanoFramework_espnow_native.h} | 26 +++++----- ...nanoFramework_Espnow_EspNowController.cpp} | 29 +++++------ ..._EspNowController__EspNowEventHandler.cpp} | 39 +++++++------- ...Framework_hardware_esp32_espnow_native.cpp | 51 ------------------- 14 files changed, 164 insertions(+), 166 deletions(-) create mode 100644 CMake/Modules/FindnanoFramework.Espnow.cmake delete mode 100644 CMake/Modules/FindnanoFramework.Hardware.Esp32.EspNow.cmake create mode 100644 targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.cpp rename targets/ESP32/_nanoCLR/{nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h => nanoFramework.Espnow/nanoFramework_espnow_native.h} (78%) rename targets/ESP32/_nanoCLR/{nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp => nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController.cpp} (75%) rename targets/ESP32/_nanoCLR/{nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp => nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler.cpp} (63%) delete mode 100644 targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index b9bd493825..4e6f08d76d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -16,6 +16,10 @@ // Keep command history "source=nano-bashhistory,target=/home/vscode/commandhistory,type=volume", ], + "workspaceFolder": "/workspace", + //"workspaceMount": "type=bind,source=${localWorkspaceFolder},target=/worspaces/${localWorkspaceFolderBasename},consistency=cached", + "workspaceMount": "source=nf-interpreter,target=/workspace,type=volume", + // Set *default* container specific settings.json values on container create. "settings": { "cmake.preferredGenerators": [ @@ -31,8 +35,8 @@ }, // Add the IDs of extensions you want installed when the container is created. "extensions": [ - "ms-vsliveshare.vsliveshare-pack", - "streetsidesoftware.code-spell-checker", + //"ms-vsliveshare.vsliveshare-pack", + //"streetsidesoftware.code-spell-checker", "twxs.cmake", "ms-vscode.cmake-tools" ], diff --git a/.vscode/cmake-variants-DEVCONTAINER.json b/.vscode/cmake-variants-DEVCONTAINER.json index cdace2c235..731555d985 100644 --- a/.vscode/cmake-variants-DEVCONTAINER.json +++ b/.vscode/cmake-variants-DEVCONTAINER.json @@ -336,7 +336,7 @@ "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON" + "API_nanoFramework.Espnow": "ON" } }, "ESP32_REV0_BLE": { @@ -384,7 +384,7 @@ "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON" + "API_nanoFramework.Espnow": "ON" } }, "ESP32_PICO": { @@ -433,7 +433,7 @@ "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON" + "API_nanoFramework.Espnow": "ON" } }, "ESP_WROVER_KIT": { @@ -480,7 +480,7 @@ "API_nanoFramework.Hardware.Esp32.Rmt": "ON", "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Graphics": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "GRAPHICS_DISPLAY": "ILI9341_240x320_SPI.cpp", "TOUCHPANEL_DEVICE": "XPT2046.cpp", "GRAPHICS_DISPLAY_INTERFACE": "Spi_To_Display.cpp", @@ -533,7 +533,7 @@ "API_nanoFramework.Devices.OneWire": "OFF", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON" + "API_nanoFramework.Espnow": "ON" } }, "KALUGA_1": { @@ -581,7 +581,7 @@ "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Devices.OneWire": "OFF", "API_nanoFramework.Graphics": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "GRAPHICS_DISPLAY": "ILI9341_240x320_SPI.cpp", "TOUCHPANEL_DEVICE": "", "GRAPHICS_DISPLAY_INTERFACE": "Spi_To_Display.cpp", @@ -632,7 +632,7 @@ "API_nanoFramework.Hardware.Esp32.Rmt": "ON", "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Graphics": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "GRAPHICS_DISPLAY": "ILI9341_240x320_SPI.cpp", "TOUCHPANEL_DEVICE": "XPT2046.cpp", "GRAPHICS_DISPLAY_INTERFACE": "Spi_To_Display.cpp", @@ -686,7 +686,7 @@ "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON" + "API_nanoFramework.Espnow": "ON" } }, "TI_CC1352R1_LAUNCHXL": { diff --git a/.vscode/cmake-variants.TEMPLATE.json b/.vscode/cmake-variants.TEMPLATE.json index 60bb73efec..8cf670ec64 100644 --- a/.vscode/cmake-variants.TEMPLATE.json +++ b/.vscode/cmake-variants.TEMPLATE.json @@ -115,7 +115,7 @@ "API_nanoFramework.TI.EasyLink": "OFF-default-ON-to-add-this-API", "API_nanoFramework.Hardware.Esp32.Rmt": "OFF-default-ON-to-add-this-API", "API_nanoFramework.Device.Bluetooth": "OFF-default-ON-to-add-this-API", - "API_nanoFramework.Hardware.Esp32.EspNow": "OFF-default-ON-to-add-this-API" + "API_nanoFramework.Espnow": "OFF-default-ON-to-add-this-API" } } } diff --git a/CMake/Modules/FindNF_NativeAssemblies.cmake b/CMake/Modules/FindNF_NativeAssemblies.cmake index 7ac0edc230..768bb8898d 100644 --- a/CMake/Modules/FindNF_NativeAssemblies.cmake +++ b/CMake/Modules/FindNF_NativeAssemblies.cmake @@ -39,7 +39,7 @@ option(API_nanoFramework.Device.Bluetooth "option for nanoFramework.Device # 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.Hardware.Esp32.EspNow "option for nanoFramework.Hardware.Esp32.EspNow") +option(API_nanoFramework.Espnow "option for nanoFramework.Espnow") @@ -179,10 +179,10 @@ if(API_nanoFramework.Hardware.Esp32.Rmt) PerformSettingsForApiEntry("nanoFramework.Hardware.Esp32.Rmt") endif() -# nanoFramework.Hardware.Esp32.EspNow -if(API_nanoFramework.Hardware.Esp32.EspNow) +# nanoFramework.Espnow +if(API_nanoFramework.Espnow) ##### API name here (doted name) - PerformSettingsForApiEntry("nanoFramework.Hardware.Esp32.EspNow") + PerformSettingsForApiEntry("nanoFramework.Espnow") endif() # nanoFramework.Device.Bluetooth diff --git a/CMake/Modules/FindnanoFramework.Espnow.cmake b/CMake/Modules/FindnanoFramework.Espnow.cmake new file mode 100644 index 0000000000..0c4c437afd --- /dev/null +++ b/CMake/Modules/FindnanoFramework.Espnow.cmake @@ -0,0 +1,45 @@ +# +# 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 + ) + # message("${SRC_FILE} >> ${nanoFramework.Espnow_SRC_FILE}") # debug helper + 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/FindnanoFramework.Hardware.Esp32.EspNow.cmake b/CMake/Modules/FindnanoFramework.Hardware.Esp32.EspNow.cmake deleted file mode 100644 index 727b11e8e1..0000000000 --- a/CMake/Modules/FindnanoFramework.Hardware.Esp32.EspNow.cmake +++ /dev/null @@ -1,45 +0,0 @@ -# -# 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.Hardware.Esp32.EspNow) - - -# set include directories -list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/CLR/Core) -list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/CLR/Include) -list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/HAL/Include) -list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/PAL/Include) -list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${BASE_PATH_FOR_THIS_MODULE}) -list(APPEND nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/src/nanoFramework.Hardware.Esp32.EspNow) - -# source files -set(nanoFramework.Hardware.Esp32.EspNow_SRCS - - nanoFramework_hardware_esp32_espnow_native.cpp - - - nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp - nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp - -) - -foreach(SRC_FILE ${nanoFramework.Hardware.Esp32.EspNow_SRCS}) - set(nanoFramework.Hardware.Esp32.EspNow_SRC_FILE SRC_FILE-NOTFOUND) - find_file(nanoFramework.Hardware.Esp32.EspNow_SRC_FILE ${SRC_FILE} - PATHS - ${BASE_PATH_FOR_THIS_MODULE} - ${TARGET_BASE_LOCATION} - ${PROJECT_SOURCE_DIR}/src/nanoFramework.Hardware.Esp32.EspNow - - CMAKE_FIND_ROOT_PATH_BOTH - ) - # message("${SRC_FILE} >> ${nanoFramework.Hardware.Esp32.EspNow_SRC_FILE}") # debug helper - list(APPEND nanoFramework.Hardware.Esp32.EspNow_SOURCES ${nanoFramework.Hardware.Esp32.EspNow_SRC_FILE}) -endforeach() - -include(FindPackageHandleStandardArgs) - -FIND_PACKAGE_HANDLE_STANDARD_ARGS(nanoFramework.Hardware.Esp32.EspNow DEFAULT_MSG nanoFramework.Hardware.Esp32.EspNow_INCLUDE_DIRS nanoFramework.Hardware.Esp32.EspNow_SOURCES) diff --git a/build.ps1 b/build.ps1 index 0a8c5abef3..c712578b32 100644 --- a/build.ps1 +++ b/build.ps1 @@ -54,7 +54,7 @@ elseif ($TargetBoard -eq "ESP32_WROOM_32") { # run the install tools Invoke-Expression "$PSScriptRoot\install-scripts\install-esp32-tools.ps1 -Path $Path" - $cmakeOptions = " -DTARGET_SERIES=ESP32 -DRTOS=ESP32 -DNF_FEATURE_DEBUGGER=ON -DNF_FEATURE_RTC=ON -DNF_FEATURE_HAS_CONFIG_BLOCK=ON -DNF_FEATURE_HAS_SDCARD=ON -DAPI_System.IO.FileSystem=ON -DAPI_System.Math=ON -DAPI_Windows.Devices.Gpio=ON -DAPI_System.Device.Gpio=ON -DAPI_Windows.Devices.Spi=ON -DAPI_System.Device.Spi=ON -DAPI_Windows.Devices.I2c=ON -DAPI_System.Device.I2c=ON -DAPI_Windows.Devices.Pwm=ON -DAPI_Windows.Devices.SerialCommunication=ON -DAPI_System.IO.Ports=ON -DAPI_Windows.Devices.Adc=ON -DAPI_System.Net=ON -DAPI_Windows.Devices.Wifi=ON -DNF_SECURITY_MBEDTLS=ON -DAPI_Hardware.Esp32=ON -DSUPPORT_ANY_BASE_CONVERSION=ON -DAPI_nanoFramework.Devices.OneWire=ON -DAPI_nanoFramework.ResourceManager=ON -DAPI_nanoFramework.System.Collections=ON -DAPI_nanoFramework.System.Text=ON -DAPI_nanoFramework.Hardware.Esp32.Rmt=ON -DAPI_nanoFramework.Hardware.Esp32.EspNow=ON -DAPI_System.Device.Dac=ON " + $cmakeOptions = " -DTARGET_SERIES=ESP32 -DRTOS=ESP32 -DNF_FEATURE_DEBUGGER=ON -DNF_FEATURE_RTC=ON -DNF_FEATURE_HAS_CONFIG_BLOCK=ON -DNF_FEATURE_HAS_SDCARD=ON -DAPI_System.IO.FileSystem=ON -DAPI_System.Math=ON -DAPI_Windows.Devices.Gpio=ON -DAPI_System.Device.Gpio=ON -DAPI_Windows.Devices.Spi=ON -DAPI_System.Device.Spi=ON -DAPI_Windows.Devices.I2c=ON -DAPI_System.Device.I2c=ON -DAPI_Windows.Devices.Pwm=ON -DAPI_Windows.Devices.SerialCommunication=ON -DAPI_System.IO.Ports=ON -DAPI_Windows.Devices.Adc=ON -DAPI_System.Net=ON -DAPI_Windows.Devices.Wifi=ON -DNF_SECURITY_MBEDTLS=ON -DAPI_Hardware.Esp32=ON -DSUPPORT_ANY_BASE_CONVERSION=ON -DAPI_nanoFramework.Devices.OneWire=ON -DAPI_nanoFramework.ResourceManager=ON -DAPI_nanoFramework.System.Collections=ON -DAPI_nanoFramework.System.Text=ON -DAPI_nanoFramework.Hardware.Esp32.Rmt=ON -DAPI_nanoFramework.Espnow=ON -DAPI_System.Device.Dac=ON " # CMake prep $cmakePrep = " -G Ninja -DCMAKE_TOOLCHAIN_FILE=""CMake/toolchain.xtensa-esp32-elf.cmake"" -DCMAKE_BUILD_TYPE=Debug -DBUILD_VERSION=9.99.999 -DTARGET_BOARD=$TargetBoard -DTARGET_NAME=$TargetBoard $cmakeOptions .." diff --git a/src/CLR/Core/TypeSystem.cpp b/src/CLR/Core/TypeSystem.cpp index 397d5a0950..2527259b1e 100644 --- a/src/CLR/Core/TypeSystem.cpp +++ b/src/CLR/Core/TypeSystem.cpp @@ -2844,8 +2844,8 @@ static const TypeIndexLookup c_TypeIndexLookup[] = { TIL("nanoFramework.Hardware.Esp32.Rmt", "RmtCommand", m_RmtCommand), - TIL("nanoFramework.Hardware.Esp32.EspNow", "DataSentEventInternal", m_Esp32EspNowDataSentEvent), - TIL("nanoFramework.Hardware.Esp32.EspNow", "DataRecvEventInternal", m_Esp32EspNowDataRecvEvent), + TIL("nanoFramework.Espnow", "DataSentEventInternal", m_EspNowDataSentEvent), + TIL("nanoFramework.Espnow", "DataRecvEventInternal", m_EspNowDataRecvEvent), #undef TIL }; diff --git a/src/HAL/Include/nanoHAL_v2.h b/src/HAL/Include/nanoHAL_v2.h index 11c4dee513..23985a1a26 100644 --- a/src/HAL/Include/nanoHAL_v2.h +++ b/src/HAL/Include/nanoHAL_v2.h @@ -112,8 +112,8 @@ typedef enum SLEEP_LEVEL #define EVENT_TOUCH 120 #define EVENT_GESTURE 130 -// keep in sync with nanoFramework.Hardware.Esp32.EspNow.EspNowController -#define EVENT_ESP32_ESPNOW 140 +// keep in sync with nanoFramework.Espnow.EspNowController +#define EVENT_ESPNOW 140 #define PAL_EVENT_TOUCH 0x1 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..e299fc06e3 --- /dev/null +++ b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.cpp @@ -0,0 +1,51 @@ +#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, + 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, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler::ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime, + NULL, + NULL, +}; + +const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Espnow = +{ + "nanoFramework.Espnow", + 0x3C8132ED, + method_lookup, + { 0, 9, 99, 999 } +}; + +// clang-format on diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h similarity index 78% rename from targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h rename to targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h index be6b5526c0..a551f615f9 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h @@ -10,8 +10,8 @@ // //----------------------------------------------------------------------------- -#ifndef _NANOFRAMEWORK_HARDWARE_ESP32_ESPNOW_NATIVE_H_ -#define _NANOFRAMEWORK_HARDWARE_ESP32_ESPNOW_NATIVE_H_ +#ifndef _NANOFRAMEWORK_ESPNOW_NATIVE_H_ +#define _NANOFRAMEWORK_ESPNOW_NATIVE_H_ #include #include @@ -60,7 +60,8 @@ struct EspNowDataRecvEventData int dataLen; }; -struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataReceivedEventArgs + +struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataReceivedEventArgs { static const int FIELD__PeerMac = 1; static const int FIELD__Data = 2; @@ -70,7 +71,7 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware }; -struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal +struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal { static const int FIELD__PeerMac = 3; static const int FIELD__Data = 4; @@ -80,7 +81,7 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware }; -struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventArgs +struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventArgs { static const int FIELD__PeerMac = 1; static const int FIELD__Status = 2; @@ -89,7 +90,7 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware }; -struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventInternal +struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal { static const int FIELD__PeerMac = 3; static const int FIELD__Status = 4; @@ -98,7 +99,7 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware }; -struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController +struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController { static const int FIELD_STATIC__BROADCASTMAC = 0; @@ -118,10 +119,10 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware static void DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status); static void DataRecvCb(const uint8_t * mac, const uint8_t *incomingData, int len); -}; +}; -struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler +struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler { static const int FIELD__controllerInstance = 1; @@ -135,8 +136,7 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware }; - -struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowException +struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowException { static const int FIELD__esp_err = 5; @@ -144,6 +144,6 @@ struct Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware }; -extern const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow; +extern const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Espnow; -#endif //_NANOFRAMEWORK_HARDWARE_ESP32_ESPNOW_NATIVE_H_ +#endif //_NANOFRAMEWORK_ESPNOW_NATIVE_H_ diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController.cpp similarity index 75% rename from targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp rename to targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController.cpp index eb8d3905fa..5119c99be1 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController.cpp @@ -1,6 +1,6 @@ //----------------------------------------------------------------------------- // -// ** WARNING! ** +// ** WARNING! ** // This file was generated automatically by a tool. // Re-running the tool will overwrite this file. // You should copy this file to a custom location @@ -10,15 +10,15 @@ // //----------------------------------------------------------------------------- -#include "nanoFramework_hardware_esp32_espnow_native.h" +#include "nanoFramework_espnow_native.h" -EspNowDataSentEventData Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: +EspNowDataSentEventData Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: dataSentEventData; -EspNowDataRecvEventData Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: +EspNowDataRecvEventData Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: dataRecvEventData; -void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: +void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status) { DEBUG_FENTER(); @@ -30,12 +30,12 @@ void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_E DEBUG_WRITELINE("Posting managed SENT event"); - PostManagedEvent(EVENT_ESP32_ESPNOW, 0, EVENT_ESP32_ESPNOW_DATASENT, (CLR_UINT32)&dataSentEventData); + PostManagedEvent(EVENT_ESPNOW, 0, EVENT_ESPNOW_DATASENT, (CLR_UINT32)&dataSentEventData); DEBUG_FEXIT(); } -void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: +void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: DataRecvCb(const uint8_t * mac_addr, const uint8_t *incomingData, int len) { DEBUG_FENTER(); @@ -48,13 +48,12 @@ void Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_E DEBUG_WRITELINE("Posting managed RECV event"); - PostManagedEvent(EVENT_ESP32_ESPNOW, 0, EVENT_ESP32_ESPNOW_DATARECV, (CLR_UINT32)&dataRecvEventData); + PostManagedEvent(EVENT_ESPNOW, 0, EVENT_ESPNOW_DATARECV, (CLR_UINT32)&dataRecvEventData); DEBUG_FEXIT(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeInitialize___I4( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeInitialize___I4( CLR_RT_StackFrame &stack ) { NANOCLR_HEADER(); @@ -126,8 +125,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_NOCLEANUP_NOLABEL(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeDispose___VOID__BOOLEAN( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeDispose___VOID__BOOLEAN( CLR_RT_StackFrame &stack ) { NANOCLR_HEADER(); @@ -142,9 +140,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_NOCLEANUP_NOLABEL(); } - -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4(CLR_RT_StackFrame &stack) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4( CLR_RT_StackFrame &stack ) { NANOCLR_HEADER(); @@ -171,8 +167,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_NOCLEANUP_NOLABEL(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController:: - NativeEspNowAddPeer___I4__SZARRAY_U1__U1(CLR_RT_StackFrame &stack) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeEspNowAddPeer___I4__SZARRAY_U1__U1( CLR_RT_StackFrame &stack ) { NANOCLR_HEADER(); diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler.cpp similarity index 63% rename from targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp rename to targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler.cpp index c60b2eeb24..7381c3b6d6 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler.cpp +++ b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler.cpp @@ -10,9 +10,9 @@ // //----------------------------------------------------------------------------- -#include "nanoFramework_hardware_esp32_espnow_native.h" +#include "nanoFramework_espnow_native.h" -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: CopyByteArrayToCLRArray(CLR_RT_HeapBlock & target, uint8_t * src, CLR_UINT32 length ) { NANOCLR_HEADER(); @@ -43,7 +43,7 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_NOCLEANUP(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: ProcessEvent_DataSent( CLR_RT_StackFrame &stack ) { NANOCLR_HEADER(); @@ -53,11 +53,11 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar EspNowDataSentEventData *sentEventData = (EspNowDataSentEventData *)stack.Arg2().NumericByRef().u4; CLR_RT_HeapBlock *dataSentEvent; - // create nanoFramework.Hardware.Esp32.EspNow.EspNowController.DataSentEventInternal instance to return + // create nanoFramework.Espnow.EspNowController.DataSentEventInternal instance to return CLR_RT_HeapBlock &clrRet = stack.PushValueAndClear(); NANOCLR_CHECK_HRESULT( - g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_Esp32EspNowDataSentEvent)); + g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_EspNowDataSentEvent)); dataSentEvent = clrRet.Dereference(); if (!dataSentEvent) @@ -68,19 +68,19 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar // clrRet.PeerMac NANOCLR_CHECK_HRESULT( CopyByteArrayToCLRArray( - dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventInternal::FIELD__PeerMac], + dataSentEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal::FIELD__PeerMac], sentEventData->peer_mac, 6)); // clrRet.Status - dataSentEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataSentEventInternal::FIELD__Status].SetInteger(sentEventData->status); + dataSentEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal::FIELD__Status].SetInteger(sentEventData->status); DEBUG_FEXIT(); NANOCLR_NOCLEANUP(); } -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: ProcessEvent_DataRecv( CLR_RT_StackFrame &stack ) { NANOCLR_HEADER(); @@ -90,10 +90,10 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar EspNowDataRecvEventData *recvEventData = (EspNowDataRecvEventData *)stack.Arg2().NumericByRef().u4; CLR_RT_HeapBlock *dataRecvEvent; - // create nanoFramework.Hardware.Esp32.EspNow.EspNowController.DataRecvEventInternal instance to return + // create nanoFramework.Espnow.EspNowController.DataRecvEventInternal instance to return CLR_RT_HeapBlock &clrRet = stack.PushValue(); NANOCLR_CHECK_HRESULT( - g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_Esp32EspNowDataRecvEvent)); + g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_EspNowDataRecvEvent)); dataRecvEvent = clrRet.Dereference(); if (!dataRecvEvent) @@ -104,26 +104,27 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar // clrRet.PeerMac NANOCLR_CHECK_HRESULT( CopyByteArrayToCLRArray( - dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal::FIELD__PeerMac], + dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__PeerMac], recvEventData->peer_mac, 6)); // clrRet.Data NANOCLR_CHECK_HRESULT( CopyByteArrayToCLRArray( - dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal::FIELD__Data], + dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__Data], recvEventData->data, recvEventData->dataLen)); // clrRet.DataLen - dataRecvEvent[Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_DataRecvEventInternal::FIELD__DataLen].SetInteger(recvEventData->dataLen); + dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__DataLen].SetInteger(recvEventData->dataLen); DEBUG_FEXIT(); - NANOCLR_NOCLEANUP();} + NANOCLR_NOCLEANUP(); +} + -HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler:: - ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler::ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime( CLR_RT_StackFrame &stack ) { NANOCLR_HEADER(); @@ -136,10 +137,10 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar switch(subEvent) { - case EVENT_ESP32_ESPNOW_DATASENT: + case EVENT_ESPNOW_DATASENT: hr = ProcessEvent_DataSent(stack); break; - case EVENT_ESP32_ESPNOW_DATARECV: + case EVENT_ESPNOW_DATARECV: hr = ProcessEvent_DataRecv(stack); break; default: @@ -155,5 +156,3 @@ HRESULT Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardwar NANOCLR_NOCLEANUP(); } - - diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp b/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp deleted file mode 100644 index ecdeea8340..0000000000 --- a/targets/ESP32/_nanoCLR/nanoFramework.Hardware.Esp32.EspNow/nanoFramework_hardware_esp32_espnow_native.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include "nanoFramework_hardware_esp32_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, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeInitialize___I4, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeDispose___VOID__BOOLEAN, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController::NativeEspNowAddPeer___I4__SZARRAY_U1__U1, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - Library_nanoFramework_hardware_esp32_espnow_native_nanoFramework_Hardware_Esp32_EspNow_EspNowController__EspNowEventHandler::ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime, - NULL, - NULL, -}; - -const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Hardware_Esp32_EspNow = -{ - "nanoFramework.Hardware.Esp32.EspNow", - 0x78706373, - method_lookup, - { 0, 9, 99, 999 } -}; - -// clang-format on From aaa2c687926c9da92c1d5680a435045b5841761c Mon Sep 17 00:00:00 2001 From: SandorDobos Date: Mon, 17 Jan 2022 09:48:44 +0000 Subject: [PATCH 22/24] Remove "esp32" refs mirroring namespace changes. --- src/CLR/Include/nanoCLR_Runtime.h | 4 ++-- targets/ESP32/ESP32/cmake-variants.json | 14 +++++++------- targets/ESP32/ESP32_S2/cmake-variants.json | 4 ++-- .../nanoFramework_espnow_native.h | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/CLR/Include/nanoCLR_Runtime.h b/src/CLR/Include/nanoCLR_Runtime.h index 9688b1a7dd..47d9a5c5f9 100644 --- a/src/CLR/Include/nanoCLR_Runtime.h +++ b/src/CLR/Include/nanoCLR_Runtime.h @@ -1581,8 +1581,8 @@ struct CLR_RT_WellKnownTypes CLR_RT_TypeDef_Index m_RmtCommand; - CLR_RT_TypeDef_Index m_Esp32EspNowDataRecvEvent; - CLR_RT_TypeDef_Index m_Esp32EspNowDataSentEvent; + CLR_RT_TypeDef_Index m_EspNowDataRecvEvent; + CLR_RT_TypeDef_Index m_EspNowDataSentEvent; PROHIBIT_COPY_CONSTRUCTORS(CLR_RT_WellKnownTypes); }; diff --git a/targets/ESP32/ESP32/cmake-variants.json b/targets/ESP32/ESP32/cmake-variants.json index 6cb4bc0b8c..f4fa714184 100644 --- a/targets/ESP32/ESP32/cmake-variants.json +++ b/targets/ESP32/ESP32/cmake-variants.json @@ -64,7 +64,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF" @@ -112,7 +112,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF" @@ -161,7 +161,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "ON" @@ -211,7 +211,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF" @@ -259,7 +259,7 @@ "API_Windows.Storage": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Graphics": "ON", "GRAPHICS_DISPLAY": "ILI9341_240x320_SPI.cpp", @@ -310,7 +310,7 @@ "API_Windows.Storage": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Graphics": "ON", "GRAPHICS_DISPLAY": "ILI9341_240x320_SPI.cpp", @@ -364,7 +364,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "API_nanoFramework.Devices.OneWire": "ON", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF" diff --git a/targets/ESP32/ESP32_S2/cmake-variants.json b/targets/ESP32/ESP32_S2/cmake-variants.json index ca8cd2a2f5..834c9fb77f 100644 --- a/targets/ESP32/ESP32_S2/cmake-variants.json +++ b/targets/ESP32/ESP32_S2/cmake-variants.json @@ -68,7 +68,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "API_nanoFramework.Devices.OneWire": "OFF", "API_nanoFramework.Graphics": "OFF", "API_nanoFramework.Device.Bluetooth": "OFF" @@ -115,7 +115,7 @@ "API_System.Device.Spi": "ON", "API_Hardware.Esp32": "ON", "API_nanoFramework.Hardware.Esp32.Rmt": "ON", - "API_nanoFramework.Hardware.Esp32.EspNow": "ON", + "API_nanoFramework.Espnow": "ON", "API_nanoFramework.Device.Bluetooth": "OFF", "API_nanoFramework.Devices.OneWire": "OFF", "API_nanoFramework.Graphics": "ON", diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h index a551f615f9..813135702d 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h @@ -43,8 +43,8 @@ #endif -#define EVENT_ESP32_ESPNOW_DATASENT 1 -#define EVENT_ESP32_ESPNOW_DATARECV 2 +#define EVENT_ESPNOW_DATASENT 1 +#define EVENT_ESPNOW_DATARECV 2 struct EspNowDataSentEventData From b3175042d6ac33fd4e348962225fc8a98094b6d3 Mon Sep 17 00:00:00 2001 From: nfbot Date: Mon, 17 Jan 2022 11:33:51 +0000 Subject: [PATCH 23/24] Code style fixes Automated fixes for code style. --- src/HAL/Include/nanoHAL_v2.h | 1 - .../nanoFramework_espnow_native.h | 51 ++++++++------- ..._nanoFramework_Espnow_EspNowController.cpp | 55 +++++++++++----- ...w_EspNowController__EspNowEventHandler.cpp | 64 +++++++++---------- 4 files changed, 93 insertions(+), 78 deletions(-) diff --git a/src/HAL/Include/nanoHAL_v2.h b/src/HAL/Include/nanoHAL_v2.h index 23985a1a26..c4545d15be 100644 --- a/src/HAL/Include/nanoHAL_v2.h +++ b/src/HAL/Include/nanoHAL_v2.h @@ -115,7 +115,6 @@ typedef enum SLEEP_LEVEL // keep in sync with nanoFramework.Espnow.EspNowController #define EVENT_ESPNOW 140 - #define PAL_EVENT_TOUCH 0x1 #define PAL_EVENT_KEY 0x2 #define PAL_EVENT_MOUSE 0x4 diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h index 813135702d..a592d3529a 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h @@ -1,6 +1,6 @@ //----------------------------------------------------------------------------- // -// ** WARNING! ** +// ** WARNING! ** // This file was generated automatically by a tool. // Re-running the tool will overwrite this file. // You should copy this file to a custom location @@ -24,43 +24,49 @@ //#define DEBUG_ESPNOW 1 -#define DEBUG_FENTER() DEBUG_WRITELINE("entry") -#define DEBUG_FEXIT() DEBUG_WRITELINE("exit") +#define DEBUG_FENTER() DEBUG_WRITELINE("entry") +#define DEBUG_FEXIT() DEBUG_WRITELINE("exit") #define DEBUG_FEXIT_RET(v) DEBUG_WRITELINE("return: %d", v) #if defined(DEBUG_ESPNOW) - #define DEBUG_WRITELINE(...) \ - { \ - char temporaryStringBuffer1[64]; \ - snprintf(temporaryStringBuffer1, sizeof(temporaryStringBuffer1), __VA_ARGS__); \ - char temporaryStringBuffer2[128]; \ - int realStringSize=snprintf(temporaryStringBuffer2, sizeof(temporaryStringBuffer2), "\r\n[%s] %s\r\n", __func__, temporaryStringBuffer1); \ - CLR_EE_DBG_EVENT_BROADCAST( CLR_DBG_Commands_c_Monitor_Message, realStringSize, temporaryStringBuffer2, WP_Flags_c_NonCritical | WP_Flags_c_NoCaching ); \ +#define DEBUG_WRITELINE(...) \ + { \ + char temporaryStringBuffer1[64]; \ + snprintf(temporaryStringBuffer1, sizeof(temporaryStringBuffer1), __VA_ARGS__); \ + char temporaryStringBuffer2[128]; \ + int realStringSize = snprintf( \ + temporaryStringBuffer2, \ + sizeof(temporaryStringBuffer2), \ + "\r\n[%s] %s\r\n", \ + __func__, \ + temporaryStringBuffer1); \ + CLR_EE_DBG_EVENT_BROADCAST( \ + CLR_DBG_Commands_c_Monitor_Message, \ + realStringSize, \ + temporaryStringBuffer2, \ + WP_Flags_c_NonCritical | WP_Flags_c_NoCaching); \ } -#else - #define DEBUG_WRITELINE(...) ; +#else +#define DEBUG_WRITELINE(...) ; #endif - #define EVENT_ESPNOW_DATASENT 1 #define EVENT_ESPNOW_DATARECV 2 - struct EspNowDataSentEventData { - uint8_t peer_mac[ESP_NOW_ETH_ALEN]; + uint8_t peer_mac[ESP_NOW_ETH_ALEN]; esp_now_send_status_t status; }; struct EspNowDataRecvEventData { - uint8_t peer_mac[ESP_NOW_ETH_ALEN]; + uint8_t peer_mac[ESP_NOW_ETH_ALEN]; uint8_t data[ESP_NOW_MAX_DATA_LEN]; int dataLen; }; - struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataReceivedEventArgs { static const int FIELD__PeerMac = 1; @@ -68,7 +74,6 @@ struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataReceivedEven static const int FIELD__DataLen = 3; //--// - }; struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal @@ -78,7 +83,6 @@ struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInt static const int FIELD__DataLen = 5; //--// - }; struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventArgs @@ -87,7 +91,6 @@ struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventArg static const int FIELD__Status = 2; //--// - }; struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal @@ -96,7 +99,6 @@ struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInt static const int FIELD__Status = 4; //--// - }; struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController @@ -118,8 +120,7 @@ struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController static EspNowDataRecvEventData dataRecvEventData; static void DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status); - static void DataRecvCb(const uint8_t * mac, const uint8_t *incomingData, int len); - + static void DataRecvCb(const uint8_t *mac, const uint8_t *incomingData, int len); }; struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler @@ -133,7 +134,6 @@ struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController static HRESULT CopyByteArrayToCLRArray(CLR_RT_HeapBlock &target, uint8_t *src, CLR_UINT32 length); static HRESULT ProcessEvent_DataSent(CLR_RT_StackFrame &stack); static HRESULT ProcessEvent_DataRecv(CLR_RT_StackFrame &stack); - }; struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowException @@ -141,9 +141,8 @@ 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_ +#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 index 29ebe099dc..64b9e5dc98 100644 --- 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 @@ -1,6 +1,6 @@ //----------------------------------------------------------------------------- // -// ** WARNING! ** +// ** WARNING! ** // This file was generated automatically by a tool. // Re-running the tool will overwrite this file. // You should copy this file to a custom location @@ -12,14 +12,12 @@ #include "nanoFramework_espnow_native.h" -EspNowDataSentEventData Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: - dataSentEventData; -EspNowDataRecvEventData Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: - dataRecvEventData; +EspNowDataSentEventData Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::dataSentEventData; +EspNowDataRecvEventData Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::dataRecvEventData; - -void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: - DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status) +void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::DataSentCb( + const uint8_t *mac_addr, + esp_now_send_status_t status) { DEBUG_FENTER(); @@ -35,8 +33,10 @@ void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: DEBUG_FEXIT(); } -void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: - DataRecvCb(const uint8_t * mac_addr, const uint8_t *incomingData, int len) +void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::DataRecvCb( + const uint8_t *mac_addr, + const uint8_t *incomingData, + int len) { DEBUG_FENTER(); @@ -53,7 +53,8 @@ void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: DEBUG_FEXIT(); } -HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeInitialize___I4( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeInitialize___I4( + CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -86,7 +87,8 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle NANOCLR_NOCLEANUP_NOLABEL(); } -HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeDispose___VOID__BOOLEAN( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeDispose___VOID__BOOLEAN( + CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -101,7 +103,8 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle NANOCLR_NOCLEANUP_NOLABEL(); } -HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: + NativeEspNowSend___I4__SZARRAY_U1__SZARRAY_U1__I4(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -117,7 +120,16 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle int32_t dataLen = stack.Arg3().NumericByRef().s4; - DEBUG_WRITELINE("sending %d: bytes to peer mac: %x:%x:%x:%x:%x:%x, data[0]: %x", dataLen, peerMac[0], peerMac[1], peerMac[2], peerMac[3], peerMac[4], peerMac[5], data[0]); + DEBUG_WRITELINE( + "sending %d: bytes to peer mac: %x:%x:%x:%x:%x:%x, data[0]: %x", + dataLen, + peerMac[0], + peerMac[1], + peerMac[2], + peerMac[3], + peerMac[4], + peerMac[5], + data[0]); ret = esp_now_send((const uint8_t *)peerMac, (const uint8_t *)data, dataLen); @@ -128,7 +140,8 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle NANOCLR_NOCLEANUP_NOLABEL(); } -HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeEspNowAddPeer___I4__SZARRAY_U1__U1( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: + NativeEspNowAddPeer___I4__SZARRAY_U1__U1(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -142,13 +155,21 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle uint8_t channel = (uint8_t)stack.Arg2().NumericByRef().u1; esp_now_peer_info_t peerInfo; - memset((void*)&peerInfo, 0, sizeof(peerInfo)); + memset((void *)&peerInfo, 0, sizeof(peerInfo)); memcpy(peerInfo.peer_addr, peerMac, ESP_NOW_ETH_ALEN); peerInfo.ifidx = WIFI_IF_STA; peerInfo.channel = channel; peerInfo.encrypt = false; - DEBUG_WRITELINE("add_peer, mac: %x:%x:%x:%x:%x:%x, ch: %d", peerMac[0], peerMac[1], peerMac[2], peerMac[3], peerMac[4], peerMac[5], channel); + DEBUG_WRITELINE( + "add_peer, mac: %x:%x:%x:%x:%x:%x, ch: %d", + peerMac[0], + peerMac[1], + peerMac[2], + peerMac[3], + peerMac[4], + peerMac[5], + channel); ret = esp_now_add_peer(&peerInfo); 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 index 7381c3b6d6..1a569a9890 100644 --- 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 @@ -1,6 +1,6 @@ //----------------------------------------------------------------------------- // -// ** WARNING! ** +// ** WARNING! ** // This file was generated automatically by a tool. // Re-running the tool will overwrite this file. // You should copy this file to a custom location @@ -13,19 +13,16 @@ #include "nanoFramework_espnow_native.h" HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: - CopyByteArrayToCLRArray(CLR_RT_HeapBlock & target, uint8_t * src, CLR_UINT32 length ) + CopyByteArrayToCLRArray(CLR_RT_HeapBlock &target, uint8_t *src, CLR_UINT32 length) { NANOCLR_HEADER(); DEBUG_FENTER(); - CLR_UINT8* firstTargetByte; - CLR_RT_HeapBlock_Array * targetArray; + CLR_UINT8 *firstTargetByte; + CLR_RT_HeapBlock_Array *targetArray; - NANOCLR_CHECK_HRESULT(CLR_RT_HeapBlock_Array::CreateInstance( - target, - length, - g_CLR_RT_WellKnownTypes.m_UInt8)); + NANOCLR_CHECK_HRESULT(CLR_RT_HeapBlock_Array::CreateInstance(target, length, g_CLR_RT_WellKnownTypes.m_UInt8)); targetArray = target.DereferenceArray(); if (!targetArray) @@ -36,7 +33,7 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle DEBUG_WRITELINE("copying %d bytes", length); firstTargetByte = targetArray->GetFirstElement(); - memcpy( firstTargetByte, src, length ); + memcpy(firstTargetByte, src, length); DEBUG_FEXIT(); @@ -44,7 +41,7 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle } HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: - ProcessEvent_DataSent( CLR_RT_StackFrame &stack ) + ProcessEvent_DataSent(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -58,7 +55,7 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle NANOCLR_CHECK_HRESULT( g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_EspNowDataSentEvent)); - + dataSentEvent = clrRet.Dereference(); if (!dataSentEvent) { @@ -66,14 +63,14 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle } // clrRet.PeerMac - NANOCLR_CHECK_HRESULT( - CopyByteArrayToCLRArray( - dataSentEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal::FIELD__PeerMac], - sentEventData->peer_mac, - 6)); + NANOCLR_CHECK_HRESULT(CopyByteArrayToCLRArray( + dataSentEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal::FIELD__PeerMac], + sentEventData->peer_mac, + 6)); // clrRet.Status - dataSentEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal::FIELD__Status].SetInteger(sentEventData->status); + dataSentEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal::FIELD__Status] + .SetInteger(sentEventData->status); DEBUG_FEXIT(); @@ -81,7 +78,7 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle } HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: - ProcessEvent_DataRecv( CLR_RT_StackFrame &stack ) + ProcessEvent_DataRecv(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -89,12 +86,12 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle EspNowDataRecvEventData *recvEventData = (EspNowDataRecvEventData *)stack.Arg2().NumericByRef().u4; CLR_RT_HeapBlock *dataRecvEvent; - + // create nanoFramework.Espnow.EspNowController.DataRecvEventInternal instance to return CLR_RT_HeapBlock &clrRet = stack.PushValue(); NANOCLR_CHECK_HRESULT( g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_EspNowDataRecvEvent)); - + dataRecvEvent = clrRet.Dereference(); if (!dataRecvEvent) { @@ -102,29 +99,28 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle } // clrRet.PeerMac - NANOCLR_CHECK_HRESULT( - CopyByteArrayToCLRArray( - dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__PeerMac], - recvEventData->peer_mac, - 6)); + NANOCLR_CHECK_HRESULT(CopyByteArrayToCLRArray( + dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__PeerMac], + recvEventData->peer_mac, + 6)); // clrRet.Data - NANOCLR_CHECK_HRESULT( - CopyByteArrayToCLRArray( - dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__Data], - recvEventData->data, - recvEventData->dataLen)); + NANOCLR_CHECK_HRESULT(CopyByteArrayToCLRArray( + dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__Data], + recvEventData->data, + recvEventData->dataLen)); // clrRet.DataLen - dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__DataLen].SetInteger(recvEventData->dataLen); + dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__DataLen] + .SetInteger(recvEventData->dataLen); DEBUG_FEXIT(); NANOCLR_NOCLEANUP(); } - -HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler::ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime( CLR_RT_StackFrame &stack ) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: + ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime(CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -135,7 +131,7 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle DEBUG_WRITELINE("subevent: %d", subEvent); - switch(subEvent) + switch (subEvent) { case EVENT_ESPNOW_DATASENT: hr = ProcessEvent_DataSent(stack); From a38271e78bc7cd0c355ad3176423cfbb7db551db Mon Sep 17 00:00:00 2001 From: nfbot Date: Mon, 17 Jan 2022 11:47:27 +0000 Subject: [PATCH 24/24] Code style fixes Automated fixes for code style. --- .../nanoFramework_espnow_native.h | 5 +- ..._nanoFramework_Espnow_EspNowController.cpp | 29 ++++---- ...w_EspNowController__EspNowEventHandler.cpp | 69 ++++++++----------- 3 files changed, 45 insertions(+), 58 deletions(-) diff --git a/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h index a40ab39f3c..a592d3529a 100644 --- a/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h +++ b/targets/ESP32/_nanoCLR/nanoFramework.Espnow/nanoFramework_espnow_native.h @@ -51,7 +51,6 @@ #define DEBUG_WRITELINE(...) ; #endif - #define EVENT_ESPNOW_DATASENT 1 #define EVENT_ESPNOW_DATARECV 2 @@ -68,7 +67,6 @@ struct EspNowDataRecvEventData int dataLen; }; - struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataReceivedEventArgs { static const int FIELD__PeerMac = 1; @@ -123,7 +121,6 @@ struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController static void DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status); static void DataRecvCb(const uint8_t *mac, const uint8_t *incomingData, int len); - }; struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler @@ -148,4 +145,4 @@ struct Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowException extern const CLR_RT_NativeAssemblyData g_CLR_AssemblyNative_nanoFramework_Espnow; -#endif //_NANOFRAMEWORK_ESPNOW_NATIVE_H_ +#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 index f81bdc6bba..64b9e5dc98 100644 --- 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 @@ -1,6 +1,6 @@ //----------------------------------------------------------------------------- // -// ** WARNING! ** +// ** WARNING! ** // This file was generated automatically by a tool. // Re-running the tool will overwrite this file. // You should copy this file to a custom location @@ -12,15 +12,12 @@ #include "nanoFramework_espnow_native.h" -EspNowDataSentEventData - Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: - dataSentEventData; -EspNowDataRecvEventData - Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: - dataRecvEventData; +EspNowDataSentEventData Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::dataSentEventData; +EspNowDataRecvEventData Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::dataRecvEventData; -void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: - DataSentCb(const uint8_t *mac_addr, esp_now_send_status_t status) +void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::DataSentCb( + const uint8_t *mac_addr, + esp_now_send_status_t status) { DEBUG_FENTER(); @@ -36,8 +33,10 @@ void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: DEBUG_FEXIT(); } -void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: - DataRecvCb(const uint8_t *mac_addr, const uint8_t *incomingData, int len) +void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::DataRecvCb( + const uint8_t *mac_addr, + const uint8_t *incomingData, + int len) { DEBUG_FENTER(); @@ -54,8 +53,8 @@ void Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: DEBUG_FEXIT(); } -HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: - NativeInitialize___I4(CLR_RT_StackFrame &stack) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeInitialize___I4( + CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -88,8 +87,8 @@ HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowControlle NANOCLR_NOCLEANUP_NOLABEL(); } -HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController:: - NativeDispose___VOID__BOOLEAN(CLR_RT_StackFrame &stack) +HRESULT Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController::NativeDispose___VOID__BOOLEAN( + CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); 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 index a6970c725f..2628e15fce 100644 --- 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 @@ -12,9 +12,11 @@ #include "nanoFramework_espnow_native.h" -HRESULT - Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: - CopyByteArrayToCLRArray(CLR_RT_HeapBlock & target, uint8_t *src, CLR_UINT32 length) +HRESULT +Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler::CopyByteArrayToCLRArray( + CLR_RT_HeapBlock &target, + uint8_t *src, + CLR_UINT32 length) { NANOCLR_HEADER(); @@ -41,9 +43,9 @@ HRESULT NANOCLR_NOCLEANUP(); } -HRESULT - Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: - ProcessEvent_DataSent(CLR_RT_StackFrame &stack) +HRESULT +Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler::ProcessEvent_DataSent( + CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -57,7 +59,7 @@ HRESULT NANOCLR_CHECK_HRESULT( g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_EspNowDataSentEvent)); - + dataSentEvent = clrRet.Dereference(); if (!dataSentEvent) { @@ -66,26 +68,22 @@ HRESULT // clrRet.PeerMac NANOCLR_CHECK_HRESULT(CopyByteArrayToCLRArray( - dataSentEvent - [Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal:: - FIELD__PeerMac], - sentEventData->peer_mac, - 6)); + dataSentEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal::FIELD__PeerMac], + sentEventData->peer_mac, + 6)); // clrRet.Status - dataSentEvent - [Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal:: - FIELD__Status] - .SetInteger(sentEventData->status); + dataSentEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataSentEventInternal::FIELD__Status] + .SetInteger(sentEventData->status); DEBUG_FEXIT(); NANOCLR_NOCLEANUP(); } -HRESULT - Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: - ProcessEvent_DataRecv(CLR_RT_StackFrame &stack) +HRESULT +Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler::ProcessEvent_DataRecv( + CLR_RT_StackFrame &stack) { NANOCLR_HEADER(); @@ -93,12 +91,12 @@ HRESULT EspNowDataRecvEventData *recvEventData = (EspNowDataRecvEventData *)stack.Arg2().NumericByRef().u4; CLR_RT_HeapBlock *dataRecvEvent; - + // create nanoFramework.Espnow.EspNowController.DataRecvEventInternal instance to return CLR_RT_HeapBlock &clrRet = stack.PushValue(); NANOCLR_CHECK_HRESULT( g_CLR_RT_ExecutionEngine.NewObjectFromIndex(clrRet, g_CLR_RT_WellKnownTypes.m_EspNowDataRecvEvent)); - + dataRecvEvent = clrRet.Dereference(); if (!dataRecvEvent) { @@ -107,35 +105,28 @@ HRESULT // clrRet.PeerMac NANOCLR_CHECK_HRESULT(CopyByteArrayToCLRArray( - dataRecvEvent - [Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal:: - FIELD__PeerMac], - recvEventData->peer_mac, - 6)); + dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__PeerMac], + recvEventData->peer_mac, + 6)); // clrRet.Data NANOCLR_CHECK_HRESULT(CopyByteArrayToCLRArray( - dataRecvEvent - [Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal:: - FIELD__Data], - recvEventData->data, - recvEventData->dataLen)); + dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__Data], + recvEventData->data, + recvEventData->dataLen)); // clrRet.DataLen - dataRecvEvent - [Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal:: - FIELD__DataLen] - .SetInteger(recvEventData->dataLen); + dataRecvEvent[Library_nanoFramework_espnow_native_nanoFramework_Espnow_DataRecvEventInternal::FIELD__DataLen] + .SetInteger(recvEventData->dataLen); DEBUG_FEXIT(); NANOCLR_NOCLEANUP(); } - -HRESULT - Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: - ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime(CLR_RT_StackFrame &stack) +HRESULT +Library_nanoFramework_espnow_native_nanoFramework_Espnow_EspNowController__EspNowEventHandler:: + ProcessEvent___nanoFrameworkRuntimeEventsBaseEvent__U4__U4__SystemDateTime(CLR_RT_StackFrame &stack) { NANOCLR_HEADER();