|
7 | 7 |
|
8 | 8 | from .__version__ import get_version |
9 | 9 | from .constants import DEFAULT_WS_URL |
| 10 | +from .control import set_control |
10 | 11 | from .event_queue import EventQueue |
11 | 12 | from .file_ops import upload, upload_file |
| 13 | +from .pins import pin_listen, pin_read |
12 | 14 | from .protocol_types import EventMessage, ResponseMessage |
13 | 15 | from .serial import monitor_lines |
14 | 16 | from .simulation import pause, restart, resume, start |
@@ -181,3 +183,35 @@ async def serial_monitor_cat(self) -> None: |
181 | 183 |
|
182 | 184 | def _on_pause(self, event: EventMessage) -> None: |
183 | 185 | self.last_pause_nanos = int(event["nanos"]) |
| 186 | + |
| 187 | + async def read_pin(self, part: str, pin: str) -> ResponseMessage: |
| 188 | + """Read the current state of a pin. |
| 189 | +
|
| 190 | + Args: |
| 191 | + part: The part id (e.g. "uno"). |
| 192 | + pin: The pin name (e.g. "A2"). |
| 193 | + """ |
| 194 | + return await pin_read(self._transport, part=part, pin=pin) |
| 195 | + |
| 196 | + async def listen_pin(self, part: str, pin: str, listen: bool = True) -> ResponseMessage: |
| 197 | + """Start or stop listening for changes on a pin. |
| 198 | +
|
| 199 | + When enabled, "pin:change" events will be delivered via the transport's |
| 200 | + event mechanism. |
| 201 | +
|
| 202 | + Args: |
| 203 | + part: The part id. |
| 204 | + pin: The pin name. |
| 205 | + listen: True to start listening, False to stop. |
| 206 | + """ |
| 207 | + return await pin_listen(self._transport, part=part, pin=pin, listen=listen) |
| 208 | + |
| 209 | + async def set_control(self, part: str, control: str, value: int | bool | float) -> ResponseMessage: |
| 210 | + """Set a control value (e.g. simulate button press). |
| 211 | +
|
| 212 | + Args: |
| 213 | + part: Part id (e.g. "btn1"). |
| 214 | + control: Control name (e.g. "pressed"). |
| 215 | + value: Control value to set (float). |
| 216 | + """ |
| 217 | + return await set_control(self._transport, part=part, control=control, value=value) |
0 commit comments