Other Protocols

The following protocols are available globally.

  • Define a Component (facility, pilotingItf, instrument or peripheral).

    See more

    Declaration

    Swift

    @objc(GSComponent)
    public protocol Component
  • Describe a Component.

    See more

    Declaration

    Swift

    @objc(GSComponentDescriptor)
    public protocol ComponentDescriptor
  • Describe a component protocol.

    See more

    Declaration

    Swift

    public protocol ComponentApiDescriptor : ComponentDescriptor
  • Terrain data.

    See more

    Declaration

    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 protocol Altimeter.
    See more

    Declaration

    Swift

    @objc
    public protocol GSAltimeter : Instrument

Objective-C API

  • 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 protocol BatteryInfo.
    See more

    Declaration

    Swift

    @objc
    public protocol GSBatteryInfo : Instrument
  • Camera exposure indicator component.

    See more

    Declaration

    Swift

    public protocol Camera2ExposureIndicator : Component
  • CellularLink instrument.

    This instrument provides status of cellular link.

    This instrument can be retrieved by:

    device.getInstrument(Instruments.cellularLink)
    
    See more

    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:

    drone.getInstrument(Instruments.cellularLogs)
    
    See more

    Declaration

    Swift

    public protocol CellularLogs : Instrument
  • CellularSession instrument.

    This instrument provides status of cellular session.

    This instrument can be retrieved by:

    device.getInstrument(Instruments.cellularSession)
    
    See more

    Declaration

    Swift

    public protocol CellularSession : Instrument
  • Instrument component descriptor.

    See more

    Declaration

    Swift

    public protocol InstrumentClassDesc : ComponentApiDescriptor
  • Protocol that provides functions to get instruments. Those methods should no be used from Swift.

    See more

    Declaration

    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 protocol PhotoProgressIndicator.
    See more

    Declaration

    Swift

    @objc
    public protocol GSPhotoProgressIndicator : Instrument
  • Instrument that informs about the radio.

    This instrument can be retrieved by:

    id<GSRadio> radio = (id<GSRadio>)[drone getInstrument:GSInstruments.radio];
    

    Note

    This protocol is for Objective-C only. Swift must use the protocol Radio.
    See more

    Declaration

    Swift

    @objc
    public protocol GSRadio
  • 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 protocol Speedometer.
    See more

    Declaration

    Swift

    @objc
    public protocol GSSpeedometer : Instrument
  • Instrument that informs about take off checklist.

    This instrument can be retrieved by:

    drone.getInstrument(Instruments.takeoffChecklist)
    
    See more

    Declaration

    Swift

    public protocol TakeoffChecklist : Instrument
  • Setting to change the anti-flickering mode.

    See more

    Declaration

    Swift

    public protocol AntiflickerSetting : AnyObject

