-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpenController.java
More file actions
66 lines (42 loc) · 1.2 KB
/
penController.java
File metadata and controls
66 lines (42 loc) · 1.2 KB
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
import lejos.hardware.motor.BaseRegulatedMotor;
enum penState{
// Using an enum for a statemachine for our pen
// with the moveDegrees how far it needs to move
// to put the pen into that position
UP(100), DOWN(-100);
public int moveDegrees;
private penState(int degrees) {
this.moveDegrees = degrees;
}
}
public class penController {
private penState currentState;
private BaseRegulatedMotor motor;
public penController(BaseRegulatedMotor Motor) {
this.motor = Motor;
this.currentState = penState.UP;
}
public boolean isPenUp() {
return currentState == penState.UP;
}
public boolean putPenDown() {
// Moves the pen to the down position
if(this.isPenUp()) {
this.currentState = penState.DOWN;
this.motor.rotate(this.currentState.moveDegrees, false);
this.motor.waitComplete();
return true;
}
return false;
}
public boolean putPenUp() {
// moves the pen to the up position
if(!this.isPenUp()) {
this.currentState = penState.UP;
this.motor.rotate(this.currentState.moveDegrees, false);
this.motor.waitComplete();
return true;
}
return false;
}
}