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
  • Battery gauge updater peripheral interface.

    This peripheral allows to update the battery gauge

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.batteryGaugeUpdater)
    
    See more

    Declaration

    Swift

    public protocol BatteryGaugeUpdater : 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
  • Blended 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.blendedThermalCamera)
    

    Declaration

    Swift

    public protocol BlendedThermalCamera : Camera, Peripheral
  • Camera2 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,
    • Zoom,
    • Recording mode, resolution and framerate selection,
    • Photo mode, format and file format selection.
    See more

    Declaration

    Swift

    public protocol Camera2
  • Main camera 2 peripheral.

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

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

    This peripheral can be retrieved by:

    drone.getPeripheral(Peripherals.mainCamera2)
    

    Declaration

    Swift

    public protocol MainCamera2 : Camera2, Peripheral
  • This is the master class for gimbals

    See more

    Declaration

    Swift

    public protocol CalibratableGimbal : Peripheral
  • Cellular peripheral interface.

    This peripheral allows using cellular feature.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.cellular)
    
    See more

    Declaration

    Swift

    public protocol Cellular : Peripheral
  • Certificate Uploader peripheral interface.

    This peripheral allows to upload certificates to connected devices, in order to unlock new features on the drone.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.certificateUploader)
    
    See more

    Declaration

    Swift

    public protocol CertificateUploader : Peripheral
  • Peripheral managing copilot

    Copilot allows to select the source of piloting commands, either the remote control (default) or the application. Selecting a source prevents the other one from sending any piloting command. The piloting source is automatically reset to {@link Source#REMOTE_CONTROL remote control} when this one is disconnected from the phone.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.coPilot)
    
    See more

    Declaration

    Swift

    public protocol Copilot : 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
  • Development toolbox peripheral.

    This peripheral is a debugging peripheral. It gives access to debugging settings. It is accessible only if the config enables it (see GroundSdkConfig).

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.devToolbox)
    
    See more

    Declaration

    Swift

    public protocol DevToolbox : Peripheral
  • Dri

    DRI peripheral interface.

    The DRI or Drone Remote ID is a protocol that sends periodic broadcasts of some identification data during the flight for safety, security, and compliance purposes.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.dri)
    
    See more

    Declaration

    Swift

    public protocol Dri : 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 camera record downloader.

    This peripheral informs about current flight camera record download.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.flightCameraRecordDownloader)
    
    See more

    Declaration

    Swift

    public protocol FlightCameraRecordDownloader : 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
  • The front stereo gimbal peripheral interface.

    The FrontStereoGimbal is automatically controlled by the drone itself, and as such cannot be controlled.

    The possible interactions with the peripheral are described in the common CalibratableGimbal interface.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.frontStereoGimbal)
    

    Declaration

    Swift

    public protocol FrontStereoGimbal : CalibratableGimbal
  • 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).

    Two frames of reference are used to control the gimbal with the .position mode, and to retrieve the gimbal attitude Relative frame of reference:

    • yaw: given angle is relative to the heading of the drone. Positive yaw values means a right orientation when seeing the gimbal from above.
    • pitch: given angle is relative to the body of the drone. Positive pitch values means an orientation of the gimbal towards the top of the drone.
    • roll: given angle is relative to the body of the drone. Positive roll values means an clockwise rotation of the gimbal. Absolute frame of reference:
    • yaw: given angle is relative to the magnetic North (clockwise).
    • pitch: given angle is relative to the horizon. Positive pitch values means an orientation towards sky.
    • roll: given angle is relative to the horizon line. Positive roll values means an orientation to the right when seeing the gimbal from behind.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.gimbal)
    
    See more

    Declaration

    Swift

    public protocol Gimbal : CalibratableGimbal
  • Internal user storage.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.internalUserStorage)
    

    Declaration

    Swift

    public protocol InternalUserStorage : UserStorage
  • 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
  • Log Control peripheral interface.

    This peripheral allows to deactivate logs on the drone.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.logControl)
    
    See more

    Declaration

    Swift

    public protocol LogControl : Peripheral
  • Magnetometer peripheral.

    Base class telling whether the magnetometer is calibrated or not. A subclass shall be used to control the calibration process, depending on the device, for instance MagnetometerWith1StepCalibration or MagnetometerWith3StepCalibration.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.magnetometer)
    
    See more

    Declaration

    Swift

    @objc(GSMagnetometer)
    public protocol Magnetometer : 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
  • Microhard peripheral.

    This peripheral allows to pair drones supporting Microhard technology.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.microhard)
    
    See more

    Declaration

    Swift

    public protocol Microhard : Peripheral
  • Mission updater peripheral

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.missionUpdater)
    
    See more

    Declaration

    Swift

    public protocol MissionUpdater : Peripheral
  • Peripheral managing mission.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.missionManager)
    
    See more

    Declaration

    Swift

    public protocol MissionManager : Peripheral
  • Network peripheral interface.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.networkControl)
    
    See more

    Declaration

    Swift

    public protocol NetworkControl : Peripheral
  • Obstacle avoidance peripheral interface.

    Obstacle avoidance allows the drone to detect obstacles and autonomously change its trajectory to prevent collisions.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.obstacleAvoidance)
    
    See more

    Declaration

    Swift

    public protocol ObstacleAvoidance : Peripheral
  • Peripheral managing onboard tracker.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.onboardTracker)
    
    See more

    Declaration

    Swift

    public protocol OnboardTracker : Peripheral
  • Peripheral managing the piloting general controls.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.pilotingControl)
    
    See more

    Declaration

    Swift

    public protocol PilotingControl : Peripheral
  • Peripheral managing precise home.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.preciseHome)
    
    See more

    Declaration

    Swift

    public protocol PreciseHome : Peripheral
  • Peripheral managing the transport used between the remote control and the drone.

    This peripheral can be obtained from a remote control using:

    remoteControl.getPeripheral(Peripherals.radioControl)
    
    See more

    Declaration

    Swift

    public protocol RadioControl : Peripheral
  • Removable user storage.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.removableUserStorage)
    

    Declaration

    Swift

    public protocol RemovableUserStorage : UserStorage
  • SecureElement peripheral.

    This peripheral allows you to use SecureElement features.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.secureElement)
    
    See more

    Declaration

    Swift

    public protocol SecureElement : 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
  • Stereo Vision Sensor peripheral interface for drones.

    This peripheral can be retrieved by:

    device.getPeripheral(Peripherals.stereoVisionSensor)
    
    See more

    Declaration

    Swift

    public protocol StereoVisionSensor : 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
  • User storage.

    See more

    Declaration

    Swift

    public protocol UserStorage : 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 for drones.

    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

    public protocol WifiScanner : Peripheral