Other Protocols
The following protocols are available globally.
-
Define a Component (facility, pilotingItf, instrument or peripheral).
See moreDeclaration
Swift
@objc(GSComponent) public protocol Component
-
Describe a Component.
See moreDeclaration
Swift
@objc(GSComponentDescriptor) public protocol ComponentDescriptor
-
Describe a component protocol.
See moreDeclaration
Swift
public protocol ComponentApiDescriptor : ComponentDescriptor
-
Terrain data.
See moreDeclaration
Swift
public protocol TerrainData
-
Instrument that informs about altitude.
This instrument can be retrieved by:
drone.getInstrument(Instruments.altimeter)
Note
This protocol is for Objective-C only. Swift must use the protocolAltimeter
.Declaration
Swift
@objc public protocol GSAltimeter : Instrument
-
Instrument that informs a device’s battery.
This instrument can be retrieved by:
drone.getInstrument(Instruments.batteryInfo)
Note
This protocol is for Objective-C only. Swift must use the protocolBatteryInfo
.Declaration
Swift
@objc public protocol GSBatteryInfo : Instrument
-
CellularLink instrument.
This instrument provides status of cellular link.
This instrument can be retrieved by:
See moredevice.getInstrument(Instruments.cellularLink)
Declaration
Swift
public protocol CellularLink : Instrument
-
CellularLogs instrument.
This instrument gives access to log messages related to cellular network emitted by the drone.
This instrument can be retrieved by:
See moredrone.getInstrument(Instruments.cellularLogs)
Declaration
Swift
public protocol CellularLogs : Instrument
-
CellularSession instrument.
This instrument provides status of cellular session.
This instrument can be retrieved by:
See moredevice.getInstrument(Instruments.cellularSession)
Declaration
Swift
public protocol CellularSession : Instrument
-
Instrument component descriptor.
See moreDeclaration
Swift
public protocol InstrumentClassDesc : ComponentApiDescriptor
-
Protocol that provides functions to get instruments. Those methods should no be used from Swift.
See moreDeclaration
Swift
@objc public protocol GSInstrumentProvider
-
Instrument that informs about photo progress indicator.
This instrument can be retrieved by:
drone.getInstrument(Instruments.photoProgressIndicator)
Note
This protocol is for Objective-C only. Swift must use the protocolPhotoProgressIndicator
.Declaration
Swift
@objc public protocol GSPhotoProgressIndicator : Instrument
-
Instrument that informs about speeds.
This instrument can be retrieved by:
drone.getInstrument(Instruments.speedometer)
Note
This protocol is for Objective-C only. Swift must use the protocolSpeedometer
.Declaration
Swift
@objc public protocol GSSpeedometer : Instrument
-
Instrument that informs about take off checklist.
This instrument can be retrieved by:
See moredrone.getInstrument(Instruments.takeoffChecklist)
Declaration
Swift
public protocol TakeoffChecklist : Instrument
-
Setting to change the anti-flickering mode.
See moreDeclaration
Swift
public protocol AntiflickerSetting : AnyObject
-
Setting to change the anti-flickering mode.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSAntiflickerSetting
-
Peripheral managing anti-flickering.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSAntiflicker
-
Undocumented
See moreDeclaration
Swift
@objc public protocol GSBatteryGaugeUpdater : Peripheral
-
Blended Thermal camera peripheral.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSBlendedThermalCamera : GSCamera, Peripheral
-
Objective-C version of Gimbal.
The gimbal is the peripheral “holding” and orientating the camera. It can be a real mechanical gimbal, or a software one.
The gimbal can act on one or multiple axes. It can stabilize a given axis, meaning that the movement on this axis will be following the horizon (for
.roll
and.pitch
) or the North (for the.yaw
).Note
This class is for Objective-C only and must not be used in Swift.Declaration
Swift
@objc public protocol GSCalibratableGimbal : Peripheral
-
Declaration
Swift
@objc public protocol GSCamera
-
Settings to configure camera alignment.
See moreDeclaration
Swift
public protocol CameraAlignment : AnyObject
-
Undocumented
See moreDeclaration
Swift
@objc public protocol GSCameraAlignment
-
Settings to configure camera anti-flickering options.
See moreDeclaration
Swift
public protocol CameraAntiFlickeringSettings : AnyObject
-
Setting to configure camera exposure compensation
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSCameraAntiFlickeringSettings
-
Camera exposure setting.
Allows to configure the exposure mode and parameters, such as: - ISO sensitivity, - Shutter speed.
See moreDeclaration
Swift
public protocol CameraExposureSettings : AnyObject
-
Settings to configure camera exposure mode and parameters.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSCameraExposureSettings
-
Setting to configure camera exposure compensation.
See moreDeclaration
Swift
public protocol CameraExposureCompensationSetting : AnyObject
-
Setting to configure camera exposure compensation
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSCameraExposureCompensationSetting
-
Declaration
Swift
public protocol CameraExposureLock : AnyObject
-
Camera exposure lock.
Allows to lock/unlock the exposure according to a given mode.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSCameraExposureLock
-
Setting to change the camera mode.
See moreDeclaration
Swift
public protocol CameraModeSetting : AnyObject
-
Setting to change the camera mode
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSCameraModeSetting
-
Camera photo setting.
Allows to configure the camera photo mode and parameters, such as:
- Photo format,
- Photo file format,
- Burst value (for {@link Mode#BURST burst mode},
- Bracketing value (for {@link Mode#BRACKETING bracketing mode}.
Declaration
Swift
public protocol CameraPhotoSettings : AnyObject
-
State of the camera photo function.
See moreDeclaration
Swift
@objc(GSCameraPhotoState) public protocol CameraPhotoState
-
Settings to configure photo mode and options
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSCameraPhotoSettings
-
Camera recording setting.
Allows to configure the camera recording mode and parameters, such as:
- Recording resolution,
- Recording framerate,
- Hyperalpse value for hyperlapse mode.
Declaration
Swift
public protocol CameraRecordingSettings : AnyObject
-
Recording progress event.
See moreDeclaration
Swift
@objc(GSCameraRecordingState) public protocol CameraRecordingState
-
Settings to configure recording mode and options
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSCameraRecordingSettings
-
Style customizable parameters.
See moreDeclaration
Swift
@objc(GSCameraStyleParameter) public protocol CameraStyleParameter
-
Camera style settings.
Allows to set the active image style and to customize its parameters.
See moreDeclaration
Swift
public protocol CameraStyleSettings : AnyObject
-
Camera style settings.
Allows to set the active image style and to customize its parameters.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSCameraStyleSettings
-
Settings to configure White balance.
Allows to configure the white balance mode and custom temperature.
See moreDeclaration
Swift
public protocol CameraWhiteBalanceSettings : AnyObject
-
Settings to configure White balance.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSCameraWhiteBalanceSettings
-
Declaration
Swift
public protocol CameraWhiteBalanceLock : AnyObject
-
Camera white balance lock.
Allows to lock/unlock the white balance values.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSCameraWhiteBalanceLock
-
A camera zoom.
Zoom level can be changed either by giving a desired level (
See moreset(level:)
) or by giving a desired zoom change velocity (set(velocity:)
).Declaration
Swift
@objc(GSCameraZoom) public protocol CameraZoom
-
Base protocol for camera components.
Declaration
Swift
public protocol Camera2Component : Component
-
Camera component descriptor.
See moreDeclaration
Swift
public protocol Camera2ComponentClassDesc : ComponentApiDescriptor
-
Camera configuration editor.
See moreDeclaration
Swift
public protocol Camera2Editor
-
Camera configuration.
See moreDeclaration
Swift
public protocol Camera2Config
-
Base protocol for enumerations of camera configuration parameters.
Declaration
Swift
public protocol Camera2ConfigEnum : CaseIterable, CustomStringConvertible, Hashable
-
Blended Thermal Camera2 peripheral.
Provides access to the thermal camera2 in order to take pictures and to record videos. Also provides access to various camera2 settings, such as:
- Exposure,
- EV compensation,
- White balance,
- Recording mode, resolution and framerate selection,
- Photo mode, format and file format selection.
This peripheral can be retrieved by:
drone.getPeripheral(Peripherals.thermalCamera2)
Declaration
Swift
public protocol BlendedThermalCamera2 : Camera2, Peripheral
-
Setting providing access to the CellularMode.
See moreDeclaration
Swift
public protocol CellularModeSetting : AnyObject
-
Setting providing access to the APN configuration.
See moreDeclaration
Swift
public protocol ApnConfigurationSetting : AnyObject
-
Setting to change the network mode.
See moreDeclaration
Swift
public protocol CellularNetworkModeSetting : AnyObject
-
Setting to change the piloting source
See moreDeclaration
Swift
public protocol CopilotSetting : AnyObject
-
Declaration
Swift
@objc public protocol GSCopilot
-
Setting to change the piloting source
Note
this protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSCopilotSetting
-
CopterMotors peripheral interface for copter drones.
Allows to query the error status of each of the copter’s motors.
This peripheral can be retrieved by:
drone.getPeripheral(Peripherals.copterMotors)
Note
This protocol is for Objective-C only. Swift must use the protocolCopterMotors
.Declaration
Swift
@objc public protocol GSCopterMotors : Peripheral
-
Setting providing access to the DebugShellState.
See moreDeclaration
Swift
public protocol DebugShellStateSetting : AnyObject
-
DebugShell peripheral interface.
This peripheral provides access to DebugShell settings.
This peripheral can be retrieved by:
See moredevice.getPeripheral(Peripherals.debugShell)
Declaration
Swift
public protocol DebugShell : Peripheral
-
Debug setting.
See moreDeclaration
Swift
public protocol DebugSetting : AnyObject
-
DebugSetting that has a boolean value.
See moreDeclaration
Swift
public protocol BoolDebugSetting : DebugSetting
-
DebugSetting that has a textual value.
See moreDeclaration
Swift
public protocol TextDebugSetting : DebugSetting
-
DebugSetting that has a numerical value.
See moreDeclaration
Swift
public protocol NumericDebugSetting : DebugSetting
-
Setting to configure DRI type.
See moreDeclaration
Swift
public protocol DriTypeSetting : AnyObject
-
Objective-C version of FrontStereoGimbal.
The FrontStereoGimbal is the peripheral “holding” and orientating the camera. It can be a real mechanical gimbal, or a software one.
Note
This class is for Objective-C only and must not be used in Swift.Declaration
Swift
@objc public protocol GSFrontStereoGimbal : GSCalibratableGimbal
-
Setting providing access to the GeofenceMode.
See moreDeclaration
Swift
@objc(GSGeofenceMode) public protocol GeofenceModeSetting
-
Objective-C version of Gimbal.
The gimbal is the peripheral “holding” and orientating the camera. It can be a real mechanical gimbal, or a software one.
The gimbal can act on one or multiple axes. It can stabilize a given axis, meaning that the movement on this axis will be following the horizon (for
.roll
and.pitch
) or the North (for the.yaw
).Note
This class is for Objective-C only and must not be used in Swift.Declaration
Swift
@objc public protocol GSGimbal : GSCalibratableGimbal
-
HTTP server peripheral interface.
This peripheral provides information upon the remote device’s HTTP server, if it is available.
This peripheral can be retrieved by:
See moredevice.getPeripheral(Peripherals.httpServer)
Declaration
Swift
public protocol HttpServer : Peripheral
-
Internal user storage.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSInternalUserStorage : GSUserStorage
-
Setting providing access to the KillSwitchMode.
See moreDeclaration
Swift
public protocol KillSwitchModeSetting : AnyObject
-
Kill-switch peripheral interface.
This component allows to configure and activate the drone’s kill-switch feature.
This peripheral can be retrieved by:
See moredevice.getPeripheral(Peripherals.killSwitch)
Declaration
Swift
public protocol KillSwitch : Peripheral
-
Latest Log Downloader peripheral interface.
This internal peripheral allows to retrieve latest logs (FDR) from the device.
This peripheral can be retrieved by:
See moredevice.getPeripheral(Peripherals.latestLogDownloader)
Declaration
Swift
public protocol LatestLogDownloader : Peripheral
-
Declaration
Swift
@objc public protocol GSLeds
-
Main Camera peripheral.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSMainCamera : GSCamera, Peripheral
-
Undocumented
Declaration
Swift
public protocol MediaOperation : AnyObject
-
Undocumented
See moreDeclaration
Swift
public protocol MediaOperationRef : CancelableCore, MediaOperation
-
A list of media resources to download.
See moreDeclaration
Swift
@objc(GSMediaResourceList) public protocol MediaResourceList
-
Objective-C version of MediaStore.
Note
This class is for Objective-C only and must not be used in Swift.Declaration
Swift
@objc(GSMediaStore) public protocol GSMediaStore : Peripheral
-
Messenger peripheral interface.
This component allows to send SMS using the remote device cellular connection, when available.
This peripheral can be retrieved by:
See moredevice.getPeripheral(Peripherals.messenger)
Declaration
Swift
public protocol Messenger : Peripheral
-
Mission object.
See moreDeclaration
Swift
public protocol Mission
-
Mission message.
See moreDeclaration
Swift
public protocol MissionMessage
-
Setting to control network routing.
See moreDeclaration
Swift
public protocol NetworkControlRoutingSetting : AnyObject
-
Network link details.
See moreDeclaration
Swift
public protocol NetworkControlLinkInfo : AnyObject
-
Direct connection setting.
See moreDeclaration
Swift
public protocol NetworkDirectConnectionSetting : AnyObject
-
Obstacle avoidance setting.
See moreDeclaration
Swift
public protocol ObstacleAvoidanceSetting : AnyObject
-
Request for target tracking.
See moreDeclaration
Swift
public protocol TrackingRequest
-
Peripheral component descriptor.
See moreDeclaration
Swift
public protocol PeripheralClassDesc : ComponentApiDescriptor
-
Protocol that provides functions to get peripherals. Those methods should no be used from swift.
See moreDeclaration
Swift
@objc public protocol GSPeripheralProvider
-
Peripheral managing the piloting general controls.
Note
this protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSPilotingControl : Peripheral
-
Setting to change the piloting behaviour.
See moreDeclaration
Swift
public protocol PilotingBehaviourSetting : AnyObject
-
Setting to change the piloting behaviour.
Note
this protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSPilotingBehaviourSetting
-
Setting to change the precise home mode.
See moreDeclaration
Swift
public protocol PreciseHomeSetting : AnyObject
-
Setting to change the precise home mode
Note
this protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSPreciseHomeSetting
-
Peripheral managing precise home.
Note
this protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSPreciseHome
-
Peripheral managing the transport used between the remote control and the drone.
Note
this protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSRadioControl : Peripheral
-
Setting to change the transport used by the remote control - drone link.
See moreDeclaration
Swift
public protocol TransportSetting : AnyObject
-
Setting to change the transport used by the remote control - drone link.
Note
this protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSTransportSetting
-
Removable user storage.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSRemovableUserStorage : GSUserStorage
-
Gamepad peripheral for
skyCtrl3
remote control devices.This peripheral allows:
- To receive events when physical inputs (buttons/axes) on the device are triggered.
- To configure mappings between combinations of physical inputs and predefined actions to execute or events to forward to the application when such combinations are triggered.
To start receiving events, a set of
SkyCtrl3Button
andSkyCtrl3Axis
must be grabbed and and some event listener has to be provided.When a gamepad input is grabbed, the remote control will stop forwarding events associated to this input to the connected drone (if any) and instead forward those events to the application-provided listener.
Each input may produce at least one, but possibly multiple specific events, which is documented in
SkyCtrl3Button
andSkyCtrl3Axis
.To stop receiving events, the input must be ungrabbed, and by doing so the remote control will resume forwarding that input events back to the connected drone instead, or, if the
VirtualGamepad
was grabbing navigation events, it will receive again the navigation events.Alternatively the application can unregister its event listeners to stop receiving events from all grabbed inputs altogether. Note, however, that doing so does not release any input, so the drone still won’t receive the grabbed input events.
To receive input events, the application must register some listener to which those event will be forwarded. Event listeners come in two kind, depending on the event to be listened to:
- A
(_ event: SkyCtrl3ButtonEvent, _ state: SkyCtrl3ButtonEventState) -> Void
that receives events from inputs producingSkyCtrl3ButtonEvent
events. This listener also provides the physical state of the associated input, i.e. whether the associated button is.pressed
or.released
. Note that physical axes produce a button press event every time they reach the start or end of their course, and a button release event every time they quit that position. - A
(_ event: SkyCtrl3AxisEvent, _ value: Int) -> Void
that receives events from inputs producingSkyCtrl3AxisEvent
events. This listener also provides the current value of the associated input, i.e. an int value in range [-100, 100] that represents the current position of the axis, where -100 corresponds to the axis at start of its course (left for horizontal axes, down for vertical axes), and 100 represents the axis at end of its course (right for horizontal axes, up for vertical axes).
A mapping defines a set of actions that may each be triggered by a specific combination of inputs events (buttons, and/or axes) produced by the remote control. Those mappings can be edited and are persisted on the remote control device: entries can be modified, removed, and new entries can be added as well.
A
SkyCtrl3MappingEntry
in a mapping defines the association between such an action, the drone model on which it should apply, and the combination of input events that should trigger the action. Two different kind of entries are available:- a
SkyCtrl3ButtonsMappingEntry
entry allows to trigger aSkyCtrl3ButtonsMappableAction
when the gamepad inputs produce some set ofSkyCtrl3ButtonEvent
in the.pressed
state. - a
SkyCtrl3AxisMappingEntry
entry allows to trigger anSkyCtrl3AxisMappableAction
when the gamepad inputs produce someSkyCtrl3AxisEvent
, optionally in conjunction with some set ofSkyCtrl3ButtonEvent
in the.pressed
state.
This peripheral can be retrieved by:
(id<GSSkyCtrl3Gamepad>) [drone getPeripheral:GSPeripherals.skyCtrl3Gamepad]
Note
this protocol is for Objective-C only. Swift must use the protocolSkyCtrl3Gamepad
Declaration
Swift
@objc public protocol GSSkyCtrl3Gamepad : Peripheral
-
Gamepad peripheral for
skyCtrl4
remote control devices.This peripheral allows:
- To receive events when physical inputs (buttons/axes) on the device are triggered.
- To configure mappings between combinations of physical inputs and predefined actions to execute or events to forward to the application when such combinations are triggered.
To start receiving events, a set of
SkyCtrl4Button
andSkyCtrl4Axis
must be grabbed and and some event listener has to be provided.When a gamepad input is grabbed, the remote control will stop forwarding events associated to this input to the connected drone (if any) and instead forward those events to the application-provided listener.
Each input may produce at least one, but possibly multiple specific events, which is documented in
SkyCtrl4Button
andSkyCtrl4Axis
.To stop receiving events, the input must be ungrabbed, and by doing so the remote control will resume forwarding that input events back to the connected drone instead, or, if the
VirtualGamepad
was grabbing navigation events, it will receive again the navigation events.Alternatively the application can unregister its event listeners to stop receiving events from all grabbed inputs altogether. Note, however, that doing so does not release any input, so the drone still won’t receive the grabbed input events.
To receive input events, the application must register some listener to which those event will be forwarded. Event listeners come in two kind, depending on the event to be listened to:
- A
(_ event: SkyCtrl4ButtonEvent, _ state: SkyCtrl4ButtonEventState) -> Void
that receives events from inputs producingSkyCtrl4ButtonEvent
events. This listener also provides the physical state of the associated input, i.e. whether the associated button is.pressed
or.released
. Note that physical axes produce a button press event every time they reach the start or end of their course, and a button release event every time they quit that position. - A
(_ event: SkyCtrl4AxisEvent, _ value: Int) -> Void
that receives events from inputs producingSkyCtrl4AxisEvent
events. This listener also provides the current value of the associated input, i.e. an int value in range [-100, 100] that represents the current position of the axis, where -100 corresponds to the axis at start of its course (left for horizontal axes, down for vertical axes), and 100 represents the axis at end of its course (right for horizontal axes, up for vertical axes).
A mapping defines a set of actions that may each be triggered by a specific combination of inputs events (buttons, and/or axes) produced by the remote control. Those mappings can be edited and are persisted on the remote control device: entries can be modified, removed, and new entries can be added as well.
A
SkyCtrl4MappingEntry
in a mapping defines the association between such an action, the drone model on which it should apply, and the combination of input events that should trigger the action. Two different kind of entries are available:- a
SkyCtrl4ButtonsMappingEntry
entry allows to trigger aSkyCtrl4ButtonsMappableAction
when the gamepad inputs produce some set ofSkyCtrl4ButtonEvent
in the.pressed
state. - a
SkyCtrl4AxisMappingEntry
entry allows to trigger anSkyCtrl4AxisMappableAction
when the gamepad inputs produce someSkyCtrl4AxisEvent
, optionally in conjunction with some set ofSkyCtrl4ButtonEvent
in the.pressed
state.
This peripheral can be retrieved by:
See moredrone.getPeripheral(Peripherals.skyCtrl4Gamepad)
Declaration
Swift
public protocol SkyCtrl4Gamepad : Peripheral
-
Gamepad peripheral for
skyCtrl4
remote control devices.This peripheral allows:
- To receive events when physical inputs (buttons/axes) on the device are triggered.
- To configure mappings between combinations of physical inputs and predefined actions to execute or events to forward to the application when such combinations are triggered.
To start receiving events, a set of
SkyCtrl4Button
andSkyCtrl4Axis
must be grabbed and and some event listener has to be provided.When a gamepad input is grabbed, the remote control will stop forwarding events associated to this input to the connected drone (if any) and instead forward those events to the application-provided listener.
Each input may produce at least one, but possibly multiple specific events, which is documented in
SkyCtrl4Button
andSkyCtrl4Axis
.To stop receiving events, the input must be ungrabbed, and by doing so the remote control will resume forwarding that input events back to the connected drone instead, or, if the
VirtualGamepad
was grabbing navigation events, it will receive again the navigation events.Alternatively the application can unregister its event listeners to stop receiving events from all grabbed inputs altogether. Note, however, that doing so does not release any input, so the drone still won’t receive the grabbed input events.
To receive input events, the application must register some listener to which those event will be forwarded. Event listeners come in two kind, depending on the event to be listened to:
- A
(_ event: SkyCtrl4ButtonEvent, _ state: SkyCtrl4ButtonEventState) -> Void
that receives events from inputs producingSkyCtrl4ButtonEvent
events. This listener also provides the physical state of the associated input, i.e. whether the associated button is.pressed
or.released
. Note that physical axes produce a button press event every time they reach the start or end of their course, and a button release event every time they quit that position. - A
(_ event: SkyCtrl4AxisEvent, _ value: Int) -> Void
that receives events from inputs producingSkyCtrl4AxisEvent
events. This listener also provides the current value of the associated input, i.e. an int value in range [-100, 100] that represents the current position of the axis, where -100 corresponds to the axis at start of its course (left for horizontal axes, down for vertical axes), and 100 represents the axis at end of its course (right for horizontal axes, up for vertical axes).
A mapping defines a set of actions that may each be triggered by a specific combination of inputs events (buttons, and/or axes) produced by the remote control. Those mappings can be edited and are persisted on the remote control device: entries can be modified, removed, and new entries can be added as well.
A
SkyCtrl4MappingEntry
in a mapping defines the association between such an action, the drone model on which it should apply, and the combination of input events that should trigger the action. Two different kind of entries are available:- a
SkyCtrl4ButtonsMappingEntry
entry allows to trigger aSkyCtrl4ButtonsMappableAction
when the gamepad inputs produce some set ofSkyCtrl4ButtonEvent
in the.pressed
state. - a
SkyCtrl4AxisMappingEntry
entry allows to trigger anSkyCtrl4AxisMappableAction
when the gamepad inputs produce someSkyCtrl4AxisEvent
, optionally in conjunction with some set ofSkyCtrl4ButtonEvent
in the.pressed
state.
This peripheral can be retrieved by:
(id<GSSkyCtrl4Gamepad>) [drone getPeripheral:GSPeripherals.skyCtrl4Gamepad]
Note
this protocol is for Objective-C only. Swift must use the protocolSkyCtrl4Gamepad
Declaration
Swift
@objc public protocol GSSkyCtrl4Gamepad : Peripheral
-
Sleep mode peripheral interface.
This component allows to configure and activate the drone’s sleep mode/wake up feature.
This peripheral can be retrieved by:
See moredevice.getPeripheral(Peripherals.sleepMode)
Declaration
Swift
public protocol SleepMode : Peripheral
-
Camera live stream interface. Provides control over the drone camera live stream, allowing to pause, resume or stop playback. There is only one instance of this interface that is shared amongst all clients that have an open reference on this stream.
This stream supports ‘suspended’ state. When it is started and gets interrupted because another stream starts, or because streaming gets disabled globally, it moves to the ‘suspended’ state. Once the interruption stops, or streaming gets enabled, it is resumed in the state it was before suspension. Also, this implies that this stream can be started even while streaming is globally disabled. In such case, it will move to the ‘suspended’ state until either it is stopped by client request, or streaming gets enabled.
See moreDeclaration
Swift
@objc(GSCameraLive) public protocol CameraLive : Stream
-
Media replay source interface.
See moreDeclaration
Swift
@objc(GSMediaReplaySource) public protocol MediaReplaySource
-
StreamServer peripheral interface. This peripheral allows streaming of live camera video and replay of video files stored in drone memory. Those methods should no be used from swift
See moreDeclaration
Swift
@objc public protocol GSStreamServer
-
Target framing setting.
Allows to configure positioning of the tracked target in the drone video stream.
See moreDeclaration
Swift
public protocol TargetFramingSetting : AnyObject
-
Information on the analyzed trajectory of the target.
See moreDeclaration
Swift
@objc(GSTargetTrajectory) public protocol TargetTrajectory
-
Objective-C version of the Target framing setting.
Allows to configure positioning of the tracked target in the drone video stream.
See moreDeclaration
Swift
@objc public protocol GSTargetFramingSetting
-
Objective-C version of TargetTracker.
The targetTracker is the peripheral used by features such as Look-At or Follow-Me. It allows to activate/ deactivate the different detection modes of the target:
- control whether user device/controller barometer and location are actively monitored and
sent to the connected drone, in order to allow the latter to track the user and/or controller,
- forward external target detection information to the drone, in order to allow the latter to track a given target
- configure the tracked target desired position (framing) in the video stream.
Look-At and Follow-Me interfaces will be will be activatable according to the target’s detection quality level.
Note
This class is for Objective-C only and must not be used in Swift.Declaration
Swift
@objc public protocol GSTargetTracker : Peripheral
- control whether user device/controller barometer and location are actively monitored and
sent to the connected drone, in order to allow the latter to track the user and/or controller,
-
Thermal camera peripheral.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSThermalCamera : GSCamera, Peripheral
-
Setting to change the thermal control mode.
See moreDeclaration
Swift
public protocol ThermalControlSetting : AnyObject
-
Setting to change the sensitivity range.
See moreDeclaration
Swift
public protocol ThermalSensitivityRangeSetting : AnyObject
-
Thermal camera calibration.
See moreDeclaration
Swift
public protocol ThermalCalibration : AnyObject
-
Setting to change the thermal control mode.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSThermalControlSetting
-
Setting to change the thermal sensitivity range
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSThermalSensitivityRangeSetting
-
Declaration
Swift
@objc public protocol GSThermalCalibration
-
Peripheral managing thermal control.
Note
This protocol is for Objective-C compatibility only.Declaration
Swift
@objc public protocol GSThermalControl
-
Ongoing update download state and progress.
See moreDeclaration
Swift
public protocol UpdaterDownload : CustomStringConvertible
-
Ongoing update download state and progress.
Note
This protocol is for Objective-C only. Swift must useUpdaterDownload
.Declaration
Swift
@objc public protocol GSUpdaterDownload
-
Ongoing update state and progress
See moreDeclaration
Swift
public protocol UpdaterUpdate
-
Ongoing update state and progress
Note
This protocol is for Objective-C only. Swift must useUpdaterUpdate
.Declaration
Swift
@objc public protocol GSUpdaterUpdate
-
Updater peripheral interface for Drone and RemoteControl devices.
Allows to:
- Know if there is a locally available firmware that is suitable to update the device.
- Request to update the device using such a firmware.
This peripheral can be retrieved by:
id<GSUpdater> updater = (id<GSUpdater>)[drone getPeripheral:GSPeripherals.updater];
Note
This protocol is for Objective-C only. Swift must use the protocolUpdater
Declaration
Swift
@objc public protocol GSUpdater : Peripheral
-
Information about the media storage.
See moreDeclaration
Swift
@objc(GSUserStorageMediaInfo) public protocol UserStorageMediaInfo
-
Declaration
Swift
@objc public protocol GSUserStorage
-
Setting providing access to the Wifi access point channel setup.
See moreDeclaration
Swift
public protocol ChannelSetting : AnyObject
-
Setting providing access to the Wifi environment setup.
See moreDeclaration
Swift
public protocol EnvironmentSetting : AnyObject
-
Setting providing access to the Wifi access point security setup.
See moreDeclaration
Swift
public protocol SecurityModeSetting : AnyObject
-
Setting providing access to the Wifi station security setup.
See moreDeclaration
Swift
public protocol WifiStationSecuritySetting : AnyObject
-
Wifi station peripheral interface for drones.
This component allows to configure various parameters of the device’s Wifi station mode, such as:
- Environment (indoor/outdoor) setup,
- Country,
- SSID,
- Security.
This peripheral can be retrieved by:
See moredrone.getPeripheral(Peripherals.wifiStation)
Declaration
Swift
public protocol WifiStation : Peripheral
-
Base class for an
Animation
configuration.Subclasses allow to build a configuration that instructs the drone to play the animation with whatever default values if deems appropriate, depending on the current context and/or its own defaults.
Subclasses may also have mandatory parameters in their constructor.
Each method starting with
See morewith
in subclasses allows to customize a different animation parameter. When one of this method is called, the drone will use the provided parameter value instead of its own default, if possible.Declaration
Swift
@objc(GSAnimationConfig) public protocol AnimationConfig
-
Base interface for an Animation.
See moreDeclaration
Swift
@objc(GSAnimation) public protocol Animation
-
Candle animation.
This animation instructs the drone to fly horizontally in direction of a target and then to fly up. The target in question depends on the currently active
See moreActivablePilotingItf
.Declaration
Swift
@objc(GSCandleAnimation) public protocol CandleAnimation : Animation
-
Dolly slide animation.
This animation instructs the drone to fly horizontally with respect to a specific angle between its original position (before the animation begins), the target, and its destination. The target in question depends on the currently active
See moreActivablePilotingItf
.Declaration
Swift
@objc(GSDollySlideAnimation) public protocol DollySlideAnimation : Animation
-
Dronie animation.
This animation instructs the drone to fly away from the target on a given distance with a predefined (and not configurable) angle. The target in question depends on the currently active
See moreActivablePilotingItf
.Declaration
Swift
@objc(GSDronieAnimation) public protocol DronieAnimation : Animation
-
Horizontal 180 Photo Panorama animation.
The drone performs a 180° rotation on the yaw axis while taking photos at various angles. The resulting set of photos can then be retrieved as a single ‘panorama’ media that may be post-processed to make panoramic images.
Declaration
Swift
@objc(GSHorizontal180PhotoPanoramaAnimation) public protocol Horizontal180PhotoPanoramaAnimation : Animation
-
Parabola animation.
This animation instructs the drone to fly above the target in a parabola shape. The target in question depends on the currently active
See moreActivablePilotingItf
.Declaration
Swift
@objc(GSParabolaAnimation) public protocol ParabolaAnimation : Animation
-
Position Twist Up Animation.
This animation instructs the drone to circle around the target, possibly in a spiral shape and possibly also while flying vertically (up or down). The target in question depends on the currently active
See moreActivablePilotingItf
.Declaration
Swift
@objc(GSPositionTwistUpAnimation) public protocol PositionTwistUpAnimation : Animation
-
Spherical Photo Panorama animation.
The drone performs a 360° rotation on the yaw axis. At various angles, rotation pauses, drone camera performs a 180° rotation on the tilt axis while taking photos at various angles, then drone yaw rotation resumes. The resulting set of photos can then be retrieved as a single ‘panorama’ media that may be post-processed to make panoramic images.
Declaration
Swift
@objc(GSSphericalPhotoPanoramaAnimation) public protocol SphericalPhotoPanoramaAnimation : Animation
-
Spiral animation.
This animation instructs the drone to circle around the target, possibly in a spiral shape and possibly also while flying vertically (up or down). The target in question depends on the currently active
See moreActivablePilotingItf
.Declaration
Swift
@objc(GSSpiralAnimation) public protocol SpiralAnimation : Animation
-
Super Wide Photo Panorama animation.
The drone takes photos at different camera yaw for several camera pitch.
The resulting set of photos can then be retrieved as a single media that may be post-processed to make a wide angle image.
Declaration
Swift
@objc(GSSuperWidePhotoPanoramaAnimation) public protocol SuperWidePhotoPanoramaAnimation : Animation
-
Twist Up Animation.
This animation will make the drone move up and rotate slowly on itself until the end of the animation, first with the camera looking down and when it reaches its target altitude, slowly looking up to the horizon.
See moreDeclaration
Swift
@objc(GSTwistUpAnimation) public protocol TwistUpAnimation : Animation
-
Vertical 180 Photo Panorama animation.
The drone camera performs a 180° rotation on the tilt axis while taking photos at various angles. The resulting set of photos can then be retrieved as a single ‘panorama’ media that may be post-processed to make panoramic images.
Declaration
Swift
@objc(GSVertical180PhotoPanoramaAnimation) public protocol Vertical180PhotoPanoramaAnimation : Animation
-
Vertical reveal animation.
This animation instructs the drone to start looking down, then to fly up slowly looking at the horizon. Once the drone reaches its target altitude, it rotates on itself to perform an horizontal panorama.
See moreDeclaration
Swift
@objc(GSVerticalRevealAnimation) public protocol VerticalRevealAnimation : Animation
-
Vertigo animation.
This animation instructs the drone to zoom in on the target, while the drone moves away from it. The target in question depends on the currently active
See moreActivablePilotingItf
.Declaration
Swift
@objc(GSVertigoAnimation) public protocol VertigoAnimation : Animation
-
Animation piloting interface.
This piloting interface cannot be activated or deactivated. It is present as soon as a drone supporting animations is connected. It is removed as soon as the drone is disconnected.
According to different parameters, the list of available animation can change. These parameters can be (not exhaustive):
- Current activated piloting interface
- Information about the controller (such as location)
- Internal state of the drone (such as battery level, gps fix…)
This peripheral can be retrieved by:
(id<AnimationPilotingItf>) [drone getPilotingItf:GSPilotingItfs.animation]
Note
this protocol is for Objective-C only. Swift must use the protocolAnimationPilotingItf
.Declaration
Swift
@objc public protocol GSAnimationPilotingItf : PilotingItf
-
Flight Plan piloting interface for drones.
Allows to make the drone execute predefined flight plans. This piloting interface remains
.unavailable
until allFlightPlanUnavailabilityReason
have been cleared:- A Flight Plan file (i.e. a mavlink file) has been uploaded to the drone (see
uploadFlightPlan(filepath:))
- The drone GPS location has been acquired
- The drone is properly calibrated
- The drone is in a state that allows it to take off
Then, when all those conditions hold, the interface becomes
.idle
and can be activated to begin or resume Flight Plan execution, which can be paused by deactivating this piloting interface.This piloting interface can be retrieved by:
id<GSFlightPlanPilotingItf> fplan = (id<GSFlightPlanPilotingItf>)[drone getPilotingItf:GSPilotingItfs.flightPlan];
Note
This protocol is for Objective-C only. Swift must use the protocolFlightPlanPilotingItf
.Declaration
Swift
@objc public protocol GSFlightPlanPilotingItf : ActivablePilotingItf, PilotingItf
- A Flight Plan file (i.e. a mavlink file) has been uploaded to the drone (see
-
Information about a finished guided flight.
See moreDeclaration
Swift
@objc(GSFinishedFlightInfo) public protocol FinishedFlightInfo
-
Information about a finished location guided flight. Describes the initial directive and the final state of the flight.
See moreDeclaration
Swift
@objc(GSFinishedLocationFlightInfo) public protocol FinishedLocationFlightInfo : FinishedFlightInfo
-
Information about a finished relative move guided flight. Describes the initial directive, the move that the drone actually did and the final state of the flight.
See moreDeclaration
Swift
@objc(GSFinishedRelativeMoveFlightInfo) public protocol FinishedRelativeMoveFlightInfo : FinishedFlightInfo
-
Guided piloting interface.
Note
This protocol is for Objective-C only. Swift must use the protocolGuidedPilotingItf
.Declaration
Swift
@objc public protocol GSGuidedPilotingItf : ActivablePilotingItf, PilotingItf
-
PilotingInteface component descriptor.
See moreDeclaration
Swift
public protocol PilotingItfClassDesc : ComponentApiDescriptor
-
Protocol that provides functions to get piloting interfaces. Those methods should no be used from swift
See moreDeclaration
Swift
@objc public protocol GSPilotingItfProvider
-
Point'n'fly piloting interface.
This interface used is to request the drone to point at or to move to a given location.
This piloting interface can be retrieved by:
See moredrone.getPilotingItf(PilotingItfs.pointAndFly)
Declaration
Swift
public protocol PointAndFlyPilotingItf : ActivablePilotingItf, PilotingItf
-
A Point Of Interest to look at.
See moreDeclaration
Swift
@objc(GSPointOfInterest) public protocol PointOfInterest
-
Objective-C version of PointOfInterestPilotingItf.
During a piloted Point Of Interest, the drone always points towards the given Point Of Interest but can be piloted normally. However, yaw value is not settable.
There are two variants of piloted Point Of Interest:
- In
.lockedGimbal
mode, the gimbal always looks at the Point Of Interest. Gimbal control command is ignored by the drone. - In
.lockedOnceGimbal
mode, the gimbal looks once at the Point Of Interest, and is then freely controllable by the gimbal command. In
.freeGimbal
mode, the gimbal initially looks at the Point Of Interest, and is then freely controllable by the gimbal command.Note
This class is for Objective-C only and must not be used in Swift.
Declaration
Swift
@objc public protocol GSPointOfInterestPilotingItf : ActivablePilotingItf, PilotingItf
- In
-
Preferred return home target. Drone will select this target if all conditions for it are met.
See moreDeclaration
Swift
@objc(GSReturnHomePreferredTarget) public protocol ReturnHomePreferredTarget
-
Return home ending behavior. Drone will end its Return Home by this behavior.
See moreDeclaration
Swift
@objc(GSReturnHomeEnding) public protocol ReturnHomeEnding
-
Undocumented
See moreDeclaration
Swift
@objc public protocol GSReturnHomePilotingItf : ActivablePilotingItf, PilotingItf
-
Setting providing access to the mode (FollowMode) setup.
See moreDeclaration
Swift
public protocol FollowModeSetting : AnyObject
-
Setting providing access to the mode (FollowMode) setup.
This protocol is Objective-C only. Swift must use
See moreFollowModeSetting
.Declaration
Swift
@objc public protocol GSFollowModeSetting
-
Objective-C version of FollowMePilotingItf.
During an activated FollowMe, the drone will always look at the target but can be piloted normally. However, yaw value is not settable. Camera tilt and pan command is ignored by the drone.
Note
This class is for Objective-C only and must not be used in Swift.Declaration
Swift
@objc public protocol GSFollowMePilotingItf : ActivablePilotingItf, PilotingItf
-
Setting providing access to the mode (LookAtMode) setup.
See moreDeclaration
Swift
public protocol LookAtModeSetting : AnyObject
-
Setting providing access to the mode (LookAtMode) setup.
This protocol is Objective-C only. Swift must use
See moreLookAtModeSetting
.Declaration
Swift
@objc public protocol GSLookAtModeSetting
-
Objective-C version of LookAtPilotingItf.
During an activated LookAt, the drone will always look at the target but can be piloted normally. However, yaw value is not settable. Camera tilt and pan command is ignored by the drone.
Note
This class is for Objective-C only and must not be used in Swift.Declaration
Swift
@objc public protocol GSLookAtPilotingItf : ActivablePilotingItf, PilotingItf
-
Facility component descriptor.
See moreDeclaration
Swift
public protocol FacilityClassDesc : ComponentApiDescriptor
-
Provides extraneous information on a firmware, such as the size of the firmware update file, or special outcomes that updating a device using this firmware may produce.
See moreDeclaration
Swift
public protocol FirmwareInfo
-
Provides extraneous information on a firmware, such as the size of the firmware update file, or special outcomes that updating a device using this firmware may produce.
Note
this protocol is for Objective-C only. Swift must use the protocolFirmwareInfo
Declaration
Swift
@objc public protocol GSFirmwareInfo
-
File replay source to stream.
See moreDeclaration
Swift
@objc(GSFileReplaySource) public protocol FileReplaySource
-
Histogram data.
See moreDeclaration
Swift
@objc(GSHistogram) public protocol Histogram
-
Overlay context data.
See moreDeclaration
Swift
@objc(GSOverlayContext) public protocol OverlayContext
-
A frame data plane.
See moreDeclaration
Swift
public protocol RawVideoSinkFramePlane
-
A frame delivered by the sink.
See moreDeclaration
Swift
public protocol RawVideoSinkFrame
-
A
Stream
sink that delivers raw video frames.Declaration
Swift
public protocol RawVideoSink : StreamSink
-
Stream sink interface.
Declaration
Swift
@objc(GSStreamSinkConfig) public protocol StreamSinkConfig
-
Stream sink interface.
Declaration
Swift
@objc(GSStreamSink) public protocol StreamSink
-
Texture loader data.
See moreDeclaration
Swift
@objc(GSTextureLoaderFrame) public protocol TextureLoaderFrame
-
Video format information.
See moreDeclaration
Swift
public protocol VideoFormat
-
Describes a video format.
Declaration
Swift
public protocol VideoFormatDescriptor
-
Describes a raw video format.
See moreDeclaration
Swift
public protocol VideoFormatRaw : VideoFormatDescriptor
-
Represents a video resolution.
See moreDeclaration
Swift
public protocol VideoFormatResolution
-
Represents a framerate.
See moreDeclaration
Swift
public protocol VideoFormatFramerate
-
Color primaries chromaticity coordinates.
See moreDeclaration
Swift
public protocol VideoFormatChromaticityCoordinates
-
Represents an aspect ratio.
See moreDeclaration
Swift
public protocol VideoFormatAspectRatio
-
Mastering display color volume.
See moreDeclaration
Swift
public protocol VideoFormatMasteringDisplayColorVolume
-
Content light level.
See moreDeclaration
Swift
public protocol VideoFormatContentLightLevel