From 40814040a29150329547172fa146d5fc7fbb5534 Mon Sep 17 00:00:00 2001 From: Ryan Malloy Date: Thu, 1 Oct 2026 23:50:54 -0600 Subject: [PATCH] Vendor Parrot ARSDK protocol definitions Bebop-era snapshot of common.xml and ardrone3.xml (BSD-3-Clause, Parrot SA), with pyparrot's rename reverted to Parrot's . Provenance and the comparison against upstream master are in arsdk-xml/PROVENANCE.md. --- arsdk-xml/PROVENANCE.md | 22 + arsdk-xml/ardrone3.xml | 3637 +++++++++++++++++++++++++++++++++++++++ arsdk-xml/common.xml | 1861 ++++++++++++++++++++ 3 files changed, 5520 insertions(+) create mode 100644 arsdk-xml/PROVENANCE.md create mode 100644 arsdk-xml/ardrone3.xml create mode 100644 arsdk-xml/common.xml diff --git a/arsdk-xml/PROVENANCE.md b/arsdk-xml/PROVENANCE.md new file mode 100644 index 0000000..9b2cb2e --- /dev/null +++ b/arsdk-xml/PROVENANCE.md @@ -0,0 +1,22 @@ +# Vendored ARSDK protocol definitions + +`common.xml` and `ardrone3.xml` are Parrot's own ARSDK command definitions, +BSD-3-Clause (the licence text is in the header of each file, +`Copyright (C) 2014 Parrot SA`). Upstream: https://github.com/Parrot-Developers/arsdk-xml + +These are the **Bebop-era** snapshot, taken from the copy distributed with +pyparrot, which is contemporary with Bebop 2 firmware 4.7.1. Compared against +upstream `master` on 2026-10-02: + +- No command id differs between the two. +- Upstream adds 8 commands, none of which declare support for the Bebop 2 + (product `090c`); they are ANAFI-era (`0914`, `091a`, `091f`, `0920`, `0924`). +- Upstream has dropped 12 commands this firmware does have, including + `ardrone3.Piloting.AutoTakeOffMode` and the `setAutonomousFlight*` family. + +One local modification: pyparrot had renamed `` to `` to work +around its `untangle` parser. That is reverted here, restoring Parrot's format. +Nothing else is changed. + +Known gap in both sources: `ardrone3.Piloting.FlatTrim` (1-0-0) is defined in +neither, although the firmware accepts it. See `protocol/xml_index.py`. diff --git a/arsdk-xml/ardrone3.xml b/arsdk-xml/ardrone3.xml new file mode 100644 index 0000000..f6072be --- /dev/null +++ b/arsdk-xml/ardrone3.xml @@ -0,0 +1,3637 @@ + + + + All ARDrone3-only commands + + All commands related to piloting the drone + + + + + #1-4-1(state: motor_ramping) + #1-4-1(state: takingoff) + + + + + + + Boolean flag: 1 if the roll and pitch values should be taken in consideration. 0 otherwise + + + Roll angle as signed percentage. + On copters: + Roll angle expressed as signed percentage of the max pitch/roll setting, in range [-100, 100] + -100 corresponds to a roll angle of max pitch/roll to the left (drone will fly left) + 100 corresponds to a roll angle of max pitch/roll to the right (drone will fly right) + This value may be clamped if necessary, in order to respect the maximum supported physical tilt of the copter. + + On fixed wings: + Roll angle expressed as signed percentage of the physical max roll of the wing, in range [-100, 100] + Negative value makes the plane fly to the left + Positive value makes the plane fly to the right + + + Pitch angle as signed percentage. + On copters: + Expressed as signed percentage of the max pitch/roll setting, in range [-100, 100] + -100 corresponds to a pitch angle of max pitch/roll towards sky (drone will fly backward) + 100 corresponds to a pitch angle of max pitch/roll towards ground (drone will fly forward) + This value may be clamped if necessary, in order to respect the maximum supported physical tilt of the copter. + + On fixed wings: + Expressed as signed percentage of the physical max pitch of the wing, in range [-100, 100] + Negative value makes the plane fly in direction of the sky + Positive value makes the plane fly in direction of the ground + + + Yaw rotation speed as signed percentage. + On copters: + Expressed as signed percentage of the max yaw rotation speed setting, in range [-100, 100]. + -100 corresponds to a counter-clockwise rotation of max yaw rotation speed + 100 corresponds to a clockwise rotation of max yaw rotation speed + This value may be clamped if necessary, in order to respect the maximum supported physical tilt of the copter. + + On fixed wings: + Giving more than a fixed value (75% for the moment) triggers a circle. + Positive value will trigger a clockwise circling + Negative value will trigger a counter-clockwise circling + + + Throttle as signed percentage. + On copters: + Expressed as signed percentage of the max vertical speed setting, in range [-100, 100] + -100 corresponds to a max vertical speed towards ground + 100 corresponds to a max vertical speed towards sky + This value may be clamped if necessary, in order to respect the maximum supported physical tilt of the copter. + During the landing phase, putting some positive gaz will cancel the land. + + On fixed wings: + Expressed as signed percentage of the physical max throttle, in range [-100, 100] + Negative value makes the plane fly slower + Positive value makes the plane fly faster + + + Command timestamp in milliseconds (low 24 bits) + command sequence number (high 8 bits) [0;255]. + + + + + + + #1-4-1(state: landing) + + + + + + + + #1-4-1(state: emergency) + + + + + + + + #1-4-3(state: inProgress, reason: userRequest) + |#1-4-3(state: pending, reason: userRequest) + |#1-4-3(state: available, reason: stopped) + + + + 1 to start the navigate home, 0 to stop it + + + + + + State of automatic take off mode (1 for autotake off enabled) + + + + + + + #1-34-0 + + + + Wanted displacement along the front axis [m] + + + Wanted displacement along the right axis [m] + + + Wanted displacement along the down axis [m] + + + Wanted rotation of heading [rad] + + + + + + + #1-4-1 + + + + State of user take off mode + - 1 to enter in user take off. + - 0 to exit from user take off. + + + + + + + #1-4-1(state: hovering) + + + + The circling direction + + Circling ClockWise + + + Circling Counter ClockWise + + + Use drone default Circling direction set by CirclingDirection cmd + + + + + + + + #1-4-12(latitude: this.latitude, longitude: this.longitude, altitude: this.altitude, orientation_mode: this.orientation_mode, status: RUNNING) + + + + Latitude of the location (in degrees) to reach + + + Longitude of the location (in degrees) to reach + + + Altitude above take off point (in m) to reach + + + Orientation mode of the move to + + The drone won't change its orientation + + + The drone will make a rotation to look in direction of the given location + + + The drone will orientate itself to the given heading before moving to the location + + + The drone will orientate itself to the given heading while moving to the location + + + + Heading (relative to the North in degrees). + This value is only used if the orientation mode is HEADING_START or HEADING_DURING + + + + + + + #1-4-12(status: CANCELED) + + + + + + + + #1-4-14(latitude: this.latitude, longitude: this.longitude, altitude: this.altitude, status: RUNNING) + |#1-4-14(latitude: this.latitude, longitude: this.longitude, altitude: this.altitude, status: PENDING) + + + + Latitude of the location (in degrees) to look at + + + Longitude of the location (in degrees) to look at + + + Altitude above take off point (in m) to look at + + + + + + + #1-4-22(latitude: this.latitude, longitude: this.longitude, altitude: this.altitude, mode: this.mode, status: RUNNING) + |#1-4-22(latitude: this.latitude, longitude: this.longitude, altitude: this.altitude, mode: this.mode, status: PENDING) + + + + Latitude of the location (in degrees) to look at + + + Longitude of the location (in degrees) to look at + + + Altitude above take off point (in m) to look at + + + POI mode + + Gimbal is locked on the POI + + + Gimbal is freely controllable + + + + + + + + #1-4-14(status: AVAILABLE) + |#1-4-22(status: AVAILABLE) + + + + + + + + + Animation commands + + + + + #1-4-1(state: flying) + + + + Direction for the flip + + Flip direction front + + + Flip direction back + + + Flip direction right + + + Flip direction left + + + + + + Ask the drone to move camera + + + + Tilt camera consign for the drone (in degree) + The value is saturated by the drone. + Saturation value is sent by thre drone through CameraSettingsChanged command. + + + Pan camera consign for the drone (in degree) + The value is saturated by the drone. + Saturation value is sent by thre drone through CameraSettingsChanged command. + + + + + + Tilt camera consign for the drone (in degree) + The value is saturated by the drone. + Saturation value is sent by thre drone through CameraSettingsChanged command. + + + Pan camera consign for the drone (in degree) + The value is saturated by the drone. + Saturation value is sent by thre drone through CameraSettingsChanged command. + + + + + + Tilt camera velocity consign [deg/s] + Negative tilt velocity move camera to bottom + Positive tilt velocity move camera to top + + + Pan camera velocity consign [deg/s] + Negative pan velocity move camera to left + Positive pan velocity move camera to right + + + + + Media recording management + + + + Mass storage id to take picture + + + + + + Command to record video + + Stop the video recording + + + Start the video recording + + + + Mass storage id to record + + + + + + + #1-8-2(state: busy, error: ok) + + + + + + + + #1-8-3(state: this.record, error: ok) + + + + Command to record video + + Stop the video recording + + + Start the video recording + + + + + + State of media recording + + + + 1 if picture has been taken, 0 otherwise + + + Mass storage id where the picture was recorded + + + + + + State of video + + Video was stopped + + + Video was started + + + Video was failed + + + Video was auto stopped + + + + Mass storage id where the video was recorded + + + + + + State of device picture recording + + The picture recording is ready + + + The picture recording is busy + + + The picture recording is not available + + + + Error to explain the state + + No Error + + + Unknown generic error + + + Picture camera is out of order + + + Memory full ; cannot save one additional picture + + + Battery is too low to start/keep recording. + + + + + + + State of device video recording + + Video is stopped + + + Video is started + + + The video recording is not available + + + + Error to explain the state + + No Error + + + Unknown generic error + + + Video camera is out of order + + + Memory full ; cannot save one additional video + + + Battery is too low to start/keep recording. + + + + + + + Streaming resolution + + 360p resolution. + + + 480p resolution. + + + 720p resolution. + + + 1080p resolution. + + + + Recording resolution + + 360p resolution. + + + 480p resolution. + + + 720p resolution. + + + 1080p resolution. + + + + + + Events of media recording + + + + Last event of picture recording + + Picture taken and saved + + + Picture failed + + + + Error to explain the event + + No Error + + + Unknown generic error ; only when state is failed + + + Picture recording is busy ; only when state is failed + + + Picture recording not available ; only when state is failed + + + Memory full ; only when state is failed + + + Battery is too low to record. + + + + + + + Event of video recording + + Video start + + + Video stop and saved + + + Video failed + + + + Error to explain the event + + No Error + + + Unknown generic error ; only when state is failed + + + Video recording is busy ; only when state is failed + + + Video recording not available ; only when state is failed + + + Memory full + + + Battery is too low to record. + + + Video was auto stopped + + + + + + State from drone + + + + Drone flying state + + Landed state + + + Taking off state + + + Hovering / Circling (for fixed wings) state + + + Flying state + + + Landing state + + + Emergency state + + + User take off state. Waiting for user action to take off. + + + Motor ramping state. + + + Emergency landing state. + Drone autopilot has detected defective sensor(s). + Only Yaw argument in PCMD is taken into account. + All others flying commands are ignored. + + + + + + + Drone alert state + + No alert + + + User emergency alert + + + Cut out alert + + + Critical battery alert + + + Low battery alert + + + The angle of the drone is too high + + + + + + + State of navigate home + + Navigate home is available + + + Navigate home is in progress + + + Navigate home is not available + + + Navigate home has been received, but its process is pending + + + + Reason of the state + + User requested a navigate home (available->inProgress) + + + Connection between controller and product lost (available->inProgress) + + + Low battery occurred (available->inProgress) + + + Navigate home is finished (inProgress->available) + + + Navigate home has been stopped (inProgress->available) + + + Navigate home disabled by product (inProgress->unavailable or available->unavailable) + + + Navigate home enabled by product (unavailable->available) + + + + + + + Latitude position in decimal degrees (500.0 if not available) + + + Longitude position in decimal degrees (500.0 if not available) + + + Altitude in meters (from GPS) + + + + + + Speed relative to the North (when drone moves to the north, speed is > 0) (in m/s) + + + Speed relative to the East (when drone moves to the east, speed is > 0) (in m/s) + + + Speed on the z axis (when drone moves down, speed is > 0) (in m/s) + + + + + + roll value (in radian) + + + Pitch value (in radian) + + + Yaw value (in radian) + + + + + + State of automatic take off mode (1 if enabled) + + + + + + Altitude in meters + + + + + + Latitude location in decimal degrees (500.0 if not available) + + + Longitude location in decimal degrees (500.0 if not available) + + + Altitude location in meters. + + + Latitude location error in meters (1 sigma/standard deviation) + -1 if not available. + + + Longitude location error in meters (1 sigma/standard deviation) + -1 if not available. + + + Altitude location error in meters (1 sigma/standard deviation) + -1 if not available. + + + + + + Drone landing state + + Linear landing + + + Spiral landing + + + + + + + Speed relative to air on x axis + (speed is always > 0) (in m/s) + + + + + + Latitude of the location (in degrees) to reach + + + Longitude of the location (in degrees) to reach + + + Altitude above take off point (in m) to reach + + + Orientation mode of the move to + + The drone won't change its orientation + + + The drone will make a rotation to look in direction of the given location + + + The drone will orientate itself to the given heading before moving to the location + + + The drone will orientate itself to the given heading while moving to the location + + + + Heading (relative to the North in degrees). + This value is only used if the orientation mode is HEADING_START or HEADING_DURING + + + Status of the move to + + The drone is actually flying to the given position + + + The drone has reached the target + + + The move to has been canceled, either by a CancelMoveTo command + or when a disconnection appears. + + + The move to has not been finished or started because of an error. + + + + + + + Motion state + + Drone is steady + + + Drone is moving + + + + + + + Latitude of the location (in degrees) to look at. + This information is only valid when the state is pending or running. + + + Longitude of the location (in degrees) to look at. + This information is only valid when the state is pending or running. + + + Altitude above take off point (in m) to look at. + This information is only valid when the state is pending or running. + + + Status of the Piloted POI + + The piloted POI is not available + + + The piloted POI is available + + + Piloted POI has been requested. Waiting to be in state that allow the piloted POI to start + + + Piloted POI is running + + + + + + + Latitude of the location (in degrees) to look at. + This information is only valid when the state is pending or running. + + + Longitude of the location (in degrees) to look at. + This information is only valid when the state is pending or running. + + + Altitude above take off point (in m) to look at. + This information is only valid when the state is pending or running. + + + POI mode. + This information is only valid when the state is pending or running. + + Gimbal is locked on the POI + + + Gimbal is freely controllable + + + + Status of the Piloted POI + + The piloted POI is not available + + + The piloted POI is available + + + Piloted POI has been requested. Waiting to be in state that allows the piloted POI to start + + + Piloted POI is running + + + + + + + Status of battery to return home + + The battery is full enough to do a return home + + + The battery is about to be too discharged to do a return home + + + The battery level is too low to return to the home position + + + Battery capacity to do a return home is unknown. + This can be either because the home is unknown or the position of the drone is unknown, + or the drone has not enough information to determine how long it takes to fly home. + + + + + + + Distance asked to be traveled along the front axis [m] + + + Distance asked to be traveled along the right axis [m] + + + Distance asked to be traveled along the down axis [m] + + + Relative angle asked to be applied on heading [rad] + + + Actual distance traveled along the front axis [m]. + This information is only valid when the state is DONE or CANCELED. + + + Actual distance traveled along the right axis [m]. + This information is only valid when the state is DONE or CANCELED. + + + Actual distance traveled along the down axis [m]. + This information is only valid when the state is DONE or CANCELED. + + + Actual applied angle on heading [rad]. + This information is only valid when the state is DONE or CANCELED. + + + Status of the relative move + + The drone is actually flying to the relative position + + + The drone has reached the target + + + The relative move has been canceled, either by a CancelMoveBy command + or when a disconnection appears. + + + The relative move has not been finished or started because of an error. + + + + + + + 1 if the drone doesn't have a GPS fix and there is not enough light. + + + 1 if the drone doesn't have a GPS fix and is flying too high. + + + + + + Reason of the forced landing. + + There is no forced landing auto trigger planned. + + + Battery will soon be critical, so forced landing auto trigger is planned. + + + + Delay until the landing is automatically triggered by the drone, in seconds. + If reason is `none` this information has no meaning. + + + + + + Drone wind state + + The wind strength can be handled properly by the drone. + + + The wind strength begins to be too strong for the drone to fly correctly. + + + The wind strength is too strong for the drone to fly correctly. + + + + + + + Drone vibration level + + The level of vibration can be handled properly by the drone. + + + The level of vibration begins to be too strong for the drone to fly correctly. + + + The level of vibration is too strong for the drone to fly correctly. + + + + + + + Altitude in meters + + + + + Events of Piloting + + + + Distance traveled along the front axis [m] + + + Distance traveled along the right axis [m] + + + Distance traveled along the down axis [m] + + + Applied angle on heading [rad] + + + Error to explain the event + + No Error ; The relative displacement + + + Unknown generic error + + + The Device is busy ; command moveBy ignored + + + Command moveBy is not available ; command moveBy ignored + + + Command moveBy interrupted + + + + + + Network related commands + + + + + #1-14-0 + + + + The band(s) : 2.4 Ghz, 5 Ghz, or both + + 2.4 GHz band + + + 5 GHz band + + + Both 2.4 and 5 GHz bands + + + + + + + + #1-14-2 + + + + + + Network state from Product + + + + SSID of the AP + + + RSSI of the AP in dbm (negative value) + + + The band : 2.4 GHz or 5 GHz + + 2.4 GHz band + + + 5 GHz band + + + + Channel of the AP + + + + + + + + + The band of this channel : 2.4 GHz or 5 GHz + + 2.4 GHz band + + + 5 GHz band + + + + The authorized channel. + + + Bit 0 is 1 if channel is authorized outside (0 otherwise) ; Bit 1 is 1 if channel is authorized inside (0 otherwise) + + + + + + + + + Piloting Settings commands + + + + + #1-6-0(current: this.current) + + + + Current altitude max in m + + + + + + + #1-6-1(current: this.current) + + + + Current tilt max in degree + + + + + + 1 to enable, 0 to disable + + + + + + + #1-6-3(current: this.value) + + + + Current max distance in meter + + + + + + + #1-6-4(shouldNotFlyOver: this.shouldNotFlyOver) + + + + 1 if the drone can't fly further than max distance, 0 if no limitation on the drone should be done + + + + + + + #1-6-5(value: this.value) + + + + maximum horizontal speed [m/s] + + + + + + + #1-6-6(value: this.value) + + + + maximum vertical speed [m/s] + + + + + + + #1-6-7(value: this.value) + + + + maximum horizontal acceleration [m/s2] + + + + + + + #1-6-8(value: this.value) + + + + maximum vertical acceleration [m/s2] + + + + + + + #1-6-9(value: this.value) + + + + maximum yaw rotation speed [deg/s] + + + + + + + #1-6-10(state: this.value) + + + + 1 to enable, 0 to disable + + + + + + + #1-6-11(current: this.current) + + + + Current altitude min in m + + + + + + + #1-6-12(value: this.value) + + + + The circling direction + + Circling ClockWise + + + Circling Counter ClockWise + + + + + + + + #1-6-13(value: this.value) + + + + The circling radius in meter + + + + + + + #1-6-14(value: this.value) + + + + The circling altitude in meter + + + + + + + #1-6-15(value: this.value) + + + + The Pitch mode + + Positive pitch values will make the drone lower its nose. + Negative pitch values will make the drone raise its nose. + + + Pitch commands are inverted. + Positive pitch values will make the drone raise its nose. + Negative pitch values will make the drone lower its nose. + + + + + + + + #1-4-13(state: this.enable) + + + + 1 to enable the motion detection, 0 to disable it. + + + + + Piloting Settings state from product + + + + Current altitude max + + + Range min of altitude + + + Range max of altitude + + + + + + Current max tilt + + + Range min of tilt + + + Range max of tilt + + + + + + 1 if enabled, 0 if disabled + + + + + + Current max distance in meter + + + Minimal possible max distance + + + Maximal possible max distance + + + + + + 1 if the drone won't fly further than max distance, 0 if no limitation on the drone will be done + + + + + + maximum horizontal speed [m/s] + + + + + + maximum vertical speed [m/s] + + + + + + maximum horizontal acceleration [m/s2] + + + + + + maximum vertical acceleration [m/s2] + + + + + + maximum yaw rotation speed [deg/s] + + + + + + 1 if enabled, 0 if disabled + + + + + + Current altitude min + + + Range min of altitude min + + + Range max of altitude min + + + + + + The circling direction + + Circling ClockWise + + + Circling Counter ClockWise + + + + + + + The current circling radius in meter + + + Range min of circling radius in meter + + + Range max of circling radius in meter + + + + + + The current circling altitude in meter + + + Range min of circling altitude in meter + + + Range max of circling altitude in meter + + + + + + The Pitch mode + + Positive pitch values will make the drone lower its nose. + Negative pitch values will make the drone raise its nose. + + + Pitch commands are inverted. + Positive pitch values will make the drone raise its nose. + Negative pitch values will make the drone lower its nose. + + + + + + + 1 if motion detection is enabled, 0 otherwise. + + + + + Speed Settings commands + + + + + #1-12-0(current: this.current) + + + + Current max vertical speed in m/s + + + + + + + #1-12-1(current: this.current) + + + + Current max yaw rotation speed in degree/s + + + + + + + #1-12-2(present: this.present) + + + + 1 if present, 0 if not present + + + + + + + #1-12-3(outdoor: this.outdoor) + + + + 1 if outdoor flight, 0 if indoor flight + + + + + + + #1-12-4(current: this.current) + + + + Current max pitch/roll rotation speed in degree/s + + + + + Speed Settings state from product + + + + Current max vertical speed in m/s + + + Range min of vertical speed + + + Range max of vertical speed + + + + + + Current max yaw rotation speed in degree/s + + + Range min of yaw rotation speed + + + Range max of yaw rotation speed + + + + + + 1 if present, 0 if not present + + + + + + 1 if outdoor flight, 0 if indoor flight + + + + + + Current max pitch/roll rotation speed in degree/s + + + Range min of pitch/roll rotation speed + + + Range max of pitch/roll rotation speed + + + + + Network settings commands + + + + + #1-10-0 + + + + The type of wifi selection (auto, manual) + + Auto selection + + + Manual selection + + + + The allowed band(s) : 2.4 Ghz, 5 Ghz, or all + + 2.4 GHz band + + + 5 GHz band + + + Both 2.4 and 5 GHz bands + + + + The channel (not used in auto mode) + + + + + + + #1-10-2(type: this.type, key: this.key, keyType: this.keyType) + + + + The type of wifi security (open, wpa2) + + Wifi is not protected by any security (default) + + + Wifi is protected by wpa2 + + + + The key to secure the network (empty if type is open) + + + Type of the key + + Key is plain text, not encrypted + + + + + + Network settings state from product + + + + The type of wifi selection settings + + Auto selection + + + Auto selection 2.4ghz + + + Auto selection 5 ghz + + + Manual selection + + + + The actual wifi band state + + 2.4 GHz band + + + 5 GHz band + + + Both 2.4 and 5 GHz bands + + + + The channel (depends of the band) + + + + + + The type of wifi security (open, wpa2) + + Wifi is not protected by any security (default) + + + Wifi is protected by wpa2 + + + + + + + The type of wifi security (open, wpa2) + + Wifi is not protected by any security (default) + + + Wifi is protected by wpa2 + + + + The key used to secure the network (empty if type is open) + + + Type of the key + + Key is plain text, not encrypted + + + + + + Settings state from product + + + + Product Motor number + + + Product Motor type + + + Product Motors software version + + + Product Motors hardware version + + + + + + Product GPS software version + + + Product GPS hardware version + + + + + + Bit field for concerned motor. If bit 0 = 1, motor 1 is affected by this error. Same with bit 1, 2 and 3. + Motor 1: front left + Motor 2: front right + Motor 3: back right + Motor 4: back left + + + Enumeration of the motor error + + No error detected + + + EEPROM access failure + + + Motor stalled + + + Propeller cutout security triggered + + + Communication with motor failed by timeout + + + RC emergency stop + + + Motor controler scheduler real-time out of bounds + + + One or several incorrect values in motor settings + + + Too hot or too cold Cypress temperature + + + Battery voltage out of bounds + + + Incorrect number of LIPO cells + + + Defectuous MOSFET or broken motor phases + + + Not use for BLDC but useful for HAL + + + Error Made by BLDC_ASSERT() + + + + + + + name of the version : dot separated fields (major version - minor version - firmware type - nb motors handled). Firmware types : Release, Debug, Alpha, Test-bench + + + + + + total number of flights + + + Duration of the last flight (in seconds) + + + Duration of all flights (in seconds) + + + + + + Enumeration of the motor error + + No error detected + + + EEPROM access failure + + + Motor stalled + + + Propeller cutout security triggered + + + Communication with motor failed by timeout + + + RC emergency stop + + + Motor controler scheduler real-time out of bounds + + + One or several incorrect values in motor settings + + + Battery voltage out of bounds + + + Incorrect number of LIPO cells + + + Defectuous MOSFET or broken motor phases + + + Too hot or too cold Cypress temperature + + + Not use for BLDC but useful for HAL + + + Error Made by BLDC_ASSERT() + + + + + + + Product P7ID + + + + Product main cpu id + + Product main cpu id + + + + + Photo settings chosen by the user + + + + + #1-20-0(type: this.type) + + + + The type of photo format + + Take raw image + + + Take a 4:3 jpeg photo + + + Take a 16:9 snapshot from camera + + + Take jpeg fisheye image only + + + + + + + + #1-20-1(type: this.type) + + + + The type auto white balance + + Auto guess of best white balance params + + + Tungsten white balance + + + Daylight white balance + + + Cloudy white balance + + + White balance for a flash + + + + + + + + #1-20-2(value: this.value) + + + + Exposition value (bounds given by ExpositionChanged arg min and max, by default [-3:3]) + + + + + + + #1-20-3(value: this.value) + + + + Saturation value (bounds given by SaturationChanged arg min and max, by default [-100:100]) + + + + + + + #1-20-4(enabled: this.enabled) + |#1-20-4(enabled: this.enabled, interval: this.interval) + + + + 1 if timelapse is enabled, 0 otherwise + + + interval in seconds for taking pictures + + + + + + + #1-20-5(enabled: this.enabled, mass_storage_id: this.mass_storage_id) + + + + 1 if video autorecord is enabled, 0 otherwise + + + Mass storage id to take video + + + + + + + #1-20-6(mode: this.mode) + + + + Video stabilization mode + + Video flat on roll and pitch + + + Video flat on pitch only + + + Video flat on roll only + + + Video follows drone angles + + + + + + + + #1-20-7(mode: this.mode) + + + + Video recording mode + + Maximize recording quality. + + + Maximize recording time. + + + + + + + + #1-20-8(framerate: this.framerate) + + + + Video framerate + + 23.976 frames per second. + + + 25 frames per second. + + + 29.97 frames per second. + + + + + + + + #1-20-9(type: this.type) + + + + Video streaming and recording resolutions + + 1080p recording, 480p streaming. + + + 720p recording, 720p streaming. + + + + + + Photo settings state from product + + + + The type of photo format + + Take raw image + + + Take a 4:3 jpeg photo + + + Take a 16:9 snapshot from camera + + + Take jpeg fisheye image only + + + + + + + The type auto white balance + + Auto guess of best white balance params + + + Tungsten white balance + + + Daylight white balance + + + Cloudy white balance + + + White balance for a flash + + + + + + + Exposure value + + + Min exposure value + + + Max exposure value + + + + + + Saturation value + + + Min saturation value + + + Max saturation value + + + + + + 1 if timelapse is enabled, 0 otherwise + + + interval in seconds for taking pictures + + + Minimal interval for taking pictures + + + Maximal interval for taking pictures + + + + + + 1 if video autorecord is enabled, 0 otherwise + + + Mass storage id for the taken video + + + + + + Video stabilization mode + + Video flat on roll and pitch + + + Video flat on pitch only + + + Video flat on roll only + + + Video follows drone angles + + + + + + + Video recording mode + + Maximize recording quality. + + + Maximize recording time. + + + + + + + Video framerate + + 23.976 frames per second. + + + 25 frames per second. + + + 29.97 frames per second. + + + + + + + Video resolution type. + + 1080p recording, 480p streaming. + + + 720p recording, 720p streaming. + + + + + + Control media streaming behavior. + + + + + #1-22-0 + + + + 1 to enable, 0 to disable. + + + + + + + #1-22-1(mode: this.mode) + + + + stream mode + + Minimize latency with average reliability (best for piloting). + + + Maximize the reliability with an average latency (best when streaming quality is important but not the latency). + + + Maximize the reliability using a framerate decimation with an average latency (best when streaming quality is important but not the latency). + + + + + + Media streaming status. + + + + Current video streaming status. + + Video streaming is enabled. + + + Video streaming is disabled. + + + Video streaming failed to start. + + + + + Video stream mode state + + stream mode + + Minimize latency with average reliability (best for piloting). + + + Maximize the reliability with an average latency (best when streaming quality is important but not the latency). + + + Maximize the reliability using a framerate decimation with an average latency (best when streaming quality is important but not the latency). + + + + + + GPS settings + + + + Home latitude in decimal degrees + + + Home longitude in decimal degrees + + + Home altitude in meters + + + + + + + + + + #1-24-2 + + + + GPS latitude in decimal degrees + + + GPS longitude in decimal degrees + + + GPS altitude in meters + + + Horizontal Accuracy in meter ; equal -1 if no horizontal Accuracy + + + Vertical Accuracy in meter ; equal -1 if no vertical Accuracy + + + + + + + #1-24-4(type: this.type) + + + + The type of the home position + + The drone will try to return to the take off position + + + The drone will try to return to the pilot position + + + The drone will try to return to the target of the current (or last) follow me + + + + + + + + #1-24-5(delay: this.delay) + + + + Delay in second + + + + + + + + #1-24-7(value: this.value) + + + + Altitude in meters, relative to the take off point. + Bounds are given by the event [ReturnHomeMinAltitude](#1-24-7). + + + + + GPS settings state + + + + Home latitude in decimal degrees + + + Home longitude in decimal degrees + + + Home altitude in meters + + + + + + Home latitude in decimal degrees + + + Home longitude in decimal degrees + + + Home altitude in meters + + + + + + 1 if gps on drone is fixed, 0 otherwise + + + + + + The state of the gps update + + Drone GPS update succeed + + + Drone GPS update In progress + + + Drone GPS update failed + + + + + + + The type of the home position + + The drone will try to return to the take off position + + + The drone will try to return to the pilot position + + + The drone will try to return to the target of the current (or last) follow me + + + + + + + Delay in second + + + + + + GPS latitude in decimal degrees + + + GPS longitude in decimal degrees + + + + + + Current value in meters, relative to take off altitude. + + + Lower bound in meters, relative to take off altitude. + + + Upper bound in meters, relative to take off altitude. + + + + + Camera state + + + + Tilt camera consign for the drone [-100;100] + + + Pan camera consign for the drone [-100;100] + + + + + + Tilt value (in degree) + + + Pan value (in degree) + + + + + + Tilt camera consign for the drone [deg] + + + Pan camera consign for the drone [deg] + + + + + + Tilt value [deg] + + + Pan value [deg] + + + + + + Absolute max tilt velocity [deg/s] + + + Absolute max pan velocity [deg/s] + + + + + Anti-flickering related commands + + + + + #1-30-0(frequency: this.frequency) + + + + Type of the electric frequency + + Electric frequency of the country is 50hz + + + Electric frequency of the country is 60hz + + + + + + + + #1-30-1(mode: this.mode) + + + + Mode of the anti flickering functionnality + + Anti flickering based on the electric frequency previously sent + + + Anti flickering based on a fixed frequency of 50Hz + + + Anti flickering based on a fixed frequency of 60Hz + + + + + + Anti-flickering related states + + + + Type of the electric frequency + + Electric frequency of the country is 50hz + + + Electric frequency of the country is 60hz + + + + + + + Mode of the anti flickering functionnality + + Anti flickering based on the electric frequency previously sent + + + Anti flickering based on a fixed frequency of 50Hz + + + Anti flickering based on a fixed frequency of 60Hz + + + + + + GPS related States + + + + The number of satellite + + + + + + The type of the return home + + The drone has enough information to return to the take off position + + + The drone has enough information to return to the pilot position + + + The drone has not enough information, it will return to the first GPS fix + + + The drone has enough information to return to the target of the current (or last) follow me + + + + 1 if this type is available, 0 otherwise + + + + + + The type of the return home chosen + + The drone will return to the take off position + + + The drone will return to the pilot position + In this case, the drone will use the position given by ARDrone3-SendControllerGPS + + + The drone has not enough information, it will return to the first GPS fix + + + The drone will return to the target of the current (or last) follow me + In this case, the drone will use the position of the target of the followMe (given by ControllerInfo-GPS) + + + + + + Pro features enabled on the Bebop + + + + Bitfield representing enabled features. + + + + + Information about the connected accessories + + + + Id of the accessory for the session. + + + Accessory type + + Parrot Sequoia (multispectral camera for agriculture) + + + FLIR camera (thermal+rgb camera) + + + + Unique Id of the accessory. + This id is unique by accessory_type. + + + Software Version of the accessory. + + + List entry attribute Bitfield. + 0x01: First: indicate it's the first element of the list. + 0x02: Last: indicate it's the last element of the list. + 0x04: Empty: indicate the list is empty (implies First/Last). All other arguments should be ignored. + 0x08: Remove: This value should be removed from the existing list. + + + + + + Id of the accessory for the session. + + + Battery level in percentage. + + + List entry attribute Bitfield. + 0x01: First: indicate it's the first element of the list. + 0x02: Last: indicate it's the last element of the list. + 0x04: Empty: indicate the list is empty (implies First/Last). All other arguments should be ignored. + 0x08: Remove: This value should be removed from the existing list. + + + + + Sounds related commands + + + + + #1-36-0(state: playing) + + + + + + + + #1-36-0(state: stopped) + + + + + + Sounds related events + + + + State of the alert sound + + Alert sound is not playing + + + Alert sound is playing + + + + + diff --git a/arsdk-xml/common.xml b/arsdk-xml/common.xml new file mode 100644 index 0000000..4a1691e --- /dev/null +++ b/arsdk-xml/common.xml @@ -0,0 +1,1861 @@ + + + + All common commands shared between all projects + + Network related commands + + + + + + Network Event from product + + + + Cause of the disconnection of the product + + The button off has been pressed + + + Unknown generic cause + + + The reset factory procedure has been requested + + + + + + Settings commands + + + + + #0-3-0 + + + + + + + + #0-3-1 + + + + + + + + #0-3-2(name: this.name) + + + + Product name + + + + + + + #0-3-6(code: this.code) + + + + Country code with ISO 3166 format + + + + + + + #0-3-7(automatic: this.automatic) + #0-3-6 + + + + Boolean : 0 : Manual / 1 : Auto + + + + + Settings state from product + + + + + + + + + + Product name + + + + + + Product software version + + + Product hardware version + + + + + + Serial high number (hexadecimal value) + + + + + + Serial low number (hexadecimal value) + + + + + + Country code with ISO 3166 format, empty string means unknown country. + + + + + + Boolean : 0 : Manual / 1 : Auto + + + + + + Board id + + + + + Common commands + + + + + #0-5-0 + + + + + + + + #0-5-4(date: this.date) + + + + Date with ISO-8601 format + + + + + + + #0-5-5(time: this.time) + + + + Time with ISO-8601 format + + + + + + + + + + #0-5-15(datetime: this.datetime) + + + + DateTime with the ISO-8601 complete short format: "%Y%m%dT%H%M%S%z" + + + + + Common state from product + + + + + + + Battery percentage + + + + + + Mass storage id (unique) + + + Mass storage name + + + + + + Mass storage state id (unique) + + + Mass storage size in MBytes + + + Mass storage used size in MBytes + + + Mass storage plugged (1 if mass storage is plugged, otherwise 0) + + + Mass storage full information state (1 if mass storage full, 0 otherwise). + + + Mass storage internal type state (1 if mass storage is internal, 0 otherwise) + + + + + + Date with ISO-8601 format + + + + + + Time with ISO-8601 format + + + + + + Mass storage free space in MBytes + + + Mass storage record time reamining in minute + + + Mass storage photo remaining + + + + + + RSSI of the signal between controller and the product (in dbm) + + + + + + Sensor name + + Inertial Measurement Unit sensor + + + Barometer sensor + + + Ultrasonic sensor + + + GPS sensor + + + Magnetometer sensor + + + Vertical Camera sensor + + + + Sensor state (1 if the sensor is OK, 0 if the sensor is NOT OK) + + + + + + The Model of the product. + + Travis (RS taxi) model. + + + Mars (RS space) model + + + SWAT (RS SWAT) model + + + Mc Lane (RS police) model + + + Blaze (RS fire) model + + + Orak (RS carbon hydrofoil) model + + + New Z (RS wooden hydrofoil) model + + + Marshall (JS fire) model + + + Diesel (JS SWAT) model + + + Buzz (JS space) model + + + Max (JS F1) model + + + Jett (JS flames) model + + + Tuk-Tuk (JS taxi) model + + + Swing black model + + + Swing white model + + + + + + + List entry attribute Bitfield. + 0x01: First: indicate it's the first element of the list. + 0x02: Last: indicate it's the last element of the list. + 0x04: Empty: indicate the list is empty (implies First/Last). All other arguments should be ignored. + + + Following of country code with ISO 3166 format, separated by ";". Be careful of the command size allowed by the network used. If necessary, split the list in several commands. + + + + + + Mass storage id (unique) + + + Number of photos (does not include raw photos) + + + Number of videos + + + Number of puds + + + Number of crash logs + + + + + + Mass storage id (unique) + + + Number of photos (does not include raw photos) + + + Number of videos + + + Number of puds + + + Number of crash logs + + + Number of raw photos + + + + + + Mass storage id (unique) + + + Number of photos (does not include raw photos) + + + Number of videos + + + Number of raw photos + + + + + + Timestamp in milliseconds since 00:00:00 UTC on 1 January 1970. + + + Timestamp in milliseconds since 00:00:00 UTC on 1 January 1970. 0 mean that video is still recording. + + + + + + Datetime with the ISO-8601 complete short format: "%Y%m%dT%H%M%S%z" + + + + + + Bits 0-3: indicate the Link signal quality. The quality varies from 1 to 5. 1 means that a disconnection is highly probable, + 5 means that the link signal quality is very good. + Bit 6: 1 when there is a probable 4G interference coming from the smartphone. Zero otherwise. + Bit 7: 1 when the link signal quality is low although the radio RSSI is good. This indicate that the radio link is + perturbed by external elements. Zero otherwise. + + + + + + Id of the boot + + + + + Over heat commands + + + + + + + + + Overheat state from product + + + + + + + Type of overheat regulation : 0 for ventilation, 1 for switch off + + + + + Notify the device about the state of the controller application. + + + + 0 when the application is not in the piloting HUD, 1 when it enters the HUD. + + + + + + Update status + + Peer connected to Skycontroller. + + + Peer disconnected from Skycontroller. + + + + SDK connection type. + + Unknown. + + + Net. + + + Mux. + + + + Peer name. + May not be available at disconnection. + + + Peer id. + May not be available at disconnection. + + + Peer type. + May not be available at disconnection. + + + + + Wifi settings commands + + + + + #0-10-0(outdoor: this.outdoor) + + + + 1 if it should use outdoor wifi settings, 0 otherwise + + + + + Wifi settings state from product + + + + 1 if it should use outdoor wifi settings, 0 otherwise + + + + + Mavlink flight plans commands + + + + + #0-12-0(state: playing, type: this.type) + + + + flight plan file path from the mavlink ftp root + + + type of the played mavlink file + + Mavlink file for FlightPlan + + + Mavlink file for MapMyHouse + + + + + + + + #0-12-0(state: paused) + + + + + + + + #0-12-0(state: stopped) + + + + + + Mavlink flight plans states commands + + + + State of the mavlink + + Mavlink file is playing + + + Mavlink file is stopped (arg filepath and type are useless in this state) + + + Mavlink file is paused + + + Mavlink file is loaded (it will be played at take-off) + + + + flight plan file path from the mavlink ftp root + + + type of the played mavlink file + + Mavlink file for FlightPlan + + + Mavlink file for MapMyHouse + + + + + + + State of play error + + There is no error + + + The drone is not in outdoor mode + + + The gps is not fixed + + + The magnetometer of the drone is not calibrated + + + + + + + Index of the mission item. This is the place of the mission item in the list of the items of the mission. + Begins at 0. + + + + + + + + + #0-33-0(state: this.value) + + + + 1 to enable, 0 to disable + + + + + + + + 1 if enabled, 0 if disabled + + + 1 if readOnly, 0 if writable + + + + + Calibration commands + + + + + #0-14-3 + #0-14-2 + + + + 1 if the calibration should be started, 0 if it should be aborted + + + + + + + #0-14-4 + + + + 1 if the calibration should be started, 0 if it should be aborted + + + + + Status of the calibration + + + + State of the x axis (roll) calibration : 1 if calibration is done, 0 otherwise + + + State of the y axis (pitch) calibration : 1 if calibration is done, 0 otherwise + + + State of the z axis (yaw) calibration : 1 if calibration is done, 0 otherwise + + + 1 if calibration has failed, 0 otherwise. If this arg is 1, consider all previous arg as 0 + + + + + + 1 if calibration is required, 0 if current calibration is still valid + + + + + + The axis to calibrate + + If the current calibration axis should be the x axis + + + If the current calibration axis should be the y axis + + + If the current calibration axis should be the z axis + + + If none of the axis should be calibrated + + + + + + Status of the calibration process + + 1 if calibration has started, 0 otherwise + + + + Sent when the state of the pitot calibration has changed + + State of pitot calibration + + Calibration is ok + + + Calibration is started, waiting user action + + + Calibration is in progress + + + Calibration is required + + + + lastError : 1 if an error occured and 0 if not + + + + + Status of the camera settings + + + + Value of the camera horizontal fov (in degree) + + + Value of max pan (right pan) (in degree) + + + Value of min pan (left pan) (in degree) + + + Value of max tilt (top tilt) (in degree) + + + Value of min tilt (bottom tilt) (in degree) + + + + + GPS related commands + + + + Controller latitude in decimal degrees + + + Controller longitude in decimal degrees + + + + + FlightPlan state commands + + + + Running a flightPlan file is available (1 running a flightPlan file is available, otherwise 0) + + + + + + Drone FlightPlan component id (unique) + + Drone GPS component. + State is 0 when the drone needs a GPS fix. + + + Drone Calibration component. + State is 0 when the sensors of the drone needs to be calibrated. + + + Mavlink file component. + State is 0 when the mavlink file is missing or contains error. + + + Drone Take off component. + State is 0 when the drone cannot take-off. + + + Component for waypoints beyond the geofence. + State is 0 when one or more waypoints are beyond the geofence. + + + Drone camera component. + State is 0 when the drone needs to wait camera availability. + + + + State of the FlightPlan component (1 FlightPlan component OK, otherwise 0) + + + + + + 1 if FlightPlan is locked: can't pause or stop FlightPlan. + 0 if FlightPlan is unlocked: pause or stop available. + + + + + FlightPlan Event commands + + + + + + + + + ARlibs Versions Commands + + Controller libARCommands version + + version of libARCommands ("1.2.3.4" format) + + + + SkyController libARCommands version + + version of libARCommands ("1.2.3.4" format) + + + + Device libARCommands version + + version of libARCommands ("1.2.3.4" format) + + + + + Audio-related commands. + + + + + #0-21-0(running: this.ready) + + + + Bit field for TX and RX ready. + bit 0 is 1 if controller is ready and wants to receive sound (Drone TX) + bit 1 is 1 if controller is ready and wants to send sound (Drone RX) + + + + + Audio-related state updates. + + + + Bit field for TX and RX running + bit 0 is 1 if Drone TX is running + bit 1 is 1 if Drone RX is running + + + + + Controls the headlight LEDs of the Evo variants. + + + + + #0-23-0(left: this.left , right: this.right) + + + + Set the left LED intensity value (0 through 255). + + + Set the right LED intensity value (0 through 255). + + + + + Get information about the state of the Evo variants' LEDs. + + + + The intensity value for the left LED (0 through 255). + + + The intensity value for the right LED (0 through 255). + + + + + Animations-related commands. + + + + + #0-25-0(anim: this.anim) + + + + Animation to start. + + Flash headlights. + + + Blink headlights. + + + Oscillating headlights. + + + Spin animation. + + + Tap animation. + + + Slow shake animation. + + + Metronome animation. + + + Standing dance animation. + + + Spin jump animation. + + + Spin that end in standing posture, or in jumper if it was standing animation. + + + Spiral animation. + + + Slalom animation. + + + Boost animation. + + + Make a looping. (Only for WingX) + + + Make a barrel roll of 180 degree turning on right. (Only for WingX) + + + Make a barrel roll of 180 degree turning on left. (Only for WingX) + + + Put the drone upside down. (Only for WingX) + + + + + + + + #0-25-0 + + + + Animation to stop. + + Flash headlights. + + + Blink headlights. + + + Oscillating headlights. + + + Spin animation. + + + Tap animation. + + + Slow shake animation. + + + Metronome animation. + + + Standing dance animation. + + + Spin jump animation. + + + Spin that end in standing posture, or in jumper if it was standing animation. + + + Spiral animation. + + + Slalom animation. + + + Boost animation. + + + Make a looping. (Only for WingX) + + + Make a barrel roll of 180 degree turning on right. (Only for WingX) + + + Make a barrel roll of 180 degree turning on left. (Only for WingX) + + + Put the drone upside down. (Only for WingX) + + + + + + + + #0-25-0 + + + + + + Animations-related notification/feedback commands. + + + + Animation type. + + Flash headlights. + + + Blink headlights. + + + Oscillating headlights. + + + Spin animation. + + + Tap animation. + + + Slow shake animation. + + + Metronome animation. + + + Standing dance animation. + + + Spin jump animation. + + + Spin that end in standing posture, or in jumper if it was standing animation. + + + Spiral animation. + + + Slalom animation. + + + Boost animation. + + + Make a looping. (Only for WingX) + + + Make a barrel roll of 180 degree turning on right. (Only for WingX) + + + Make a barrel roll of 180 degree turning on left. (Only for WingX) + + + Put the drone upside down. (Only for WingX) + + + + State of the animation + + animation is stopped + + + animation is started + + + The animation is not available + + + + Error to explain the state + + No Error + + + Unknown generic error + + + + + + Accessories-related commands. + + + + + #0-27-1(accessory: this.accessory) + + + + Accessory configuration to set. + + No accessory. + + + Standard wheels + + + Truck wheels + + + Hull + + + Hydrofoil + + + + + + Accessories-related commands. + + + + Accessory configurations supported by the product. + + No accessory. + + + Standard wheels + + + Truck wheels + + + Hull + + + Hydrofoil + + + + + + Accessory config response. + + Accessory configuration reported by firmware. + + No accessory configuration set. Controller needs to set one. + + + No accessory. + + + Standard wheels + + + Truck wheels + + + Hull + + + Hydrofoil + + + Configuration in progress. + + + + Error code. + + No error. Accessory config change successful. + + + Cannot change accessory configuration for some reason. + + + Cannot change accessory configuration while flying. + + + + + + + 1 if the modification of the accessory Config is enabled, 0 otherwise + + + + + Commands sent by the controller to set charger parameters. + + + + The new maximum charge rate. + + Fully charge the battery at a slow rate. Typically limit max charge current to 512 mA. + + + Almost fully-charge the battery at moderate rate (> 512mA) but slower than the fastest rate. + + + Almost fully-charge the battery at the highest possible rate supported by the charger. + + + + + + Commands sent by the firmware to advertise the charger status. + + + + The current maximum charge rate. + + Fully charge the battery at a slow rate. Typically limit max charge current to 512 mA. + + + Almost fully-charge the battery at moderate rate (> 512 mA) but slower than the fastest rate. + + + Almost fully-charge the battery at the highest possible rate supported by the charger. + + + + + + + Charger status. + + The battery is discharging. + + + The battery is charging at a slow rate about 512 mA. + + + The battery is charging at a moderate rate (> 512 mA) but slower than the fastest rate. + + + The battery is charging at a the fastest rate. + + + The charger is plugged and the battery is fully charged. + + + + The current charging phase. + + The charge phase is unknown or irrelevant. + + + First phase of the charging process. The battery is charging with constant current. + + + Second phase of the charging process. The battery is charging with constant current, with a higher voltage than the first phase. + + + Last part of the charging process. The battery is charging with a constant voltage. + + + The battery is fully charged. + + + + + + + The charge rate recorded by the firmware for the last charge. + + The last charge rate is not known. + + + Slow charge rate. + + + Moderate charge rate. + + + Fast charge rate. + + + + + + + The current charging phase. + + The charge phase is unknown or irrelevant. + + + First phase of the charging process. The battery is charging with constant current. + + + Second phase of the charging process. The battery is charging with constant current, with a higher voltage than the first phase. + + + Last part of the charging process. The battery is charging with a constant voltage. + + + The battery is fully charged. + + + The battery is discharging; Other arguments refers to the last charge. + + + + The charge rate. If phase is DISCHARGING, refers to the last charge. + + The charge rate is not known. + + + Slow charge rate. + + + Moderate charge rate. + + + Fast charge rate. + + + + The charging intensity, in dA. (12dA = 1,2A) ; If phase is DISCHARGING, refers to the last charge. Equals to 0 if not known. + + + The full charging time estimated, in minute. If phase is DISCHARGING, refers to the last charge. Equals to 0 if not known. + + + + + Commands sent by the drone to inform about the run or flight state + + + + Id of the run + + + + + Factory reset commands + + + + + + Update related commands + + + + Version before the update. + + + Target version of the latest update. This is the version after the update when `status` is `SUCCESS` or + the version of the update that failed when `status` is one of the failure value. + + + Update status + + Update completed successfully. + + + Failure, wrong or corrupted update file. + + + Failure, battery level was too low. + + + Generic Failure. + + + + +