23 #include "sensor_thread.h"
25 #include <plugins/laser/laser_plugin.h>
27 # include "lase_edl_aqt.h"
33 # include "urg_gbx_aqt.h"
36 # include "sick_tim55x_usb_aqt.h"
38 #ifdef HAVE_SICK55X_BOOST
39 # include "sick_tim55x_ethernet_aqt.h"
59 std::set<std::string> configs;
60 std::set<std::string> ignored_configs;
62 std::string prefix =
"/hardware/laser/";
64 #if __cplusplus >= 201103L
65 std::unique_ptr<Configuration::ValueIterator> i(
config->
search(prefix.c_str()));
67 std::auto_ptr<Configuration::ValueIterator> i(
config->
search(prefix.c_str()));
70 std::string cfg_name = std::string(i->
path()).substr(prefix.length());
71 cfg_name = cfg_name.substr(0, cfg_name.find(
"/"));
73 if ((configs.find(cfg_name) == configs.end())
74 && (ignored_configs.find(cfg_name) == ignored_configs.end())) {
75 std::string cfg_prefix = prefix + cfg_name +
"/";
96 if (type ==
"lase_edl") {
102 if (type ==
"urg_gbx") {
108 if (type ==
"TiM55x-USB") {
113 #ifdef HAVE_SICK55X_BOOST
114 if (type ==
"TiM55x-Ethernet") {
120 throw Exception(
"Unknown lasertype '%s' for config %s", type.c_str(), cfg_name.c_str());
126 configs.insert(cfg_name);
129 ignored_configs.insert(cfg_name);
141 throw Exception(
"No laser devices configured, aborting");
145 PLUGIN_DESCRIPTION(
"Hardware driver for laser range finders")