feat(gateway_network): integrate GatewayBridgeService and add bridge handling
- Updated CMakeLists.txt to require gateway_bridge component. - Modified GatewayNetworkService to include a pointer to GatewayBridgeService. - Added new HTTP handlers for bridge GET and POST requests. - Implemented query utility functions for handling request parameters. - Enhanced response handling for bridge actions with JSON responses. Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
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/ao.c"
|
||||
"${BACNET_SRC_ROOT}/bacnet/basic/object/av.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/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.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)
|
||||
Reference in New Issue
Block a user