objc compatibility

  • Setting to change the anti-flickering mode.

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSAntiflickerSetting
  • Peripheral managing anti-flickering.

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSAntiflicker
  • Undocumented

    See more

    Declaration

    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.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCalibratableGimbal : Peripheral
  • Camera protocol.

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCamera
  • Settings to configure camera alignment.

    See more

    Declaration

    Swift

    public protocol CameraAlignment : AnyObject
  • Undocumented

    See more

    Declaration

    Swift

    @objc
    public protocol GSCameraAlignment
  • Settings to configure camera anti-flickering options.

    See more

    Declaration

    Swift

    public protocol CameraAntiFlickeringSettings : AnyObject
  • Setting to configure camera exposure compensation

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCameraAntiFlickeringSettings
  • Camera exposure setting.

    Allows to configure the exposure mode and parameters, such as: - ISO sensitivity, - Shutter speed.

    See more

    Declaration

    Swift

    public protocol CameraExposureSettings : AnyObject
  • Settings to configure camera exposure mode and parameters.

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCameraExposureSettings
  • Setting to configure camera exposure compensation.

    See more

    Declaration

    Swift

    public protocol CameraExposureCompensationSetting : AnyObject
  • Setting to configure camera exposure compensation

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCameraExposureCompensationSetting
  • Camera exposure lock.

    Allows to lock/unlock the exposure according to a given mode.

    See more

    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.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCameraExposureLock
  • Setting to change the camera mode.

    See more

    Declaration

    Swift

    public protocol CameraModeSetting : AnyObject
  • Setting to change the camera mode

    Note

    This protocol is for Objective-C compatibility only.
    See more

    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}.
    See more

    Declaration

    Swift

    public protocol CameraPhotoSettings : AnyObject
  • State of the camera photo function.

    See more

    Declaration

    Swift

    @objc(GSCameraPhotoState)
    public protocol CameraPhotoState
  • Settings to configure photo mode and options

    Note

    This protocol is for Objective-C compatibility only.
    See more

    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.
    See more

    Declaration

    Swift

    public protocol CameraRecordingSettings : AnyObject
  • Recording progress event.

    See more

    Declaration

    Swift

    @objc(GSCameraRecordingState)
    public protocol CameraRecordingState
  • Settings to configure recording mode and options

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCameraRecordingSettings
  • Style customizable parameters.

    See more

    Declaration

    Swift

    @objc(GSCameraStyleParameter)
    public protocol CameraStyleParameter
  • Camera style settings.

    Allows to set the active image style and to customize its parameters.

    See more

    Declaration

    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.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCameraStyleSettings
  • Settings to configure White balance.

    Allows to configure the white balance mode and custom temperature.

    See more

    Declaration

    Swift

    public protocol CameraWhiteBalanceSettings : AnyObject
  • Settings to configure White balance.

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCameraWhiteBalanceSettings
  • Camera white balance lock.

    Allows to lock/unlock the white balance values.

    See more

    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.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCameraWhiteBalanceLock
  • A camera zoom.

    Zoom level can be changed either by giving a desired level (set(level:)) or by giving a desired zoom change velocity (set(velocity:)).

    See more

    Declaration

    Swift

    @objc(GSCameraZoom)
    public protocol CameraZoom
  • Base protocol for camera components.

    Declaration

    Swift

    public protocol Camera2Component : Component
  • Camera component descriptor.

    See more

    Declaration

    Swift

    public protocol Camera2ComponentClassDesc : ComponentApiDescriptor
  • Camera configuration editor.

    See more

    Declaration

    Swift

    public protocol Camera2Editor
  • Camera configuration.

    See more

    Declaration

    Swift

    public protocol Camera2Config
  • Base protocol for enumerations of camera configuration parameters.

    Declaration

    Swift

    public protocol Camera2ConfigEnum : CaseIterable, CustomStringConvertible, Hashable
  • Camera exposure lock component.

    Allows to lock/unlock the exposure according to a given mode.

    See more

    Declaration

    Swift

    public protocol Camera2ExposureLock : Component
  • Media metadata component.

    Allows to specify various metadata that will be injected in all medias produced by the camera (photo captures, video records).

    See more

    Declaration

    Swift

    public protocol Camera2MediaMetadata : Component
  • Camera photo capture component.

    See more

    Declaration

    Swift

    public protocol Camera2PhotoCapture : Component
  • Camera photo progress indicator component.

    See more

    Declaration

    Swift

    public protocol Camera2PhotoProgressIndicator : Component
  • Camera recording component.

    See more

    Declaration

    Swift

    public protocol Camera2Recording : Component
  • Camera white balance lock component.

    See more

    Declaration

    Swift

    public protocol Camera2WhiteBalanceLock : Component
  • Camera zoom component.

    See more

    Declaration

    Swift

    public protocol Camera2Zoom : Component
  • 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 more

    Declaration

    Swift

    public protocol CellularModeSetting : AnyObject
  • Setting providing access to the APN configuration.

    See more

    Declaration

    Swift

    public protocol ApnConfigurationSetting : AnyObject
  • Setting to change the network mode.

    See more

    Declaration

    Swift

    public protocol CellularNetworkModeSetting : AnyObject
  • Setting to change the piloting source

    See more

    Declaration

    Swift

    public protocol CopilotSetting : AnyObject
  • Peripheral managing copilot

    Note

    this protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCopilot
  • Setting to change the piloting source

    Note

    this protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCopilotSetting

Objective-C API

  • 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 protocol CopterMotors.
    See more

    Declaration

    Swift

    @objc
    public protocol GSCopterMotors : Peripheral
  • Setting providing access to the DebugShellState.

    See more

    Declaration

    Swift

    public protocol DebugShellStateSetting : AnyObject
  • DebugShell peripheral interface.

    This peripheral provides access to DebugShell settings.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.debugShell)
    
    See more

    Declaration

    Swift

    public protocol DebugShell : Peripheral
  • Debug setting.

    See more

    Declaration

    Swift

    public protocol DebugSetting : AnyObject
  • DebugSetting that has a boolean value.

    See more

    Declaration

    Swift

    public protocol BoolDebugSetting : DebugSetting
  • DebugSetting that has a textual value.

    See more

    Declaration

    Swift

    public protocol TextDebugSetting : DebugSetting
  • DebugSetting that has a numerical value.

    See more

    Declaration

    Swift

    public protocol NumericDebugSetting : DebugSetting
  • Setting to configure DRI type.

    See more

    Declaration

    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 more

    Declaration

    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.
    See more

    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:

    device.getPeripheral(Peripherals.httpServer)
    
    See more

    Declaration

    Swift

    public protocol HttpServer : Peripheral

