-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMovement.h
77 lines (67 loc) · 1.72 KB
/
Movement.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifndef _MOVEMENT_H
#define _MOVEMENT_H
#include "Digital.h"
#include "Servo.h"
class MovementClass{
public:
enum MovementDirectionEnum
{
Stop,
Forward,
Reverse,
Left,
Right,
Up,
Down,
RollRight,
RollLeft
};
enum MovementTypeEnum
{
Unknown,
HBridge,
ModifiedServo,
Roomba,
BV4113,
ARDrone,
BrookstoneRover,
Roboy
};
typedef void (*OnMovementHandler)(MovementDirectionEnum);
float DroneForwardReverseRate;
float DroneRollLeftRightRate;
float DroneUpDownRate;
float DroneYawLeftRightRate;
DigitalClass::DigitalPortEnum LeftWheelTriggerA;
DigitalClass::DigitalPortEnum LeftWheelTriggerB;
static const unsigned char MAX_SPEED = 0xff;
static const unsigned char MIN_SPEED = 0;
int ModifiedServoLeftForwardValue;
int ModifiedServoLeftReverseValue;
int ModifiedServoLeftStopValue;
int ModifiedServoRightForwardValue;
int ModifiedServoRightReverseValue;
int ModifiedServoRightStopValue;
bool ModifiedServoUseStopValue;
MovementTypeEnum MovementType;
DigitalClass::DigitalPortEnum RightWheelTriggerA;
DigitalClass::DigitalPortEnum RightWheelTriggerB;
ServoClass::ServoPortEnum ServoWheelLeftModifiedPort;
ServoClass::ServoPortEnum ServoWheelRightModifiedPort;
OnMovementHandler OnMovement;
MovementClass(EZB* ezb);
void GoDown();
void GoForward(unsigned char speed = MAX_SPEED);
void GoLeft(unsigned char speed = MAX_SPEED);
void GoReverse(unsigned char speed = MAX_SPEED);
void GoRight(unsigned char speed = MAX_SPEED);
void GoRollLeft();
void GoRollRight();
void GoStop();
void GoUp();
MovementDirectionEnum GetCurrentDirection();
private:
MovementDirectionEnum m_currentDirection;
EZB* m_ezb;
};
#endif