Facilities

  • Base protocol for all Facility components.

    Declaration

    Swift

    @objc(GSFacility)
    public protocol Facility : Component
  • Defines all known facilities descriptors.

    See more

    Declaration

    Swift

    @objcMembers
    @objc(GSFacilities)
    public class Facilities : NSObject
  • A facility that provides control of automatic connection for drone and remote control devices.

    The goal of auto-connection is to ensure that exactly one remote control and exactly one drone are connected whenever it is possible to do so, based on rules as described below.

    GroundSdk may be configured so that auto-connection is started automatically at GroundSdk startup. This behaviour is enabled by setting AutoConnectionAtStartup configuration flag to YES in the dictionary entry GroundSdk declared in the info.plist. It can be disabled (this is the default) by either removing the AutoConnectionAtStartup entry or setting it to NO. Auto-connection may also be started and stopped manually though this Facility API.

    Remote control auto-connection:

    When started, auto-connection will try to always maintain one, and only one remote control connected. It will pick one remote control amongst all currently visible devices and ensure it is connecting or connected, and will connect it otherwise. All other connected remote control devices are forcefully disconnected.

    To chose which device will get connected, visible remote control devices are sorted by connector technology: Usb is considered better than Wifi, which is considered better than Bluetooth Low-Energy. The best available remote control is picked up according to this criteria and will be auto-connected.

    Also, if the best available remote control is currently connected (or connecting) and an even better connector becomes available for it, then it will be auto-reconnected (that is, disconnected, then connected again) using this better connector.

    Drone auto-connection:

    When started, auto-connection will try to always maintain at least one, and only one drone connected.

    Two different cases must be distinguished:

    • When no remote control is currently connected, then drone auto-connection behaves like remote control auto-connection: drones are sorted by connector technology and the drone with best technology is elected for auto-connection. Auto-reconnection using an even better connector may also happen, as for control devices.

    • When a remote control is connected (or connecting), then auto-connection will ensure that no drones are connected through any other connector (including local ones: WIFI or BLE) than this remote control. Any drone that is currently connected or connecting though one of these connectors will get forcefully disconnected. If, by the time the remote control gets auto-connected, some drone is already connected through a local connector, then auto-connection will try to connect it through the remote control if the latter also knows and sees that drone; otherwise auto-connection lets the remote control decide which drone to connect.

    See more

    Declaration

    Swift

    @objc(GSAutoConnection)
    public protocol AutoConnection : Facility
  • This facility provides access to the black box reporter status.

    See more

    Declaration

    Swift

    @objc(GSBlackBoxReporter)
    public protocol BlackBoxReporter : Facility
  • This facility provides access to the crash reporter status.

    See more

    Declaration

    Swift

    @objc(GSCrashReporter)
    public protocol CrashReporter : Facility
  • Facility that allows the application to record event logs that may be further collected and processed by GroundSdk.

    See more

    Declaration

    Swift

    @objc(GSEventLogger)
    public protocol EventLogger : Facility
  • Facility that provides global management of firmware updates.

    FirmwareManager allows to:

    • Query up-to-date firmware information from remote update server; note that the application is only allowed to query update once every hour.
    • list firmware updates for all supported device models, both remotely available (that need to be downloaded from remote update server) and locally available, that are present on the device’s internal storage and are ready to be used for device update.
    • Download remote firmware update file from remote update server and archive them on device’s internal storage for later use.
    • Delete locally downloaded firmware update files.

    This facility can be obtained using:

    groundSdk.getFacility(Facilities.firmwareManager)
    
    See more

    Declaration

    Swift

    @objc(GSFirmwareManager)
    public protocol FirmwareManager : Facility
  • This facility provides access to the flight camera record reporter status.

    See more

    Declaration

    Swift

    public protocol FlightCameraRecordReporter : Facility
  • This facility provides access to flight data files downloaded from drones.

    See more

    Declaration

    Swift

    @objc(GSFlightDataManager)
    public protocol FlightDataManager : Facility
  • This facility provides access to the flightLog reporter status.

    See more

    Declaration

    Swift

    @objc(GSFlightLogReporter)
    public protocol FlightLogReporter : Facility
  • This facility provides access to flight data files converted to GUTMA format. GUTMA log files are formatted in flight telemetry data logs format defined by the Global UTM Association (GUTMA).

    See more

    Declaration

    Swift

    @objc(GSGutmaLogManager)
    public protocol GutmaLogManager : Facility
  • Facility that provides geo-localization.

    See more

    Declaration

    Swift

    @objc(GSReverseGeocoder)
    public protocol ReverseGeocoder : Facility
  • Facility that allows the application to register some user account identifier.

    The application may register a user account in order to allow GroundSdk to upload data that may disclose user-personal information to the configured remote server. This includes:

    • flight blackboxes,
    • flight logs,
    • flight camera records,
    • full crash reports.

    All HTTP requests that upload such data will include the registered user account identifier.

    In the absence of such a user account, then by default GroundSdk is not allowed to upload any data to the configured remote server.

    However, the application may authorize GroundSdk to upload anonymous data (which do not disclose any user-personal information) to the configured remote server. This includes:

    • anonymous crash reports.

    The application can opt-in anonymous data upload upon clearing any registered user account, by specifying the desired data upload policy to observe.

    Note that GroundSdk may always collect both anonymous and personal data from connected devices and will store them on the user’s device, regardless of the presence of any user account. When the application eventually registers a user account, it may at that point indicate what to do with personal data that were collected beforehand, by specifying the desired old data policy to observe.

    User account identifiers, or absence thereof, as well as whether anonymous data upload is allowed (when no user account is registered), are persisted by GroundSdk across application restarts.

    By default, there is no registered user account (so personal data upload is denied), anonymous data upload is also denied, and private mode is disabled.

    See more

    Declaration

    Swift

    @objc(GSUserAccount)
    public protocol UserAccount : Facility
  • Facility that provides phone/tablet heading events or Remote Controller heading events.

    See more

    Declaration

    Swift

    @objc(GSUserHeading)
    public protocol UserHeading : Facility
  • Facility that provides phone location (gps) related events.

    See more

    Declaration

    Swift

    @objc(GSUserLocation)
    public protocol UserLocation : Facility