c5a079e779
- Added DaliGatewayCache class for managing DALI device states, including address states, presence, and group statuses. - Implemented methods for configuring cache, enabling/disabling features, and setting status update callbacks. - Introduced state encoding/decoding for persistence and added support for CSV parsing. - Created mutation handling for runtime status updates, group masks, scene levels, and settings. - Developed reconciliation logic to handle incoming frames and classify mutations. - Added tests to validate cache functionality, persistence, and DALI protocol handling. Signed-off-by: Tony <tonylu@tony-cloud.com>
61 lines
2.0 KiB
CMake
61 lines
2.0 KiB
CMake
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND "$ENV{IDF_PATH}" STREQUAL "")
|
|
cmake_minimum_required(VERSION 3.16)
|
|
project(dali_cpp_gateway LANGUAGES CXX)
|
|
endif()
|
|
|
|
set(DALI_CPP_GATEWAY_SOURCES
|
|
"src/dali_protocol.cpp"
|
|
"src/dali_gateway_cache.cpp"
|
|
"src/dali_gateway_cache_mutation.cpp"
|
|
"src/dali_gateway_reconciliation.cpp"
|
|
"src/dali_application_controller.cpp"
|
|
)
|
|
|
|
if(COMMAND idf_component_register)
|
|
idf_component_register(
|
|
SRCS
|
|
"src/dali_comm.cpp"
|
|
${DALI_CPP_GATEWAY_SOURCES}
|
|
"src/base.cpp"
|
|
"src/addr.cpp"
|
|
"src/bridge.cpp"
|
|
"src/bridge_model.cpp"
|
|
"src/bridge_provisioning.cpp"
|
|
"src/decode.cpp"
|
|
"src/decode_device_type.cpp"
|
|
"src/decode_dt1.cpp"
|
|
"src/decode_dt4.cpp"
|
|
"src/decode_dt5.cpp"
|
|
"src/decode_dt6.cpp"
|
|
"src/decode_dt8.cpp"
|
|
"src/device.cpp"
|
|
"src/dt1.cpp"
|
|
"src/dt4.cpp"
|
|
"src/dt5.cpp"
|
|
"src/dt6.cpp"
|
|
"src/dt8.cpp"
|
|
"src/sequence.cpp"
|
|
"src/sequence_store.cpp"
|
|
"src/color.cpp"
|
|
"src/gateway_cloud.cpp"
|
|
"src/gateway_provisioning.cpp"
|
|
INCLUDE_DIRS "include"
|
|
REQUIRES mqtt cjson nvs_flash esp_driver_uart
|
|
)
|
|
|
|
set_property(TARGET ${COMPONENT_LIB} PROPERTY CXX_STANDARD 17)
|
|
else()
|
|
# Standalone target for IoT adapters that only need the platform-neutral
|
|
# DALI gateway application behavior.
|
|
add_library(dali_cpp_gateway STATIC ${DALI_CPP_GATEWAY_SOURCES})
|
|
target_include_directories(dali_cpp_gateway PUBLIC "${CMAKE_CURRENT_LIST_DIR}/include")
|
|
target_compile_features(dali_cpp_gateway PUBLIC cxx_std_17)
|
|
|
|
include(CTest)
|
|
if(BUILD_TESTING)
|
|
add_executable(dali_cpp_gateway_test "tests/dali_gateway_test.cpp")
|
|
target_link_libraries(dali_cpp_gateway_test PRIVATE dali_cpp_gateway)
|
|
add_test(NAME dali_cpp_gateway_test COMMAND dali_cpp_gateway_test)
|
|
endif()
|
|
endif()
|