objc compatibility

  • 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 more

    Declaration

    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:

    device.getPeripheral(Peripherals.killSwitch)
    
    See more

    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:

    device.getPeripheral(Peripherals.latestLogDownloader)
    
    See more

    Declaration

    Swift

    public protocol LatestLogDownloader : Peripheral
  • Peripheral managing leds.

    Note

    This protocol is for Objective-C compatibility only.
    See more

    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 more

    Declaration

    Swift

    public protocol MediaOperationRef : CancelableCore, MediaOperation
  • A list of media resources to download.

    Seealso

    MediaResourceListFactory to create MediaResourceList.
    See more

    Declaration

    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.
    See more

    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:

    device.getPeripheral(Peripherals.messenger)
    
    See more

    Declaration

    Swift

    public protocol Messenger : Peripheral
  • Mission object.

    See more

    Declaration

    Swift

    public protocol Mission
  • Mission message.

    See more

    Declaration

    Swift

    public protocol MissionMessage
  • Setting to control network routing.

    See more

    Declaration

    Swift

    public protocol NetworkControlRoutingSetting : AnyObject
  • Network link details.

    See more

    Declaration

    Swift

    public protocol NetworkControlLinkInfo : AnyObject
  • Direct connection setting.

    See more

    Declaration

    Swift

    public protocol NetworkDirectConnectionSetting : AnyObject
  • Obstacle avoidance setting.

    See more

    Declaration

    Swift

    public protocol ObstacleAvoidanceSetting : AnyObject
  • Request for target tracking.

    See more

    Declaration

    Swift

    public protocol TrackingRequest
  • Peripheral component descriptor.

    See more

    Declaration

    Swift

    public protocol PeripheralClassDesc : ComponentApiDescriptor
  • Protocol that provides functions to get peripherals. Those methods should no be used from swift.

    See more

    Declaration

    Swift

    @objc
    public protocol GSPeripheralProvider
  • Peripheral managing the piloting general controls.

    Note

    this protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSPilotingControl : Peripheral
  • Setting to change the piloting behaviour.

    See more

    Declaration

    Swift

    public protocol PilotingBehaviourSetting : AnyObject
  • Setting to change the piloting behaviour.

    Note

    this protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSPilotingBehaviourSetting
  • Setting to change the precise home mode.

    See more

    Declaration

    Swift

    public protocol PreciseHomeSetting : AnyObject
  • Setting to change the precise home mode

    Note

    this protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSPreciseHomeSetting
  • Peripheral managing precise home.

    Note

    this protocol is for Objective-C compatibility only.
    See more

    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.
    See more

    Declaration

    Swift

    @objc
    public protocol GSRadioControl : Peripheral
  • Setting to change the transport used by the remote control - drone link.

    See more

    Declaration

    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.
    See more

    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 and SkyCtrl3Axis 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 and SkyCtrl3Axis.

    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 producing SkyCtrl3ButtonEvent 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 producing SkyCtrl3AxisEvent 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:

    This peripheral can be retrieved by:

    (id<GSSkyCtrl3Gamepad>) [drone getPeripheral:GSPeripherals.skyCtrl3Gamepad]
    

    Note

    this protocol is for Objective-C only. Swift must use the protocol SkyCtrl3Gamepad
    See more

    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 and SkyCtrl4Axis 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 and SkyCtrl4Axis.

    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 producing SkyCtrl4ButtonEvent 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 producing SkyCtrl4AxisEvent 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:

    This peripheral can be retrieved by:

    drone.getPeripheral(Peripherals.skyCtrl4Gamepad)
    
    See more

    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 and SkyCtrl4Axis 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 and SkyCtrl4Axis.

    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 producing SkyCtrl4ButtonEvent 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 producing SkyCtrl4AxisEvent 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:

    This peripheral can be retrieved by:

    (id<GSSkyCtrl4Gamepad>) [drone getPeripheral:GSPeripherals.skyCtrl4Gamepad]
    

    Note

    this protocol is for Objective-C only. Swift must use the protocol SkyCtrl4Gamepad
    See more

    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:

    device.getPeripheral(Peripherals.sleepMode)
    
    See more

    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 more

    Declaration

    Swift

    @objc(GSCameraLive)
    public protocol CameraLive : Stream
  • Media replay stream interface.

    See more

    Declaration

    Swift

    @objc(GSMediaReplay)
    public protocol MediaReplay : Replay
  • Media replay source interface.

    See more

    Declaration

    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 more

    Declaration

    Swift

    @objc
    public protocol GSStreamServer
  • Target framing setting.

    Allows to configure positioning of the tracked target in the drone video stream.

    See more

    Declaration

    Swift

    public protocol TargetFramingSetting : AnyObject
  • Information on the analyzed trajectory of the target.

    See more

    Declaration

    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 more

    Declaration

    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.
    See more

    Declaration

    Swift

    @objc
    public protocol GSTargetTracker : Peripheral
  • 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 more

    Declaration

    Swift

    public protocol ThermalControlSetting : AnyObject
  • Setting to change the sensitivity range.

    See more

    Declaration

    Swift

    public protocol ThermalSensitivityRangeSetting : AnyObject
  • Thermal camera calibration.

    See more

    Declaration

    Swift

    public protocol ThermalCalibration : AnyObject
  • Setting to change the thermal control mode.

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSThermalControlSetting
  • Setting to change the thermal sensitivity range

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSThermalSensitivityRangeSetting
  • Thermal camera calibration.

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSThermalCalibration
  • Peripheral managing thermal control.

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSThermalControl
  • Ongoing update download state and progress.

    See more

    Declaration

    Swift

    public protocol UpdaterDownload : CustomStringConvertible
  • Ongoing update download state and progress.

    Note

    This protocol is for Objective-C only. Swift must use UpdaterDownload.
    See more

    Declaration

    Swift

    @objc
    public protocol GSUpdaterDownload
  • Ongoing update state and progress

    See more

    Declaration

    Swift

    public protocol UpdaterUpdate
  • Ongoing update state and progress

    Note

    This protocol is for Objective-C only. Swift must use UpdaterUpdate.
    See more

    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 protocol Updater
    See more

    Declaration

    Swift

    @objc
    public protocol GSUpdater : Peripheral
  • Information about the media storage.

    See more

    Declaration

    Swift

    @objc(GSUserStorageMediaInfo)
    public protocol UserStorageMediaInfo
  • User storage.

    Note

    This protocol is for Objective-C compatibility only.
    See more

    Declaration

    Swift

    @objc
    public protocol GSUserStorage
  • Setting providing access to the Wifi access point channel setup.

    See more

    Declaration

    Swift

    public protocol ChannelSetting : AnyObject
  • Setting providing access to the Wifi environment setup.

    See more

    Declaration

    Swift

    public protocol EnvironmentSetting : AnyObject
  • Setting providing access to the Wifi access point security setup.

    See more

    Declaration

    Swift

    public protocol SecurityModeSetting : AnyObject
  • Setting providing access to the Wifi station security setup.

    See more

    Declaration

    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:

    drone.getPeripheral(Peripherals.wifiStation)
    
    See more

    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 with 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.

    See more

    Declaration

    Swift

    @objc(GSAnimationConfig)
    public protocol AnimationConfig
  • Base interface for an Animation.

    See more

    Declaration

    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 ActivablePilotingItf.

    See more

    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 ActivablePilotingItf.

    See more

    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 ActivablePilotingItf.

    See more

    Declaration

    Swift

    @objc(GSDronieAnimation)
    public protocol DronieAnimation : Animation
  • Flip animation.

    This animation instructs the drone to flip in place around one of its axes. The axis in question depends on the instructed flip direction.

    See more

    Declaration

    Swift

    @objc(GSFlipAnimation)
    public protocol FlipAnimation : 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
  • Horizontal panorama animation.

    This animation instructs the drone to rotate horizontally.

    See more

    Declaration

    Swift

    @objc(GSHorizontalPanoramaAnimation)
    public protocol HorizontalPanoramaAnimation : Animation
  • Horizontal reveal animation.

    This animation instructs the drone to start looking down, then to move forward while slowly looking at the horizon.

    See more

    Declaration

    Swift

    @objc(GSHorizontalRevealAnimation)
    public protocol HorizontalRevealAnimation : 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 ActivablePilotingItf.

    See more

    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 ActivablePilotingItf.

    See more

    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 ActivablePilotingItf.

    See more

    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 more

    Declaration

    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 more

    Declaration

    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 ActivablePilotingItf.

    See more

    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 protocol AnimationPilotingItf.
    See more

    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 all FlightPlanUnavailabilityReason 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 protocol FlightPlanPilotingItf.
    See more

    Declaration

    Swift

    @objc
    public protocol GSFlightPlanPilotingItf : ActivablePilotingItf, PilotingItf
  • Information about a finished guided flight.

    See more

    Declaration

    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 more

    Declaration

    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 more

    Declaration

    Swift

    @objc(GSFinishedRelativeMoveFlightInfo)
    public protocol FinishedRelativeMoveFlightInfo : FinishedFlightInfo

