Fawkes API
Fawkes Development Version
robotino_plugin.cpp
1
2
/***************************************************************************
3
* robotino_plugin.cpp - Plugin for Robotino platform support
4
*
5
* Created: Sun Nov 13 15:31:57 2011
6
* Copyright 2011 Tim Niemueller [www.niemueller.de]
7
*
8
****************************************************************************/
9
10
/* This program is free software; you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation; either version 2 of the License, or
13
* (at your option) any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU Library General Public License for more details.
19
*
20
* Read the full text in the LICENSE.GPL file in the doc directory.
21
*/
22
23
#include <core/plugin.h>
24
25
#ifdef HAVE_OPENROBOTINO
26
# include "openrobotino_com_thread.h"
27
#endif
28
#ifdef HAVE_ROBOTINO_DIRECT
29
# include "direct_com_thread.h"
30
#endif
31
#include "act_thread.h"
32
#include "sensor_thread.h"
33
34
using namespace
fawkes
;
35
36
/** Plugin to provide Robotino platform support for Fawkes.
37
* @author Tim Niemueller
38
*/
39
class
RobotinoPlugin
:
public
fawkes::Plugin
40
{
41
public
:
42
/** Constructor.
43
* @param config Fawkes configuration
44
*/
45
explicit
RobotinoPlugin
(
Configuration
*config) :
Plugin
(config)
46
{
47
std::string cfg_driver = config->
get_string
(
"/hardware/robotino/driver"
);
48
49
RobotinoComThread
*com_thread = NULL;
50
51
if
(cfg_driver ==
"openrobotino"
) {
52
#ifdef HAVE_OPENROBOTINO
53
com_thread =
new
OpenRobotinoComThread
();
54
#else
55
throw
Exception
(
"robotino: driver mode 'openrobotino' not available at compile time"
);
56
#endif
57
}
else
if
(cfg_driver ==
"direct"
) {
58
#ifdef HAVE_ROBOTINO_DIRECT
59
com_thread =
new
DirectRobotinoComThread
();
60
#else
61
throw
Exception
(
"robotino: driver mode 'direct' not available at compile time"
);
62
#endif
63
}
else
{
64
throw
Exception
(
"robotino: unknown driver '%s'"
, cfg_driver.c_str());
65
}
66
thread_list.push_back(com_thread);
67
thread_list.push_back(
new
RobotinoSensorThread
(com_thread));
68
thread_list.push_back(
new
RobotinoActThread
(com_thread));
69
}
70
};
71
72
PLUGIN_DESCRIPTION(
"Robotino platform support"
)
73
EXPORT_PLUGIN(
RobotinoPlugin
)
RobotinoPlugin
Plugin to provide Robotino platform support for Fawkes.
Definition:
robotino_plugin.cpp:39
OpenRobotinoComThread
Definition:
openrobotino_com_thread.h:72
fawkes::Configuration
Definition:
config.h:70
fawkes
RobotinoActThread
Definition:
act_thread.h:48
RobotinoComThread
Definition:
com_thread.h:38
RobotinoPlugin::RobotinoPlugin
RobotinoPlugin(Configuration *config)
Constructor.
Definition:
robotino_plugin.cpp:45
RobotinoSensorThread
Definition:
sensor_thread.h:45
DirectRobotinoComThread
Definition:
direct_com_thread.h:47
fawkes::Configuration::get_string
virtual std::string get_string(const char *path)=0
fawkes::Plugin
Definition:
plugin.h:39
fawkes::Exception
Definition:
exception.h:41
src
plugins
robotino
robotino_plugin.cpp
Generated by
1.8.17