Coverage for src/main/python/valve.py : 100%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from servo import Servo
2from actuator import Actuator
5class Valve(Actuator):
7 """Valve opens and closes"""
9 opened = True
11 def __init__(self, pin_num, initial_opened=True):
13 """ constructor.
14 :param pin_num: number of pin that will command valve with PWM
15 :param initial_opened: if it has to be open at the beginning
16 """
17 self.servo = Servo(pin_num)
18 self.opened = initial_opened
19 if initial_opened:
20 self.open()
21 else:
22 self.close()
24 def __str__(self):
25 """prints the object."""
26 return "Valve: current status: {}. ".format(self.status())
28 def open(self):
29 self.servo.angle(30)
30 self.opened = True
32 def close(self):
33 self.servo.angle(120)
34 self.opened = False
36 def switch(self):
37 """changes the status of the valve, returns true if opened, false if closed."""
38 if self.opened:
39 self.close()
40 else:
41 self.open()
42 return self.opened
44 def is_open(self):
45 """if the valve is currently open."""
46 return self.opened
48 def is_closed(self):
49 """if the valve is currently closed."""
50 return not self.is_open()
52 def status(self):
53 """if the valve is currently opened or closed."""
54 if self.opened:
55 return "opened"
56 else:
57 return "closed"