70367f53ca
- Created CMakeLists.txt for the OpenKNX IDF component, ensuring dependencies on OpenKNX and TPUart submodules. - Implemented Arduino compatibility header for basic functions like millis, delay, pinMode, and digitalRead. - Developed EspIdfPlatform class for network interface management and multicast communication. - Added EtsMemoryLoader for loading ETS memory snapshots and managing associations. - Introduced TpuartUartInterface for UART communication with methods for reading, writing, and managing callbacks. - Implemented arduino_compat.cpp for Arduino-like functionality on ESP-IDF. - Created source files for platform and memory loader implementations. - Updated submodules for knx, knx_dali_gw, and tpuart. Signed-off-by: Tony <tonylu@tony-cloud.com>
63 lines
1.6 KiB
CMake
63 lines
1.6 KiB
CMake
set(OPENKNX_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../knx")
|
|
set(TPUART_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../tpuart")
|
|
|
|
if(NOT EXISTS "${OPENKNX_ROOT}/src/knx/platform.h")
|
|
message(FATAL_ERROR "OpenKNX submodule is missing at ${OPENKNX_ROOT}")
|
|
endif()
|
|
|
|
if(NOT EXISTS "${TPUART_ROOT}/src/TPUart/DataLinkLayer.h")
|
|
message(FATAL_ERROR "TPUart submodule is missing at ${TPUART_ROOT}")
|
|
endif()
|
|
|
|
file(GLOB OPENKNX_SRCS
|
|
"${OPENKNX_ROOT}/src/knx/*.cpp"
|
|
)
|
|
|
|
set(TPUART_SRCS
|
|
"${TPUART_ROOT}/src/TPUart/DataLinkLayer.cpp"
|
|
"${TPUART_ROOT}/src/TPUart/Receiver.cpp"
|
|
"${TPUART_ROOT}/src/TPUart/RepetitionFilter.cpp"
|
|
"${TPUART_ROOT}/src/TPUart/RingBuffer.cpp"
|
|
"${TPUART_ROOT}/src/TPUart/SearchBuffer.cpp"
|
|
"${TPUART_ROOT}/src/TPUart/Statistics.cpp"
|
|
"${TPUART_ROOT}/src/TPUart/SystemState.cpp"
|
|
"${TPUART_ROOT}/src/TPUart/Transmitter.cpp"
|
|
"${TPUART_ROOT}/src/TPUart.cpp"
|
|
)
|
|
|
|
idf_component_register(
|
|
SRCS
|
|
"src/arduino_compat.cpp"
|
|
"src/esp_idf_platform.cpp"
|
|
"src/ets_memory_loader.cpp"
|
|
"src/tpuart_uart_interface.cpp"
|
|
${OPENKNX_SRCS}
|
|
${TPUART_SRCS}
|
|
INCLUDE_DIRS
|
|
"include"
|
|
"${OPENKNX_ROOT}/src"
|
|
"${TPUART_ROOT}/src"
|
|
REQUIRES
|
|
esp_driver_gpio
|
|
esp_driver_uart
|
|
esp_netif
|
|
esp_timer
|
|
esp_wifi
|
|
freertos
|
|
log
|
|
lwip
|
|
nvs_flash
|
|
)
|
|
|
|
target_compile_definitions(${COMPONENT_LIB} PUBLIC
|
|
MASK_VERSION=0x07B0
|
|
KNX_FLASH_SIZE=4096
|
|
KNX_NO_AUTOMATIC_GLOBAL_INSTANCE
|
|
KNX_NO_SPI
|
|
)
|
|
|
|
target_compile_options(${COMPONENT_LIB} PRIVATE
|
|
-Wno-unused-parameter
|
|
)
|
|
|
|
set_property(TARGET ${COMPONENT_LIB} PROPERTY CXX_STANDARD 17) |