ActionServiceClient

Struct ActionServiceClient 

Source
pub struct ActionServiceClient<T> { /* private fields */ }
Expand description

Enable simple actions such as arming, taking off, and landing.

Implementations§

Source§

impl ActionServiceClient<Channel>

Source

pub async fn connect<D>(dst: D) -> Result<Self, Error>
where D: TryInto<Endpoint>, D::Error: Into<StdError>,

Attempt to create a new client by connecting to a given endpoint.

Source§

impl<T> ActionServiceClient<T>
where T: GrpcService<BoxBody>, T::ResponseBody: Body + Send + Sync + 'static, T::Error: Into<StdError>, <T::ResponseBody as Body>::Error: Into<StdError> + Send,

Source

pub fn new(inner: T) -> Self

Source

pub fn with_interceptor<F>( inner: T, interceptor: F, ) -> ActionServiceClient<InterceptedService<T, F>>
where F: Interceptor, T: Service<Request<BoxBody>, Response = Response<<T as GrpcService<BoxBody>>::ResponseBody>>, <T as Service<Request<BoxBody>>>::Error: Into<StdError> + Send + Sync,

Source

pub fn send_gzip(self) -> Self

Compress requests with gzip.

This requires the server to support it otherwise it might respond with an error.

Source

pub fn accept_gzip(self) -> Self

Enable decompressing responses with gzip.

Source

pub async fn arm( &mut self, request: impl IntoRequest<ArmRequest>, ) -> Result<Response<ArmResponse>, Status>

Send command to arm the drone.

Arming a drone normally causes motors to spin at idle. Before arming take all safety precautions and stand clear of the drone!

Source

pub async fn disarm( &mut self, request: impl IntoRequest<DisarmRequest>, ) -> Result<Response<DisarmResponse>, Status>

Send command to disarm the drone.

This will disarm a drone that considers itself landed. If flying, the drone should reject the disarm command. Disarming means that all motors will stop.

Source

pub async fn takeoff( &mut self, request: impl IntoRequest<TakeoffRequest>, ) -> Result<Response<TakeoffResponse>, Status>

Send command to take off and hover.

This switches the drone into position control mode and commands it to take off and hover at the takeoff altitude.

Note that the vehicle must be armed before it can take off.

Source

pub async fn land( &mut self, request: impl IntoRequest<LandRequest>, ) -> Result<Response<LandResponse>, Status>

Send command to land at the current position.

This switches the drone to ‘Land’ flight mode.

Source

pub async fn reboot( &mut self, request: impl IntoRequest<RebootRequest>, ) -> Result<Response<RebootResponse>, Status>

Send command to reboot the drone components.

This will reboot the autopilot, companion computer, camera and gimbal.

Source

pub async fn shutdown( &mut self, request: impl IntoRequest<ShutdownRequest>, ) -> Result<Response<ShutdownResponse>, Status>

Send command to shut down the drone components.

This will shut down the autopilot, onboard computer, camera and gimbal. This command should only be used when the autopilot is disarmed and autopilots commonly reject it if they are not already ready to shut down.

Source

pub async fn terminate( &mut self, request: impl IntoRequest<TerminateRequest>, ) -> Result<Response<TerminateResponse>, Status>

Send command to terminate the drone.

This will run the terminate routine as configured on the drone (e.g. disarm and open the parachute).

Source

pub async fn kill( &mut self, request: impl IntoRequest<KillRequest>, ) -> Result<Response<KillResponse>, Status>

Send command to kill the drone.

This will disarm a drone irrespective of whether it is landed or flying. Note that the drone will fall out of the sky if this command is used while flying.

Source

pub async fn return_to_launch( &mut self, request: impl IntoRequest<ReturnToLaunchRequest>, ) -> Result<Response<ReturnToLaunchResponse>, Status>

Send command to return to the launch (takeoff) position and land.

This switches the drone into Return mode which generally means it will rise up to a certain altitude to clear any obstacles before heading back to the launch (takeoff) position and land there.

Source

pub async fn goto_location( &mut self, request: impl IntoRequest<GotoLocationRequest>, ) -> Result<Response<GotoLocationResponse>, Status>

Send command to move the vehicle to a specific global position.

The latitude and longitude are given in degrees (WGS84 frame) and the altitude in meters AMSL (above mean sea level).

The yaw angle is in degrees (frame is NED, 0 is North, positive is clockwise).

Source

pub async fn transition_to_fixedwing( &mut self, request: impl IntoRequest<TransitionToFixedwingRequest>, ) -> Result<Response<TransitionToFixedwingResponse>, Status>

Send command to transition the drone to fixedwing.

The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail). The command will succeed if called when the vehicle is already in fixedwing mode.

Source

pub async fn transition_to_multicopter( &mut self, request: impl IntoRequest<TransitionToMulticopterRequest>, ) -> Result<Response<TransitionToMulticopterResponse>, Status>

Send command to transition the drone to multicopter.

The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail). The command will succeed if called when the vehicle is already in multicopter mode.

Source

pub async fn get_takeoff_altitude( &mut self, request: impl IntoRequest<GetTakeoffAltitudeRequest>, ) -> Result<Response<GetTakeoffAltitudeResponse>, Status>

Get the takeoff altitude (in meters above ground).

Source

pub async fn set_takeoff_altitude( &mut self, request: impl IntoRequest<SetTakeoffAltitudeRequest>, ) -> Result<Response<SetTakeoffAltitudeResponse>, Status>

Set takeoff altitude (in meters above ground).

Source

pub async fn get_maximum_speed( &mut self, request: impl IntoRequest<GetMaximumSpeedRequest>, ) -> Result<Response<GetMaximumSpeedResponse>, Status>

Get the vehicle maximum speed (in metres/second).

Source

pub async fn set_maximum_speed( &mut self, request: impl IntoRequest<SetMaximumSpeedRequest>, ) -> Result<Response<SetMaximumSpeedResponse>, Status>

Set vehicle maximum speed (in metres/second).

Source

pub async fn get_return_to_launch_altitude( &mut self, request: impl IntoRequest<GetReturnToLaunchAltitudeRequest>, ) -> Result<Response<GetReturnToLaunchAltitudeResponse>, Status>

Get the return to launch minimum return altitude (in meters).

Source

pub async fn set_return_to_launch_altitude( &mut self, request: impl IntoRequest<SetReturnToLaunchAltitudeRequest>, ) -> Result<Response<SetReturnToLaunchAltitudeResponse>, Status>

Set the return to launch minimum return altitude (in meters).

Trait Implementations§

Source§

impl<T: Clone> Clone for ActionServiceClient<T>

Source§

fn clone(&self) -> ActionServiceClient<T>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug> Debug for ActionServiceClient<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for ActionServiceClient<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for ActionServiceClient<T>
where T: RefUnwindSafe,

§

impl<T> Send for ActionServiceClient<T>
where T: Send,

§

impl<T> Sync for ActionServiceClient<T>
where T: Sync,

§

impl<T> Unpin for ActionServiceClient<T>
where T: Unpin,

§

impl<T> UnwindSafe for ActionServiceClient<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V