refactor: restructure lidarlib into xlidar-driver plugin SDK
- LidarManager facade (liblidar_manager.so): dlopen plugin discovery, available_drivers map<driver_id, PluginRegistry>, create_lidar_device, config.json load/save with legacy lidarlib migration - Common LidarDriverInterface + DriverInfo/DeviceConfig plugin ABI (extern C get_driver_info / create_driver_instance) - Plugins: driver_rplidar (ported from xlocd, Slamtec SDK), driver_olei, driver_sick_code (TiM CoLa-A), driver_sick_safety (nanoScan3), driver_espe - Diagnostics extended with rplidar health + firmware; FOV filter window, range override and legacy remap window unified in DeviceConfig - Rewritten README, diagnostics doc and examples (list_drivers, example, lidar_app) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
29
plugins/CMakeLists.txt
Normal file
29
plugins/CMakeLists.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
# Driver plugins. Every plugin is a self-contained MODULE library named
|
||||
# <dir>.so (no "lib" prefix), exporting exactly the two C entry points
|
||||
# declared in include/lidar_interface.hpp. Plugins land in build/plugins/.
|
||||
|
||||
set(XLIDAR_PLUGIN_OUTPUT_DIR ${CMAKE_BINARY_DIR}/plugins)
|
||||
set(XLIDAR_PLUGIN_COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/common)
|
||||
|
||||
# xlidar_add_plugin(<name> <sources...>) — shared boilerplate for one plugin.
|
||||
function(xlidar_add_plugin name)
|
||||
add_library(${name} MODULE ${ARGN})
|
||||
set_target_properties(${name} PROPERTIES
|
||||
PREFIX "" # driver_olei.so, not libdriver_olei.so
|
||||
LIBRARY_OUTPUT_DIRECTORY ${XLIDAR_PLUGIN_OUTPUT_DIR}
|
||||
CXX_VISIBILITY_PRESET hidden # only the two entry points are visible
|
||||
VISIBILITY_INLINES_HIDDEN ON
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
)
|
||||
target_include_directories(${name} PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/include
|
||||
${XLIDAR_PLUGIN_COMMON_DIR}
|
||||
)
|
||||
target_link_libraries(${name} PRIVATE Threads::Threads)
|
||||
endfunction()
|
||||
|
||||
add_subdirectory(driver_olei)
|
||||
add_subdirectory(driver_sick_code)
|
||||
add_subdirectory(driver_sick_safety)
|
||||
add_subdirectory(driver_espe)
|
||||
add_subdirectory(driver_rplidar)
|
||||
Reference in New Issue
Block a user