Revision 737bb380
ID | 737bb380f77ab8570b0481e2b93b4e72583e28a6 |
Restructured libscout.(cpp/h) so the behavior main runs in a separate file, and just calls upon libscout.cpp for initialization. This behavior function can then be swapped out or changed, and the rest of the libscout node can be precompiled so it doesn't have to be recompiled every time.
scout/libscout/src/behavior.cpp | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (c) 2011 Colony Project |
|
3 |
* |
|
4 |
* Permission is hereby granted, free of charge, to any person |
|
5 |
* obtaining a copy of this software and associated documentation |
|
6 |
* files (the "Software"), to deal in the Software without |
|
7 |
* restriction, including without limitation the rights to use, |
|
8 |
* copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
9 |
* copies of the Software, and to permit persons to whom the |
|
10 |
* Software is furnished to do so, subject to the following |
|
11 |
* conditions: |
|
12 |
* |
|
13 |
* The above copyright notice and this permission notice shall be |
|
14 |
* included in all copies or substantial portions of the Software. |
|
15 |
* |
|
16 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
17 |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
|
18 |
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
|
19 |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
|
20 |
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
|
21 |
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
|
22 |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
|
23 |
* OTHER DEALINGS IN THE SOFTWARE. |
|
24 |
**/ |
|
25 |
|
|
26 |
|
|
27 |
/** |
|
28 |
* @file behavior.cpp |
|
29 |
* @brief Contains behavior |
|
30 |
* |
|
31 |
* @author Colony Project, CMU Robotics Club |
|
32 |
* @author Ben Wasserman |
|
33 |
**/ |
|
34 |
|
|
35 |
#include "libscout.h" |
|
36 |
|
|
37 |
/*! |
|
38 |
* \brief Main. The main function for the behavior. |
|
39 |
* |
|
40 |
* This is the main function for libscout. It calls init() which initializes |
|
41 |
* the clients and publishers/subscribers for the other parts of the library. |
|
42 |
* |
|
43 |
* \param argc The number of command line arguments (should be 1) |
|
44 |
* \param argv The array of command line arguments |
|
45 |
**/ |
|
46 |
int main(int argc, char **argv){ |
|
47 |
init(LIB_ALL, argc, argv); |
|
48 |
/** \todo remove this test code **/ |
|
49 |
// motors_set(100, MOTOR_ALL); |
|
50 |
ROS_INFO("%d", motors_query(MOTOR_FL)); |
|
51 |
|
|
52 |
ROS_SPIN( |
|
53 |
return 0; |
|
54 |
} |
scout/libscout/src/libscout.cpp | ||
---|---|---|
32 | 32 |
* libscout |
33 | 33 |
* |
34 | 34 |
* @author Colony Project, CMU Robotics Club |
35 |
* @author Ben Wasserman |
|
35 | 36 |
**/ |
36 | 37 |
|
37 |
/* Author: Ben Wasserman |
|
38 |
*/ |
|
39 |
|
|
40 | 38 |
#include "libscout.h" |
41 | 39 |
|
42 | 40 |
/* Global objects */ |
... | ... | |
56 | 54 |
**/ |
57 | 55 |
|
58 | 56 |
/*! |
59 |
* \brief LibScout. Primary library for interfacing behaviors with scout hw. |
|
60 |
* |
|
61 |
* This is the main function for libscout. It is run when the node starts and |
|
62 |
* starts the library. It calls init() which initializes the clients and |
|
63 |
* publishers/subscribers for the other parts of the library. |
|
64 |
* |
|
65 |
* \param argc The number of command line arguments (should be 1) |
|
66 |
* \param argv The array of command line arguments |
|
67 |
**/ |
|
68 |
int main(int argc, char **argv){ |
|
69 |
ros::init(argc, argv, "libscout"); |
|
70 |
|
|
71 |
init(LIB_ALL); |
|
72 |
/** \todo remove this test code **/ |
|
73 |
// motors_set(100, MOTOR_ALL); |
|
74 |
ROS_INFO("%d", motors_query(MOTOR_FL)); |
|
75 |
|
|
76 |
return 0; |
|
77 |
} |
|
78 |
|
|
79 |
/*! |
|
80 | 57 |
* \brief Initializes modules in the libscout. |
81 | 58 |
* |
82 | 59 |
* Calls init functions for each module in libscout. |
83 | 60 |
* \param modules A bitmask of the modules that will be initialized. |
84 | 61 |
**/ |
85 |
int init(int modules){ |
|
62 |
int init(int modules, int argc, char **argv){ |
|
63 |
ros::init(argc, argv, "libscout"); |
|
64 |
|
|
86 | 65 |
/** \todo Copy this if for each module that gets added to the library */ |
87 | 66 |
if(modules & LIB_MOTORS){ |
88 | 67 |
libmotors_init(); |
scout/libscout/src/libscout.h | ||
---|---|---|
32 | 32 |
* libscout |
33 | 33 |
* |
34 | 34 |
* @author Colony Project, CMU Robotics Club |
35 |
* @author Ben Wasserman |
|
35 | 36 |
**/ |
36 | 37 |
|
37 | 38 |
/* Author: Ben Wasserman |
... | ... | |
45 | 46 |
#include "libmotors.h" |
46 | 47 |
|
47 | 48 |
/* Libscout functions */ |
48 |
int main(int argc, char **argv); |
|
49 |
int init(int modules); |
|
49 |
int init(int modules, int argc, char **argv); |
|
50 | 50 |
|
51 | 51 |
#endif |
52 | 52 |
|
Also available in: Unified diff