Edge SDK -- Models Reference

This document provides a comprehensive reference for all request, response, and data models used in the Zequent Edge SDK.

Table of Contents


Command Models

CommandResult

The universal return type for all EdgeAdapterService commands.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
successbooleanWhether the command succeeded
messageStringHuman-readable result message
tidStringTransaction ID for tracing
snStringDevice serial number
resultTypeCommandResultTypeResult classification

CommandResultType enum:

ValueDescription
SUCCESSCommand executed successfully
ERRORCommand failed
NOT_IMPLEMENTEDCommand is not supported by this adapter

Factory methods:

// Success
CommandResult.success("Message", sn)
CommandResult.success("Message", tid, sn)

// Error
CommandResult.error("Error message", sn)
CommandResult.error("Error message", tid, sn)

// Not implemented (used internally by default methods)
CommandResult.notImplemented("Not supported", sn)

Utility methods:

boolean isNotImplemented()  // returns true if resultType == NOT_IMPLEMENTED

CurrentCapabilities

Reports the set of capabilities that an adapter currently supports.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
snStringDevice serial number
assetTypeAssetTypeEnumType of asset
capabilitiesSet<Capability>Set of supported capabilities
timestamplongTimestamp when capabilities were reported

Factory methods:

// Empty capabilities
CurrentCapabilities.empty(sn)

// With specific capabilities
CurrentCapabilities.of(sn, AssetTypeEnum.ASSET_TYPE_DOCK, capabilitySet)

Capability

Describes a single capability of the adapter.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
commandStringCommand name (e.g., "takeOff", "openCover")
descriptionStringHuman-readable description
availableBooleanWhether the capability is currently available
unavailableReasonStringReason if not available (null if available)
metadataMap<String, String>Additional metadata key-value pairs

Flight Control Models

TakeOffRequest

Request to initiate takeoff.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
snStringDevice serial number
tidStringTransaction identifier
coordinatesCoordinatesTakeoff position (latitude, longitude, altitude)

ReturnToHomeRequest

Request to return the sub-asset (drone) to its home position.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
tidStringTransaction identifier
snStringDevice serial number
altitudeFloatReturn altitude in meters

GoToRequest

Request to navigate to specific coordinates.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
snStringDevice serial number
tidStringTransaction identifier
coordinatesCoordinatesTarget position

Coordinates

Geographic coordinates.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
latitudeFloatGPS latitude in degrees
longitudeFloatGPS longitude in degrees
altitudeFloatAltitude in meters

Manual Control Models

ManualControlRequest

Request to enter or exit manual control mode.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
snStringDevice serial number
enablebooleantrue to enter manual control, false to exit

ManualControlInput

A single frame of joystick/stick input for controlling the device in real-time.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
snStringDevice serial number
rollFloatRoll axis value (typically -1.0 to 1.0)
pitchFloatPitch axis value (typically -1.0 to 1.0)
yawFloatYaw axis value (typically -1.0 to 1.0)
throttleFloatThrottle value (typically -1.0 to 1.0)
gimbalPitchFloatGimbal pitch adjustment

This model supports the @Builder pattern:

ManualControlInput input = ManualControlInput.builder()
    .sn("DEVICE_SN")
    .roll(0.0f)
    .pitch(0.5f)
    .yaw(0.0f)
    .throttle(0.3f)
    .gimbalPitch(-0.2f)
    .build();

Camera and Gimbal Models

LookAtRequest

Request to point the camera at specific coordinates.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
snStringDevice serial number
latitudeDoubleTarget GPS latitude
longitudeDoubleTarget GPS longitude
altitudeFloatTarget altitude in meters
lockedBooleanWhether to lock the gimbal on the target
payloadIndexStringCamera/payload index identifier

ChangeLensRequest

Request to switch the active camera lens.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
snStringDevice serial number
lensStringTarget lens identifier (e.g., "wide", "zoom", "ir")
videoIdStringVideo stream identifier

ChangeZoomRequest

Request to adjust the camera zoom level.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
snStringDevice serial number
lensStringLens identifier
payloadIndexStringPayload index
zoomFloatTarget zoom factor

Live Streaming Models

LiveStreamStartRequest

Request to start a video live stream.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
snStringDevice serial number
tidStringTransaction identifier
videoIdStringVideo stream identifier
streamServerStringTarget streaming server URL
videoTypeStringStream type (e.g., RTMP, RTSP)

LiveStreamStopRequest

Request to stop a video live stream.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
snStringDevice serial number
tidStringTransaction identifier
videoIdStringVideo stream identifier to stop

Telemetry Models

TelemetryRequestData

Top-level wrapper for pushing telemetry data to the Live Data Service.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
tidStringTransaction identifier
snStringDevice serial number
assetIdStringPlatform asset identifier
timestampLocalDateTimeWhen the telemetry was recorded
typeLiveDataTypeASSET_TELEMETRY or SUBASSET_TELEMETRY
assetTelemetryAssetTelemetryDataAsset-level telemetry data
subAssetTelemetrySubAssetTelemetryDataSub-asset-level telemetry data

Supports the @Builder pattern:

TelemetryRequestData data = TelemetryRequestData.builder()
    .sn("DEVICE_SN")
    .tid(UUID.randomUUID().toString())
    .timestamp(LocalDateTime.now())
    .type(LiveDataType.ASSET_TELEMETRY)
    .assetTelemetry(assetData)
    .build();

