This repository has been archived by the owner on Feb 25, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathkeyboarddriver.py
68 lines (52 loc) · 1.62 KB
/
keyboarddriver.py
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
from driverinterface import DriverInterface
from keyboardhandler import KeyboardHandler
class KeyboardDriver(DriverInterface):
def __init__(self):
self.keyboardHandler=KeyboardHandler.getInstance()
self.acceleration=0
self.braking=0
self.steering=0
self.gearChangeRequested=0
self.pauseToggleRequested=0
def interpretInputs(self):
upArrow=self.keyboardHandler.getUpArrowStatus()
downArrow=self.keyboardHandler.getDownArrowStatus()
leftArrow=self.keyboardHandler.getLeftArrowStatus()
rightArrow=self.keyboardHandler.getRightArrowStatus()
space=self.keyboardHandler.getSpaceStatus()
pause=self.keyboardHandler.getPStatus()
if space==1:
self.gearChangeRequested=True
self.keyboardHandler.clearSpaceStatus()
if pause==1:
self.pauseToggleRequested=True
self.keyboardHandler.clearPStatus()
if upArrow==1:
self.acceleration=1.0
elif downArrow==1:
self.braking=1.0
else:
self.acceleration=0
self.braking=0
if leftArrow==1:
self.steering=self.steering-75
if self.steering<-10000:
self.steering=-10000
elif rightArrow==1:
self.steering=self.steering+75
if self.steering>10000:
self.steering=10000
def getAcceleration(self):
return float(self.acceleration)
def getBraking(self):
return float(self.braking)
def getSteering(self):
return float(self.steering)/10000
def getGearChangeRequested(self):
return self.gearChangeRequested
def acknowledgeGearChangeRequested(self):
self.gearChangeRequested=False
def getPauseToggleRequested(self):
return self.pauseToggleRequested
def acknowledgePauseToggleRequested(self):
self.pauseToggleRequested=False