// Discover plugins and print every registered driver. // ./list_drivers [plugins_dir] (default: ./plugins) #include "lidar_manager.hpp" #include int main(int argc, char** argv) { const std::string plugins_dir = (argc > 1) ? argv[1] : "plugins"; xlidar::LidarManager manager(plugins_dir); size_t count = manager.load_all_plugins(); printf("%zu driver(s) in %s\n\n", count, plugins_dir.c_str()); for (const auto& [driver_id, plugin] : manager.available_drivers()) { const xlidar::DriverInfo& info = plugin.info; printf("%s\n", driver_id.c_str()); printf(" vendor: %s\n", info.vendor.c_str()); printf(" model: %s\n", info.model.c_str()); printf(" transport: %s%s\n", xlidar::to_string(info.transport), info.transport_selectable ? " (selectable)" : ""); printf(" models: "); for (size_t i = 0; i < info.supported_models.size(); ++i) printf("%s%s", i ? ", " : "", info.supported_models[i].c_str()); printf("\n"); printf(" description: %s\n", info.description.c_str()); printf(" file: %s\n\n", plugin.file_path.c_str()); } return 0; }