Skip to content

Commit 6a36371

Browse files
committed
Add callback and docstrings
1 parent e39579a commit 6a36371

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

external_samples/rev_touch_sensor.py

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
from _collections_abc import Callable
33

44
class RevTouchSensor(Component):
5+
def __init__(self):
6+
self.is_pressed = None
7+
58
# Required methods
69
def get_manufacturer(self) -> str:
710
return "REV Robotics"
@@ -20,19 +23,27 @@ def reset(self) -> None:
2023
def get_connection_port_type(self) -> list[PortType]:
2124
return [PortType.SMART_IO_PORT]
2225
def periodic(self) -> None:
23-
# This would poll the hardware and see if it needs to fire any events
26+
old = self.is_pressed
27+
self._read_hardware()
28+
if old != self.is_pressed:
29+
if self.is_pressed and self.pressed_callback:
30+
self.pressed_callback()
31+
elif old and self.released_callback:
32+
self.released_callback()
33+
def _read_hardware(self):
34+
# here read hardware to get the current value of the sensor and set self.is_pressed
2435
pass
2536

26-
# Methods
2737
def is_pressed(self) -> bool:
28-
# Code to communicate using WPILib would go here
29-
return True
38+
'''Returns if the touch sensor is pressed or not'''
39+
return self.is_pressed
3040

3141
# Events
32-
def register_when_pressed(callback: Callable[[], None]) -> None:
33-
# Code to register callback here
34-
pass
42+
def register_when_pressed(self, callback: Callable[[], None]) -> None:
43+
'''Event when touch sensor is first pressed'''
44+
self.pressed_callback = callback
45+
3546

36-
def register_when_released(callback: Callable[[], None]) -> None:
37-
# Code to register callback here
38-
pass
47+
def register_when_released(self, callback: Callable[[], None]) -> None:
48+
'''Event when touch sensor is first released'''
49+
self.released_callback = callback

0 commit comments

Comments
 (0)