Protocol Documentation
Table of Contents
common.proto
Ack
DEPRECATED. Represents an “ack” message informing the drone application that a media part has been correctly received. Generated by the backend server. The drone application should always wait to receive an ack before sending the next media part.
Field |
Type |
Label |
Description |
---|---|---|---|
media_id |
media ID of the received part |
Attitude
Represents the attitude of a drone’s gimbal
Field |
Type |
Label |
Description |
---|---|---|---|
roll |
Z axis: gimbal rotates |
||
pitch |
X axis: gimbal moves up (+) or down (-) |
||
yaw |
Y axis: gimbal moves right (+) or left (-) |
||
has_roll |
tells if the “roll” parameter should be used |
||
has_pitch |
tells if the “pitch” parameter should be used |
||
has_yaw |
tells if the “yaw” parameter should be used |
CameraMode
Represents a command to set the camera mode
Field |
Type |
Label |
Description |
---|---|---|---|
camera_type |
camera type |
||
mode |
camera mode |
CameraSettings
Represents the camera settings that the user can get/set
Field |
Type |
Label |
Description |
---|---|---|---|
camera_type |
camera type |
||
stream_quality |
quality of stream |
||
media_resolution |
resolution of media (photos and videos) |
||
video_frame_rate |
frame rate for videos |
||
photo_format |
format of photos to be taken by the drone (JPEG, RAW, etc.) |
||
video_format |
format of videos to be taken by the drone (MP4, MOV, etc.) |
||
photo_mode |
mode of photos to be taken by the drone (single, interval, etc.) |
||
video_mode |
mode of videos to be taken by the drone (normal, slow motion, etc.) |
||
photo_count |
number of photos to take. 0: unknown/unchanged. -1: unlimited. Only used with PHOTO_MODE_INTERVAL, PHOTO_MODE_BURST, and PHOTO_MODE_AEB |
||
photo_interval |
interval between photos, in seconds. 0: unknown/unchanged. Only used with PHOTO_MODE_INTERVAL and PHOTO_MODE_TIME_LAPSE (default: 2) |
||
photo_duration |
duration of the command, in seconds. 0: unknown/unchanged. -1: unlimited. Only used with PHOTO_MODE_TIME_LAPSE |
||
photo_capture_mode |
capture mode of photos to be taken by the drone (RGB, MS, etc.) |
||
video_capture_mode |
capture mode of videos to be taken by the drone (RGB, NDVI, etc.) |
||
stream_mode |
mode of stream (RGB, NDVI, thermal, etc.) |
Circle
Represents a command to make the drone make a circle around a GPS coordinate
Field |
Type |
Label |
Description |
---|---|---|---|
speed |
speed of movement |
||
duration |
duration of circle, in milliseconds |
||
degrees |
number of degrees to circle |
||
radius |
distance between drone and center, in meters |
||
position |
GPS coordinates of center |
ClientData
Represents the generic data object that is sent from client to drone. Each ClientData message must contain the current session, and only one of the other parameters.
Field |
Type |
Label |
Description |
---|---|---|---|
session |
current session |
||
error |
notifies when an error occurred |
||
command |
contains a command for the drone |
||
flight_plan |
Deprecated. contains a flight plan. Deprecated: use the |
||
ack |
Deprecated. informs the drone application that a media part has been received. sent by backend |
||
heartbeat |
(optionally) used to keep the connection alive |
||
media_upload_response |
contains the URL to upload a media to |
||
flight_plans |
contains a list of flight plans to run |
ClientDataList
Field |
Type |
Label |
Description |
---|---|---|---|
data |
repeated |
ClientSession
Represents a session between a client and the server
Field |
Type |
Label |
Description |
---|---|---|---|
id |
|||
droneId |
Command
Represents a command that can be sent to the drone
Field |
Type |
Label |
Description |
---|---|---|---|
id |
command ID |
||
blocking |
if true, the drone will not accept any other command until this one is completed |
||
empty |
some commands do not require parameters |
||
return_home |
used by RETURN_HOME |
||
hover |
used by HOVER |
||
move_speed |
used by MOVE_SPEED |
||
move_gps |
used by MOVE_GPS |
||
circle |
used by CIRCLE |
||
rotate |
used by ROTATE |
||
tilt_camera |
used by TILT_CAMERA |
||
land |
used by LAND |
||
stop |
used by STOP_MOVEMENT, STOP_FLIGHT_PLAN, STOP_ALL |
||
start_stream |
used by START_STREAM |
||
stop_stream |
used by STOP_STREAM |
||
take_photo |
used by TAKE_PHOTO |
||
start_recording |
used by START_RECORDING |
||
stop_recording |
used by STOP_RECORDING |
||
manual_control |
used by MANUAL_CONTROL |
||
move_altitude |
used by MOVE_ALTITUDE |
||
download_media |
used by DOWNLOAD_MEDIA |
||
stop_camera |
used by STOP_CAMERA |
||
takeoff |
used by TAKEOFF |
||
camera_settings |
used by UPDATE_CAMERA_SETTINGS, CALIBRATE_GIMBAL |
||
camera_mode |
used by SET_CAMERA_MODE |
||
obstacle_avoidance_mode |
used by SET_OBSTACLE_AVOIDANCE_MODE |
||
configure_rtk |
used by CONFIGURE_RTK |
CommandList
Represents a list of commands that can be sent to the drone
Field |
Type |
Label |
Description |
---|---|---|---|
commands |
repeated |
ConfigureRtk
Represents a command to configure the RTK module
Field |
Type |
Label |
Description |
---|---|---|---|
enable |
Coordinates
Represents a coordinate system
Field |
Type |
Label |
Description |
---|---|---|---|
latitude |
GPS latitude |
||
longitude |
GPS longitude |
||
altitude |
relative altitude (default: 1.0) |
||
heading |
heading in degrees [-180,180]. 0 means north, 90 east |
DownloadMedia
Represents a command to make the drone download media from the SD card
Field |
Type |
Label |
Description |
---|---|---|---|
media_type |
type of media to download |
||
camera_type |
type of camera to download media from |
||
not_before |
download media taken after this time. A value of zero means unrestricted (i.e. no lower bound) |
||
not_after |
download media taken before this time. A value of zero means unrestricted (i.e. no upper bound) |
||
max_downloads |
maximum number of media to download. A value of zero means unlimited |
||
upload_to_client |
if true, the media will not be stored on the server. Instead, the client will be responsible for processing |
DroneCapabilities
Represents the drone’s capabilities.
Field |
Type |
Label |
Description |
---|---|---|---|
stream_qualities |
repeated |
supported stream qualities |
|
video_resolutions_framerates |
repeated |
supported video resolutions and frame rates |
|
photo_formats |
repeated |
supported photo formats |
|
video_formats |
repeated |
supported video formats |
|
photo_modes |
repeated |
supported photo modes |
|
video_modes |
repeated |
supported video modes |
|
photo_capture_modes |
repeated |
supported photo capture modes |
|
video_capture_modes |
repeated |
supported video capture modes |
|
stream_modes |
repeated |
supported stream modes |
|
obstacle_avoidance_modes |
repeated |
supported obstacle avoidance modes |
DroneCapabilities.ResolutionAndFrameRate
Field |
Type |
Label |
Description |
---|---|---|---|
resolution |
resolution |
||
frame_rate |
frame rate |
DroneData
Represents the generic data object that is sent from drone to client. Each DroneData message must contain the current session, and only one of the other parameters.
Field |
Type |
Label |
Description |
---|---|---|---|
session |
current session |
||
error |
notifies when an error occurred |
||
media |
Deprecated. contains either a media part, or notifies update abortion |
||
metrics |
contains the current state of the drone |
||
command |
(optionally) used to notify about drone’s current action |
||
heartbeat |
(optionally) used to keep the connection alive |
||
log |
contains a log message |
||
flight_plan_status |
contains info about the latest flight plan executed |
||
media_upload |
contains a request to upload a media |
||
flight_plan_request |
contains a request for flight plans |
DroneSession
Represents a session between a drone and the server
Field |
Type |
Label |
Description |
---|---|---|---|
id |
|||
droneId |
Deprecated. |
Empty
Represents an empty message
Error
Represents an error message
Field |
Type |
Label |
Description |
---|---|---|---|
code |
error code |
||
description |
textual description |
FlightPlan
Represents a flight plan that can be executed by the drone A flight plan can be referenced by ID if previously created from web app. Otherwise, a list of commands can be directly specified in this message, either as list of Command objects or in JSON format.
Field |
Type |
Label |
Description |
---|---|---|---|
id |
ID of flight plan |
||
commands |
list of commands contained in the flight plan |
||
json |
JSON representation of flight plan |
||
empty |
use default flight plan assigned to drone in web app |
||
fp_id |
(optional) a custom identifier that can be used to keep track of which flight plan is running at a certain time. The drone application will use this value in |
||
auto_home |
(optional) if true, the drone will return home after executing the flight plan, or if an error occurs |
||
command_index |
(optional) command index to start from (default: 0) |
FlightPlanList
Represents a list of FlightPlan objects
Field |
Type |
Label |
Description |
---|---|---|---|
flight_plans |
repeated |
list of flight plans |
|
store |
(optional) indicates if the flight plans will be executed immediately (if false) or if they will be stored on the device for later use (if true) |
||
sync |
(optional) indicates if a time sync between device and drone will happen before running the flight plan |
FlightPlanRequest
Represents a message asking for one or more flight plans. This message is sent from the drone to the server. The server will respond with a corresponding FlightPlan message, containing the flight plans associated to the IDs specified in this message.
Field |
Type |
Label |
Description |
---|---|---|---|
fp_ids |
repeated |
(optional) identifiers of the flight plans that the drone wants to run. If not specified, the server will send the flight plan currently linked to the drone. |
|
store |
(optional) the drone indicates if the flight plans will be ran immediately (if false) or stored on the device (if true). The server’s reply should set the corresponding parameter to the same value in |
FlightPlanStatus
Represents a message containing information about a flight plan
Field |
Type |
Label |
Description |
---|---|---|---|
fp_id |
identifier of the flight plan, as provided in the |
||
status |
current status of flight plan |
||
current_command |
index of the command currently executing |
||
timestamp |
timestamp (in milliseconds) of the message |
Hover
Represents a command to make the drone hover in place
Field |
Type |
Label |
Description |
---|---|---|---|
duration |
duration of hover, in seconds |
Land
Represents a land command
Field |
Type |
Label |
Description |
---|---|---|---|
force |
force landing if sensor is off or ground is unstable |
Log
Represents a log message
Field |
Type |
Label |
Description |
---|---|---|---|
timestamp |
timestamp (in milliseconds) of the generated log |
||
level |
log level |
||
tag |
can be used to give a specific context on the log |
||
message |
actual mesaage |
ManualControl
Represents a command to make the drone enable/disable manual control
Field |
Type |
Label |
Description |
---|---|---|---|
enable |
true: enable manual control, false: disable manual control |
Media
DEPRECATED. Represents a media object, containing either a (part of) media being uploaded by the drone, or notifies the server that the upload has been aborted
Field |
Type |
Label |
Description |
---|---|---|---|
data |
raw data |
||
format |
Deprecated. |
||
persist |
informs the server that there may be multiple parts |
||
size |
total size of the media being uploaded |
||
part_number |
index of the current part |
||
total_parts |
total number of parts |
||
content_type |
type of media being uploaded |
||
id |
unique per-session ID of the media |
||
abort |
notifies the server that upload has been aborted |
MediaUpload
Represents a request or a result for a media upload
Field |
Type |
Label |
Description |
---|---|---|---|
request |
request to upload a media |
||
result |
result of an upload |
MediaUpload.Request
Represents a request to upload a media
Field |
Type |
Label |
Description |
---|---|---|---|
size |
total size of the media being uploaded |
||
photo_format |
format of photos to be uploaded by the drone (JPEG, RAW, etc.) |
||
video_format |
format of videos to be uploaded by the drone (MP4, MOV, etc.) |
||
upload_to_client |
specifies if the client will handle the upload of this media. This variable should contain the same value as in the |
||
group_id |
(optional) Group ID of the media. Multiple media can be grouped by using the same ID (e.g., multispectral images). Empty string means that the media is not part of a group |
||
download_index |
(optional) index of the media in the list of media to download. |
||
download_count |
(optional) total number of media to download |
||
flight_id |
(optional) a unique identifier of the flight. Used when uploading media from a folder (usually, this is a randomly-generated string) |
||
flight_name |
(optional) a (non-unique) name of the flight. Used when uploading media from a folder (usually, this is the folder name) |
MediaUpload.Result
Represents a result of a media upload
Field |
Type |
Label |
Description |
---|---|---|---|
id |
unique ID of the media |
||
result_code |
result of the upload |
||
description |
(optional) additional information regarding the upload (e.g., if an error occurred) |
MediaUploadResponse
Represents a response to a media upload request
Field |
Type |
Label |
Description |
---|---|---|---|
id |
unique ID of the media |
||
url |
URL to upload the media to with an HTTP PUT request |
Metrics
Represents the current drone’s state. All fields are optional
Field |
Type |
Label |
Description |
---|---|---|---|
timestamp |
timestamp (in milliseconds) of the drone state |
||
battery |
battery percentage [0,100] |
||
state |
current state |
||
position |
current position |
||
gps_level |
current GPS level |
||
uplink_level |
level of uplink signal |
||
downlink_level |
level of downlink signal |
||
gimbal_attitude |
attitude of primary gimbal |
||
flight_plan_id |
if state is |
||
thermal_gimbal_attitude |
attitude of thermal camera’s gimbal |
||
camera_state |
state of primary camera |
||
thermal_camera_state |
state of thermal camera |
||
home_position |
home (i.e., takeoff) position |
||
drone_type |
drone model |
||
client_type |
client (e.g., smartphone) model |
||
capabilities |
repeated |
Deprecated. capabilities of drone |
|
velocity |
velocity of drone |
||
controller_position |
position of controller |
||
controller_battery |
battery percentage of controller [0,100] |
||
live_stream_state |
state of live streaming |
||
available_storage |
available storage, in bytes |
||
recording_time |
current video’s recording time of primary camera, in seconds |
||
camera_settings |
current camera settings of the drone |
||
drone_capabilities |
drone capabilities |
||
camera_mode |
mode of primary camera |
||
gps_satellite_count |
number of satellites |
||
upgradable_components |
components that can be upgraded |
||
obstacle_avoidance_mode |
obstacle avoidance type |
||
rtk_state |
RTK state |
MoveAltitude
Represents a command to make the drone move to a specific altitude
Field |
Type |
Label |
Description |
---|---|---|---|
altitude |
altitude to move to, in meters (default: 1.0) |
||
speed |
speed of movement |
||
constant_speed |
(optional) if true, drone does not decelerate while approaching destination |
MoveGPS
Represents a command to make the drone move to a specific GPS coordinate
Field |
Type |
Label |
Description |
---|---|---|---|
position |
GPS coordinates of destination |
||
speed |
speed of movement |
||
auto_heading |
if true, heading is towards the destination |
||
constant_speed |
(optional) if true, drone does not decelerate while approaching destination |
||
heading_speed |
(optional) speed of heading. If not specified, drone will use the |
||
up_speed |
(optional) speed of up/down. If not specified, drone will use the |
MoveSpeed
Represents a command to make the drone move in a specific direction, relative to the drone itself
Field |
Type |
Label |
Description |
---|---|---|---|
forward |
forward/backward movement |
||
right |
right/left movement |
||
up |
up/down movement |
||
rotate |
clockwise/counter-clockwise rotation |
||
duration |
duration of movement, in milliseconds (default: 10000) |
Movement
Represents a movement command that can be sent to the drone
Field |
Type |
Label |
Description |
---|---|---|---|
speed |
speed of movement (default: 1) |
||
reversed |
Deprecated. (deprecated) |
||
direction |
direction of movement |
||
absolute_speed |
(optional) absolute speed value, either in m/s (for movement) or deg/s (for rotation). If non-zero, the |
ObstacleAvoidanceMode
Represents a command to set the obstacle avoidance mode
Field |
Type |
Label |
Description |
---|---|---|---|
mode |
ReturnHome
Represents a command to make the drone return to its takeoff point and land
Field |
Type |
Label |
Description |
---|---|---|---|
altitude |
altitude (relative to takeoff point) to return to, in meters (default: 20.0) |
||
force_land |
force landing if sensor is off or ground is unstable |
||
return_to_controller |
(optional) return to controller position |
Rotate
Represents a command to make the drone rotate in place
Field |
Type |
Label |
Description |
---|---|---|---|
heading |
heading to rotate to, in degrees |
||
speed |
speed of rotation |
||
relative_heading |
if true: “heading” is relative to current heading. If false: heading is relative to the north |
||
forward |
optional forward movement used to make the drone do an arc |
||
right |
optional right movement used to make the drone do a “reverse” arc |
||
up |
optional up movement to make the drone go up or down |
||
constant_speed |
(optional) if true, drone does not decelerate while approaching destination |
StartRecording
Represents a command to make the drone start recording a video
Field |
Type |
Label |
Description |
---|---|---|---|
camera_settings |
camera settings to use |
StartStream
Represents a command to make the drone start a live stream video to a specific URL
Field |
Type |
Label |
Description |
---|---|---|---|
camera_settings |
camera settings to use |
||
url |
URL to stream to |
Stop
Represents a command to make the drone stop doing whatever it’s doing
Field |
Type |
Label |
Description |
---|---|---|---|
go_home |
if true, drone will automatically return to takeoff point and land |
StopCamera
Represents a command to make the drone stop taking photos and videos, and also stops any gimbal movements
Field |
Type |
Label |
Description |
---|---|---|---|
camera_settings |
camera settings to use |
StopRecording
Represents a command to make the drone stop recording a video
Field |
Type |
Label |
Description |
---|---|---|---|
camera_settings |
camera settings to use |
StopStream
Represents a command to make the drone stop streaming video
Field |
Type |
Label |
Description |
---|---|---|---|
camera_settings |
camera settings to use |
TakePhoto
Represents a command to make the drone take a photo
Field |
Type |
Label |
Description |
---|---|---|---|
camera_settings |
camera settings to use |
||
count |
Deprecated. number of photos to take. 0: unlimited. Only used with PHOTO_MODE_INTERVAL, PHOTO_MODE_BURST, and PHOTO_MODE_AEB |
||
interval |
Deprecated. interval between photos, in seconds. Only used with PHOTO_MODE_INTERVAL and PHOTO_MODE_TIME_LAPSE (default: 2) |
||
duration |
Deprecated. duration of the command, in seconds. 0: unlimited. Only used with PHOTO_MODE_TIME_LAPSE |
Takeoff
Represents a takeoff command
Field |
Type |
Label |
Description |
---|---|---|---|
altitude |
altitude to reach, in meters (default: 1.0) |
||
speed |
speed to reach the desired altitude |
TiltCamera
Represents a command to make the camera’s gimbal tilt
Field |
Type |
Label |
Description |
---|---|---|---|
yaw |
Deprecated. yaw to tilt to, in degrees |
||
pitch |
Deprecated. pitch to tilt to, in degrees |
||
roll |
Deprecated. roll to tilt to, in degrees |
||
speed |
speed of movement |
||
camera_settings |
camera settings to use |
||
attitude |
gimbal attitude |
Velocity
Represents a velocity vector using the NED coordinate system
Field |
Type |
Label |
Description |
---|---|---|---|
x |
velocity in north direction, in m/s |
||
y |
velocity in east direction, in m/s |
||
z |
velocity in down direction, in m/s |
CameraMode.Mode
Name |
Number |
Description |
---|---|---|
MODE_UNKNOWN |
0 |
unknown mode |
MODE_PHOTO |
1 |
photo mode |
MODE_VIDEO |
2 |
video mode |
CameraSettings.CameraType
Name |
Number |
Description |
---|---|---|
CAMERA_PRIMARY |
0 |
drone’s primary camera (e.g., RGB) |
CAMERA_SECONDARY |
1 |
drone’s secondary camera (e.g., thermal) |
CameraSettings.MediaResolution
Name |
Number |
Description |
---|---|---|
RESOLUTION_NONE |
0 |
unknown (if get) / unchanged (if set) |
RESOLUTION_DEFAULT |
1 |
use default resolution |
RESOLUTION_720P |
2 |
use 720p resolution |
RESOLUTION_1080P |
3 |
use 1080p resolution |
RESOLUTION_1440P |
4 |
use 1440p resolution |
RESOLUTION_2160P |
5 |
use 2160p resolution |
CameraSettings.PhotoCaptureMode
Name |
Number |
Description |
---|---|---|
PHOTO_CAPTURE_MODE_NONE |
0 |
unknown (if get) / unchanged (if set) |
PHOTO_CAPTURE_MODE_DEFAULT |
1 |
use default capture mode |
PHOTO_CAPTURE_MODE_RGB |
2 |
capture only RGB |
PHOTO_CAPTURE_MODE_RGB_MS |
3 |
capture RGB and multispectral |
PHOTO_CAPTURE_MODE_INFRARED |
4 |
capture infrared |
CameraSettings.PhotoFormat
Name |
Number |
Description |
---|---|---|
PHOTO_FORMAT_NONE |
0 |
unknown (if get) / unchanged (if set) |
PHOTO_FORMAT_DEFAULT |
1 |
use default photo format |
PHOTO_FORMAT_JPEG |
2 |
use JPEG photo format |
PHOTO_FORMAT_RAW |
3 |
use RAW photo format |
PHOTO_FORMAT_RAW_AND_JPEG |
4 |
use RAW and JPEG photo format |
PHOTO_FORMAT_TIFF |
5 |
use TIFF photo format |
CameraSettings.PhotoMode
Name |
Number |
Description |
---|---|---|
PHOTO_MODE_NONE |
0 |
unknown (if get) / unchanged (if set) |
PHOTO_MODE_SINGLE |
1 |
shoot a single photo |
PHOTO_MODE_INTERVAL |
2 |
shoot photos in sequence, with a specific interval |
PHOTO_MODE_BURST |
3 |
shoot photos in rapid succession |
PHOTO_MODE_HDR |
4 |
HDR mode |
PHOTO_MODE_EHDR |
5 |
Enhanced HDR mode |
PHOTO_MODE_HYPER_LIGHT |
6 |
HyperLight mode for low-light environments |
PHOTO_MODE_AEB |
7 |
Automatic Exposure Bracketing mode. Shoot multiple photos at different exposures |
PHOTO_MODE_TIME_LAPSE |
8 |
Time-Lapse mode. Takes a series of photos with specific interval, then outputs a video |
PHOTO_MODE_PANORAMA |
9 |
Takes a series of photos for panorama mode |
PHOTO_MODE_HIGH_RESOLUTION |
10 |
High-Resolution mode |
CameraSettings.StreamMode
Name |
Number |
Description |
---|---|---|
STREAM_MODE_NONE |
0 |
unknown (if get) / unchanged (if set) |
STREAM_MODE_DEFAULT |
1 |
use default stream type |
STREAM_MODE_RGB |
2 |
use RGB stream |
STREAM_MODE_NDVI |
3 |
use NDVI stream |
STREAM_MODE_INFRARED |
4 |
use infrared stream |
CameraSettings.StreamQuality
Name |
Number |
Description |
---|---|---|
STREAM_QUALITY_NONE |
0 |
unknown (if get) / unchanged (if set) |
STREAM_QUALITY_NORMAL |
1 |
use normal stream quality |
STREAM_QUALITY_HIGH |
2 |
use high stream quality |
STREAM_QUALITY_LOW |
3 |
use low stream quality |
CameraSettings.VideoCaptureMode
Name |
Number |
Description |
---|---|---|
VIDEO_CAPTURE_MODE_NONE |
0 |
unknown (if get) / unchanged (if set) |
VIDEO_CAPTURE_MODE_DEFAULT |
1 |
use default capture mode |
VIDEO_CAPTURE_MODE_RGB |
2 |
capture only RGB |
VIDEO_CAPTURE_MODE_RGB_NDVI |
3 |
capture both RGB and NDVI |
VIDEO_CAPTURE_MODE_INFRARED |
4 |
capture infrared |
CameraSettings.VideoFormat
Name |
Number |
Description |
---|---|---|
VIDEO_FORMAT_NONE |
0 |
unknown (if get) / unchanged (if set) |
VIDEO_FORMAT_DEFAULT |
1 |
use default video format |
VIDEO_FORMAT_MP4 |
2 |
use MP4 video format |
VIDEO_FORMAT_MOV |
3 |
use MOV video format |
VIDEO_FORMAT_TIFF_SEQ |
4 |
use TIFF sequence video format |
VIDEO_FORMAT_SEQ |
5 |
use sequence video format |
CameraSettings.VideoFrameRate
Name |
Number |
Description |
---|---|---|
FRAME_RATE_NONE |
0 |
unknown (if get) / unchanged (if set) |
FRAME_RATE_DEFAULT |
1 |
use default frame rate |
FRAME_RATE_24FPS |
2 |
use 24 fps frame rate |
FRAME_RATE_30FPS |
3 |
use 30 fps frame rate |
FRAME_RATE_48FPS |
4 |
use 48 fps frame rate |
FRAME_RATE_60FPS |
5 |
use 60 fps frame rate |
FRAME_RATE_120FPS |
6 |
use 120 fps frame rate |
CameraSettings.VideoMode
Name |
Number |
Description |
---|---|---|
VIDEO_MODE_NONE |
0 |
unknown (if get) / unchanged (if set) |
VIDEO_MODE_NORMAL |
1 |
normal video mode |
VIDEO_MODE_SLOW_MOTION |
2 |
slow motion mode |
VIDEO_MODE_HDR |
3 |
HDR video mode |
Command.CommandCode
Name |
Number |
Description |
---|---|---|
NONE |
0 |
default invalid value |
TAKEOFF |
1 |
|
LAND |
2 |
drone lands |
RETURN_HOME |
3 |
drone returns to home position and lands |
HOVER |
4 |
wait for a specified amount of time |
SET_OBSTACLE_AVOIDANCE_MODE |
10 |
|
CONFIGURE_RTK |
11 |
configure RTK |
MOVE_SPEED |
20 |
|
MOVE_GPS |
21 |
move to a specific GPS location |
STOP_MOVEMENT |
22 |
stop all current movements |
STOP_FLIGHT_PLAN |
23 |
stop current flight plan |
CIRCLE |
24 |
performs a circle around a fixed GPS location |
ROTATE |
25 |
rotate drone while hovering |
MOVE_ALTITUDE |
26 |
move drone up or down |
START_STREAM |
30 |
|
STOP_STREAM |
31 |
stop streaming |
TAKE_PHOTO |
32 |
take one or more photos |
START_RECORDING |
33 |
start recording |
STOP_RECORDING |
34 |
stop recording |
TILT_CAMERA |
35 |
move camera’s gimbal |
STOP_CAMERA |
36 |
stops all operations on camera |
UPDATE_CAMERA_SETTINGS |
37 |
update camera settings |
SET_CAMERA_MODE |
38 |
set camera mode |
DELETE_ALL_MEDIA |
50 |
|
REBOOT_DRONE |
51 |
reboot drone |
CALIBRATE_COMPASS |
52 |
calibrate drone’s compass |
MANUAL_CONTROL |
53 |
(optional) force enabling manual control |
DOWNLOAD_MEDIA |
54 |
download some or all medias from drone’s storage |
STOP_ALL |
55 |
stop all current operations (movements, camera, flight plan) |
TIME_SYNC |
56 |
synchronizes the drone time with the device time |
CALIBRATE_GIMBAL |
57 |
calibrate drone’s gimbal |
DownloadMedia.CameraType
Name |
Number |
Description |
---|---|---|
CAMERA_TYPE_ALL |
0 |
|
CAMERA_TYPE_NORMAL |
1 |
|
CAMERA_TYPE_THERMAL |
2 |
DownloadMedia.MediaType
Name |
Number |
Description |
---|---|---|
MEDIA_TYPE_ALL |
0 |
|
MEDIA_TYPE_PHOTO |
1 |
|
MEDIA_TYPE_VIDEO |
2 |
Error.Code
Name |
Number |
Description |
---|---|---|
UNKNOWN |
0 |
|
DRONE |
100 |
1xx: Drone |
DRONE_NOT_CONNECTED |
101 |
|
DRONE_NOT_READY |
102 |
|
DRONE_NOT_CALIBRATED |
103 |
|
DRONE_CONNECTION_ERROR |
104 |
|
DRONE_STATE_NOT_LANDED |
110 |
|
DRONE_STATE_NOT_HOVERING |
111 |
|
DRONE_STATE_NOT_FLYING |
112 |
|
DRONE_STATE_NOT_FLIGHT_PLAN |
113 |
|
DRONE_STATE_NOT_DOWNLOADING |
114 |
|
DRONE_STATE_NOT_IDLE |
115 |
either landed or hovering |
DRONE_STATE_NOT_IN_AIR |
116 |
either hovering or flying |
DRONE_NO_SENSOR_INFO |
117 |
|
DRONE_LOW_BATTERY |
118 |
|
DRONE_BAD_SIGNAL |
119 |
|
DRONE_BAD_GPS |
120 |
|
DRONE_COMMAND_BAD_PARAMETERS |
140 |
|
DRONE_COMMAND_FAILED_TO_EXECUTE |
141 |
|
DRONE_LANDING_NEED_CONFIRMATION |
142 |
|
DRONE_DISTANCE_TOO_FAR |
143 |
|
DRONE_CAMERA_NOT_FOUND |
160 |
|
DRONE_CAMERA_NOT_IDLE |
161 |
|
DRONE_CAMERA_NOT_RECORDING |
162 |
|
DRONE_STREAM_START_FAILED |
163 |
|
DRONE_FLIGHT_PLAN_PARSING_ERROR |
170 |
|
DRONE_FLIGHT_PLAN_IN_PROGRESS |
171 |
|
DRONE_FLIGHT_PLAN_FAILED |
172 |
|
DRONE_DOWNLOAD_ERROR |
180 |
|
DRONE_MEDIA_DELETE_FAILED |
181 |
|
DRONE_MEDIA_NOT_FOUND |
182 |
|
DRONE_FEATURE_NOT_IMPLEMENTED |
190 |
|
DRONE_FEATURE_NOT_SUPPORTED |
191 |
|
DRONE_UNEXPECTED_ERROR |
192 |
|
CLIENT |
200 |
2xx: Client |
BAD_REQUEST |
201 |
|
UNKNOWN_REQUEST |
202 |
|
AUTHENTICATION_ERROR |
300 |
3xx: Backend |
DB_ERROR |
301 |
FlightPlanStatus.Status
Name |
Number |
Description |
---|---|---|
UNKNOWN |
0 |
flight plan has not started or no info has been received from the drone yet |
STARTED |
1 |
flight plan has started |
COMPLETED |
2 |
flight plan has completed successfully |
FAILED |
3 |
flight plan has failed |
Log.Level
Name |
Number |
Description |
---|---|---|
CRITICAL |
0 |
|
ERROR |
1 |
|
WARNING |
2 |
|
INFO |
3 |
|
DEBUG |
4 |
|
TRACE |
5 |
Media.ContentType
Name |
Number |
Description |
---|---|---|
UNKNOWN |
0 |
|
VIDEO_MP4 |
10 |
|
VIDEO_RAW |
11 |
|
PHOTO_JPEG |
20 |
|
PHOTO_PNG |
21 |
|
PHOTO_RAW |
22 |
MediaUpload.Result.ResultCode
Name |
Number |
Description |
---|---|---|
SUCCESS |
0 |
media uploaded successfully |
ERROR_GENERIC |
1 |
generic error |
ERROR_DOWNLOAD |
2 |
failed to download the media from the drone |
ERROR_UPLOAD |
3 |
failed to upload the media to the specified URL |
Metrics.CameraState
Name |
Number |
Description |
---|---|---|
CAMERA_UNKNOWN |
0 |
camera not available or unknown state |
CAMERA_IDLE |
1 |
camera is ready to accept commands |
CAMERA_PHOTO |
2 |
camera is shooting photo |
CAMERA_VIDEO |
3 |
camera is recording video |
CAMERA_DOWNLOAD |
4 |
camera cannot be used, download in progress |
Metrics.Capability
Name |
Number |
Description |
---|---|---|
THERMAL_CAMERA |
0 |
thermal camera available |
RESOLUTION_1440P |
1 |
2K resolution available |
RESOLUTION_2160P |
2 |
4K resoliution available |
Metrics.GPSLevel
Name |
Number |
Description |
---|---|---|
GPS_UNKNOWN |
0 |
GPS level is unknown |
BAD |
1 |
bad signal, not allowed to takeoff |
OK |
2 |
takeoff allowed but position may be imprecise, use caution |
GOOD |
3 |
good signal, position is precise |
Metrics.LiveStreamState
Name |
Number |
Description |
---|---|---|
STREAM_UNKNOWN |
0 |
unknown state |
STREAM_NOT_CONNECTED |
1 |
not connected (i.e., live stream is disabled) |
STREAM_INITIALIZING |
2 |
initializing |
STREAM_INITIALIZED |
3 |
initialized |
STREAM_CONNECTION_STARTED |
4 |
connection to server has started |
STREAM_AUTHENTICATED |
5 |
authenticated to server |
STREAM_CONNECTED |
6 |
connected to server (streaming is ongoing) |
STREAM_DISCONNECTED |
7 |
disconnected from server |
STREAM_AUTHENTICATION_ERROR |
8 |
authentication error |
STREAM_CONNECTION_ERROR |
9 |
connection error |
STREAM_START_ERROR |
10 |
start stream error |
STREAM_INITIALIZATION_ERROR |
11 |
initialization error |
STREAM_RESTARTING |
12 |
trying to reconnect |
Metrics.RTKState
Name |
Number |
Description |
---|---|---|
RTK_UNKNOWN |
0 |
unknown state |
RTK_DISCONNECTED |
1 |
RTK disconnected |
RTK_CONNECTED |
2 |
RTK connected |
RTK_DISABLED |
3 |
RTK module is disabled in drone |
Metrics.SignalLevel
Name |
Number |
Description |
---|---|---|
SIGNAL_UNKNOWN |
0 |
radio signal is unknown |
SIGNAL_BAD |
1 |
bad signal, connection unstable |
SIGNAL_OK |
2 |
connection is stable but data may be lost |
SIGNAL_GOOD |
3 |
good signal |
Metrics.State
Name |
Number |
Description |
---|---|---|
UNKNOWN |
0 |
missing connection |
LANDED |
1 |
drone is landed |
HOVERING |
2 |
drone is in air, hovering |
FLYING |
3 |
drone is in air, moving |
FLIGHT_PLAN |
4 |
drone is executing a flight plan |
DOWNLOADING |
5 |
drone is landed, media are being downloaded |
OTHER |
6 |
other state (e.g., calibrating compass) |
Movement.Direction
Name |
Number |
Description |
---|---|---|
DIRECTION_AUTO |
0 |
the drone application decides the most appropriate direction |
DIRECTION_NORMAL |
1 |
either forward, right, up, or clockwise |
DIRECTION_REVERSED |
2 |
either backward, left, down, or counter-clockwise |
Movement.Speed
Name |
Number |
Description |
---|---|---|
NONE |
0 |
|
VERY_SLOW |
1 |
|
SLOW |
2 |
|
NORMAL |
3 |
|
FAST |
4 |
|
VERY_FAST |
5 |
|
MAX_SPEED |
6 |
ObstacleAvoidanceMode.Mode
Name |
Number |
Description |
---|---|---|
MODE_UNKNOWN |
0 |
unknown type |
MODE_OFF |
1 |
obstacle avoidance is off |
MODE_BRAKE |
2 |
drone will brake |
MODE_BYPASS |
3 |
drone will try to avoid obstacle |
Scalar Value Types
.proto Type |
Notes |
C++ |
Java |
Python |
Go |
C# |
PHP |
Ruby |
---|---|---|---|---|---|---|---|---|
double |
double |
float |
float64 |
double |
float |
Float |
||
float |
float |
float |
float32 |
float |
float |
Float |
||
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. |
int32 |
int |
int |
int32 |
int |
integer |
Bignum or Fixnum (as required) |
|
Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
Bignum |
|
Uses variable-length encoding. |
uint32 |
int |
int/long |
uint32 |
uint |
integer |
Bignum or Fixnum (as required) |
|
Uses variable-length encoding. |
uint64 |
long |
int/long |
uint64 |
ulong |
integer/string |
Bignum or Fixnum (as required) |
|
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. |
int32 |
int |
int |
int32 |
int |
integer |
Bignum or Fixnum (as required) |
|
Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
Bignum |
|
Always four bytes. More efficient than uint32 if values are often greater than 2^28. |
uint32 |
int |
int |
uint32 |
uint |
integer |
Bignum or Fixnum (as required) |
|
Always eight bytes. More efficient than uint64 if values are often greater than 2^56. |
uint64 |
long |
int/long |
uint64 |
ulong |
integer/string |
Bignum |
|
Always four bytes. |
int32 |
int |
int |
int32 |
int |
integer |
Bignum or Fixnum (as required) |
|
Always eight bytes. |
int64 |
long |
int/long |
int64 |
long |
integer/string |
Bignum |
|
bool |
boolean |
boolean |
bool |
bool |
boolean |
TrueClass/FalseClass |
||
A string must always contain UTF-8 encoded or 7-bit ASCII text. |
string |
String |
str/unicode |
string |
string |
string |
String (UTF-8) |
|
May contain any arbitrary sequence of bytes. |
string |
ByteString |
str |
[]byte |
ByteString |
string |
String (ASCII-8BIT) |