AssetTelemetryData

Telemetry for the primary asset (dock, station, or ground device).

Package: com.zequent.framework.utils.edge.sdk.dto

FieldTypeDescription
idStringTelemetry identifier
timestampLocalDateTimeMeasurement time
latitudeFloatGPS latitude
longitudeFloatGPS longitude
absoluteAltitudeFloatAltitude above sea level (m)
relativeAltitudeFloatAltitude above ground (m)
environmentTempFloatAmbient temperature (C)
insideTempFloatInternal temperature (C)
humidityFloatHumidity (%)
modeAssetModesOperational mode
rainfallRainfallEnumRainfall condition
headingFloatHeading (degrees)
debugModeOpenBooleanDebug mode active
hasActiveManualControlSessionBooleanManual control active
coverStateAssetCoverStateEnumCover state
workingVoltageIntegerWorking voltage (mV)
workingCurrentIntegerWorking current (mA)
supplyVoltageIntegerSupply voltage (mV)
windSpeedFloatWind speed (m/s)
positionValidBooleanGPS position valid
manualControlStateManualControlStateEnumDRC state
subAssetInformationSubAssetInformationPaired sub-asset info
subAssetAtHomeBooleanSub-asset at dock
subAssetChargingBooleanSub-asset charging
subAssetPercentageFloatSub-asset battery (%)
networkInformationNetworkInformationNetwork info
airConditionerAirConditionerAC state

Nested types:

SubAssetInformation:

FieldTypeDescription
snStringSub-asset serial number
modelStringSub-asset model name
pairedBooleanWhether paired
onlineBooleanWhether online

NetworkInformation:

FieldTypeDescription
typeNetworkTypeEnumNetwork type (4G, 5G, etc.)
rateFloatData rate
qualityNetworkStateQualityEnumSignal quality

AirConditioner:

FieldTypeDescription
stateAssetAirConditionerStateEnumAC state
switchTimeIntegerTime until state switch

SubAssetTelemetryData

Telemetry for a sub-asset (drone, vehicle).

Package: com.zequent.framework.utils.edge.sdk.dto

FieldTypeDescription
idStringTelemetry identifier
timestampLocalDateTimeMeasurement time
latitudeFloatGPS latitude
longitudeFloatGPS longitude
absoluteAltitudeFloatAltitude above sea level (m)
relativeAltitudeFloatAltitude above ground (m)
horizontalSpeedFloatHorizontal speed (m/s)
verticalSpeedFloatVertical speed (m/s)
windSpeedFloatWind speed (m/s)
windDirectionStringWind direction
headingFloatHeading (degrees)
gearIntegerLanding gear state
heightLimitIntegerMax height limit (m)
homeDistanceFloatDistance to home (m)
totalMovementDistanceDoubleTotal distance traveled (m)
totalMovementTimeDoubleTotal flight time (s)
modeSubAssetModeFlight mode
countryStringCountry code
batteryInformationBatteryInformationBattery data
payloadTelemetryPayloadTelemetryPayload/camera data

Nested types:

BatteryInformation:

FieldTypeDescription
percentageStringBattery percentage
remainingTimeIntegerRemaining time (seconds)
returnToHomePowerStringPower needed for RTH

PayloadTelemetry:

FieldTypeDescription
idStringPayload identifier
timestampLocalDateTimeMeasurement time
nameStringPayload name
cameraDataCameraDataCamera state
rangeFinderDataRangeFinderDataRangefinder data
sensorDataSensorDataSensor readings

CameraData:

FieldTypeDescription
currentLensStringActive lens
gimbalPitchFloatGimbal pitch (degrees)
gimbalYawFloatGimbal yaw (degrees)
zoomFactorFloatCurrent zoom level

RangeFinderData:

FieldTypeDescription
targetLatitudeFloatTarget latitude
targetLongitudeFloatTarget longitude
targetDistanceFloatDistance to target (m)
targetAltitudeFloatTarget altitude (m)

SensorData:

FieldTypeDescription
targetTemperatureFloatMeasured temperature (C)

Mission Models

MissionData

Represents a mission returned by the Mission Autonomy Service.

Package: com.zequent.framework.edge.sdk.models

FieldTypeDescription
idUUIDUnique mission identifier
nameStringMission name

Configuration Models

EdgeClientConfig

The edge adapter configuration interface, mapped from application.properties with @ConfigMapping(prefix = "zequent.edge").

Package: com.zequent.framework.edge.sdk.config

MethodReturn TypePropertyDefaultDescription
endpoint()Stringzequent.edge.endpoint--Adapter listen address
sn()Stringzequent.edge.sn--Device serial number
timeout()Durationzequent.edge.timeout30sCommand timeout
maxRetries()intzequent.edge.max-retries3Max retry attempts
assetType()AssetTypeEnumzequent.edge.asset-type--Asset type
assetVendor()AssetVendorzequent.edge.asset-vendor--Asset vendor
assetId()Optional<String>zequent.edge.asset-idemptyPlatform asset ID

Access these values in your code via the EdgeClient bean:

@Inject
EdgeClient edgeClient;

String sn = edgeClient.getSn();
EdgeClientConfig config = edgeClient.getConfig();
Duration timeout = config.timeout();

Or inject EdgeClientConfig directly:

@Inject
EdgeClientConfig config;

String sn = config.sn();
AssetTypeEnum type = config.assetType();

Was this page helpful?