Objective-C API

objc compatibility

  • 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.
    See more

    Declaration

    Swift

    @objc
    public protocol GSPointOfInterestPilotingItf : ActivablePilotingItf, PilotingItf
  • Preferred return home target. Drone will select this target if all conditions for it are met.

    See more

    Declaration

    Swift

    @objc(GSReturnHomePreferredTarget)
    public protocol ReturnHomePreferredTarget
  • Return home ending behavior. Drone will end its Return Home by this behavior.

    See more

    Declaration

    Swift

    @objc(GSReturnHomeEnding)
    public protocol ReturnHomeEnding
  • Undocumented

    See more

    Declaration

    Swift

    @objc
    public protocol GSReturnHomePilotingItf : ActivablePilotingItf, PilotingItf
  • Setting providing access to the mode (FollowMode) setup.

    See more

    Declaration

    Swift

    public protocol FollowModeSetting : AnyObject
  • Setting providing access to the mode (FollowMode) setup.

    This protocol is Objective-C only. Swift must use FollowModeSetting.

    See more

    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.
    See more

    Declaration

    Swift

    @objc
    public protocol GSFollowMePilotingItf : ActivablePilotingItf, PilotingItf
  • Setting providing access to the mode (LookAtMode) setup.

    See more

    Declaration

    Swift

    public protocol LookAtModeSetting : AnyObject
  • Setting providing access to the mode (LookAtMode) setup.

    This protocol is Objective-C only. Swift must use LookAtModeSetting.

    See more

    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.
    See more

    Declaration

    Swift

    @objc
    public protocol GSLookAtPilotingItf : ActivablePilotingItf, PilotingItf
  • Facility component descriptor.

    See more

    Declaration

    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 more

    Declaration

    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 protocol FirmwareInfo
    See more

    Declaration

    Swift

    @objc
    public protocol GSFirmwareInfo
  • File replay source to stream.

    See more

    Declaration

    Swift

    @objc(GSFileReplaySource)
    public protocol FileReplaySource
  • Histogram data.

    See more

    Declaration

    Swift

    @objc(GSHistogram)
    public protocol Histogram
  • Overlay context data.

    See more

    Declaration

    Swift

    @objc(GSOverlayContext)
    public protocol OverlayContext
  • A frame data plane.

    See more

    Declaration

    Swift

    public protocol RawVideoSinkFramePlane
  • A frame delivered by the sink.

    See more

    Declaration

    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 more

    Declaration

    Swift

    @objc(GSTextureLoaderFrame)
    public protocol TextureLoaderFrame
  • Video format information.

    See more

    Declaration

    Swift

    public protocol VideoFormat
  • Describes a video format.

    Declaration

    Swift

    public protocol VideoFormatDescriptor
  • Describes a raw video format.

    See more

    Declaration

    Swift

    public protocol VideoFormatRaw : VideoFormatDescriptor
  • Represents a video resolution.

    See more

    Declaration

    Swift

    public protocol VideoFormatResolution
  • Represents a framerate.

    See more

    Declaration

    Swift

    public protocol VideoFormatFramerate
  • Color primaries chromaticity coordinates.

    See more

    Declaration

    Swift

    public protocol VideoFormatChromaticityCoordinates
  • Represents an aspect ratio.

    See more

    Declaration

    Swift

    public protocol VideoFormatAspectRatio
  • Mastering display color volume.

    See more

    Declaration

    Swift

    public protocol VideoFormatMasteringDisplayColorVolume
  • Content light level.

    See more

    Declaration

    Swift

    public protocol VideoFormatContentLightLevel