Peripherals

  • Base protocol for all Peripheral components.

    Declaration

    Swift

    @objc(GSPeripheral)
    public protocol Peripheral : Component
  • Defines all known Peripheral descriptors.

    See more

    Declaration

    Swift

    @objcMembers
    @objc(GSPeripherals)
    public class Peripherals : NSObject
  • Protocol that provides functions to get peripherals.

    See more

    Declaration

    Swift

    public protocol PeripheralProvider
  • Peripheral managing anti-flickering.

    Anti-flickering is a global setting of a drone and is used by all drone cameras.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.antiflicker)
    
    See more

    Declaration

    Swift

    public protocol Antiflicker : Peripheral
  • Beeper peripheral interface.

    This peripheral allows playing an alert sound.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.beeper)
    
    See more

    Declaration

    Swift

    @objc(GSBeeper)
    public protocol Beeper : Peripheral
  • Camera protocol.

    Provides access to the device’s camera in order to take pictures and to record videos. Also provides access to various camera settings, such as:

    • Exposure,
    • EV compensation,
    • White balance,
    • Recording mode, resolution and framerate selection,
    • Photo mode, format and file format selection.
    See more

    Declaration

    Swift

    public protocol Camera
  • Main Camera peripheral.

    Provides access to the device’s camera in order to take pictures and to record videos. Also provides access to various camera 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.mainCamera)
    

    Declaration

    Swift

    public protocol MainCamera : Camera, Peripheral
  • Thermal Camera peripheral.

    Provides access to the thermal camera in order to take pictures and to record videos. Also provides access to various camera 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.thermalCamera)
    

    Declaration

    Swift

    public protocol ThermalCamera : Camera, Peripheral
  • 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)
    
    See more

    Declaration

    Swift

    public protocol CopterMotors : Peripheral
  • Crash report downloader.

    This peripheral informs about current crash report download.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.crashReportDownloader)
    
    See more

    Declaration

    Swift

    @objc(GSCrashReportDownloader)
    public protocol CrashReportDownloader : Peripheral
  • DroneFinder peripheral for RemoteControl devices.

    Allows scanning for visible drones and provides a way to connect to such discovered drones.

    This peripheral can be obtained from a remote control using:

    remoteControl.getPeripheral(Peripherals.droneFinder)
    
    See more

    Declaration

    Swift

    @objc(GSDroneFinder)
    public protocol DroneFinder : Peripheral
  • Flight data (PUD) downloader.

    This peripheral informs about current flight data (PUD) download.

    This peripheral is unavailable if flight data support is disabled in config.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.flightDataDownloader)
    
    See more

    Declaration

    Swift

    @objc(GSFlightDataDownloader)
    public protocol FlightDataDownloader : Peripheral
  • Flight log downloader.

    This peripheral informs about current flight log download.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.flightLogDownloader)
    
    See more

    Declaration

    Swift

    @objc(GSFlightLogDownloader)
    public protocol FlightLogDownloader : Peripheral
  • Geofence peripheral interface.

    This peripheral provides access to geofence settings, which prevent the drone from flying over the given altitude and distance.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.geofence)
    
    See more

    Declaration

    Swift

    @objc(GSGeofence)
    public protocol Geofence : Peripheral
  • 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).

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.gimbal)
    
    See more

    Declaration

    Swift

    public protocol Gimbal : Peripheral
  • Leds peripheral interface.

    This peripheral allows changing LEDs state.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.leds)
    
    See more

    Declaration

    Swift

    public protocol Leds : Peripheral
  • 1-step calibration magnetometer peripheral.

    The calibration is done on the 3 axes simultaneously: roll, pitch and yaw. This peripheral can be retrieved by:

    drone.getPeripheral(Peripherals.magnetometerWith1StepCalibration)
    
    See more

    Declaration

    Swift

    @objc(GSMagnetometerWith1StepCalibration)
    public protocol MagnetometerWith1StepCalibration : Magnetometer
  • 3-steps calibration magnetometer peripheral.

    The calibration is done axis by axis, one after the other: roll, pitch and yaw. The order of axis calibration may vary depending on device.

    This peripheral can be retrieved by:

    drone.getPeripheral(Peripherals.magnetometerWith3StepCalibration)
    
    See more

    Declaration

    Swift

    @objc(GSMagnetometerWith3StepCalibration)
    public protocol MagnetometerWith3StepCalibration : Magnetometer
  • Aggregated media store. Contains information on all medias stored on a device, aggregating media on different stores.

    See more

    Declaration

    Swift

    public protocol MediaStore : Peripheral
  • Peripheral managing precise home.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.preciseHome)
    
    See more

    Declaration

    Swift

    public protocol PreciseHome : Peripheral
  • Removable user storage.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.removableUserStorage)
    
    See more

    Declaration

    Swift

    public protocol RemovableUserStorage : Peripheral
  • 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:

    drone.getPeripheral(Peripherals.skyCtrl3Gamepad)
    
    See more

    Declaration

    Swift

    public protocol SkyCtrl3Gamepad : Peripheral
  • StreamServer peripheral interface. This peripheral allows streaming of live camera video and replay of video files stored in drone memory.

    This peripheral can be retrieved by:

    drone.getPeripheral(Peripherals.streamServer)
    
    See more

    Declaration

    Swift

    public protocol StreamServer : Peripheral
  • System information.

    In this peripheral you can retrieve all information relative to the system of the device.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.systemInfo)
    
    See more

    Declaration

    Swift

    @objc(GSSystemInfo)
    public protocol SystemInfo : Peripheral
  • 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.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.targetTracker)
    
    See more

    Declaration

    Swift

    public protocol TargetTracker : Peripheral
  • Peripheral managing thermal control.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.ThermalControl)
    
    See more

    Declaration

    Swift

    public protocol ThermalControl : Peripheral
  • Updater peripheral interface for Drone and RemoteControl devices.

    Allows to:

    • list and download available updates for the device from remote server.
    • list locally available updates and apply them to the connected device.

    This peripheral is always available even when the device is not connected, so that remote firmware updates may be downloaded at all times (unless internet connection is unavailable).

    Updating requires the device to be connected; however, this peripheral provides the ability to apply several firmware updates in a row (mainly used in the presence of trampoline updates), and will maintain proper state across device reboot/reconnection after each update is applied.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.updater)
    
    See more

    Declaration

    Swift

    public protocol Updater : Peripheral
  • Virtual gamepad peripheral for RemoteControl devices.

    Through this peripheral, you can receive navigation events when some predefined inputs are triggered on the remote control.

    The mapping between physical inputs (buttons, axes, etc.) on the device and received navigation events is specific to the remote control in use: please refer to the remote control documentation for further information. This peripheral is provided by all remote control devices, unless explicitly stated otherwise in the specific remote control documentation.

    To start receiving navigation events, the virtual gamepad peripheral must be grabbed and a listener (that will receive all events) must be provided.

    When the virtual gamepad is grabbed, the remote control will stop forwarding events associated to its navigation inputs to the connected drone (if any) and instead forward those events to the application-provided listener. To stop receiving events and having the device forward navigation input events back to the connected drone, the virtual gamepad must be ungrabbed.

    Most remote control devices also provide a more specialized gamepad interface (please refer to the remote control documentation for further information), which usually allows to listen to finer-grained remote control input events. However, when inputs are grabbed using such a specialized interface, the virtual gamepad is preempted, thus it cannot be used anymore. While preempted, the navigation event won’t be forwarded to the listener anymore, until all inputs on the specialized gamepad interface are released. At that point, the virtual gamepad will grab the navigation inputs again and resume forwarding events to the application listener.

    This peripheral is also in charge of notifying application events through the NotificationCenter. Those events are the appAction* values defined in ButtonsMappableAction enum. To subscribe to these notifications, please refer to the GsdkActionGamepadAppAction notification key documentation.

    This peripheral can be retrieved by:

    drone.getPeripheral(Peripherals.virtualGamepad)
    
    See more

    Declaration

    Swift

    @objc(GSVirtualGamepad)
    public protocol VirtualGamepad : Peripheral
  • Wifi access point peripheral interface.

    Allows to configure various parameters of the device’s Wifi access point, such as:

    • Environment (indoor/outdoor) setup
    • Country
    • Channel
    • SSID
    • Security

    This peripheral can be retrieved by:

    drone.getPeripheral(Peripherals.wifiAccessPoint)
    
    See more

    Declaration

    Swift

    public protocol WifiAccessPoint : Peripheral
  • WifiScanner peripheral interface.

    Allows scanning the device’s Wifi environment to obtain information about the current occupation of WIFI channels. This peripheral can be retrieved by:

    drone.getPeripheral(Peripherals.wifiScanner)
    
    See more

    Declaration

    Swift

    @objc(GSWifiScanner)
    public protocol WifiScanner : Peripheral