scoutos / scout / motors / src / motors.h @ 126fea96
History | View | Annotate | Download (2.16 KB)
1 | c406f16b | Ben | /**
|
---|---|---|---|
2 | c9f87aaf | bwasserm | * Copyright (c) 2011 Colony Project
|
3 | c406f16b | Ben | *
|
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 | c492be62 | Alex Zirbel | */
|
25 | c406f16b | Ben | |
26 | /**
|
||
27 | * @file motors.h
|
||
28 | 18e2028b | Alex | * @brief Contains motor declarations and functions.
|
29 | c406f16b | Ben | *
|
30 | * Contains functions and definitions for the use of
|
||
31 | 18e2028b | Alex | * motors.
|
32 | c406f16b | Ben | *
|
33 | * @author Colony Project, CMU Robotics Club
|
||
34 | 18e2028b | Alex | * @author Benjamin Wasserman
|
35 | a8480867 | Alex Zirbel | * @author Alex Zirbel
|
36 | 560d2317 | Tom Mullins | * @author Tom Mullins
|
37 | c406f16b | Ben | **/
|
38 | |||
39 | #ifndef _MOTORS_H_
|
||
40 | #define _MOTORS_H_
|
||
41 | |||
42 | 560d2317 | Tom Mullins | #include <fstream> |
43 | 6ebee82c | Alex | #include <messages/set_motors.h> |
44 | #include <messages/query_motors.h> |
||
45 | 14736c0c | Ben Wasserman | |
46 | a8480867 | Alex Zirbel | #define QUEUE_SIZE 10 |
47 | c9f87aaf | bwasserm | |
48 | c406f16b | Ben | int main(int argc, char **argv); |
49 | 18e2028b | Alex | |
50 | 6ebee82c | Alex | void motors_set(const messages::set_motors::ConstPtr& msg); |
51 | 18e2028b | Alex | |
52 | 6ebee82c | Alex | bool motors_query(messages::query_motors::Request &req,
|
53 | messages::query_motors::Response &res); |
||
54 | c406f16b | Ben | |
55 | 560d2317 | Tom Mullins | class Motor |
56 | { |
||
57 | fcd68ec1 | Tom Mullins | public:
|
58 | Motor(int pwm_gpt, int in1_gpio, int in2_gpio); |
||
59 | ~Motor(); |
||
60 | int get_speed();
|
||
61 | void set_speed(int speed); |
||
62 | private:
|
||
63 | int speed; /**< The current speed of the motor */ |
||
64 | std::fstream fpwm; /**< The device file controlling PWM */
|
||
65 | std::fstream fin1; /**< The device file controlling IN1 */
|
||
66 | std::fstream fin2; /**< The device file controlling IN2 */
|
||
67 | 560d2317 | Tom Mullins | }; |
68 | c9f87aaf | bwasserm | |
69 | c406f16b | Ben | #endif |