ros_sugar.robot.transports.http¶
HTTP transport for robot plugins.
Supports sending via POST/PUT and receiving via a polled GET. A WebSocket ingress mode is intentionally out of scope for v1.
Module Contents¶
Classes¶
HTTP transport — sends commands via POST/PUT and optionally polls an endpoint for telemetry. |
API¶
- class ros_sugar.robot.transports.http.HttpTransport(name: str, *, base_url: str, send_path: Optional[str] = None, send_method: str = 'POST', poll_path: Optional[str] = None, poll_rate_hz: Optional[float] = None, headers: Optional[Dict[str, str]] = None, timeout: float = 2.0, **kwargs)¶
Bases:
ros_sugar.robot.transports.TransportHTTP transport — sends commands via POST/PUT and optionally polls an endpoint for telemetry.
- Parameters:
name (str) – Unique transport name.
base_url (str) – Base URL of the robot’s HTTP API (no trailing slash).
send_path (Optional[str]) – Path appended to
base_urlfor command requests.send_method (str) – HTTP method for commands (
POSTorPUT).poll_path (Optional[str]) – Path appended to
base_urlpolled for telemetry.poll_rate_hz (Optional[float]) – Polling rate; required when
poll_pathis set.headers (Optional[Dict[str, str]]) – Extra headers sent with every request.
timeout (float) – Per-request timeout in seconds.
- open() None¶
Start the telemetry poll thread if
poll_pathis configured.
- open_egress() None¶
No persistent state is needed for sending; just mark open.
- close() None¶
Stop the poll thread.
- send(payload: Any) bool¶
Send
payloadtobase_url + send_path.bytespayloads are sent as-is; anything else is JSON-encoded.
- is_open() bool¶
- subscribe(on_msg: Callable[[Any], None]) ros_sugar.robot.transports.SubscriptionHandle¶
- property kind: str¶