# role: edge 用于采集物理设备数据，并将其转换为软总线数据模型
softbus_package(softbus_edge)

add_executable(softbus_edge
    src/main.cpp
    src/EdgeConfig.cpp
    src/EdgeRuntime.cpp
    src/runtime/IngressWorker.cpp
    src/PhysicalRegistry.cpp
    src/UplinkClient.cpp
    src/DeviceFactory.cpp
    src/DeviceDiscovery.cpp
    src/ShadowChannelStore.cpp
    src/CommandExecutor.cpp
    src/ingress/CompositeIngress.cpp
    src/ingress/modbus/ModbusIngress.cpp
    src/ingress/modbus/MockModbusIngress.cpp
    src/ingress/can/CanIngress.cpp
    src/ingress/eth/EthIngress.cpp
    src/driver/modbus/ModbusChannel.cpp
    src/driver/modbus/TcpRtuSession.cpp
    src/driver/can/CanChannel.cpp
    src/driver/eth/EthChannel.cpp
    src/egress/modbus/ModbusEgress.cpp
    src/egress/can/CanEgress.cpp
    src/egress/eth/EthEgress.cpp
    src/scheduler/ChangeFilter.cpp
    src/scheduler/PollPlanner.cpp
    src/scheduler/ModbusPollScheduler.cpp
    src/canopen/NmtManager.cpp
    src/canopen/SdoClient.cpp
    src/canopen/PdoMapper.cpp
)

softbus_export_include(softbus_edge "${CMAKE_CURRENT_SOURCE_DIR}/include")

target_link_libraries(softbus_edge PRIVATE
    softbus_core
    softbus_registry
    softbus_transport
    softbus_api
    softbus_canopen_common
    softbus_net
    softbus_modbus
)
softbus_apply_socketcan(softbus_edge)
softbus_apply_platform_libs(softbus_edge)
