-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcarControl.py
More file actions
82 lines (61 loc) · 1.91 KB
/
carControl.py
File metadata and controls
82 lines (61 loc) · 1.91 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import msgParser
class CarControl:
'''
An object holding all the control parameters of the car
'''
# TODO range check on set parameters
def __init__(self, accel=0.0, brake=0.0, gear=1, steer=0.0, clutch=0.0, focus=0, meta=0):
'''Constructor'''
self.parser = msgParser.MsgParser()
self.actions = None
self.accel = accel
self.brake = brake
self.gear = gear
self.steer = steer
self.clutch = clutch
self.focus = focus
self.meta = meta
def toMsg(self):
self.actions = {
'accel': [self.accel],
'brake': [self.brake],
'gear': [self.gear],
'steer': [self.steer],
'clutch': [self.clutch],
'focus': [self.focus],
'meta': [self.meta]
}
return self.parser.stringify(self.actions)
def setAccel(self, accel):
self.accel = accel
def getAccel(self):
return self.accel
def setBrake(self, brake):
self.brake = brake
def getBrake(self):
return self.brake
def setGear(self, gear):
# Validate gear range
if not isinstance(gear, int) or gear < -1 or gear > 6:
print(f"Invalid gear value: {gear}. Must be between -1 and 6.")
return
# Set the new gear
self.gear = gear
def getGear(self):
return self.gear
def setSteer(self, steer):
self.steer = steer
def getSteer(self):
return self.steer
def setClutch(self, clutch):
self.clutch = clutch
def getClutch(self):
return self.clutch
def setFocus(self, focus):
self.focus = focus
def getFocus(self):
return self.focus
def setMeta(self, meta):
self.meta = meta
def getMeta(self):
return self.meta