![JAR search and dependency download from the Maven repository](/logo.png)
.swim.droneconnect.1.0.0-alpha2.source-code.droneconnect.proto Maven / Gradle / Ivy
/*
* Copyright (c) 2016, Stephan Heinemann, Charlie Magnuson, Manuel Rosa (UVic Center for Aerospace Research)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
syntax = "proto3";
option java_multiple_files = true;
option java_package = "com.cfar.swim.droneconnect";
option java_outer_classname = "DroneConnectProtoc";
package droneconnect;
// The droneconnect service definition.
// Services are meant to provide a layer of abstraction for
// controlling and accessing information from the drone.
service DroneConnect {
rpc getAutopilotInfo(UavIdentifier) returns (AutopilotInfo) {}
rpc getPosition(Null) returns (Position) {}
rpc getTimedPosition(Null) returns (TimedPosition) {}
rpc getHeading(Null) returns (Heading) {}
rpc getAttitude(Null) returns (Attitude) {}
rpc setMode(Mode) returns (Null) {}
rpc hasMode(Null) returns (Mode) {}
rpc setArmed(Armed) returns (Null) {}
rpc isArmed(Null) returns (Armed) {}
rpc setSafety(Safety) returns (Null) {}
rpc getSafety(Null) returns (Safety) {}
rpc takeoff(TakeoffToAltitude) returns (Position) {}
rpc setPath(stream Position) returns (Null) {}
rpc getNextWaypoint(Null) returns (IndexedPosition) {}
rpc getStatus(Null) returns (Status) {}
}
message Null {
}
message UavIdentifier {
int32 identifier = 1;
}
// Information about the autopilot firmware
message AutopilotInfo {
int32 identifier = 1;
string autopilot_firmware_version = 2;
int32 major_version_number = 3;
int32 minor_version_number = 4;
int32 patch_version_number = 5;
string release_type = 6;
int32 release_version = 7;
bool stable_release = 8;
}
// Position of the drone.
//
// The latitude and longitude are relative to the WGS84 coordinate system.
// relativeAltitude - Altitude is relative to the HOME position in meters. The HOME position is
// set when the drone is armed.
// gpsAltitude - Altitude is relative to mean sea-level (MSL)
// useRelativeAltitude - When set to TRUE, mission should be relative to HOME position. Of use
// only when a mission is sent to the drone. When a position is received
// both relativeAltitude and useRelativeAltitude will have relevant values.
message Position {
double lat = 1;
double lon = 2;
double gpsAltitude = 3;
double relativeAltitude = 4;
bool useRelativeAltitude = 5;
}
// Current time of the drone
message Time {
int32 year = 1;
int32 month = 2;
int32 day = 3;
int32 hour = 4;
int32 minute = 5;
int32 second = 6;
}
// Position of the drone with current time
message TimedPosition {
Position position = 1;
Time time = 2;
}
// Position with index of waypoint in current mission
message IndexedPosition {
Position position = 1;
int32 index = 2;
}
// Heading of the drone
message Heading {
double heading = 1;
}
// Attitude of the drone
message Attitude {
double pitch = 1;
double bank = 2;
double yaw = 3;
}
// Mode of the drone, eg. AUTO
message Mode {
string mode = 1;
}
// Armed state of the drone. TRUE indicates the drone is armed
message Armed {
bool arm = 1;
}
// True indicates safety switch is on
message Safety {
bool safety = 1;
}
// Take off to an altitude in meters
message TakeoffToAltitude {
double altitude = 1;
}
// Status of the drone, eg. ACTIVE
message Status {
string status = 1;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy