Files
gateway/components/gateway_bacnet/CMakeLists.txt
T
Tony 7424b43bdd Add diagnostic bit support to Gateway Modbus
- Introduced new enum value `kShortDiagnosticBit` to `GatewayModbusGeneratedKind`.
- Enhanced `GatewayModbusPoint` and `GatewayModbusPointBinding` structures to include diagnostic snapshot, boolean key, and device type.
- Added new diagnostic bit specifications and updated the corresponding arrays for generated discrete inputs and holding registers.
- Implemented `addGeneratedDiagnosticPoint` function to handle the creation of diagnostic points.
- Updated `rebuildMap` method to include generated diagnostic points during the map rebuilding process.

Co-authored-by: Copilot <copilot@github.com>
2026-05-04 02:26:09 +08:00

133 lines
4.8 KiB
CMake

if(NOT CONFIG_GATEWAY_BACNET_BRIDGE_SUPPORTED)
idf_component_register(
INCLUDE_DIRS "include"
REQUIRES dali_cpp
)
return()
endif()
set(BACNET_STACK_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../../bacnet-stack")
set(BACNET_SRC_ROOT "${BACNET_STACK_ROOT}/src")
set(BACNET_ESP32_PORT "${BACNET_STACK_ROOT}/ports/esp32/src")
idf_build_get_property(IDF_PATH IDF_PATH)
set(BACNET_CORE_SRCS
"${BACNET_SRC_ROOT}/bacnet/abort.c"
"${BACNET_SRC_ROOT}/bacnet/bacaddr.c"
"${BACNET_SRC_ROOT}/bacnet/bacapp.c"
"${BACNET_SRC_ROOT}/bacnet/bacdcode.c"
"${BACNET_SRC_ROOT}/bacnet/bacdest.c"
"${BACNET_SRC_ROOT}/bacnet/bacdevobjpropref.c"
"${BACNET_SRC_ROOT}/bacnet/bacerror.c"
"${BACNET_SRC_ROOT}/bacnet/bacint.c"
"${BACNET_SRC_ROOT}/bacnet/bacprop.c"
"${BACNET_SRC_ROOT}/bacnet/bacpropstates.c"
"${BACNET_SRC_ROOT}/bacnet/bacreal.c"
"${BACNET_SRC_ROOT}/bacnet/bacstr.c"
"${BACNET_SRC_ROOT}/bacnet/bactext.c"
"${BACNET_SRC_ROOT}/bacnet/bactimevalue.c"
"${BACNET_SRC_ROOT}/bacnet/calendar_entry.c"
"${BACNET_SRC_ROOT}/bacnet/cov.c"
"${BACNET_SRC_ROOT}/bacnet/datetime.c"
"${BACNET_SRC_ROOT}/bacnet/dcc.c"
"${BACNET_SRC_ROOT}/bacnet/iam.c"
"${BACNET_SRC_ROOT}/bacnet/ihave.c"
"${BACNET_SRC_ROOT}/bacnet/list_element.c"
"${BACNET_SRC_ROOT}/bacnet/memcopy.c"
"${BACNET_SRC_ROOT}/bacnet/npdu.c"
"${BACNET_SRC_ROOT}/bacnet/proplist.c"
"${BACNET_SRC_ROOT}/bacnet/reject.c"
"${BACNET_SRC_ROOT}/bacnet/rp.c"
"${BACNET_SRC_ROOT}/bacnet/rpm.c"
"${BACNET_SRC_ROOT}/bacnet/timestamp.c"
"${BACNET_SRC_ROOT}/bacnet/whohas.c"
"${BACNET_SRC_ROOT}/bacnet/whois.c"
"${BACNET_SRC_ROOT}/bacnet/wp.c"
)
set(BACNET_BASIC_SRCS
"${BACNET_SRC_ROOT}/bacnet/basic/binding/address.c"
"${BACNET_SRC_ROOT}/bacnet/basic/npdu/h_npdu.c"
"${BACNET_SRC_ROOT}/bacnet/basic/npdu/s_router.c"
"${BACNET_SRC_ROOT}/bacnet/basic/object/ai.c"
"${BACNET_SRC_ROOT}/bacnet/basic/object/ao.c"
"${BACNET_SRC_ROOT}/bacnet/basic/object/av.c"
"${BACNET_SRC_ROOT}/bacnet/basic/object/bi.c"
"${BACNET_SRC_ROOT}/bacnet/basic/object/bo.c"
"${BACNET_SRC_ROOT}/bacnet/basic/object/bv.c"
"${BACNET_SRC_ROOT}/bacnet/basic/object/device.c"
"${BACNET_SRC_ROOT}/bacnet/basic/object/ms-input.c"
"${BACNET_SRC_ROOT}/bacnet/basic/object/mso.c"
"${BACNET_SRC_ROOT}/bacnet/basic/object/msv.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/h_apdu.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/h_cov.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/h_dcc.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/h_noserv.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/h_rp.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/h_rpm.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/h_whohas.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/h_whois.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/h_wp.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/s_abort.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/s_error.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/s_iam.c"
"${BACNET_SRC_ROOT}/bacnet/basic/service/s_ihave.c"
"${BACNET_SRC_ROOT}/bacnet/basic/sys/bigend.c"
"${BACNET_SRC_ROOT}/bacnet/basic/sys/days.c"
"${BACNET_SRC_ROOT}/bacnet/basic/sys/datetime_mstimer.c"
"${BACNET_SRC_ROOT}/bacnet/basic/sys/debug.c"
"${BACNET_SRC_ROOT}/bacnet/basic/sys/dst.c"
"${BACNET_SRC_ROOT}/bacnet/basic/sys/keylist.c"
"${BACNET_SRC_ROOT}/bacnet/basic/sys/linear.c"
"${BACNET_SRC_ROOT}/bacnet/basic/sys/mstimer.c"
"${BACNET_SRC_ROOT}/bacnet/basic/tsm/tsm.c"
)
set(BACNET_PORT_SRCS
"${BACNET_ESP32_PORT}/bip.c"
"${BACNET_ESP32_PORT}/mstimer_init.c"
"${BACNET_ESP32_PORT}/bip_init.c"
"${BACNET_ESP32_PORT}/bvlc.c"
)
idf_component_register(
SRCS
"src/gateway_bacnet_bridge.cpp"
"src/gateway_bacnet.cpp"
"src/gateway_bacnet_stack_port.c"
"src/bip_socket_lwip.cpp"
${BACNET_CORE_SRCS}
${BACNET_BASIC_SRCS}
${BACNET_PORT_SRCS}
INCLUDE_DIRS
"include"
"${BACNET_ESP32_PORT}"
"${BACNET_SRC_ROOT}"
PRIV_INCLUDE_DIRS
"${IDF_PATH}/components/esp_netif/include"
REQUIRES dali_cpp esp_netif freertos
PRIV_REQUIRES log lwip
)
target_compile_definitions(${COMPONENT_LIB} PRIVATE
BACDL_BIP=1
BACAPP_MINIMAL=1
BACNET_GATEWAY_EXTERNAL_OBJECT_TABLE=1
BACNET_PROPERTY_LISTS=1
BACNET_PROTOCOL_REVISION=16
BACNET_STACK_DEPRECATED_DISABLE=1
BBMD_ENABLED=0
BBMD_CLIENT_ENABLED=0
MAX_ADDRESS_CACHE=8
MAX_APDU=480
MAX_TSM_TRANSACTIONS=8
PRINT_ENABLED=0
)
target_compile_options(${COMPONENT_LIB} PRIVATE
$<$<COMPILE_LANGUAGE:C>:-Wno-missing-field-initializers>
$<$<COMPILE_LANGUAGE:C>:-Wno-old-style-declaration>
$<$<COMPILE_LANGUAGE:C>:-Wno-unused-function>
)
set_property(TARGET ${COMPONENT_LIB} PROPERTY CXX_STANDARD 17)