Exhaustive method reference for EdgeAdapter. For a narrative introduction and worked examples, see
the Edge Adapter guide. For Java, see
edge-sdk-adapter.md.
Every method takes a RequestContext (ctx) as its first non-self argument and returns
EdgeResponse, except get_detections (an async-generator, server-streaming) and
send_custom_command (returns CustomCommandResponse). Methods you don't override return
EdgeResponse.not_supported(...) / NotImplementedError and are reported unavailable in
get_capabilities.
@dataclassclassRequestContext: tid:str# transaction id (correlate response/progress to request) sn:str# asset serial number timestamp: datetime
Exactly these three fields — no metadata field exists on RequestContext. Always pass ctx.tid
and ctx.sn back into your EdgeResponse to keep the platform's correlation working.
ok(...) also accepts external_execution_id (keyword-only) — set it when the command you just
accepted keeps running asynchronously, so a later notification (or a StopTask) can be correlated
back to it. See Live Data — Notifications.
The one real async-generator method on EdgeAdapter — implement it as async def ... : yield DetectionResponse(...), not as a coroutine returning a value
Close dock cover; force is a required positional parameter, not keyword-only and has no default
start_charging(ctx)
Start charging the drone in the dock
stop_charging(ctx)
Stop charging
reboot_asset(ctx)
Reboot the main asset (dock)
boot_up_sub_asset(ctx)
Power on the sub-asset (drone) — two separate methods, not one boot_sub_asset(value: bool)
boot_down_sub_asset(ctx)
Power off the sub-asset
register_asset(ctx, asset: Asset)
Not the same as ConnectorClient.register_asset. This is the platform notifying your adapter that registration already happened — see Connector reference for the outbound call
deregister_asset(ctx)
Same distinction — notifies the adapter the asset was removed from the platform
Handles a command identified by request.command_type, with parameters in request.params: dict. This is the path MAVLink and the simulator use for waypoint missions instead of the Task methods above
_auto_capabilities maps each overridable method name to a capability's command string via an
internal table. Two things worth knowing if you're cross-referencing against the Java SDK or the
platform's command IDs:
enter_or_close_remote_debug_mode maps to a single EnterOrCloseRemoteDebugMode capability —
there's no separate enter/close command pair the way the Java EdgeAdapterService has.
The internal map also carries a take_photo → TakePhoto entry that is unrelated to (and
independent of) the real, distinct capture_photo → CapturePhoto entry — both are real,
separately-overridable methods; neither is a typo of the other.