Drone3D-Team/Drone3D

View on GitHub
app/src/main/java/ch/epfl/sdp/drone3d/service/api/drone/DroneServerFactory.kt

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
/*
 * Copyright (C) 2021  Drone3D-Team
 * The license can be found in LICENSE at root of the repository
 */

package ch.epfl.sdp.drone3d.service.api.drone

import io.mavsdk.System
import io.mavsdk.mavsdkserver.MavsdkServer

/**
 * An interface allowing the application to connect to a drone
 */
interface DroneServerFactory {

    /**
     * A class containing the [server] and the [instance] of a connected drone
     */
    data class InstanceContainer(val server: MavsdkServer, val instance: System)

    /**
     * Connect a simulation of a drone using [simIP] and [simPort] to the application
     */
    fun createSimulation(simIP: String, simPort: String): InstanceContainer?

    /**
     * Connect a drone to the application
     */
    fun createDrone(): InstanceContainer
}