Project

General

Profile

Revision 737bb380

ID737bb380f77ab8570b0481e2b93b4e72583e28a6

Added by Ben Wasserman almost 5 years ago

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.

View differences:

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