22 #include <core/plugin.h> 24 #include "sensor_thread.h" 25 #include "acquisition_thread.h" 27 # include "imu_cruizcore_xg1010.h" 47 std::set<std::string> configs;
48 std::set<std::string> ignored_configs;
50 std::string prefix =
"/hardware/imu/";
52 #if __cplusplus >= 201103L 53 std::unique_ptr<Configuration::ValueIterator> i(config->
search(prefix.c_str()));
55 std::auto_ptr<Configuration::ValueIterator> i(config->
search(prefix.c_str()));
58 std::string cfg_name = std::string(i->
path()).substr(prefix.length());
59 cfg_name = cfg_name.substr(0, cfg_name.find(
"/"));
61 if ( (configs.find(cfg_name) == configs.end()) &&
62 (ignored_configs.find(cfg_name) == ignored_configs.end()) ) {
64 std::string cfg_prefix = prefix + cfg_name +
"/";
68 active = config->
get_bool((cfg_prefix +
"active").c_str());
73 std::string type = config->
get_string((cfg_prefix +
"type").c_str());
74 bool continuous =
false;
76 continuous = config->
get_bool((cfg_prefix +
"continuous").c_str());
82 if ( type ==
"CruizCore-XG1010" ) {
88 throw Exception(
"Unknown IMU type '%s' for config %s",
89 type.c_str(), cfg_name.c_str());
92 thread_list.push_back(aqt);
97 configs.insert(cfg_name);
100 ignored_configs.insert(cfg_name);
103 for (ThreadList::iterator i = thread_list.begin();
104 i != thread_list.end(); ++i) {
112 if ( thread_list.empty() ) {
113 throw Exception(
"No IMU devices configured, aborting");
118 PLUGIN_DESCRIPTION(
"Driver for inertial measurement units (IMU)")
Fawkes library namespace.
virtual bool get_bool(const char *path)=0
Get value from configuration which is of type bool.
virtual ValueIterator * search(const char *path)=0
Iterator with search results.
virtual bool next()=0
Check if there is another element and advance to this if possible.
Base class for exceptions in Fawkes.
IMUPlugin(Configuration *config)
Constructor.
virtual const char * path() const =0
Path of value.
IMU acquisition thread for CruizCore XG1010 gyros.
Interface for configuration handling.
virtual std::string get_string(const char *path)=0
Get value from configuration which is of type string.