devkit_ui.actions

Functions

action_ros_msgs(action_key, action_params, ...)

Map an action + params to the (topic, value) pairs to publish.

Classes

ActionDef(label, icon[, tool_topic, ...])

Definition of a mission action (drive, weed, etc.).

class devkit_ui.actions.ActionDef(label: str, icon: str, tool_topic: str | None = None, param_schema: tuple = ())[source]

Bases: object

Definition of a mission action (drive, weed, etc.).

icon: str
label: str
param_schema: tuple = ()
tool_topic: str | None = None
devkit_ui.actions.action_ros_msgs(action_key: str, action_params: dict | None, enable: bool) → list[tuple[str, object]][source]

Map an action + params to the (topic, value) pairs to publish.

The mission executor calls this once with enable=True before navigating a row (engage the implement) and once with enable=False after (disengage), publishing each returned pair. A bool value is published as std_msgs/Bool, a numeric value as std_msgs/Float64.

Currently the only ROS seam on an action is tool_topic — a Bool engage/ disengage line. ‘drive’ has tool_topic=None and so yields nothing. Per- parameter setpoint topics (RPM, depth, blade height) aren’t wired yet: param_schema carries no topic field, so action_params is accepted for forward-compatibility but unused. When a parameter gains its own topic, extend the schema and append (param_topic, float(value)) pairs here while enable is True.