Zequent Client SDK (Go) — Remote Control API Reference

Exhaustive method reference for remotecontrol.New(conn). For a narrative introduction, see the Quickstart. For Java, see client-sdk-remote-control.md.

Every method takes a context.Context first and returns (*devicecontrol.CommandResponse, error) unless noted otherwise — there's no separate HasErrors flag to check; a non-nil error already carries the platform-side message. Request/response types live in the devicecontrol package (device-control-contracts.proto) — the same shapes EdgeAdapterService uses, so they flow unchanged from this client through to the edge adapter that actually talks to the hardware.

Capability / runtime discovery

MethodReturnsNotes
ReportAssetRuntime(ctx, req)*devicecontrol.ReportAssetRuntimeResponseNormally called by an edge adapter, not a customer app — exposed for completeness/testing
GetAssetRuntime(ctx, assetSn, assetID)*devicecontrol.AssetRuntimeSnapshotLatest payload/capability snapshot Remote Control has cached for an asset; assetID optional, pass "" to omit
GetCapabilities(ctx, sn)*devicecontrol.AssetCapabilitiesCurrent capability snapshot for sn

Flight control

MethodNotes
TakeOff(ctx, sn, coordinate *devicecontrol.GeoCoordinate)
GoTo(ctx, sn, coordinate *devicecontrol.GeoCoordinate)
ReturnToHome(ctx, sn, altitude float32)altitude optional — pass 0 to omit and use the device's default RTH altitude

Manual control

MethodNotes
EnterManualControl(ctx, sn, clientID, userID, sessionID string)clientID/userID identify who is taking control; sessionID scopes the session
ExitManualControl(ctx, sn, clientID, userID, sessionID string)Same parameters as EnterManualControl
OpenManualControlInputStream(ctx) (grpc.ClientStreamingClient[devicecontrol.ManualControlInputCommandRequest, devicecontrol.CommandResponse], error)Client-streaming — send one ManualControlInputCommandRequest per tick, then CloseAndRecv() when done
LookAt(ctx, sn, coordinate *devicecontrol.GeoCoordinate, locked bool)
CapturePhoto(ctx, sn)
PlayTTSAudio(ctx, req *devicecontrol.TextToSpeechCommandRequest)
LiveStreamSplitScreen(ctx, sn, enabled bool)

Detection

MethodNotes
ControlDetection(ctx, req *devicecontrol.DetectionControlCommandRequest)

Dock commands

MethodNotes
OpenCover(ctx, sn)
CloseCover(ctx, sn, force bool)force is a required parameter, not optional
StartCharging(ctx, sn)
StopCharging(ctx, sn)

Asset management

MethodNotes
RebootAsset(ctx, sn)
BootSubAsset(ctx, sn, enabled bool)Power the sub-asset on/off

Debug and maintenance

MethodNotes
SetRemoteDebugMode(ctx, sn, enabled bool)One toggle method, unlike Java's two separate enterRemoteDebugMode/closeRemoteDebugMode
ChangeAcMode(ctx, req *devicecontrol.ChangeAcModeCommandRequest)

Camera

MethodNotes
ChangeLens(ctx, req *devicecontrol.ChangeCameraLensCommandRequest)
ChangeZoom(ctx, req *devicecontrol.ChangeCameraZoomCommandRequest)

Custom commands

MethodReturnsNotes
SendCustomCommand(ctx, sn, commandID string, params *structpb.Struct, target *devicecontrol.CapabilityTarget)*devicecontrol.CustomCommandResponseHandles a command that doesn't map to a standard method above — see Waypoint Missions for the mission.waypoint.execute use case

Was this page helpful?

© Copyright 2026 Zequent. All rights reserved.