1#[derive(Clone, PartialEq, ::prost::Message)]
2pub struct SubscribePositionRequest {}
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct PositionResponse {
5 #[prost(message, optional, tag = "1")]
7 pub position: ::core::option::Option<Position>,
8}
9#[derive(Clone, PartialEq, ::prost::Message)]
10pub struct SubscribeHomeRequest {}
11#[derive(Clone, PartialEq, ::prost::Message)]
12pub struct HomeResponse {
13 #[prost(message, optional, tag = "1")]
15 pub home: ::core::option::Option<Position>,
16}
17#[derive(Clone, PartialEq, ::prost::Message)]
18pub struct SubscribeInAirRequest {}
19#[derive(Clone, PartialEq, ::prost::Message)]
20pub struct InAirResponse {
21 #[prost(bool, tag = "1")]
23 pub is_in_air: bool,
24}
25#[derive(Clone, PartialEq, ::prost::Message)]
26pub struct SubscribeLandedStateRequest {}
27#[derive(Clone, PartialEq, ::prost::Message)]
28pub struct LandedStateResponse {
29 #[prost(enumeration = "LandedState", tag = "1")]
31 pub landed_state: i32,
32}
33#[derive(Clone, PartialEq, ::prost::Message)]
34pub struct SubscribeArmedRequest {}
35#[derive(Clone, PartialEq, ::prost::Message)]
36pub struct ArmedResponse {
37 #[prost(bool, tag = "1")]
39 pub is_armed: bool,
40}
41#[derive(Clone, PartialEq, ::prost::Message)]
42pub struct SubscribeAttitudeQuaternionRequest {}
43#[derive(Clone, PartialEq, ::prost::Message)]
44pub struct AttitudeQuaternionResponse {
45 #[prost(message, optional, tag = "1")]
47 pub attitude_quaternion: ::core::option::Option<Quaternion>,
48}
49#[derive(Clone, PartialEq, ::prost::Message)]
50pub struct SubscribeAttitudeEulerRequest {}
51#[derive(Clone, PartialEq, ::prost::Message)]
52pub struct AttitudeEulerResponse {
53 #[prost(message, optional, tag = "1")]
55 pub attitude_euler: ::core::option::Option<EulerAngle>,
56}
57#[derive(Clone, PartialEq, ::prost::Message)]
58pub struct SubscribeAttitudeAngularVelocityBodyRequest {}
59#[derive(Clone, PartialEq, ::prost::Message)]
60pub struct AttitudeAngularVelocityBodyResponse {
61 #[prost(message, optional, tag = "1")]
63 pub attitude_angular_velocity_body: ::core::option::Option<AngularVelocityBody>,
64}
65#[derive(Clone, PartialEq, ::prost::Message)]
66pub struct SubscribeCameraAttitudeQuaternionRequest {}
67#[derive(Clone, PartialEq, ::prost::Message)]
68pub struct CameraAttitudeQuaternionResponse {
69 #[prost(message, optional, tag = "1")]
71 pub attitude_quaternion: ::core::option::Option<Quaternion>,
72}
73#[derive(Clone, PartialEq, ::prost::Message)]
74pub struct SubscribeCameraAttitudeEulerRequest {}
75#[derive(Clone, PartialEq, ::prost::Message)]
76pub struct CameraAttitudeEulerResponse {
77 #[prost(message, optional, tag = "1")]
79 pub attitude_euler: ::core::option::Option<EulerAngle>,
80}
81#[derive(Clone, PartialEq, ::prost::Message)]
82pub struct SubscribeVelocityNedRequest {}
83#[derive(Clone, PartialEq, ::prost::Message)]
84pub struct VelocityNedResponse {
85 #[prost(message, optional, tag = "1")]
87 pub velocity_ned: ::core::option::Option<VelocityNed>,
88}
89#[derive(Clone, PartialEq, ::prost::Message)]
90pub struct SubscribeGpsInfoRequest {}
91#[derive(Clone, PartialEq, ::prost::Message)]
92pub struct GpsInfoResponse {
93 #[prost(message, optional, tag = "1")]
95 pub gps_info: ::core::option::Option<GpsInfo>,
96}
97#[derive(Clone, PartialEq, ::prost::Message)]
98pub struct SubscribeBatteryRequest {}
99#[derive(Clone, PartialEq, ::prost::Message)]
100pub struct BatteryResponse {
101 #[prost(message, optional, tag = "1")]
103 pub battery: ::core::option::Option<Battery>,
104}
105#[derive(Clone, PartialEq, ::prost::Message)]
106pub struct SubscribeFlightModeRequest {}
107#[derive(Clone, PartialEq, ::prost::Message)]
108pub struct FlightModeResponse {
109 #[prost(enumeration = "FlightMode", tag = "1")]
111 pub flight_mode: i32,
112}
113#[derive(Clone, PartialEq, ::prost::Message)]
114pub struct SubscribeHealthRequest {}
115#[derive(Clone, PartialEq, ::prost::Message)]
116pub struct HealthResponse {
117 #[prost(message, optional, tag = "1")]
119 pub health: ::core::option::Option<Health>,
120}
121#[derive(Clone, PartialEq, ::prost::Message)]
122pub struct SubscribeRcStatusRequest {}
123#[derive(Clone, PartialEq, ::prost::Message)]
124pub struct RcStatusResponse {
125 #[prost(message, optional, tag = "1")]
127 pub rc_status: ::core::option::Option<RcStatus>,
128}
129#[derive(Clone, PartialEq, ::prost::Message)]
130pub struct SubscribeStatusTextRequest {}
131#[derive(Clone, PartialEq, ::prost::Message)]
132pub struct StatusTextResponse {
133 #[prost(message, optional, tag = "1")]
135 pub status_text: ::core::option::Option<StatusText>,
136}
137#[derive(Clone, PartialEq, ::prost::Message)]
138pub struct SubscribeActuatorControlTargetRequest {}
139#[derive(Clone, PartialEq, ::prost::Message)]
140pub struct ActuatorControlTargetResponse {
141 #[prost(message, optional, tag = "1")]
143 pub actuator_control_target: ::core::option::Option<ActuatorControlTarget>,
144}
145#[derive(Clone, PartialEq, ::prost::Message)]
146pub struct SubscribeActuatorOutputStatusRequest {}
147#[derive(Clone, PartialEq, ::prost::Message)]
148pub struct ActuatorOutputStatusResponse {
149 #[prost(message, optional, tag = "1")]
151 pub actuator_output_status: ::core::option::Option<ActuatorOutputStatus>,
152}
153#[derive(Clone, PartialEq, ::prost::Message)]
154pub struct SubscribeOdometryRequest {}
155#[derive(Clone, PartialEq, ::prost::Message)]
156pub struct OdometryResponse {
157 #[prost(message, optional, tag = "1")]
159 pub odometry: ::core::option::Option<Odometry>,
160}
161#[derive(Clone, PartialEq, ::prost::Message)]
162pub struct SubscribePositionVelocityNedRequest {}
163#[derive(Clone, PartialEq, ::prost::Message)]
164pub struct PositionVelocityNedResponse {
165 #[prost(message, optional, tag = "1")]
167 pub position_velocity_ned: ::core::option::Option<PositionVelocityNed>,
168}
169#[derive(Clone, PartialEq, ::prost::Message)]
170pub struct SubscribeGroundTruthRequest {}
171#[derive(Clone, PartialEq, ::prost::Message)]
172pub struct GroundTruthResponse {
173 #[prost(message, optional, tag = "1")]
175 pub ground_truth: ::core::option::Option<GroundTruth>,
176}
177#[derive(Clone, PartialEq, ::prost::Message)]
178pub struct SubscribeFixedwingMetricsRequest {}
179#[derive(Clone, PartialEq, ::prost::Message)]
180pub struct FixedwingMetricsResponse {
181 #[prost(message, optional, tag = "1")]
183 pub fixedwing_metrics: ::core::option::Option<FixedwingMetrics>,
184}
185#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct SubscribeImuRequest {}
187#[derive(Clone, PartialEq, ::prost::Message)]
188pub struct ImuResponse {
189 #[prost(message, optional, tag = "1")]
191 pub imu: ::core::option::Option<Imu>,
192}
193#[derive(Clone, PartialEq, ::prost::Message)]
194pub struct SubscribeHealthAllOkRequest {}
195#[derive(Clone, PartialEq, ::prost::Message)]
196pub struct HealthAllOkResponse {
197 #[prost(bool, tag = "1")]
199 pub is_health_all_ok: bool,
200}
201#[derive(Clone, PartialEq, ::prost::Message)]
202pub struct SubscribeUnixEpochTimeRequest {}
203#[derive(Clone, PartialEq, ::prost::Message)]
204pub struct UnixEpochTimeResponse {
205 #[prost(uint64, tag = "1")]
207 pub time_us: u64,
208}
209#[derive(Clone, PartialEq, ::prost::Message)]
210pub struct SubscribeDistanceSensorRequest {}
211#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct DistanceSensorResponse {
213 #[prost(message, optional, tag = "1")]
215 pub distance_sensor: ::core::option::Option<DistanceSensor>,
216}
217#[derive(Clone, PartialEq, ::prost::Message)]
218pub struct SetRatePositionRequest {
219 #[prost(double, tag = "1")]
221 pub rate_hz: f64,
222}
223#[derive(Clone, PartialEq, ::prost::Message)]
224pub struct SetRatePositionResponse {
225 #[prost(message, optional, tag = "1")]
226 pub telemetry_result: ::core::option::Option<TelemetryResult>,
227}
228#[derive(Clone, PartialEq, ::prost::Message)]
229pub struct SetRateHomeRequest {
230 #[prost(double, tag = "1")]
232 pub rate_hz: f64,
233}
234#[derive(Clone, PartialEq, ::prost::Message)]
235pub struct SetRateHomeResponse {
236 #[prost(message, optional, tag = "1")]
237 pub telemetry_result: ::core::option::Option<TelemetryResult>,
238}
239#[derive(Clone, PartialEq, ::prost::Message)]
240pub struct SetRateInAirRequest {
241 #[prost(double, tag = "1")]
243 pub rate_hz: f64,
244}
245#[derive(Clone, PartialEq, ::prost::Message)]
246pub struct SetRateInAirResponse {
247 #[prost(message, optional, tag = "1")]
248 pub telemetry_result: ::core::option::Option<TelemetryResult>,
249}
250#[derive(Clone, PartialEq, ::prost::Message)]
251pub struct SetRateLandedStateRequest {
252 #[prost(double, tag = "1")]
254 pub rate_hz: f64,
255}
256#[derive(Clone, PartialEq, ::prost::Message)]
257pub struct SetRateLandedStateResponse {
258 #[prost(message, optional, tag = "1")]
259 pub telemetry_result: ::core::option::Option<TelemetryResult>,
260}
261#[derive(Clone, PartialEq, ::prost::Message)]
262pub struct SetRateAttitudeRequest {
263 #[prost(double, tag = "1")]
265 pub rate_hz: f64,
266}
267#[derive(Clone, PartialEq, ::prost::Message)]
268pub struct SetRateAttitudeResponse {
269 #[prost(message, optional, tag = "1")]
270 pub telemetry_result: ::core::option::Option<TelemetryResult>,
271}
272#[derive(Clone, PartialEq, ::prost::Message)]
273pub struct SetRateAttitudeAngularVelocityBodyRequest {
274 #[prost(double, tag = "1")]
276 pub rate_hz: f64,
277}
278#[derive(Clone, PartialEq, ::prost::Message)]
279pub struct SetRateAttitudeAngularVelocityBodyResponse {
280 #[prost(message, optional, tag = "1")]
281 pub telemetry_result: ::core::option::Option<TelemetryResult>,
282}
283#[derive(Clone, PartialEq, ::prost::Message)]
284pub struct SetRateCameraAttitudeQuaternionRequest {
285 #[prost(double, tag = "1")]
287 pub rate_hz: f64,
288}
289#[derive(Clone, PartialEq, ::prost::Message)]
290pub struct SetRateCameraAttitudeQuaternionResponse {
291 #[prost(message, optional, tag = "1")]
292 pub telemetry_result: ::core::option::Option<TelemetryResult>,
293}
294#[derive(Clone, PartialEq, ::prost::Message)]
295pub struct SetRateCameraAttitudeRequest {
296 #[prost(double, tag = "1")]
298 pub rate_hz: f64,
299}
300#[derive(Clone, PartialEq, ::prost::Message)]
301pub struct SetRateCameraAttitudeResponse {
302 #[prost(message, optional, tag = "1")]
303 pub telemetry_result: ::core::option::Option<TelemetryResult>,
304}
305#[derive(Clone, PartialEq, ::prost::Message)]
306pub struct SetRateVelocityNedRequest {
307 #[prost(double, tag = "1")]
309 pub rate_hz: f64,
310}
311#[derive(Clone, PartialEq, ::prost::Message)]
312pub struct SetRateVelocityNedResponse {
313 #[prost(message, optional, tag = "1")]
314 pub telemetry_result: ::core::option::Option<TelemetryResult>,
315}
316#[derive(Clone, PartialEq, ::prost::Message)]
317pub struct SetRateGpsInfoRequest {
318 #[prost(double, tag = "1")]
320 pub rate_hz: f64,
321}
322#[derive(Clone, PartialEq, ::prost::Message)]
323pub struct SetRateGpsInfoResponse {
324 #[prost(message, optional, tag = "1")]
325 pub telemetry_result: ::core::option::Option<TelemetryResult>,
326}
327#[derive(Clone, PartialEq, ::prost::Message)]
328pub struct SetRateBatteryRequest {
329 #[prost(double, tag = "1")]
331 pub rate_hz: f64,
332}
333#[derive(Clone, PartialEq, ::prost::Message)]
334pub struct SetRateBatteryResponse {
335 #[prost(message, optional, tag = "1")]
336 pub telemetry_result: ::core::option::Option<TelemetryResult>,
337}
338#[derive(Clone, PartialEq, ::prost::Message)]
339pub struct SetRateRcStatusRequest {
340 #[prost(double, tag = "1")]
342 pub rate_hz: f64,
343}
344#[derive(Clone, PartialEq, ::prost::Message)]
345pub struct SetRateRcStatusResponse {
346 #[prost(message, optional, tag = "1")]
347 pub telemetry_result: ::core::option::Option<TelemetryResult>,
348}
349#[derive(Clone, PartialEq, ::prost::Message)]
350pub struct SetRateActuatorControlTargetRequest {
351 #[prost(double, tag = "1")]
353 pub rate_hz: f64,
354}
355#[derive(Clone, PartialEq, ::prost::Message)]
356pub struct SetRateActuatorControlTargetResponse {
357 #[prost(message, optional, tag = "1")]
358 pub telemetry_result: ::core::option::Option<TelemetryResult>,
359}
360#[derive(Clone, PartialEq, ::prost::Message)]
361pub struct SetRateActuatorOutputStatusRequest {
362 #[prost(double, tag = "1")]
364 pub rate_hz: f64,
365}
366#[derive(Clone, PartialEq, ::prost::Message)]
367pub struct SetRateActuatorOutputStatusResponse {
368 #[prost(message, optional, tag = "1")]
369 pub telemetry_result: ::core::option::Option<TelemetryResult>,
370}
371#[derive(Clone, PartialEq, ::prost::Message)]
372pub struct SetRateOdometryRequest {
373 #[prost(double, tag = "1")]
375 pub rate_hz: f64,
376}
377#[derive(Clone, PartialEq, ::prost::Message)]
378pub struct SetRateOdometryResponse {
379 #[prost(message, optional, tag = "1")]
380 pub telemetry_result: ::core::option::Option<TelemetryResult>,
381}
382#[derive(Clone, PartialEq, ::prost::Message)]
383pub struct SetRatePositionVelocityNedRequest {
384 #[prost(double, tag = "1")]
386 pub rate_hz: f64,
387}
388#[derive(Clone, PartialEq, ::prost::Message)]
389pub struct SetRatePositionVelocityNedResponse {
390 #[prost(message, optional, tag = "1")]
391 pub telemetry_result: ::core::option::Option<TelemetryResult>,
392}
393#[derive(Clone, PartialEq, ::prost::Message)]
394pub struct SetRateGroundTruthRequest {
395 #[prost(double, tag = "1")]
397 pub rate_hz: f64,
398}
399#[derive(Clone, PartialEq, ::prost::Message)]
400pub struct SetRateGroundTruthResponse {
401 #[prost(message, optional, tag = "1")]
402 pub telemetry_result: ::core::option::Option<TelemetryResult>,
403}
404#[derive(Clone, PartialEq, ::prost::Message)]
405pub struct SetRateFixedwingMetricsRequest {
406 #[prost(double, tag = "1")]
408 pub rate_hz: f64,
409}
410#[derive(Clone, PartialEq, ::prost::Message)]
411pub struct SetRateFixedwingMetricsResponse {
412 #[prost(message, optional, tag = "1")]
413 pub telemetry_result: ::core::option::Option<TelemetryResult>,
414}
415#[derive(Clone, PartialEq, ::prost::Message)]
416pub struct SetRateImuRequest {
417 #[prost(double, tag = "1")]
419 pub rate_hz: f64,
420}
421#[derive(Clone, PartialEq, ::prost::Message)]
422pub struct SetRateImuResponse {
423 #[prost(message, optional, tag = "1")]
424 pub telemetry_result: ::core::option::Option<TelemetryResult>,
425}
426#[derive(Clone, PartialEq, ::prost::Message)]
427pub struct SetRateUnixEpochTimeRequest {
428 #[prost(double, tag = "1")]
430 pub rate_hz: f64,
431}
432#[derive(Clone, PartialEq, ::prost::Message)]
433pub struct SetRateUnixEpochTimeResponse {
434 #[prost(message, optional, tag = "1")]
435 pub telemetry_result: ::core::option::Option<TelemetryResult>,
436}
437#[derive(Clone, PartialEq, ::prost::Message)]
438pub struct SetRateDistanceSensorRequest {
439 #[prost(double, tag = "1")]
441 pub rate_hz: f64,
442}
443#[derive(Clone, PartialEq, ::prost::Message)]
444pub struct SetRateDistanceSensorResponse {
445 #[prost(message, optional, tag = "1")]
446 pub telemetry_result: ::core::option::Option<TelemetryResult>,
447}
448#[derive(Clone, PartialEq, ::prost::Message)]
449pub struct GetGpsGlobalOriginRequest {}
450#[derive(Clone, PartialEq, ::prost::Message)]
451pub struct GetGpsGlobalOriginResponse {
452 #[prost(message, optional, tag = "1")]
453 pub telemetry_result: ::core::option::Option<TelemetryResult>,
454 #[prost(message, optional, tag = "2")]
455 pub gps_global_origin: ::core::option::Option<GpsGlobalOrigin>,
456}
457#[derive(Clone, PartialEq, ::prost::Message)]
459pub struct Position {
460 #[prost(double, tag = "1")]
462 pub latitude_deg: f64,
463 #[prost(double, tag = "2")]
465 pub longitude_deg: f64,
466 #[prost(float, tag = "3")]
468 pub absolute_altitude_m: f32,
469 #[prost(float, tag = "4")]
471 pub relative_altitude_m: f32,
472}
473#[derive(Clone, PartialEq, ::prost::Message)]
483pub struct Quaternion {
484 #[prost(float, tag = "1")]
486 pub w: f32,
487 #[prost(float, tag = "2")]
489 pub x: f32,
490 #[prost(float, tag = "3")]
492 pub y: f32,
493 #[prost(float, tag = "4")]
495 pub z: f32,
496}
497#[derive(Clone, PartialEq, ::prost::Message)]
505pub struct EulerAngle {
506 #[prost(float, tag = "1")]
508 pub roll_deg: f32,
509 #[prost(float, tag = "2")]
511 pub pitch_deg: f32,
512 #[prost(float, tag = "3")]
514 pub yaw_deg: f32,
515}
516#[derive(Clone, PartialEq, ::prost::Message)]
518pub struct AngularVelocityBody {
519 #[prost(float, tag = "1")]
521 pub roll_rad_s: f32,
522 #[prost(float, tag = "2")]
524 pub pitch_rad_s: f32,
525 #[prost(float, tag = "3")]
527 pub yaw_rad_s: f32,
528}
529#[derive(Clone, PartialEq, ::prost::Message)]
531pub struct GpsInfo {
532 #[prost(int32, tag = "1")]
534 pub num_satellites: i32,
535 #[prost(enumeration = "FixType", tag = "2")]
537 pub fix_type: i32,
538}
539#[derive(Clone, PartialEq, ::prost::Message)]
541pub struct Battery {
542 #[prost(float, tag = "1")]
544 pub voltage_v: f32,
545 #[prost(float, tag = "2")]
547 pub remaining_percent: f32,
548}
549#[derive(Clone, PartialEq, ::prost::Message)]
551pub struct Health {
552 #[prost(bool, tag = "1")]
554 pub is_gyrometer_calibration_ok: bool,
555 #[prost(bool, tag = "2")]
557 pub is_accelerometer_calibration_ok: bool,
558 #[prost(bool, tag = "3")]
560 pub is_magnetometer_calibration_ok: bool,
561 #[prost(bool, tag = "4")]
563 pub is_level_calibration_ok: bool,
564 #[prost(bool, tag = "5")]
566 pub is_local_position_ok: bool,
567 #[prost(bool, tag = "6")]
569 pub is_global_position_ok: bool,
570 #[prost(bool, tag = "7")]
572 pub is_home_position_ok: bool,
573}
574#[derive(Clone, PartialEq, ::prost::Message)]
576pub struct RcStatus {
577 #[prost(bool, tag = "1")]
579 pub was_available_once: bool,
580 #[prost(bool, tag = "2")]
582 pub is_available: bool,
583 #[prost(float, tag = "3")]
585 pub signal_strength_percent: f32,
586}
587#[derive(Clone, PartialEq, ::prost::Message)]
589pub struct StatusText {
590 #[prost(enumeration = "StatusTextType", tag = "1")]
592 pub r#type: i32,
593 #[prost(string, tag = "2")]
595 pub text: ::prost::alloc::string::String,
596}
597#[derive(Clone, PartialEq, ::prost::Message)]
599pub struct ActuatorControlTarget {
600 #[prost(int32, tag = "1")]
602 pub group: i32,
603 #[prost(float, repeated, tag = "2")]
605 pub controls: ::prost::alloc::vec::Vec<f32>,
606}
607#[derive(Clone, PartialEq, ::prost::Message)]
609pub struct ActuatorOutputStatus {
610 #[prost(uint32, tag = "1")]
612 pub active: u32,
613 #[prost(float, repeated, tag = "2")]
615 pub actuator: ::prost::alloc::vec::Vec<f32>,
616}
617#[derive(Clone, PartialEq, ::prost::Message)]
624pub struct Covariance {
625 #[prost(float, repeated, tag = "1")]
627 pub covariance_matrix: ::prost::alloc::vec::Vec<f32>,
628}
629#[derive(Clone, PartialEq, ::prost::Message)]
631pub struct VelocityBody {
632 #[prost(float, tag = "1")]
634 pub x_m_s: f32,
635 #[prost(float, tag = "2")]
637 pub y_m_s: f32,
638 #[prost(float, tag = "3")]
640 pub z_m_s: f32,
641}
642#[derive(Clone, PartialEq, ::prost::Message)]
644pub struct PositionBody {
645 #[prost(float, tag = "1")]
647 pub x_m: f32,
648 #[prost(float, tag = "2")]
650 pub y_m: f32,
651 #[prost(float, tag = "3")]
653 pub z_m: f32,
654}
655#[derive(Clone, PartialEq, ::prost::Message)]
657pub struct Odometry {
658 #[prost(uint64, tag = "1")]
660 pub time_usec: u64,
661 #[prost(enumeration = "odometry::MavFrame", tag = "2")]
663 pub frame_id: i32,
664 #[prost(enumeration = "odometry::MavFrame", tag = "3")]
666 pub child_frame_id: i32,
667 #[prost(message, optional, tag = "4")]
669 pub position_body: ::core::option::Option<PositionBody>,
670 #[prost(message, optional, tag = "5")]
672 pub q: ::core::option::Option<Quaternion>,
673 #[prost(message, optional, tag = "6")]
675 pub velocity_body: ::core::option::Option<VelocityBody>,
676 #[prost(message, optional, tag = "7")]
678 pub angular_velocity_body: ::core::option::Option<AngularVelocityBody>,
679 #[prost(message, optional, tag = "8")]
681 pub pose_covariance: ::core::option::Option<Covariance>,
682 #[prost(message, optional, tag = "9")]
684 pub velocity_covariance: ::core::option::Option<Covariance>,
685}
686pub mod odometry {
688 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
690 #[repr(i32)]
691 pub enum MavFrame {
692 Undef = 0,
694 BodyNed = 8,
696 VisionNed = 16,
698 EstimNed = 18,
700 }
701}
702#[derive(Clone, PartialEq, ::prost::Message)]
704pub struct DistanceSensor {
705 #[prost(float, tag = "1")]
707 pub minimum_distance_m: f32,
708 #[prost(float, tag = "2")]
710 pub maximum_distance_m: f32,
711 #[prost(float, tag = "3")]
713 pub current_distance_m: f32,
714}
715#[derive(Clone, PartialEq, ::prost::Message)]
717pub struct PositionNed {
718 #[prost(float, tag = "1")]
720 pub north_m: f32,
721 #[prost(float, tag = "2")]
723 pub east_m: f32,
724 #[prost(float, tag = "3")]
726 pub down_m: f32,
727}
728#[derive(Clone, PartialEq, ::prost::Message)]
730pub struct VelocityNed {
731 #[prost(float, tag = "1")]
733 pub north_m_s: f32,
734 #[prost(float, tag = "2")]
736 pub east_m_s: f32,
737 #[prost(float, tag = "3")]
739 pub down_m_s: f32,
740}
741#[derive(Clone, PartialEq, ::prost::Message)]
743pub struct PositionVelocityNed {
744 #[prost(message, optional, tag = "1")]
746 pub position: ::core::option::Option<PositionNed>,
747 #[prost(message, optional, tag = "2")]
749 pub velocity: ::core::option::Option<VelocityNed>,
750}
751#[derive(Clone, PartialEq, ::prost::Message)]
753pub struct GroundTruth {
754 #[prost(double, tag = "1")]
756 pub latitude_deg: f64,
757 #[prost(double, tag = "2")]
759 pub longitude_deg: f64,
760 #[prost(float, tag = "3")]
762 pub absolute_altitude_m: f32,
763}
764#[derive(Clone, PartialEq, ::prost::Message)]
766pub struct FixedwingMetrics {
767 #[prost(float, tag = "1")]
769 pub airspeed_m_s: f32,
770 #[prost(float, tag = "2")]
772 pub throttle_percentage: f32,
773 #[prost(float, tag = "3")]
775 pub climb_rate_m_s: f32,
776}
777#[derive(Clone, PartialEq, ::prost::Message)]
779pub struct AccelerationFrd {
780 #[prost(float, tag = "1")]
782 pub forward_m_s2: f32,
783 #[prost(float, tag = "2")]
785 pub right_m_s2: f32,
786 #[prost(float, tag = "3")]
788 pub down_m_s2: f32,
789}
790#[derive(Clone, PartialEq, ::prost::Message)]
792pub struct AngularVelocityFrd {
793 #[prost(float, tag = "1")]
795 pub forward_rad_s: f32,
796 #[prost(float, tag = "2")]
798 pub right_rad_s: f32,
799 #[prost(float, tag = "3")]
801 pub down_rad_s: f32,
802}
803#[derive(Clone, PartialEq, ::prost::Message)]
805pub struct MagneticFieldFrd {
806 #[prost(float, tag = "1")]
808 pub forward_gauss: f32,
809 #[prost(float, tag = "2")]
811 pub right_gauss: f32,
812 #[prost(float, tag = "3")]
814 pub down_gauss: f32,
815}
816#[derive(Clone, PartialEq, ::prost::Message)]
818pub struct Imu {
819 #[prost(message, optional, tag = "1")]
821 pub acceleration_frd: ::core::option::Option<AccelerationFrd>,
822 #[prost(message, optional, tag = "2")]
824 pub angular_velocity_frd: ::core::option::Option<AngularVelocityFrd>,
825 #[prost(message, optional, tag = "3")]
827 pub magnetic_field_frd: ::core::option::Option<MagneticFieldFrd>,
828 #[prost(float, tag = "4")]
830 pub temperature_degc: f32,
831}
832#[derive(Clone, PartialEq, ::prost::Message)]
834pub struct GpsGlobalOrigin {
835 #[prost(double, tag = "1")]
837 pub latitude_deg: f64,
838 #[prost(double, tag = "2")]
840 pub longitude_deg: f64,
841 #[prost(float, tag = "3")]
843 pub altitude_m: f32,
844}
845#[derive(Clone, PartialEq, ::prost::Message)]
847pub struct TelemetryResult {
848 #[prost(enumeration = "telemetry_result::Result", tag = "1")]
850 pub result: i32,
851 #[prost(string, tag = "2")]
853 pub result_str: ::prost::alloc::string::String,
854}
855pub mod telemetry_result {
857 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
859 #[repr(i32)]
860 pub enum Result {
861 Unknown = 0,
863 Success = 1,
865 NoSystem = 2,
867 ConnectionError = 3,
869 Busy = 4,
871 CommandDenied = 5,
873 Timeout = 6,
875 }
876}
877#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
879#[repr(i32)]
880pub enum FixType {
881 NoGps = 0,
883 NoFix = 1,
885 Fix2d = 2,
887 Fix3d = 3,
889 FixDgps = 4,
891 RtkFloat = 5,
893 RtkFixed = 6,
895}
896#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
902#[repr(i32)]
903pub enum FlightMode {
904 Unknown = 0,
906 Ready = 1,
908 Takeoff = 2,
910 Hold = 3,
912 Mission = 4,
914 ReturnToLaunch = 5,
916 Land = 6,
918 Offboard = 7,
920 FollowMe = 8,
922 Manual = 9,
924 Altctl = 10,
926 Posctl = 11,
928 Acro = 12,
930 Stabilized = 13,
932 Rattitude = 14,
934}
935#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
937#[repr(i32)]
938pub enum StatusTextType {
939 Debug = 0,
941 Info = 1,
943 Notice = 2,
945 Warning = 3,
947 Error = 4,
949 Critical = 5,
951 Alert = 6,
953 Emergency = 7,
955}
956#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
958#[repr(i32)]
959pub enum LandedState {
960 Unknown = 0,
962 OnGround = 1,
964 InAir = 2,
966 TakingOff = 3,
968 Landing = 4,
970}
971#[doc = r" Generated client implementations."]
972pub mod telemetry_service_client {
973 #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
974 use tonic::codegen::*;
975 #[doc = ""]
976 #[doc = " Allow users to get vehicle telemetry and state information"]
977 #[doc = " (e.g. battery, GPS, RC connection, flight mode etc.) and set telemetry update rates."]
978 #[derive(Debug, Clone)]
979 pub struct TelemetryServiceClient<T> {
980 inner: tonic::client::Grpc<T>,
981 }
982 impl TelemetryServiceClient<tonic::transport::Channel> {
983 #[doc = r" Attempt to create a new client by connecting to a given endpoint."]
984 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
985 where
986 D: std::convert::TryInto<tonic::transport::Endpoint>,
987 D::Error: Into<StdError>,
988 {
989 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
990 Ok(Self::new(conn))
991 }
992 }
993 impl<T> TelemetryServiceClient<T>
994 where
995 T: tonic::client::GrpcService<tonic::body::BoxBody>,
996 T::ResponseBody: Body + Send + Sync + 'static,
997 T::Error: Into<StdError>,
998 <T::ResponseBody as Body>::Error: Into<StdError> + Send,
999 {
1000 pub fn new(inner: T) -> Self {
1001 let inner = tonic::client::Grpc::new(inner);
1002 Self { inner }
1003 }
1004 pub fn with_interceptor<F>(
1005 inner: T,
1006 interceptor: F,
1007 ) -> TelemetryServiceClient<InterceptedService<T, F>>
1008 where
1009 F: tonic::service::Interceptor,
1010 T: tonic::codegen::Service<
1011 http::Request<tonic::body::BoxBody>,
1012 Response = http::Response<
1013 <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
1014 >,
1015 >,
1016 <T as tonic::codegen::Service<http::Request<tonic::body::BoxBody>>>::Error:
1017 Into<StdError> + Send + Sync,
1018 {
1019 TelemetryServiceClient::new(InterceptedService::new(inner, interceptor))
1020 }
1021 #[doc = r" Compress requests with `gzip`."]
1022 #[doc = r""]
1023 #[doc = r" This requires the server to support it otherwise it might respond with an"]
1024 #[doc = r" error."]
1025 pub fn send_gzip(mut self) -> Self {
1026 self.inner = self.inner.send_gzip();
1027 self
1028 }
1029 #[doc = r" Enable decompressing responses with `gzip`."]
1030 pub fn accept_gzip(mut self) -> Self {
1031 self.inner = self.inner.accept_gzip();
1032 self
1033 }
1034 #[doc = " Subscribe to 'position' updates."]
1035 pub async fn subscribe_position(
1036 &mut self,
1037 request: impl tonic::IntoRequest<super::SubscribePositionRequest>,
1038 ) -> Result<tonic::Response<tonic::codec::Streaming<super::PositionResponse>>, tonic::Status>
1039 {
1040 self.inner.ready().await.map_err(|e| {
1041 tonic::Status::new(
1042 tonic::Code::Unknown,
1043 format!("Service was not ready: {}", e.into()),
1044 )
1045 })?;
1046 let codec = tonic::codec::ProstCodec::default();
1047 let path = http::uri::PathAndQuery::from_static(
1048 "/mavsdk.rpc.telemetry.TelemetryService/SubscribePosition",
1049 );
1050 self.inner
1051 .server_streaming(request.into_request(), path, codec)
1052 .await
1053 }
1054 #[doc = " Subscribe to 'home position' updates."]
1055 pub async fn subscribe_home(
1056 &mut self,
1057 request: impl tonic::IntoRequest<super::SubscribeHomeRequest>,
1058 ) -> Result<tonic::Response<tonic::codec::Streaming<super::HomeResponse>>, tonic::Status>
1059 {
1060 self.inner.ready().await.map_err(|e| {
1061 tonic::Status::new(
1062 tonic::Code::Unknown,
1063 format!("Service was not ready: {}", e.into()),
1064 )
1065 })?;
1066 let codec = tonic::codec::ProstCodec::default();
1067 let path = http::uri::PathAndQuery::from_static(
1068 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeHome",
1069 );
1070 self.inner
1071 .server_streaming(request.into_request(), path, codec)
1072 .await
1073 }
1074 #[doc = " Subscribe to in-air updates."]
1075 pub async fn subscribe_in_air(
1076 &mut self,
1077 request: impl tonic::IntoRequest<super::SubscribeInAirRequest>,
1078 ) -> Result<tonic::Response<tonic::codec::Streaming<super::InAirResponse>>, tonic::Status>
1079 {
1080 self.inner.ready().await.map_err(|e| {
1081 tonic::Status::new(
1082 tonic::Code::Unknown,
1083 format!("Service was not ready: {}", e.into()),
1084 )
1085 })?;
1086 let codec = tonic::codec::ProstCodec::default();
1087 let path = http::uri::PathAndQuery::from_static(
1088 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeInAir",
1089 );
1090 self.inner
1091 .server_streaming(request.into_request(), path, codec)
1092 .await
1093 }
1094 #[doc = " Subscribe to landed state updates"]
1095 pub async fn subscribe_landed_state(
1096 &mut self,
1097 request: impl tonic::IntoRequest<super::SubscribeLandedStateRequest>,
1098 ) -> Result<
1099 tonic::Response<tonic::codec::Streaming<super::LandedStateResponse>>,
1100 tonic::Status,
1101 > {
1102 self.inner.ready().await.map_err(|e| {
1103 tonic::Status::new(
1104 tonic::Code::Unknown,
1105 format!("Service was not ready: {}", e.into()),
1106 )
1107 })?;
1108 let codec = tonic::codec::ProstCodec::default();
1109 let path = http::uri::PathAndQuery::from_static(
1110 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeLandedState",
1111 );
1112 self.inner
1113 .server_streaming(request.into_request(), path, codec)
1114 .await
1115 }
1116 #[doc = " Subscribe to armed updates."]
1117 pub async fn subscribe_armed(
1118 &mut self,
1119 request: impl tonic::IntoRequest<super::SubscribeArmedRequest>,
1120 ) -> Result<tonic::Response<tonic::codec::Streaming<super::ArmedResponse>>, tonic::Status>
1121 {
1122 self.inner.ready().await.map_err(|e| {
1123 tonic::Status::new(
1124 tonic::Code::Unknown,
1125 format!("Service was not ready: {}", e.into()),
1126 )
1127 })?;
1128 let codec = tonic::codec::ProstCodec::default();
1129 let path = http::uri::PathAndQuery::from_static(
1130 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeArmed",
1131 );
1132 self.inner
1133 .server_streaming(request.into_request(), path, codec)
1134 .await
1135 }
1136 #[doc = " Subscribe to 'attitude' updates (quaternion)."]
1137 pub async fn subscribe_attitude_quaternion(
1138 &mut self,
1139 request: impl tonic::IntoRequest<super::SubscribeAttitudeQuaternionRequest>,
1140 ) -> Result<
1141 tonic::Response<tonic::codec::Streaming<super::AttitudeQuaternionResponse>>,
1142 tonic::Status,
1143 > {
1144 self.inner.ready().await.map_err(|e| {
1145 tonic::Status::new(
1146 tonic::Code::Unknown,
1147 format!("Service was not ready: {}", e.into()),
1148 )
1149 })?;
1150 let codec = tonic::codec::ProstCodec::default();
1151 let path = http::uri::PathAndQuery::from_static(
1152 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeAttitudeQuaternion",
1153 );
1154 self.inner
1155 .server_streaming(request.into_request(), path, codec)
1156 .await
1157 }
1158 #[doc = " Subscribe to 'attitude' updates (Euler)."]
1159 pub async fn subscribe_attitude_euler(
1160 &mut self,
1161 request: impl tonic::IntoRequest<super::SubscribeAttitudeEulerRequest>,
1162 ) -> Result<
1163 tonic::Response<tonic::codec::Streaming<super::AttitudeEulerResponse>>,
1164 tonic::Status,
1165 > {
1166 self.inner.ready().await.map_err(|e| {
1167 tonic::Status::new(
1168 tonic::Code::Unknown,
1169 format!("Service was not ready: {}", e.into()),
1170 )
1171 })?;
1172 let codec = tonic::codec::ProstCodec::default();
1173 let path = http::uri::PathAndQuery::from_static(
1174 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeAttitudeEuler",
1175 );
1176 self.inner
1177 .server_streaming(request.into_request(), path, codec)
1178 .await
1179 }
1180 #[doc = " Subscribe to 'attitude' updates (angular velocity)"]
1181 pub async fn subscribe_attitude_angular_velocity_body(
1182 &mut self,
1183 request: impl tonic::IntoRequest<super::SubscribeAttitudeAngularVelocityBodyRequest>,
1184 ) -> Result<
1185 tonic::Response<tonic::codec::Streaming<super::AttitudeAngularVelocityBodyResponse>>,
1186 tonic::Status,
1187 > {
1188 self.inner.ready().await.map_err(|e| {
1189 tonic::Status::new(
1190 tonic::Code::Unknown,
1191 format!("Service was not ready: {}", e.into()),
1192 )
1193 })?;
1194 let codec = tonic::codec::ProstCodec::default();
1195 let path = http::uri::PathAndQuery::from_static(
1196 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeAttitudeAngularVelocityBody",
1197 );
1198 self.inner
1199 .server_streaming(request.into_request(), path, codec)
1200 .await
1201 }
1202 #[doc = " Subscribe to 'camera attitude' updates (quaternion)."]
1203 pub async fn subscribe_camera_attitude_quaternion(
1204 &mut self,
1205 request: impl tonic::IntoRequest<super::SubscribeCameraAttitudeQuaternionRequest>,
1206 ) -> Result<
1207 tonic::Response<tonic::codec::Streaming<super::CameraAttitudeQuaternionResponse>>,
1208 tonic::Status,
1209 > {
1210 self.inner.ready().await.map_err(|e| {
1211 tonic::Status::new(
1212 tonic::Code::Unknown,
1213 format!("Service was not ready: {}", e.into()),
1214 )
1215 })?;
1216 let codec = tonic::codec::ProstCodec::default();
1217 let path = http::uri::PathAndQuery::from_static(
1218 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeCameraAttitudeQuaternion",
1219 );
1220 self.inner
1221 .server_streaming(request.into_request(), path, codec)
1222 .await
1223 }
1224 #[doc = " Subscribe to 'camera attitude' updates (Euler)."]
1225 pub async fn subscribe_camera_attitude_euler(
1226 &mut self,
1227 request: impl tonic::IntoRequest<super::SubscribeCameraAttitudeEulerRequest>,
1228 ) -> Result<
1229 tonic::Response<tonic::codec::Streaming<super::CameraAttitudeEulerResponse>>,
1230 tonic::Status,
1231 > {
1232 self.inner.ready().await.map_err(|e| {
1233 tonic::Status::new(
1234 tonic::Code::Unknown,
1235 format!("Service was not ready: {}", e.into()),
1236 )
1237 })?;
1238 let codec = tonic::codec::ProstCodec::default();
1239 let path = http::uri::PathAndQuery::from_static(
1240 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeCameraAttitudeEuler",
1241 );
1242 self.inner
1243 .server_streaming(request.into_request(), path, codec)
1244 .await
1245 }
1246 #[doc = " Subscribe to 'ground speed' updates (NED)."]
1247 pub async fn subscribe_velocity_ned(
1248 &mut self,
1249 request: impl tonic::IntoRequest<super::SubscribeVelocityNedRequest>,
1250 ) -> Result<
1251 tonic::Response<tonic::codec::Streaming<super::VelocityNedResponse>>,
1252 tonic::Status,
1253 > {
1254 self.inner.ready().await.map_err(|e| {
1255 tonic::Status::new(
1256 tonic::Code::Unknown,
1257 format!("Service was not ready: {}", e.into()),
1258 )
1259 })?;
1260 let codec = tonic::codec::ProstCodec::default();
1261 let path = http::uri::PathAndQuery::from_static(
1262 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeVelocityNed",
1263 );
1264 self.inner
1265 .server_streaming(request.into_request(), path, codec)
1266 .await
1267 }
1268 #[doc = " Subscribe to 'GPS info' updates."]
1269 pub async fn subscribe_gps_info(
1270 &mut self,
1271 request: impl tonic::IntoRequest<super::SubscribeGpsInfoRequest>,
1272 ) -> Result<tonic::Response<tonic::codec::Streaming<super::GpsInfoResponse>>, tonic::Status>
1273 {
1274 self.inner.ready().await.map_err(|e| {
1275 tonic::Status::new(
1276 tonic::Code::Unknown,
1277 format!("Service was not ready: {}", e.into()),
1278 )
1279 })?;
1280 let codec = tonic::codec::ProstCodec::default();
1281 let path = http::uri::PathAndQuery::from_static(
1282 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeGpsInfo",
1283 );
1284 self.inner
1285 .server_streaming(request.into_request(), path, codec)
1286 .await
1287 }
1288 #[doc = " Subscribe to 'battery' updates."]
1289 pub async fn subscribe_battery(
1290 &mut self,
1291 request: impl tonic::IntoRequest<super::SubscribeBatteryRequest>,
1292 ) -> Result<tonic::Response<tonic::codec::Streaming<super::BatteryResponse>>, tonic::Status>
1293 {
1294 self.inner.ready().await.map_err(|e| {
1295 tonic::Status::new(
1296 tonic::Code::Unknown,
1297 format!("Service was not ready: {}", e.into()),
1298 )
1299 })?;
1300 let codec = tonic::codec::ProstCodec::default();
1301 let path = http::uri::PathAndQuery::from_static(
1302 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeBattery",
1303 );
1304 self.inner
1305 .server_streaming(request.into_request(), path, codec)
1306 .await
1307 }
1308 #[doc = " Subscribe to 'flight mode' updates."]
1309 pub async fn subscribe_flight_mode(
1310 &mut self,
1311 request: impl tonic::IntoRequest<super::SubscribeFlightModeRequest>,
1312 ) -> Result<
1313 tonic::Response<tonic::codec::Streaming<super::FlightModeResponse>>,
1314 tonic::Status,
1315 > {
1316 self.inner.ready().await.map_err(|e| {
1317 tonic::Status::new(
1318 tonic::Code::Unknown,
1319 format!("Service was not ready: {}", e.into()),
1320 )
1321 })?;
1322 let codec = tonic::codec::ProstCodec::default();
1323 let path = http::uri::PathAndQuery::from_static(
1324 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeFlightMode",
1325 );
1326 self.inner
1327 .server_streaming(request.into_request(), path, codec)
1328 .await
1329 }
1330 #[doc = " Subscribe to 'health' updates."]
1331 pub async fn subscribe_health(
1332 &mut self,
1333 request: impl tonic::IntoRequest<super::SubscribeHealthRequest>,
1334 ) -> Result<tonic::Response<tonic::codec::Streaming<super::HealthResponse>>, tonic::Status>
1335 {
1336 self.inner.ready().await.map_err(|e| {
1337 tonic::Status::new(
1338 tonic::Code::Unknown,
1339 format!("Service was not ready: {}", e.into()),
1340 )
1341 })?;
1342 let codec = tonic::codec::ProstCodec::default();
1343 let path = http::uri::PathAndQuery::from_static(
1344 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeHealth",
1345 );
1346 self.inner
1347 .server_streaming(request.into_request(), path, codec)
1348 .await
1349 }
1350 #[doc = " Subscribe to 'RC status' updates."]
1351 pub async fn subscribe_rc_status(
1352 &mut self,
1353 request: impl tonic::IntoRequest<super::SubscribeRcStatusRequest>,
1354 ) -> Result<tonic::Response<tonic::codec::Streaming<super::RcStatusResponse>>, tonic::Status>
1355 {
1356 self.inner.ready().await.map_err(|e| {
1357 tonic::Status::new(
1358 tonic::Code::Unknown,
1359 format!("Service was not ready: {}", e.into()),
1360 )
1361 })?;
1362 let codec = tonic::codec::ProstCodec::default();
1363 let path = http::uri::PathAndQuery::from_static(
1364 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeRcStatus",
1365 );
1366 self.inner
1367 .server_streaming(request.into_request(), path, codec)
1368 .await
1369 }
1370 #[doc = " Subscribe to 'status text' updates."]
1371 pub async fn subscribe_status_text(
1372 &mut self,
1373 request: impl tonic::IntoRequest<super::SubscribeStatusTextRequest>,
1374 ) -> Result<
1375 tonic::Response<tonic::codec::Streaming<super::StatusTextResponse>>,
1376 tonic::Status,
1377 > {
1378 self.inner.ready().await.map_err(|e| {
1379 tonic::Status::new(
1380 tonic::Code::Unknown,
1381 format!("Service was not ready: {}", e.into()),
1382 )
1383 })?;
1384 let codec = tonic::codec::ProstCodec::default();
1385 let path = http::uri::PathAndQuery::from_static(
1386 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeStatusText",
1387 );
1388 self.inner
1389 .server_streaming(request.into_request(), path, codec)
1390 .await
1391 }
1392 #[doc = " Subscribe to 'actuator control target' updates."]
1393 pub async fn subscribe_actuator_control_target(
1394 &mut self,
1395 request: impl tonic::IntoRequest<super::SubscribeActuatorControlTargetRequest>,
1396 ) -> Result<
1397 tonic::Response<tonic::codec::Streaming<super::ActuatorControlTargetResponse>>,
1398 tonic::Status,
1399 > {
1400 self.inner.ready().await.map_err(|e| {
1401 tonic::Status::new(
1402 tonic::Code::Unknown,
1403 format!("Service was not ready: {}", e.into()),
1404 )
1405 })?;
1406 let codec = tonic::codec::ProstCodec::default();
1407 let path = http::uri::PathAndQuery::from_static(
1408 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeActuatorControlTarget",
1409 );
1410 self.inner
1411 .server_streaming(request.into_request(), path, codec)
1412 .await
1413 }
1414 #[doc = " Subscribe to 'actuator output status' updates."]
1415 pub async fn subscribe_actuator_output_status(
1416 &mut self,
1417 request: impl tonic::IntoRequest<super::SubscribeActuatorOutputStatusRequest>,
1418 ) -> Result<
1419 tonic::Response<tonic::codec::Streaming<super::ActuatorOutputStatusResponse>>,
1420 tonic::Status,
1421 > {
1422 self.inner.ready().await.map_err(|e| {
1423 tonic::Status::new(
1424 tonic::Code::Unknown,
1425 format!("Service was not ready: {}", e.into()),
1426 )
1427 })?;
1428 let codec = tonic::codec::ProstCodec::default();
1429 let path = http::uri::PathAndQuery::from_static(
1430 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeActuatorOutputStatus",
1431 );
1432 self.inner
1433 .server_streaming(request.into_request(), path, codec)
1434 .await
1435 }
1436 #[doc = " Subscribe to 'odometry' updates."]
1437 pub async fn subscribe_odometry(
1438 &mut self,
1439 request: impl tonic::IntoRequest<super::SubscribeOdometryRequest>,
1440 ) -> Result<tonic::Response<tonic::codec::Streaming<super::OdometryResponse>>, tonic::Status>
1441 {
1442 self.inner.ready().await.map_err(|e| {
1443 tonic::Status::new(
1444 tonic::Code::Unknown,
1445 format!("Service was not ready: {}", e.into()),
1446 )
1447 })?;
1448 let codec = tonic::codec::ProstCodec::default();
1449 let path = http::uri::PathAndQuery::from_static(
1450 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeOdometry",
1451 );
1452 self.inner
1453 .server_streaming(request.into_request(), path, codec)
1454 .await
1455 }
1456 #[doc = " Subscribe to 'position velocity' updates."]
1457 pub async fn subscribe_position_velocity_ned(
1458 &mut self,
1459 request: impl tonic::IntoRequest<super::SubscribePositionVelocityNedRequest>,
1460 ) -> Result<
1461 tonic::Response<tonic::codec::Streaming<super::PositionVelocityNedResponse>>,
1462 tonic::Status,
1463 > {
1464 self.inner.ready().await.map_err(|e| {
1465 tonic::Status::new(
1466 tonic::Code::Unknown,
1467 format!("Service was not ready: {}", e.into()),
1468 )
1469 })?;
1470 let codec = tonic::codec::ProstCodec::default();
1471 let path = http::uri::PathAndQuery::from_static(
1472 "/mavsdk.rpc.telemetry.TelemetryService/SubscribePositionVelocityNed",
1473 );
1474 self.inner
1475 .server_streaming(request.into_request(), path, codec)
1476 .await
1477 }
1478 #[doc = " Subscribe to 'ground truth' updates."]
1479 pub async fn subscribe_ground_truth(
1480 &mut self,
1481 request: impl tonic::IntoRequest<super::SubscribeGroundTruthRequest>,
1482 ) -> Result<
1483 tonic::Response<tonic::codec::Streaming<super::GroundTruthResponse>>,
1484 tonic::Status,
1485 > {
1486 self.inner.ready().await.map_err(|e| {
1487 tonic::Status::new(
1488 tonic::Code::Unknown,
1489 format!("Service was not ready: {}", e.into()),
1490 )
1491 })?;
1492 let codec = tonic::codec::ProstCodec::default();
1493 let path = http::uri::PathAndQuery::from_static(
1494 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeGroundTruth",
1495 );
1496 self.inner
1497 .server_streaming(request.into_request(), path, codec)
1498 .await
1499 }
1500 #[doc = " Subscribe to 'fixedwing metrics' updates."]
1501 pub async fn subscribe_fixedwing_metrics(
1502 &mut self,
1503 request: impl tonic::IntoRequest<super::SubscribeFixedwingMetricsRequest>,
1504 ) -> Result<
1505 tonic::Response<tonic::codec::Streaming<super::FixedwingMetricsResponse>>,
1506 tonic::Status,
1507 > {
1508 self.inner.ready().await.map_err(|e| {
1509 tonic::Status::new(
1510 tonic::Code::Unknown,
1511 format!("Service was not ready: {}", e.into()),
1512 )
1513 })?;
1514 let codec = tonic::codec::ProstCodec::default();
1515 let path = http::uri::PathAndQuery::from_static(
1516 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeFixedwingMetrics",
1517 );
1518 self.inner
1519 .server_streaming(request.into_request(), path, codec)
1520 .await
1521 }
1522 #[doc = " Subscribe to 'IMU' updates."]
1523 pub async fn subscribe_imu(
1524 &mut self,
1525 request: impl tonic::IntoRequest<super::SubscribeImuRequest>,
1526 ) -> Result<tonic::Response<tonic::codec::Streaming<super::ImuResponse>>, tonic::Status>
1527 {
1528 self.inner.ready().await.map_err(|e| {
1529 tonic::Status::new(
1530 tonic::Code::Unknown,
1531 format!("Service was not ready: {}", e.into()),
1532 )
1533 })?;
1534 let codec = tonic::codec::ProstCodec::default();
1535 let path = http::uri::PathAndQuery::from_static(
1536 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeImu",
1537 );
1538 self.inner
1539 .server_streaming(request.into_request(), path, codec)
1540 .await
1541 }
1542 #[doc = " Subscribe to 'HealthAllOk' updates."]
1543 pub async fn subscribe_health_all_ok(
1544 &mut self,
1545 request: impl tonic::IntoRequest<super::SubscribeHealthAllOkRequest>,
1546 ) -> Result<
1547 tonic::Response<tonic::codec::Streaming<super::HealthAllOkResponse>>,
1548 tonic::Status,
1549 > {
1550 self.inner.ready().await.map_err(|e| {
1551 tonic::Status::new(
1552 tonic::Code::Unknown,
1553 format!("Service was not ready: {}", e.into()),
1554 )
1555 })?;
1556 let codec = tonic::codec::ProstCodec::default();
1557 let path = http::uri::PathAndQuery::from_static(
1558 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeHealthAllOk",
1559 );
1560 self.inner
1561 .server_streaming(request.into_request(), path, codec)
1562 .await
1563 }
1564 #[doc = " Subscribe to 'unix epoch time' updates."]
1565 pub async fn subscribe_unix_epoch_time(
1566 &mut self,
1567 request: impl tonic::IntoRequest<super::SubscribeUnixEpochTimeRequest>,
1568 ) -> Result<
1569 tonic::Response<tonic::codec::Streaming<super::UnixEpochTimeResponse>>,
1570 tonic::Status,
1571 > {
1572 self.inner.ready().await.map_err(|e| {
1573 tonic::Status::new(
1574 tonic::Code::Unknown,
1575 format!("Service was not ready: {}", e.into()),
1576 )
1577 })?;
1578 let codec = tonic::codec::ProstCodec::default();
1579 let path = http::uri::PathAndQuery::from_static(
1580 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeUnixEpochTime",
1581 );
1582 self.inner
1583 .server_streaming(request.into_request(), path, codec)
1584 .await
1585 }
1586 #[doc = " Subscribe to 'Distance Sensor' updates."]
1587 pub async fn subscribe_distance_sensor(
1588 &mut self,
1589 request: impl tonic::IntoRequest<super::SubscribeDistanceSensorRequest>,
1590 ) -> Result<
1591 tonic::Response<tonic::codec::Streaming<super::DistanceSensorResponse>>,
1592 tonic::Status,
1593 > {
1594 self.inner.ready().await.map_err(|e| {
1595 tonic::Status::new(
1596 tonic::Code::Unknown,
1597 format!("Service was not ready: {}", e.into()),
1598 )
1599 })?;
1600 let codec = tonic::codec::ProstCodec::default();
1601 let path = http::uri::PathAndQuery::from_static(
1602 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeDistanceSensor",
1603 );
1604 self.inner
1605 .server_streaming(request.into_request(), path, codec)
1606 .await
1607 }
1608 #[doc = " Set rate to 'position' updates."]
1609 pub async fn set_rate_position(
1610 &mut self,
1611 request: impl tonic::IntoRequest<super::SetRatePositionRequest>,
1612 ) -> Result<tonic::Response<super::SetRatePositionResponse>, tonic::Status> {
1613 self.inner.ready().await.map_err(|e| {
1614 tonic::Status::new(
1615 tonic::Code::Unknown,
1616 format!("Service was not ready: {}", e.into()),
1617 )
1618 })?;
1619 let codec = tonic::codec::ProstCodec::default();
1620 let path = http::uri::PathAndQuery::from_static(
1621 "/mavsdk.rpc.telemetry.TelemetryService/SetRatePosition",
1622 );
1623 self.inner.unary(request.into_request(), path, codec).await
1624 }
1625 #[doc = " Set rate to 'home position' updates."]
1626 pub async fn set_rate_home(
1627 &mut self,
1628 request: impl tonic::IntoRequest<super::SetRateHomeRequest>,
1629 ) -> Result<tonic::Response<super::SetRateHomeResponse>, tonic::Status> {
1630 self.inner.ready().await.map_err(|e| {
1631 tonic::Status::new(
1632 tonic::Code::Unknown,
1633 format!("Service was not ready: {}", e.into()),
1634 )
1635 })?;
1636 let codec = tonic::codec::ProstCodec::default();
1637 let path = http::uri::PathAndQuery::from_static(
1638 "/mavsdk.rpc.telemetry.TelemetryService/SetRateHome",
1639 );
1640 self.inner.unary(request.into_request(), path, codec).await
1641 }
1642 #[doc = " Set rate to in-air updates."]
1643 pub async fn set_rate_in_air(
1644 &mut self,
1645 request: impl tonic::IntoRequest<super::SetRateInAirRequest>,
1646 ) -> Result<tonic::Response<super::SetRateInAirResponse>, tonic::Status> {
1647 self.inner.ready().await.map_err(|e| {
1648 tonic::Status::new(
1649 tonic::Code::Unknown,
1650 format!("Service was not ready: {}", e.into()),
1651 )
1652 })?;
1653 let codec = tonic::codec::ProstCodec::default();
1654 let path = http::uri::PathAndQuery::from_static(
1655 "/mavsdk.rpc.telemetry.TelemetryService/SetRateInAir",
1656 );
1657 self.inner.unary(request.into_request(), path, codec).await
1658 }
1659 #[doc = " Set rate to landed state updates"]
1660 pub async fn set_rate_landed_state(
1661 &mut self,
1662 request: impl tonic::IntoRequest<super::SetRateLandedStateRequest>,
1663 ) -> Result<tonic::Response<super::SetRateLandedStateResponse>, tonic::Status> {
1664 self.inner.ready().await.map_err(|e| {
1665 tonic::Status::new(
1666 tonic::Code::Unknown,
1667 format!("Service was not ready: {}", e.into()),
1668 )
1669 })?;
1670 let codec = tonic::codec::ProstCodec::default();
1671 let path = http::uri::PathAndQuery::from_static(
1672 "/mavsdk.rpc.telemetry.TelemetryService/SetRateLandedState",
1673 );
1674 self.inner.unary(request.into_request(), path, codec).await
1675 }
1676 #[doc = " Set rate to 'attitude' updates."]
1677 pub async fn set_rate_attitude(
1678 &mut self,
1679 request: impl tonic::IntoRequest<super::SetRateAttitudeRequest>,
1680 ) -> Result<tonic::Response<super::SetRateAttitudeResponse>, tonic::Status> {
1681 self.inner.ready().await.map_err(|e| {
1682 tonic::Status::new(
1683 tonic::Code::Unknown,
1684 format!("Service was not ready: {}", e.into()),
1685 )
1686 })?;
1687 let codec = tonic::codec::ProstCodec::default();
1688 let path = http::uri::PathAndQuery::from_static(
1689 "/mavsdk.rpc.telemetry.TelemetryService/SetRateAttitude",
1690 );
1691 self.inner.unary(request.into_request(), path, codec).await
1692 }
1693 #[doc = " Set rate of camera attitude updates."]
1694 pub async fn set_rate_camera_attitude(
1695 &mut self,
1696 request: impl tonic::IntoRequest<super::SetRateCameraAttitudeRequest>,
1697 ) -> Result<tonic::Response<super::SetRateCameraAttitudeResponse>, tonic::Status> {
1698 self.inner.ready().await.map_err(|e| {
1699 tonic::Status::new(
1700 tonic::Code::Unknown,
1701 format!("Service was not ready: {}", e.into()),
1702 )
1703 })?;
1704 let codec = tonic::codec::ProstCodec::default();
1705 let path = http::uri::PathAndQuery::from_static(
1706 "/mavsdk.rpc.telemetry.TelemetryService/SetRateCameraAttitude",
1707 );
1708 self.inner.unary(request.into_request(), path, codec).await
1709 }
1710 #[doc = " Set rate to 'ground speed' updates (NED)."]
1711 pub async fn set_rate_velocity_ned(
1712 &mut self,
1713 request: impl tonic::IntoRequest<super::SetRateVelocityNedRequest>,
1714 ) -> Result<tonic::Response<super::SetRateVelocityNedResponse>, tonic::Status> {
1715 self.inner.ready().await.map_err(|e| {
1716 tonic::Status::new(
1717 tonic::Code::Unknown,
1718 format!("Service was not ready: {}", e.into()),
1719 )
1720 })?;
1721 let codec = tonic::codec::ProstCodec::default();
1722 let path = http::uri::PathAndQuery::from_static(
1723 "/mavsdk.rpc.telemetry.TelemetryService/SetRateVelocityNed",
1724 );
1725 self.inner.unary(request.into_request(), path, codec).await
1726 }
1727 #[doc = " Set rate to 'GPS info' updates."]
1728 pub async fn set_rate_gps_info(
1729 &mut self,
1730 request: impl tonic::IntoRequest<super::SetRateGpsInfoRequest>,
1731 ) -> Result<tonic::Response<super::SetRateGpsInfoResponse>, tonic::Status> {
1732 self.inner.ready().await.map_err(|e| {
1733 tonic::Status::new(
1734 tonic::Code::Unknown,
1735 format!("Service was not ready: {}", e.into()),
1736 )
1737 })?;
1738 let codec = tonic::codec::ProstCodec::default();
1739 let path = http::uri::PathAndQuery::from_static(
1740 "/mavsdk.rpc.telemetry.TelemetryService/SetRateGpsInfo",
1741 );
1742 self.inner.unary(request.into_request(), path, codec).await
1743 }
1744 #[doc = " Set rate to 'battery' updates."]
1745 pub async fn set_rate_battery(
1746 &mut self,
1747 request: impl tonic::IntoRequest<super::SetRateBatteryRequest>,
1748 ) -> Result<tonic::Response<super::SetRateBatteryResponse>, tonic::Status> {
1749 self.inner.ready().await.map_err(|e| {
1750 tonic::Status::new(
1751 tonic::Code::Unknown,
1752 format!("Service was not ready: {}", e.into()),
1753 )
1754 })?;
1755 let codec = tonic::codec::ProstCodec::default();
1756 let path = http::uri::PathAndQuery::from_static(
1757 "/mavsdk.rpc.telemetry.TelemetryService/SetRateBattery",
1758 );
1759 self.inner.unary(request.into_request(), path, codec).await
1760 }
1761 #[doc = " Set rate to 'RC status' updates."]
1762 pub async fn set_rate_rc_status(
1763 &mut self,
1764 request: impl tonic::IntoRequest<super::SetRateRcStatusRequest>,
1765 ) -> Result<tonic::Response<super::SetRateRcStatusResponse>, tonic::Status> {
1766 self.inner.ready().await.map_err(|e| {
1767 tonic::Status::new(
1768 tonic::Code::Unknown,
1769 format!("Service was not ready: {}", e.into()),
1770 )
1771 })?;
1772 let codec = tonic::codec::ProstCodec::default();
1773 let path = http::uri::PathAndQuery::from_static(
1774 "/mavsdk.rpc.telemetry.TelemetryService/SetRateRcStatus",
1775 );
1776 self.inner.unary(request.into_request(), path, codec).await
1777 }
1778 #[doc = " Set rate to 'actuator control target' updates."]
1779 pub async fn set_rate_actuator_control_target(
1780 &mut self,
1781 request: impl tonic::IntoRequest<super::SetRateActuatorControlTargetRequest>,
1782 ) -> Result<tonic::Response<super::SetRateActuatorControlTargetResponse>, tonic::Status>
1783 {
1784 self.inner.ready().await.map_err(|e| {
1785 tonic::Status::new(
1786 tonic::Code::Unknown,
1787 format!("Service was not ready: {}", e.into()),
1788 )
1789 })?;
1790 let codec = tonic::codec::ProstCodec::default();
1791 let path = http::uri::PathAndQuery::from_static(
1792 "/mavsdk.rpc.telemetry.TelemetryService/SetRateActuatorControlTarget",
1793 );
1794 self.inner.unary(request.into_request(), path, codec).await
1795 }
1796 #[doc = " Set rate to 'actuator output status' updates."]
1797 pub async fn set_rate_actuator_output_status(
1798 &mut self,
1799 request: impl tonic::IntoRequest<super::SetRateActuatorOutputStatusRequest>,
1800 ) -> Result<tonic::Response<super::SetRateActuatorOutputStatusResponse>, tonic::Status>
1801 {
1802 self.inner.ready().await.map_err(|e| {
1803 tonic::Status::new(
1804 tonic::Code::Unknown,
1805 format!("Service was not ready: {}", e.into()),
1806 )
1807 })?;
1808 let codec = tonic::codec::ProstCodec::default();
1809 let path = http::uri::PathAndQuery::from_static(
1810 "/mavsdk.rpc.telemetry.TelemetryService/SetRateActuatorOutputStatus",
1811 );
1812 self.inner.unary(request.into_request(), path, codec).await
1813 }
1814 #[doc = " Set rate to 'odometry' updates."]
1815 pub async fn set_rate_odometry(
1816 &mut self,
1817 request: impl tonic::IntoRequest<super::SetRateOdometryRequest>,
1818 ) -> Result<tonic::Response<super::SetRateOdometryResponse>, tonic::Status> {
1819 self.inner.ready().await.map_err(|e| {
1820 tonic::Status::new(
1821 tonic::Code::Unknown,
1822 format!("Service was not ready: {}", e.into()),
1823 )
1824 })?;
1825 let codec = tonic::codec::ProstCodec::default();
1826 let path = http::uri::PathAndQuery::from_static(
1827 "/mavsdk.rpc.telemetry.TelemetryService/SetRateOdometry",
1828 );
1829 self.inner.unary(request.into_request(), path, codec).await
1830 }
1831 #[doc = " Set rate to 'position velocity' updates."]
1832 pub async fn set_rate_position_velocity_ned(
1833 &mut self,
1834 request: impl tonic::IntoRequest<super::SetRatePositionVelocityNedRequest>,
1835 ) -> Result<tonic::Response<super::SetRatePositionVelocityNedResponse>, tonic::Status>
1836 {
1837 self.inner.ready().await.map_err(|e| {
1838 tonic::Status::new(
1839 tonic::Code::Unknown,
1840 format!("Service was not ready: {}", e.into()),
1841 )
1842 })?;
1843 let codec = tonic::codec::ProstCodec::default();
1844 let path = http::uri::PathAndQuery::from_static(
1845 "/mavsdk.rpc.telemetry.TelemetryService/SetRatePositionVelocityNed",
1846 );
1847 self.inner.unary(request.into_request(), path, codec).await
1848 }
1849 #[doc = " Set rate to 'ground truth' updates."]
1850 pub async fn set_rate_ground_truth(
1851 &mut self,
1852 request: impl tonic::IntoRequest<super::SetRateGroundTruthRequest>,
1853 ) -> Result<tonic::Response<super::SetRateGroundTruthResponse>, tonic::Status> {
1854 self.inner.ready().await.map_err(|e| {
1855 tonic::Status::new(
1856 tonic::Code::Unknown,
1857 format!("Service was not ready: {}", e.into()),
1858 )
1859 })?;
1860 let codec = tonic::codec::ProstCodec::default();
1861 let path = http::uri::PathAndQuery::from_static(
1862 "/mavsdk.rpc.telemetry.TelemetryService/SetRateGroundTruth",
1863 );
1864 self.inner.unary(request.into_request(), path, codec).await
1865 }
1866 #[doc = " Set rate to 'fixedwing metrics' updates."]
1867 pub async fn set_rate_fixedwing_metrics(
1868 &mut self,
1869 request: impl tonic::IntoRequest<super::SetRateFixedwingMetricsRequest>,
1870 ) -> Result<tonic::Response<super::SetRateFixedwingMetricsResponse>, tonic::Status>
1871 {
1872 self.inner.ready().await.map_err(|e| {
1873 tonic::Status::new(
1874 tonic::Code::Unknown,
1875 format!("Service was not ready: {}", e.into()),
1876 )
1877 })?;
1878 let codec = tonic::codec::ProstCodec::default();
1879 let path = http::uri::PathAndQuery::from_static(
1880 "/mavsdk.rpc.telemetry.TelemetryService/SetRateFixedwingMetrics",
1881 );
1882 self.inner.unary(request.into_request(), path, codec).await
1883 }
1884 #[doc = " Set rate to 'IMU' updates."]
1885 pub async fn set_rate_imu(
1886 &mut self,
1887 request: impl tonic::IntoRequest<super::SetRateImuRequest>,
1888 ) -> Result<tonic::Response<super::SetRateImuResponse>, tonic::Status> {
1889 self.inner.ready().await.map_err(|e| {
1890 tonic::Status::new(
1891 tonic::Code::Unknown,
1892 format!("Service was not ready: {}", e.into()),
1893 )
1894 })?;
1895 let codec = tonic::codec::ProstCodec::default();
1896 let path = http::uri::PathAndQuery::from_static(
1897 "/mavsdk.rpc.telemetry.TelemetryService/SetRateImu",
1898 );
1899 self.inner.unary(request.into_request(), path, codec).await
1900 }
1901 #[doc = " Set rate to 'unix epoch time' updates."]
1902 pub async fn set_rate_unix_epoch_time(
1903 &mut self,
1904 request: impl tonic::IntoRequest<super::SetRateUnixEpochTimeRequest>,
1905 ) -> Result<tonic::Response<super::SetRateUnixEpochTimeResponse>, tonic::Status> {
1906 self.inner.ready().await.map_err(|e| {
1907 tonic::Status::new(
1908 tonic::Code::Unknown,
1909 format!("Service was not ready: {}", e.into()),
1910 )
1911 })?;
1912 let codec = tonic::codec::ProstCodec::default();
1913 let path = http::uri::PathAndQuery::from_static(
1914 "/mavsdk.rpc.telemetry.TelemetryService/SetRateUnixEpochTime",
1915 );
1916 self.inner.unary(request.into_request(), path, codec).await
1917 }
1918 #[doc = " Set rate to 'Distance Sensor' updates."]
1919 pub async fn set_rate_distance_sensor(
1920 &mut self,
1921 request: impl tonic::IntoRequest<super::SetRateDistanceSensorRequest>,
1922 ) -> Result<tonic::Response<super::SetRateDistanceSensorResponse>, tonic::Status> {
1923 self.inner.ready().await.map_err(|e| {
1924 tonic::Status::new(
1925 tonic::Code::Unknown,
1926 format!("Service was not ready: {}", e.into()),
1927 )
1928 })?;
1929 let codec = tonic::codec::ProstCodec::default();
1930 let path = http::uri::PathAndQuery::from_static(
1931 "/mavsdk.rpc.telemetry.TelemetryService/SetRateDistanceSensor",
1932 );
1933 self.inner.unary(request.into_request(), path, codec).await
1934 }
1935 #[doc = " Get the GPS location of where the estimator has been initialized."]
1936 pub async fn get_gps_global_origin(
1937 &mut self,
1938 request: impl tonic::IntoRequest<super::GetGpsGlobalOriginRequest>,
1939 ) -> Result<tonic::Response<super::GetGpsGlobalOriginResponse>, tonic::Status> {
1940 self.inner.ready().await.map_err(|e| {
1941 tonic::Status::new(
1942 tonic::Code::Unknown,
1943 format!("Service was not ready: {}", e.into()),
1944 )
1945 })?;
1946 let codec = tonic::codec::ProstCodec::default();
1947 let path = http::uri::PathAndQuery::from_static(
1948 "/mavsdk.rpc.telemetry.TelemetryService/GetGpsGlobalOrigin",
1949 );
1950 self.inner.unary(request.into_request(), path, codec).await
1951 }
1952 }
1953}
1954#[doc = r" Generated server implementations."]
1955pub mod telemetry_service_server {
1956 #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
1957 use tonic::codegen::*;
1958 #[doc = "Generated trait containing gRPC methods that should be implemented for use with TelemetryServiceServer."]
1959 #[async_trait]
1960 pub trait TelemetryService: Send + Sync + 'static {
1961 #[doc = "Server streaming response type for the SubscribePosition method."]
1962 type SubscribePositionStream: futures_core::Stream<Item = Result<super::PositionResponse, tonic::Status>>
1963 + Send
1964 + Sync
1965 + 'static;
1966 #[doc = " Subscribe to 'position' updates."]
1967 async fn subscribe_position(
1968 &self,
1969 request: tonic::Request<super::SubscribePositionRequest>,
1970 ) -> Result<tonic::Response<Self::SubscribePositionStream>, tonic::Status>;
1971 #[doc = "Server streaming response type for the SubscribeHome method."]
1972 type SubscribeHomeStream: futures_core::Stream<Item = Result<super::HomeResponse, tonic::Status>>
1973 + Send
1974 + Sync
1975 + 'static;
1976 #[doc = " Subscribe to 'home position' updates."]
1977 async fn subscribe_home(
1978 &self,
1979 request: tonic::Request<super::SubscribeHomeRequest>,
1980 ) -> Result<tonic::Response<Self::SubscribeHomeStream>, tonic::Status>;
1981 #[doc = "Server streaming response type for the SubscribeInAir method."]
1982 type SubscribeInAirStream: futures_core::Stream<Item = Result<super::InAirResponse, tonic::Status>>
1983 + Send
1984 + Sync
1985 + 'static;
1986 #[doc = " Subscribe to in-air updates."]
1987 async fn subscribe_in_air(
1988 &self,
1989 request: tonic::Request<super::SubscribeInAirRequest>,
1990 ) -> Result<tonic::Response<Self::SubscribeInAirStream>, tonic::Status>;
1991 #[doc = "Server streaming response type for the SubscribeLandedState method."]
1992 type SubscribeLandedStateStream: futures_core::Stream<Item = Result<super::LandedStateResponse, tonic::Status>>
1993 + Send
1994 + Sync
1995 + 'static;
1996 #[doc = " Subscribe to landed state updates"]
1997 async fn subscribe_landed_state(
1998 &self,
1999 request: tonic::Request<super::SubscribeLandedStateRequest>,
2000 ) -> Result<tonic::Response<Self::SubscribeLandedStateStream>, tonic::Status>;
2001 #[doc = "Server streaming response type for the SubscribeArmed method."]
2002 type SubscribeArmedStream: futures_core::Stream<Item = Result<super::ArmedResponse, tonic::Status>>
2003 + Send
2004 + Sync
2005 + 'static;
2006 #[doc = " Subscribe to armed updates."]
2007 async fn subscribe_armed(
2008 &self,
2009 request: tonic::Request<super::SubscribeArmedRequest>,
2010 ) -> Result<tonic::Response<Self::SubscribeArmedStream>, tonic::Status>;
2011 #[doc = "Server streaming response type for the SubscribeAttitudeQuaternion method."]
2012 type SubscribeAttitudeQuaternionStream: futures_core::Stream<Item = Result<super::AttitudeQuaternionResponse, tonic::Status>>
2013 + Send
2014 + Sync
2015 + 'static;
2016 #[doc = " Subscribe to 'attitude' updates (quaternion)."]
2017 async fn subscribe_attitude_quaternion(
2018 &self,
2019 request: tonic::Request<super::SubscribeAttitudeQuaternionRequest>,
2020 ) -> Result<tonic::Response<Self::SubscribeAttitudeQuaternionStream>, tonic::Status>;
2021 #[doc = "Server streaming response type for the SubscribeAttitudeEuler method."]
2022 type SubscribeAttitudeEulerStream: futures_core::Stream<Item = Result<super::AttitudeEulerResponse, tonic::Status>>
2023 + Send
2024 + Sync
2025 + 'static;
2026 #[doc = " Subscribe to 'attitude' updates (Euler)."]
2027 async fn subscribe_attitude_euler(
2028 &self,
2029 request: tonic::Request<super::SubscribeAttitudeEulerRequest>,
2030 ) -> Result<tonic::Response<Self::SubscribeAttitudeEulerStream>, tonic::Status>;
2031 #[doc = "Server streaming response type for the SubscribeAttitudeAngularVelocityBody method."]
2032 type SubscribeAttitudeAngularVelocityBodyStream: futures_core::Stream<
2033 Item = Result<super::AttitudeAngularVelocityBodyResponse, tonic::Status>,
2034 > + Send
2035 + Sync
2036 + 'static;
2037 #[doc = " Subscribe to 'attitude' updates (angular velocity)"]
2038 async fn subscribe_attitude_angular_velocity_body(
2039 &self,
2040 request: tonic::Request<super::SubscribeAttitudeAngularVelocityBodyRequest>,
2041 ) -> Result<tonic::Response<Self::SubscribeAttitudeAngularVelocityBodyStream>, tonic::Status>;
2042 #[doc = "Server streaming response type for the SubscribeCameraAttitudeQuaternion method."]
2043 type SubscribeCameraAttitudeQuaternionStream: futures_core::Stream<
2044 Item = Result<super::CameraAttitudeQuaternionResponse, tonic::Status>,
2045 > + Send
2046 + Sync
2047 + 'static;
2048 #[doc = " Subscribe to 'camera attitude' updates (quaternion)."]
2049 async fn subscribe_camera_attitude_quaternion(
2050 &self,
2051 request: tonic::Request<super::SubscribeCameraAttitudeQuaternionRequest>,
2052 ) -> Result<tonic::Response<Self::SubscribeCameraAttitudeQuaternionStream>, tonic::Status>;
2053 #[doc = "Server streaming response type for the SubscribeCameraAttitudeEuler method."]
2054 type SubscribeCameraAttitudeEulerStream: futures_core::Stream<Item = Result<super::CameraAttitudeEulerResponse, tonic::Status>>
2055 + Send
2056 + Sync
2057 + 'static;
2058 #[doc = " Subscribe to 'camera attitude' updates (Euler)."]
2059 async fn subscribe_camera_attitude_euler(
2060 &self,
2061 request: tonic::Request<super::SubscribeCameraAttitudeEulerRequest>,
2062 ) -> Result<tonic::Response<Self::SubscribeCameraAttitudeEulerStream>, tonic::Status>;
2063 #[doc = "Server streaming response type for the SubscribeVelocityNed method."]
2064 type SubscribeVelocityNedStream: futures_core::Stream<Item = Result<super::VelocityNedResponse, tonic::Status>>
2065 + Send
2066 + Sync
2067 + 'static;
2068 #[doc = " Subscribe to 'ground speed' updates (NED)."]
2069 async fn subscribe_velocity_ned(
2070 &self,
2071 request: tonic::Request<super::SubscribeVelocityNedRequest>,
2072 ) -> Result<tonic::Response<Self::SubscribeVelocityNedStream>, tonic::Status>;
2073 #[doc = "Server streaming response type for the SubscribeGpsInfo method."]
2074 type SubscribeGpsInfoStream: futures_core::Stream<Item = Result<super::GpsInfoResponse, tonic::Status>>
2075 + Send
2076 + Sync
2077 + 'static;
2078 #[doc = " Subscribe to 'GPS info' updates."]
2079 async fn subscribe_gps_info(
2080 &self,
2081 request: tonic::Request<super::SubscribeGpsInfoRequest>,
2082 ) -> Result<tonic::Response<Self::SubscribeGpsInfoStream>, tonic::Status>;
2083 #[doc = "Server streaming response type for the SubscribeBattery method."]
2084 type SubscribeBatteryStream: futures_core::Stream<Item = Result<super::BatteryResponse, tonic::Status>>
2085 + Send
2086 + Sync
2087 + 'static;
2088 #[doc = " Subscribe to 'battery' updates."]
2089 async fn subscribe_battery(
2090 &self,
2091 request: tonic::Request<super::SubscribeBatteryRequest>,
2092 ) -> Result<tonic::Response<Self::SubscribeBatteryStream>, tonic::Status>;
2093 #[doc = "Server streaming response type for the SubscribeFlightMode method."]
2094 type SubscribeFlightModeStream: futures_core::Stream<Item = Result<super::FlightModeResponse, tonic::Status>>
2095 + Send
2096 + Sync
2097 + 'static;
2098 #[doc = " Subscribe to 'flight mode' updates."]
2099 async fn subscribe_flight_mode(
2100 &self,
2101 request: tonic::Request<super::SubscribeFlightModeRequest>,
2102 ) -> Result<tonic::Response<Self::SubscribeFlightModeStream>, tonic::Status>;
2103 #[doc = "Server streaming response type for the SubscribeHealth method."]
2104 type SubscribeHealthStream: futures_core::Stream<Item = Result<super::HealthResponse, tonic::Status>>
2105 + Send
2106 + Sync
2107 + 'static;
2108 #[doc = " Subscribe to 'health' updates."]
2109 async fn subscribe_health(
2110 &self,
2111 request: tonic::Request<super::SubscribeHealthRequest>,
2112 ) -> Result<tonic::Response<Self::SubscribeHealthStream>, tonic::Status>;
2113 #[doc = "Server streaming response type for the SubscribeRcStatus method."]
2114 type SubscribeRcStatusStream: futures_core::Stream<Item = Result<super::RcStatusResponse, tonic::Status>>
2115 + Send
2116 + Sync
2117 + 'static;
2118 #[doc = " Subscribe to 'RC status' updates."]
2119 async fn subscribe_rc_status(
2120 &self,
2121 request: tonic::Request<super::SubscribeRcStatusRequest>,
2122 ) -> Result<tonic::Response<Self::SubscribeRcStatusStream>, tonic::Status>;
2123 #[doc = "Server streaming response type for the SubscribeStatusText method."]
2124 type SubscribeStatusTextStream: futures_core::Stream<Item = Result<super::StatusTextResponse, tonic::Status>>
2125 + Send
2126 + Sync
2127 + 'static;
2128 #[doc = " Subscribe to 'status text' updates."]
2129 async fn subscribe_status_text(
2130 &self,
2131 request: tonic::Request<super::SubscribeStatusTextRequest>,
2132 ) -> Result<tonic::Response<Self::SubscribeStatusTextStream>, tonic::Status>;
2133 #[doc = "Server streaming response type for the SubscribeActuatorControlTarget method."]
2134 type SubscribeActuatorControlTargetStream: futures_core::Stream<Item = Result<super::ActuatorControlTargetResponse, tonic::Status>>
2135 + Send
2136 + Sync
2137 + 'static;
2138 #[doc = " Subscribe to 'actuator control target' updates."]
2139 async fn subscribe_actuator_control_target(
2140 &self,
2141 request: tonic::Request<super::SubscribeActuatorControlTargetRequest>,
2142 ) -> Result<tonic::Response<Self::SubscribeActuatorControlTargetStream>, tonic::Status>;
2143 #[doc = "Server streaming response type for the SubscribeActuatorOutputStatus method."]
2144 type SubscribeActuatorOutputStatusStream: futures_core::Stream<Item = Result<super::ActuatorOutputStatusResponse, tonic::Status>>
2145 + Send
2146 + Sync
2147 + 'static;
2148 #[doc = " Subscribe to 'actuator output status' updates."]
2149 async fn subscribe_actuator_output_status(
2150 &self,
2151 request: tonic::Request<super::SubscribeActuatorOutputStatusRequest>,
2152 ) -> Result<tonic::Response<Self::SubscribeActuatorOutputStatusStream>, tonic::Status>;
2153 #[doc = "Server streaming response type for the SubscribeOdometry method."]
2154 type SubscribeOdometryStream: futures_core::Stream<Item = Result<super::OdometryResponse, tonic::Status>>
2155 + Send
2156 + Sync
2157 + 'static;
2158 #[doc = " Subscribe to 'odometry' updates."]
2159 async fn subscribe_odometry(
2160 &self,
2161 request: tonic::Request<super::SubscribeOdometryRequest>,
2162 ) -> Result<tonic::Response<Self::SubscribeOdometryStream>, tonic::Status>;
2163 #[doc = "Server streaming response type for the SubscribePositionVelocityNed method."]
2164 type SubscribePositionVelocityNedStream: futures_core::Stream<Item = Result<super::PositionVelocityNedResponse, tonic::Status>>
2165 + Send
2166 + Sync
2167 + 'static;
2168 #[doc = " Subscribe to 'position velocity' updates."]
2169 async fn subscribe_position_velocity_ned(
2170 &self,
2171 request: tonic::Request<super::SubscribePositionVelocityNedRequest>,
2172 ) -> Result<tonic::Response<Self::SubscribePositionVelocityNedStream>, tonic::Status>;
2173 #[doc = "Server streaming response type for the SubscribeGroundTruth method."]
2174 type SubscribeGroundTruthStream: futures_core::Stream<Item = Result<super::GroundTruthResponse, tonic::Status>>
2175 + Send
2176 + Sync
2177 + 'static;
2178 #[doc = " Subscribe to 'ground truth' updates."]
2179 async fn subscribe_ground_truth(
2180 &self,
2181 request: tonic::Request<super::SubscribeGroundTruthRequest>,
2182 ) -> Result<tonic::Response<Self::SubscribeGroundTruthStream>, tonic::Status>;
2183 #[doc = "Server streaming response type for the SubscribeFixedwingMetrics method."]
2184 type SubscribeFixedwingMetricsStream: futures_core::Stream<Item = Result<super::FixedwingMetricsResponse, tonic::Status>>
2185 + Send
2186 + Sync
2187 + 'static;
2188 #[doc = " Subscribe to 'fixedwing metrics' updates."]
2189 async fn subscribe_fixedwing_metrics(
2190 &self,
2191 request: tonic::Request<super::SubscribeFixedwingMetricsRequest>,
2192 ) -> Result<tonic::Response<Self::SubscribeFixedwingMetricsStream>, tonic::Status>;
2193 #[doc = "Server streaming response type for the SubscribeImu method."]
2194 type SubscribeImuStream: futures_core::Stream<Item = Result<super::ImuResponse, tonic::Status>>
2195 + Send
2196 + Sync
2197 + 'static;
2198 #[doc = " Subscribe to 'IMU' updates."]
2199 async fn subscribe_imu(
2200 &self,
2201 request: tonic::Request<super::SubscribeImuRequest>,
2202 ) -> Result<tonic::Response<Self::SubscribeImuStream>, tonic::Status>;
2203 #[doc = "Server streaming response type for the SubscribeHealthAllOk method."]
2204 type SubscribeHealthAllOkStream: futures_core::Stream<Item = Result<super::HealthAllOkResponse, tonic::Status>>
2205 + Send
2206 + Sync
2207 + 'static;
2208 #[doc = " Subscribe to 'HealthAllOk' updates."]
2209 async fn subscribe_health_all_ok(
2210 &self,
2211 request: tonic::Request<super::SubscribeHealthAllOkRequest>,
2212 ) -> Result<tonic::Response<Self::SubscribeHealthAllOkStream>, tonic::Status>;
2213 #[doc = "Server streaming response type for the SubscribeUnixEpochTime method."]
2214 type SubscribeUnixEpochTimeStream: futures_core::Stream<Item = Result<super::UnixEpochTimeResponse, tonic::Status>>
2215 + Send
2216 + Sync
2217 + 'static;
2218 #[doc = " Subscribe to 'unix epoch time' updates."]
2219 async fn subscribe_unix_epoch_time(
2220 &self,
2221 request: tonic::Request<super::SubscribeUnixEpochTimeRequest>,
2222 ) -> Result<tonic::Response<Self::SubscribeUnixEpochTimeStream>, tonic::Status>;
2223 #[doc = "Server streaming response type for the SubscribeDistanceSensor method."]
2224 type SubscribeDistanceSensorStream: futures_core::Stream<Item = Result<super::DistanceSensorResponse, tonic::Status>>
2225 + Send
2226 + Sync
2227 + 'static;
2228 #[doc = " Subscribe to 'Distance Sensor' updates."]
2229 async fn subscribe_distance_sensor(
2230 &self,
2231 request: tonic::Request<super::SubscribeDistanceSensorRequest>,
2232 ) -> Result<tonic::Response<Self::SubscribeDistanceSensorStream>, tonic::Status>;
2233 #[doc = " Set rate to 'position' updates."]
2234 async fn set_rate_position(
2235 &self,
2236 request: tonic::Request<super::SetRatePositionRequest>,
2237 ) -> Result<tonic::Response<super::SetRatePositionResponse>, tonic::Status>;
2238 #[doc = " Set rate to 'home position' updates."]
2239 async fn set_rate_home(
2240 &self,
2241 request: tonic::Request<super::SetRateHomeRequest>,
2242 ) -> Result<tonic::Response<super::SetRateHomeResponse>, tonic::Status>;
2243 #[doc = " Set rate to in-air updates."]
2244 async fn set_rate_in_air(
2245 &self,
2246 request: tonic::Request<super::SetRateInAirRequest>,
2247 ) -> Result<tonic::Response<super::SetRateInAirResponse>, tonic::Status>;
2248 #[doc = " Set rate to landed state updates"]
2249 async fn set_rate_landed_state(
2250 &self,
2251 request: tonic::Request<super::SetRateLandedStateRequest>,
2252 ) -> Result<tonic::Response<super::SetRateLandedStateResponse>, tonic::Status>;
2253 #[doc = " Set rate to 'attitude' updates."]
2254 async fn set_rate_attitude(
2255 &self,
2256 request: tonic::Request<super::SetRateAttitudeRequest>,
2257 ) -> Result<tonic::Response<super::SetRateAttitudeResponse>, tonic::Status>;
2258 #[doc = " Set rate of camera attitude updates."]
2259 async fn set_rate_camera_attitude(
2260 &self,
2261 request: tonic::Request<super::SetRateCameraAttitudeRequest>,
2262 ) -> Result<tonic::Response<super::SetRateCameraAttitudeResponse>, tonic::Status>;
2263 #[doc = " Set rate to 'ground speed' updates (NED)."]
2264 async fn set_rate_velocity_ned(
2265 &self,
2266 request: tonic::Request<super::SetRateVelocityNedRequest>,
2267 ) -> Result<tonic::Response<super::SetRateVelocityNedResponse>, tonic::Status>;
2268 #[doc = " Set rate to 'GPS info' updates."]
2269 async fn set_rate_gps_info(
2270 &self,
2271 request: tonic::Request<super::SetRateGpsInfoRequest>,
2272 ) -> Result<tonic::Response<super::SetRateGpsInfoResponse>, tonic::Status>;
2273 #[doc = " Set rate to 'battery' updates."]
2274 async fn set_rate_battery(
2275 &self,
2276 request: tonic::Request<super::SetRateBatteryRequest>,
2277 ) -> Result<tonic::Response<super::SetRateBatteryResponse>, tonic::Status>;
2278 #[doc = " Set rate to 'RC status' updates."]
2279 async fn set_rate_rc_status(
2280 &self,
2281 request: tonic::Request<super::SetRateRcStatusRequest>,
2282 ) -> Result<tonic::Response<super::SetRateRcStatusResponse>, tonic::Status>;
2283 #[doc = " Set rate to 'actuator control target' updates."]
2284 async fn set_rate_actuator_control_target(
2285 &self,
2286 request: tonic::Request<super::SetRateActuatorControlTargetRequest>,
2287 ) -> Result<tonic::Response<super::SetRateActuatorControlTargetResponse>, tonic::Status>;
2288 #[doc = " Set rate to 'actuator output status' updates."]
2289 async fn set_rate_actuator_output_status(
2290 &self,
2291 request: tonic::Request<super::SetRateActuatorOutputStatusRequest>,
2292 ) -> Result<tonic::Response<super::SetRateActuatorOutputStatusResponse>, tonic::Status>;
2293 #[doc = " Set rate to 'odometry' updates."]
2294 async fn set_rate_odometry(
2295 &self,
2296 request: tonic::Request<super::SetRateOdometryRequest>,
2297 ) -> Result<tonic::Response<super::SetRateOdometryResponse>, tonic::Status>;
2298 #[doc = " Set rate to 'position velocity' updates."]
2299 async fn set_rate_position_velocity_ned(
2300 &self,
2301 request: tonic::Request<super::SetRatePositionVelocityNedRequest>,
2302 ) -> Result<tonic::Response<super::SetRatePositionVelocityNedResponse>, tonic::Status>;
2303 #[doc = " Set rate to 'ground truth' updates."]
2304 async fn set_rate_ground_truth(
2305 &self,
2306 request: tonic::Request<super::SetRateGroundTruthRequest>,
2307 ) -> Result<tonic::Response<super::SetRateGroundTruthResponse>, tonic::Status>;
2308 #[doc = " Set rate to 'fixedwing metrics' updates."]
2309 async fn set_rate_fixedwing_metrics(
2310 &self,
2311 request: tonic::Request<super::SetRateFixedwingMetricsRequest>,
2312 ) -> Result<tonic::Response<super::SetRateFixedwingMetricsResponse>, tonic::Status>;
2313 #[doc = " Set rate to 'IMU' updates."]
2314 async fn set_rate_imu(
2315 &self,
2316 request: tonic::Request<super::SetRateImuRequest>,
2317 ) -> Result<tonic::Response<super::SetRateImuResponse>, tonic::Status>;
2318 #[doc = " Set rate to 'unix epoch time' updates."]
2319 async fn set_rate_unix_epoch_time(
2320 &self,
2321 request: tonic::Request<super::SetRateUnixEpochTimeRequest>,
2322 ) -> Result<tonic::Response<super::SetRateUnixEpochTimeResponse>, tonic::Status>;
2323 #[doc = " Set rate to 'Distance Sensor' updates."]
2324 async fn set_rate_distance_sensor(
2325 &self,
2326 request: tonic::Request<super::SetRateDistanceSensorRequest>,
2327 ) -> Result<tonic::Response<super::SetRateDistanceSensorResponse>, tonic::Status>;
2328 #[doc = " Get the GPS location of where the estimator has been initialized."]
2329 async fn get_gps_global_origin(
2330 &self,
2331 request: tonic::Request<super::GetGpsGlobalOriginRequest>,
2332 ) -> Result<tonic::Response<super::GetGpsGlobalOriginResponse>, tonic::Status>;
2333 }
2334 #[doc = ""]
2335 #[doc = " Allow users to get vehicle telemetry and state information"]
2336 #[doc = " (e.g. battery, GPS, RC connection, flight mode etc.) and set telemetry update rates."]
2337 #[derive(Debug)]
2338 pub struct TelemetryServiceServer<T: TelemetryService> {
2339 inner: _Inner<T>,
2340 accept_compression_encodings: (),
2341 send_compression_encodings: (),
2342 }
2343 struct _Inner<T>(Arc<T>);
2344 impl<T: TelemetryService> TelemetryServiceServer<T> {
2345 pub fn new(inner: T) -> Self {
2346 let inner = Arc::new(inner);
2347 let inner = _Inner(inner);
2348 Self {
2349 inner,
2350 accept_compression_encodings: Default::default(),
2351 send_compression_encodings: Default::default(),
2352 }
2353 }
2354 pub fn with_interceptor<F>(inner: T, interceptor: F) -> InterceptedService<Self, F>
2355 where
2356 F: tonic::service::Interceptor,
2357 {
2358 InterceptedService::new(Self::new(inner), interceptor)
2359 }
2360 }
2361 impl<T, B> tonic::codegen::Service<http::Request<B>> for TelemetryServiceServer<T>
2362 where
2363 T: TelemetryService,
2364 B: Body + Send + Sync + 'static,
2365 B::Error: Into<StdError> + Send + 'static,
2366 {
2367 type Response = http::Response<tonic::body::BoxBody>;
2368 type Error = Never;
2369 type Future = BoxFuture<Self::Response, Self::Error>;
2370 fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
2371 Poll::Ready(Ok(()))
2372 }
2373 fn call(&mut self, req: http::Request<B>) -> Self::Future {
2374 let inner = self.inner.clone();
2375 match req.uri().path() {
2376 "/mavsdk.rpc.telemetry.TelemetryService/SubscribePosition" => {
2377 #[allow(non_camel_case_types)]
2378 struct SubscribePositionSvc<T: TelemetryService>(pub Arc<T>);
2379 impl<T: TelemetryService>
2380 tonic::server::ServerStreamingService<super::SubscribePositionRequest>
2381 for SubscribePositionSvc<T>
2382 {
2383 type Response = super::PositionResponse;
2384 type ResponseStream = T::SubscribePositionStream;
2385 type Future =
2386 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2387 fn call(
2388 &mut self,
2389 request: tonic::Request<super::SubscribePositionRequest>,
2390 ) -> Self::Future {
2391 let inner = self.0.clone();
2392 let fut = async move { (*inner).subscribe_position(request).await };
2393 Box::pin(fut)
2394 }
2395 }
2396 let accept_compression_encodings = self.accept_compression_encodings;
2397 let send_compression_encodings = self.send_compression_encodings;
2398 let inner = self.inner.clone();
2399 let fut = async move {
2400 let inner = inner.0;
2401 let method = SubscribePositionSvc(inner);
2402 let codec = tonic::codec::ProstCodec::default();
2403 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2404 accept_compression_encodings,
2405 send_compression_encodings,
2406 );
2407 let res = grpc.server_streaming(method, req).await;
2408 Ok(res)
2409 };
2410 Box::pin(fut)
2411 }
2412 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeHome" => {
2413 #[allow(non_camel_case_types)]
2414 struct SubscribeHomeSvc<T: TelemetryService>(pub Arc<T>);
2415 impl<T: TelemetryService>
2416 tonic::server::ServerStreamingService<super::SubscribeHomeRequest>
2417 for SubscribeHomeSvc<T>
2418 {
2419 type Response = super::HomeResponse;
2420 type ResponseStream = T::SubscribeHomeStream;
2421 type Future =
2422 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2423 fn call(
2424 &mut self,
2425 request: tonic::Request<super::SubscribeHomeRequest>,
2426 ) -> Self::Future {
2427 let inner = self.0.clone();
2428 let fut = async move { (*inner).subscribe_home(request).await };
2429 Box::pin(fut)
2430 }
2431 }
2432 let accept_compression_encodings = self.accept_compression_encodings;
2433 let send_compression_encodings = self.send_compression_encodings;
2434 let inner = self.inner.clone();
2435 let fut = async move {
2436 let inner = inner.0;
2437 let method = SubscribeHomeSvc(inner);
2438 let codec = tonic::codec::ProstCodec::default();
2439 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2440 accept_compression_encodings,
2441 send_compression_encodings,
2442 );
2443 let res = grpc.server_streaming(method, req).await;
2444 Ok(res)
2445 };
2446 Box::pin(fut)
2447 }
2448 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeInAir" => {
2449 #[allow(non_camel_case_types)]
2450 struct SubscribeInAirSvc<T: TelemetryService>(pub Arc<T>);
2451 impl<T: TelemetryService>
2452 tonic::server::ServerStreamingService<super::SubscribeInAirRequest>
2453 for SubscribeInAirSvc<T>
2454 {
2455 type Response = super::InAirResponse;
2456 type ResponseStream = T::SubscribeInAirStream;
2457 type Future =
2458 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2459 fn call(
2460 &mut self,
2461 request: tonic::Request<super::SubscribeInAirRequest>,
2462 ) -> Self::Future {
2463 let inner = self.0.clone();
2464 let fut = async move { (*inner).subscribe_in_air(request).await };
2465 Box::pin(fut)
2466 }
2467 }
2468 let accept_compression_encodings = self.accept_compression_encodings;
2469 let send_compression_encodings = self.send_compression_encodings;
2470 let inner = self.inner.clone();
2471 let fut = async move {
2472 let inner = inner.0;
2473 let method = SubscribeInAirSvc(inner);
2474 let codec = tonic::codec::ProstCodec::default();
2475 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2476 accept_compression_encodings,
2477 send_compression_encodings,
2478 );
2479 let res = grpc.server_streaming(method, req).await;
2480 Ok(res)
2481 };
2482 Box::pin(fut)
2483 }
2484 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeLandedState" => {
2485 #[allow(non_camel_case_types)]
2486 struct SubscribeLandedStateSvc<T: TelemetryService>(pub Arc<T>);
2487 impl<T: TelemetryService>
2488 tonic::server::ServerStreamingService<super::SubscribeLandedStateRequest>
2489 for SubscribeLandedStateSvc<T>
2490 {
2491 type Response = super::LandedStateResponse;
2492 type ResponseStream = T::SubscribeLandedStateStream;
2493 type Future =
2494 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2495 fn call(
2496 &mut self,
2497 request: tonic::Request<super::SubscribeLandedStateRequest>,
2498 ) -> Self::Future {
2499 let inner = self.0.clone();
2500 let fut = async move { (*inner).subscribe_landed_state(request).await };
2501 Box::pin(fut)
2502 }
2503 }
2504 let accept_compression_encodings = self.accept_compression_encodings;
2505 let send_compression_encodings = self.send_compression_encodings;
2506 let inner = self.inner.clone();
2507 let fut = async move {
2508 let inner = inner.0;
2509 let method = SubscribeLandedStateSvc(inner);
2510 let codec = tonic::codec::ProstCodec::default();
2511 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2512 accept_compression_encodings,
2513 send_compression_encodings,
2514 );
2515 let res = grpc.server_streaming(method, req).await;
2516 Ok(res)
2517 };
2518 Box::pin(fut)
2519 }
2520 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeArmed" => {
2521 #[allow(non_camel_case_types)]
2522 struct SubscribeArmedSvc<T: TelemetryService>(pub Arc<T>);
2523 impl<T: TelemetryService>
2524 tonic::server::ServerStreamingService<super::SubscribeArmedRequest>
2525 for SubscribeArmedSvc<T>
2526 {
2527 type Response = super::ArmedResponse;
2528 type ResponseStream = T::SubscribeArmedStream;
2529 type Future =
2530 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2531 fn call(
2532 &mut self,
2533 request: tonic::Request<super::SubscribeArmedRequest>,
2534 ) -> Self::Future {
2535 let inner = self.0.clone();
2536 let fut = async move { (*inner).subscribe_armed(request).await };
2537 Box::pin(fut)
2538 }
2539 }
2540 let accept_compression_encodings = self.accept_compression_encodings;
2541 let send_compression_encodings = self.send_compression_encodings;
2542 let inner = self.inner.clone();
2543 let fut = async move {
2544 let inner = inner.0;
2545 let method = SubscribeArmedSvc(inner);
2546 let codec = tonic::codec::ProstCodec::default();
2547 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2548 accept_compression_encodings,
2549 send_compression_encodings,
2550 );
2551 let res = grpc.server_streaming(method, req).await;
2552 Ok(res)
2553 };
2554 Box::pin(fut)
2555 }
2556 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeAttitudeQuaternion" => {
2557 #[allow(non_camel_case_types)]
2558 struct SubscribeAttitudeQuaternionSvc<T: TelemetryService>(pub Arc<T>);
2559 impl<T: TelemetryService>
2560 tonic::server::ServerStreamingService<
2561 super::SubscribeAttitudeQuaternionRequest,
2562 > for SubscribeAttitudeQuaternionSvc<T>
2563 {
2564 type Response = super::AttitudeQuaternionResponse;
2565 type ResponseStream = T::SubscribeAttitudeQuaternionStream;
2566 type Future =
2567 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2568 fn call(
2569 &mut self,
2570 request: tonic::Request<super::SubscribeAttitudeQuaternionRequest>,
2571 ) -> Self::Future {
2572 let inner = self.0.clone();
2573 let fut = async move {
2574 (*inner).subscribe_attitude_quaternion(request).await
2575 };
2576 Box::pin(fut)
2577 }
2578 }
2579 let accept_compression_encodings = self.accept_compression_encodings;
2580 let send_compression_encodings = self.send_compression_encodings;
2581 let inner = self.inner.clone();
2582 let fut = async move {
2583 let inner = inner.0;
2584 let method = SubscribeAttitudeQuaternionSvc(inner);
2585 let codec = tonic::codec::ProstCodec::default();
2586 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2587 accept_compression_encodings,
2588 send_compression_encodings,
2589 );
2590 let res = grpc.server_streaming(method, req).await;
2591 Ok(res)
2592 };
2593 Box::pin(fut)
2594 }
2595 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeAttitudeEuler" => {
2596 #[allow(non_camel_case_types)]
2597 struct SubscribeAttitudeEulerSvc<T: TelemetryService>(pub Arc<T>);
2598 impl<T: TelemetryService>
2599 tonic::server::ServerStreamingService<super::SubscribeAttitudeEulerRequest>
2600 for SubscribeAttitudeEulerSvc<T>
2601 {
2602 type Response = super::AttitudeEulerResponse;
2603 type ResponseStream = T::SubscribeAttitudeEulerStream;
2604 type Future =
2605 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2606 fn call(
2607 &mut self,
2608 request: tonic::Request<super::SubscribeAttitudeEulerRequest>,
2609 ) -> Self::Future {
2610 let inner = self.0.clone();
2611 let fut =
2612 async move { (*inner).subscribe_attitude_euler(request).await };
2613 Box::pin(fut)
2614 }
2615 }
2616 let accept_compression_encodings = self.accept_compression_encodings;
2617 let send_compression_encodings = self.send_compression_encodings;
2618 let inner = self.inner.clone();
2619 let fut = async move {
2620 let inner = inner.0;
2621 let method = SubscribeAttitudeEulerSvc(inner);
2622 let codec = tonic::codec::ProstCodec::default();
2623 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2624 accept_compression_encodings,
2625 send_compression_encodings,
2626 );
2627 let res = grpc.server_streaming(method, req).await;
2628 Ok(res)
2629 };
2630 Box::pin(fut)
2631 }
2632 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeAttitudeAngularVelocityBody" => {
2633 #[allow(non_camel_case_types)]
2634 struct SubscribeAttitudeAngularVelocityBodySvc<T: TelemetryService>(pub Arc<T>);
2635 impl<T: TelemetryService>
2636 tonic::server::ServerStreamingService<
2637 super::SubscribeAttitudeAngularVelocityBodyRequest,
2638 > for SubscribeAttitudeAngularVelocityBodySvc<T>
2639 {
2640 type Response = super::AttitudeAngularVelocityBodyResponse;
2641 type ResponseStream = T::SubscribeAttitudeAngularVelocityBodyStream;
2642 type Future =
2643 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2644 fn call(
2645 &mut self,
2646 request: tonic::Request<
2647 super::SubscribeAttitudeAngularVelocityBodyRequest,
2648 >,
2649 ) -> Self::Future {
2650 let inner = self.0.clone();
2651 let fut = async move {
2652 (*inner)
2653 .subscribe_attitude_angular_velocity_body(request)
2654 .await
2655 };
2656 Box::pin(fut)
2657 }
2658 }
2659 let accept_compression_encodings = self.accept_compression_encodings;
2660 let send_compression_encodings = self.send_compression_encodings;
2661 let inner = self.inner.clone();
2662 let fut = async move {
2663 let inner = inner.0;
2664 let method = SubscribeAttitudeAngularVelocityBodySvc(inner);
2665 let codec = tonic::codec::ProstCodec::default();
2666 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2667 accept_compression_encodings,
2668 send_compression_encodings,
2669 );
2670 let res = grpc.server_streaming(method, req).await;
2671 Ok(res)
2672 };
2673 Box::pin(fut)
2674 }
2675 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeCameraAttitudeQuaternion" => {
2676 #[allow(non_camel_case_types)]
2677 struct SubscribeCameraAttitudeQuaternionSvc<T: TelemetryService>(pub Arc<T>);
2678 impl<T: TelemetryService>
2679 tonic::server::ServerStreamingService<
2680 super::SubscribeCameraAttitudeQuaternionRequest,
2681 > for SubscribeCameraAttitudeQuaternionSvc<T>
2682 {
2683 type Response = super::CameraAttitudeQuaternionResponse;
2684 type ResponseStream = T::SubscribeCameraAttitudeQuaternionStream;
2685 type Future =
2686 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2687 fn call(
2688 &mut self,
2689 request: tonic::Request<
2690 super::SubscribeCameraAttitudeQuaternionRequest,
2691 >,
2692 ) -> Self::Future {
2693 let inner = self.0.clone();
2694 let fut = async move {
2695 (*inner).subscribe_camera_attitude_quaternion(request).await
2696 };
2697 Box::pin(fut)
2698 }
2699 }
2700 let accept_compression_encodings = self.accept_compression_encodings;
2701 let send_compression_encodings = self.send_compression_encodings;
2702 let inner = self.inner.clone();
2703 let fut = async move {
2704 let inner = inner.0;
2705 let method = SubscribeCameraAttitudeQuaternionSvc(inner);
2706 let codec = tonic::codec::ProstCodec::default();
2707 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2708 accept_compression_encodings,
2709 send_compression_encodings,
2710 );
2711 let res = grpc.server_streaming(method, req).await;
2712 Ok(res)
2713 };
2714 Box::pin(fut)
2715 }
2716 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeCameraAttitudeEuler" => {
2717 #[allow(non_camel_case_types)]
2718 struct SubscribeCameraAttitudeEulerSvc<T: TelemetryService>(pub Arc<T>);
2719 impl<T: TelemetryService>
2720 tonic::server::ServerStreamingService<
2721 super::SubscribeCameraAttitudeEulerRequest,
2722 > for SubscribeCameraAttitudeEulerSvc<T>
2723 {
2724 type Response = super::CameraAttitudeEulerResponse;
2725 type ResponseStream = T::SubscribeCameraAttitudeEulerStream;
2726 type Future =
2727 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2728 fn call(
2729 &mut self,
2730 request: tonic::Request<super::SubscribeCameraAttitudeEulerRequest>,
2731 ) -> Self::Future {
2732 let inner = self.0.clone();
2733 let fut = async move {
2734 (*inner).subscribe_camera_attitude_euler(request).await
2735 };
2736 Box::pin(fut)
2737 }
2738 }
2739 let accept_compression_encodings = self.accept_compression_encodings;
2740 let send_compression_encodings = self.send_compression_encodings;
2741 let inner = self.inner.clone();
2742 let fut = async move {
2743 let inner = inner.0;
2744 let method = SubscribeCameraAttitudeEulerSvc(inner);
2745 let codec = tonic::codec::ProstCodec::default();
2746 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2747 accept_compression_encodings,
2748 send_compression_encodings,
2749 );
2750 let res = grpc.server_streaming(method, req).await;
2751 Ok(res)
2752 };
2753 Box::pin(fut)
2754 }
2755 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeVelocityNed" => {
2756 #[allow(non_camel_case_types)]
2757 struct SubscribeVelocityNedSvc<T: TelemetryService>(pub Arc<T>);
2758 impl<T: TelemetryService>
2759 tonic::server::ServerStreamingService<super::SubscribeVelocityNedRequest>
2760 for SubscribeVelocityNedSvc<T>
2761 {
2762 type Response = super::VelocityNedResponse;
2763 type ResponseStream = T::SubscribeVelocityNedStream;
2764 type Future =
2765 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2766 fn call(
2767 &mut self,
2768 request: tonic::Request<super::SubscribeVelocityNedRequest>,
2769 ) -> Self::Future {
2770 let inner = self.0.clone();
2771 let fut = async move { (*inner).subscribe_velocity_ned(request).await };
2772 Box::pin(fut)
2773 }
2774 }
2775 let accept_compression_encodings = self.accept_compression_encodings;
2776 let send_compression_encodings = self.send_compression_encodings;
2777 let inner = self.inner.clone();
2778 let fut = async move {
2779 let inner = inner.0;
2780 let method = SubscribeVelocityNedSvc(inner);
2781 let codec = tonic::codec::ProstCodec::default();
2782 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2783 accept_compression_encodings,
2784 send_compression_encodings,
2785 );
2786 let res = grpc.server_streaming(method, req).await;
2787 Ok(res)
2788 };
2789 Box::pin(fut)
2790 }
2791 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeGpsInfo" => {
2792 #[allow(non_camel_case_types)]
2793 struct SubscribeGpsInfoSvc<T: TelemetryService>(pub Arc<T>);
2794 impl<T: TelemetryService>
2795 tonic::server::ServerStreamingService<super::SubscribeGpsInfoRequest>
2796 for SubscribeGpsInfoSvc<T>
2797 {
2798 type Response = super::GpsInfoResponse;
2799 type ResponseStream = T::SubscribeGpsInfoStream;
2800 type Future =
2801 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2802 fn call(
2803 &mut self,
2804 request: tonic::Request<super::SubscribeGpsInfoRequest>,
2805 ) -> Self::Future {
2806 let inner = self.0.clone();
2807 let fut = async move { (*inner).subscribe_gps_info(request).await };
2808 Box::pin(fut)
2809 }
2810 }
2811 let accept_compression_encodings = self.accept_compression_encodings;
2812 let send_compression_encodings = self.send_compression_encodings;
2813 let inner = self.inner.clone();
2814 let fut = async move {
2815 let inner = inner.0;
2816 let method = SubscribeGpsInfoSvc(inner);
2817 let codec = tonic::codec::ProstCodec::default();
2818 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2819 accept_compression_encodings,
2820 send_compression_encodings,
2821 );
2822 let res = grpc.server_streaming(method, req).await;
2823 Ok(res)
2824 };
2825 Box::pin(fut)
2826 }
2827 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeBattery" => {
2828 #[allow(non_camel_case_types)]
2829 struct SubscribeBatterySvc<T: TelemetryService>(pub Arc<T>);
2830 impl<T: TelemetryService>
2831 tonic::server::ServerStreamingService<super::SubscribeBatteryRequest>
2832 for SubscribeBatterySvc<T>
2833 {
2834 type Response = super::BatteryResponse;
2835 type ResponseStream = T::SubscribeBatteryStream;
2836 type Future =
2837 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2838 fn call(
2839 &mut self,
2840 request: tonic::Request<super::SubscribeBatteryRequest>,
2841 ) -> Self::Future {
2842 let inner = self.0.clone();
2843 let fut = async move { (*inner).subscribe_battery(request).await };
2844 Box::pin(fut)
2845 }
2846 }
2847 let accept_compression_encodings = self.accept_compression_encodings;
2848 let send_compression_encodings = self.send_compression_encodings;
2849 let inner = self.inner.clone();
2850 let fut = async move {
2851 let inner = inner.0;
2852 let method = SubscribeBatterySvc(inner);
2853 let codec = tonic::codec::ProstCodec::default();
2854 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2855 accept_compression_encodings,
2856 send_compression_encodings,
2857 );
2858 let res = grpc.server_streaming(method, req).await;
2859 Ok(res)
2860 };
2861 Box::pin(fut)
2862 }
2863 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeFlightMode" => {
2864 #[allow(non_camel_case_types)]
2865 struct SubscribeFlightModeSvc<T: TelemetryService>(pub Arc<T>);
2866 impl<T: TelemetryService>
2867 tonic::server::ServerStreamingService<super::SubscribeFlightModeRequest>
2868 for SubscribeFlightModeSvc<T>
2869 {
2870 type Response = super::FlightModeResponse;
2871 type ResponseStream = T::SubscribeFlightModeStream;
2872 type Future =
2873 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2874 fn call(
2875 &mut self,
2876 request: tonic::Request<super::SubscribeFlightModeRequest>,
2877 ) -> Self::Future {
2878 let inner = self.0.clone();
2879 let fut = async move { (*inner).subscribe_flight_mode(request).await };
2880 Box::pin(fut)
2881 }
2882 }
2883 let accept_compression_encodings = self.accept_compression_encodings;
2884 let send_compression_encodings = self.send_compression_encodings;
2885 let inner = self.inner.clone();
2886 let fut = async move {
2887 let inner = inner.0;
2888 let method = SubscribeFlightModeSvc(inner);
2889 let codec = tonic::codec::ProstCodec::default();
2890 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2891 accept_compression_encodings,
2892 send_compression_encodings,
2893 );
2894 let res = grpc.server_streaming(method, req).await;
2895 Ok(res)
2896 };
2897 Box::pin(fut)
2898 }
2899 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeHealth" => {
2900 #[allow(non_camel_case_types)]
2901 struct SubscribeHealthSvc<T: TelemetryService>(pub Arc<T>);
2902 impl<T: TelemetryService>
2903 tonic::server::ServerStreamingService<super::SubscribeHealthRequest>
2904 for SubscribeHealthSvc<T>
2905 {
2906 type Response = super::HealthResponse;
2907 type ResponseStream = T::SubscribeHealthStream;
2908 type Future =
2909 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2910 fn call(
2911 &mut self,
2912 request: tonic::Request<super::SubscribeHealthRequest>,
2913 ) -> Self::Future {
2914 let inner = self.0.clone();
2915 let fut = async move { (*inner).subscribe_health(request).await };
2916 Box::pin(fut)
2917 }
2918 }
2919 let accept_compression_encodings = self.accept_compression_encodings;
2920 let send_compression_encodings = self.send_compression_encodings;
2921 let inner = self.inner.clone();
2922 let fut = async move {
2923 let inner = inner.0;
2924 let method = SubscribeHealthSvc(inner);
2925 let codec = tonic::codec::ProstCodec::default();
2926 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2927 accept_compression_encodings,
2928 send_compression_encodings,
2929 );
2930 let res = grpc.server_streaming(method, req).await;
2931 Ok(res)
2932 };
2933 Box::pin(fut)
2934 }
2935 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeRcStatus" => {
2936 #[allow(non_camel_case_types)]
2937 struct SubscribeRcStatusSvc<T: TelemetryService>(pub Arc<T>);
2938 impl<T: TelemetryService>
2939 tonic::server::ServerStreamingService<super::SubscribeRcStatusRequest>
2940 for SubscribeRcStatusSvc<T>
2941 {
2942 type Response = super::RcStatusResponse;
2943 type ResponseStream = T::SubscribeRcStatusStream;
2944 type Future =
2945 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2946 fn call(
2947 &mut self,
2948 request: tonic::Request<super::SubscribeRcStatusRequest>,
2949 ) -> Self::Future {
2950 let inner = self.0.clone();
2951 let fut = async move { (*inner).subscribe_rc_status(request).await };
2952 Box::pin(fut)
2953 }
2954 }
2955 let accept_compression_encodings = self.accept_compression_encodings;
2956 let send_compression_encodings = self.send_compression_encodings;
2957 let inner = self.inner.clone();
2958 let fut = async move {
2959 let inner = inner.0;
2960 let method = SubscribeRcStatusSvc(inner);
2961 let codec = tonic::codec::ProstCodec::default();
2962 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2963 accept_compression_encodings,
2964 send_compression_encodings,
2965 );
2966 let res = grpc.server_streaming(method, req).await;
2967 Ok(res)
2968 };
2969 Box::pin(fut)
2970 }
2971 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeStatusText" => {
2972 #[allow(non_camel_case_types)]
2973 struct SubscribeStatusTextSvc<T: TelemetryService>(pub Arc<T>);
2974 impl<T: TelemetryService>
2975 tonic::server::ServerStreamingService<super::SubscribeStatusTextRequest>
2976 for SubscribeStatusTextSvc<T>
2977 {
2978 type Response = super::StatusTextResponse;
2979 type ResponseStream = T::SubscribeStatusTextStream;
2980 type Future =
2981 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
2982 fn call(
2983 &mut self,
2984 request: tonic::Request<super::SubscribeStatusTextRequest>,
2985 ) -> Self::Future {
2986 let inner = self.0.clone();
2987 let fut = async move { (*inner).subscribe_status_text(request).await };
2988 Box::pin(fut)
2989 }
2990 }
2991 let accept_compression_encodings = self.accept_compression_encodings;
2992 let send_compression_encodings = self.send_compression_encodings;
2993 let inner = self.inner.clone();
2994 let fut = async move {
2995 let inner = inner.0;
2996 let method = SubscribeStatusTextSvc(inner);
2997 let codec = tonic::codec::ProstCodec::default();
2998 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
2999 accept_compression_encodings,
3000 send_compression_encodings,
3001 );
3002 let res = grpc.server_streaming(method, req).await;
3003 Ok(res)
3004 };
3005 Box::pin(fut)
3006 }
3007 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeActuatorControlTarget" => {
3008 #[allow(non_camel_case_types)]
3009 struct SubscribeActuatorControlTargetSvc<T: TelemetryService>(pub Arc<T>);
3010 impl<T: TelemetryService>
3011 tonic::server::ServerStreamingService<
3012 super::SubscribeActuatorControlTargetRequest,
3013 > for SubscribeActuatorControlTargetSvc<T>
3014 {
3015 type Response = super::ActuatorControlTargetResponse;
3016 type ResponseStream = T::SubscribeActuatorControlTargetStream;
3017 type Future =
3018 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3019 fn call(
3020 &mut self,
3021 request: tonic::Request<super::SubscribeActuatorControlTargetRequest>,
3022 ) -> Self::Future {
3023 let inner = self.0.clone();
3024 let fut = async move {
3025 (*inner).subscribe_actuator_control_target(request).await
3026 };
3027 Box::pin(fut)
3028 }
3029 }
3030 let accept_compression_encodings = self.accept_compression_encodings;
3031 let send_compression_encodings = self.send_compression_encodings;
3032 let inner = self.inner.clone();
3033 let fut = async move {
3034 let inner = inner.0;
3035 let method = SubscribeActuatorControlTargetSvc(inner);
3036 let codec = tonic::codec::ProstCodec::default();
3037 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3038 accept_compression_encodings,
3039 send_compression_encodings,
3040 );
3041 let res = grpc.server_streaming(method, req).await;
3042 Ok(res)
3043 };
3044 Box::pin(fut)
3045 }
3046 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeActuatorOutputStatus" => {
3047 #[allow(non_camel_case_types)]
3048 struct SubscribeActuatorOutputStatusSvc<T: TelemetryService>(pub Arc<T>);
3049 impl<T: TelemetryService>
3050 tonic::server::ServerStreamingService<
3051 super::SubscribeActuatorOutputStatusRequest,
3052 > for SubscribeActuatorOutputStatusSvc<T>
3053 {
3054 type Response = super::ActuatorOutputStatusResponse;
3055 type ResponseStream = T::SubscribeActuatorOutputStatusStream;
3056 type Future =
3057 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3058 fn call(
3059 &mut self,
3060 request: tonic::Request<super::SubscribeActuatorOutputStatusRequest>,
3061 ) -> Self::Future {
3062 let inner = self.0.clone();
3063 let fut = async move {
3064 (*inner).subscribe_actuator_output_status(request).await
3065 };
3066 Box::pin(fut)
3067 }
3068 }
3069 let accept_compression_encodings = self.accept_compression_encodings;
3070 let send_compression_encodings = self.send_compression_encodings;
3071 let inner = self.inner.clone();
3072 let fut = async move {
3073 let inner = inner.0;
3074 let method = SubscribeActuatorOutputStatusSvc(inner);
3075 let codec = tonic::codec::ProstCodec::default();
3076 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3077 accept_compression_encodings,
3078 send_compression_encodings,
3079 );
3080 let res = grpc.server_streaming(method, req).await;
3081 Ok(res)
3082 };
3083 Box::pin(fut)
3084 }
3085 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeOdometry" => {
3086 #[allow(non_camel_case_types)]
3087 struct SubscribeOdometrySvc<T: TelemetryService>(pub Arc<T>);
3088 impl<T: TelemetryService>
3089 tonic::server::ServerStreamingService<super::SubscribeOdometryRequest>
3090 for SubscribeOdometrySvc<T>
3091 {
3092 type Response = super::OdometryResponse;
3093 type ResponseStream = T::SubscribeOdometryStream;
3094 type Future =
3095 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3096 fn call(
3097 &mut self,
3098 request: tonic::Request<super::SubscribeOdometryRequest>,
3099 ) -> Self::Future {
3100 let inner = self.0.clone();
3101 let fut = async move { (*inner).subscribe_odometry(request).await };
3102 Box::pin(fut)
3103 }
3104 }
3105 let accept_compression_encodings = self.accept_compression_encodings;
3106 let send_compression_encodings = self.send_compression_encodings;
3107 let inner = self.inner.clone();
3108 let fut = async move {
3109 let inner = inner.0;
3110 let method = SubscribeOdometrySvc(inner);
3111 let codec = tonic::codec::ProstCodec::default();
3112 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3113 accept_compression_encodings,
3114 send_compression_encodings,
3115 );
3116 let res = grpc.server_streaming(method, req).await;
3117 Ok(res)
3118 };
3119 Box::pin(fut)
3120 }
3121 "/mavsdk.rpc.telemetry.TelemetryService/SubscribePositionVelocityNed" => {
3122 #[allow(non_camel_case_types)]
3123 struct SubscribePositionVelocityNedSvc<T: TelemetryService>(pub Arc<T>);
3124 impl<T: TelemetryService>
3125 tonic::server::ServerStreamingService<
3126 super::SubscribePositionVelocityNedRequest,
3127 > for SubscribePositionVelocityNedSvc<T>
3128 {
3129 type Response = super::PositionVelocityNedResponse;
3130 type ResponseStream = T::SubscribePositionVelocityNedStream;
3131 type Future =
3132 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3133 fn call(
3134 &mut self,
3135 request: tonic::Request<super::SubscribePositionVelocityNedRequest>,
3136 ) -> Self::Future {
3137 let inner = self.0.clone();
3138 let fut = async move {
3139 (*inner).subscribe_position_velocity_ned(request).await
3140 };
3141 Box::pin(fut)
3142 }
3143 }
3144 let accept_compression_encodings = self.accept_compression_encodings;
3145 let send_compression_encodings = self.send_compression_encodings;
3146 let inner = self.inner.clone();
3147 let fut = async move {
3148 let inner = inner.0;
3149 let method = SubscribePositionVelocityNedSvc(inner);
3150 let codec = tonic::codec::ProstCodec::default();
3151 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3152 accept_compression_encodings,
3153 send_compression_encodings,
3154 );
3155 let res = grpc.server_streaming(method, req).await;
3156 Ok(res)
3157 };
3158 Box::pin(fut)
3159 }
3160 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeGroundTruth" => {
3161 #[allow(non_camel_case_types)]
3162 struct SubscribeGroundTruthSvc<T: TelemetryService>(pub Arc<T>);
3163 impl<T: TelemetryService>
3164 tonic::server::ServerStreamingService<super::SubscribeGroundTruthRequest>
3165 for SubscribeGroundTruthSvc<T>
3166 {
3167 type Response = super::GroundTruthResponse;
3168 type ResponseStream = T::SubscribeGroundTruthStream;
3169 type Future =
3170 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3171 fn call(
3172 &mut self,
3173 request: tonic::Request<super::SubscribeGroundTruthRequest>,
3174 ) -> Self::Future {
3175 let inner = self.0.clone();
3176 let fut = async move { (*inner).subscribe_ground_truth(request).await };
3177 Box::pin(fut)
3178 }
3179 }
3180 let accept_compression_encodings = self.accept_compression_encodings;
3181 let send_compression_encodings = self.send_compression_encodings;
3182 let inner = self.inner.clone();
3183 let fut = async move {
3184 let inner = inner.0;
3185 let method = SubscribeGroundTruthSvc(inner);
3186 let codec = tonic::codec::ProstCodec::default();
3187 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3188 accept_compression_encodings,
3189 send_compression_encodings,
3190 );
3191 let res = grpc.server_streaming(method, req).await;
3192 Ok(res)
3193 };
3194 Box::pin(fut)
3195 }
3196 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeFixedwingMetrics" => {
3197 #[allow(non_camel_case_types)]
3198 struct SubscribeFixedwingMetricsSvc<T: TelemetryService>(pub Arc<T>);
3199 impl<T: TelemetryService>
3200 tonic::server::ServerStreamingService<
3201 super::SubscribeFixedwingMetricsRequest,
3202 > for SubscribeFixedwingMetricsSvc<T>
3203 {
3204 type Response = super::FixedwingMetricsResponse;
3205 type ResponseStream = T::SubscribeFixedwingMetricsStream;
3206 type Future =
3207 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3208 fn call(
3209 &mut self,
3210 request: tonic::Request<super::SubscribeFixedwingMetricsRequest>,
3211 ) -> Self::Future {
3212 let inner = self.0.clone();
3213 let fut =
3214 async move { (*inner).subscribe_fixedwing_metrics(request).await };
3215 Box::pin(fut)
3216 }
3217 }
3218 let accept_compression_encodings = self.accept_compression_encodings;
3219 let send_compression_encodings = self.send_compression_encodings;
3220 let inner = self.inner.clone();
3221 let fut = async move {
3222 let inner = inner.0;
3223 let method = SubscribeFixedwingMetricsSvc(inner);
3224 let codec = tonic::codec::ProstCodec::default();
3225 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3226 accept_compression_encodings,
3227 send_compression_encodings,
3228 );
3229 let res = grpc.server_streaming(method, req).await;
3230 Ok(res)
3231 };
3232 Box::pin(fut)
3233 }
3234 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeImu" => {
3235 #[allow(non_camel_case_types)]
3236 struct SubscribeImuSvc<T: TelemetryService>(pub Arc<T>);
3237 impl<T: TelemetryService>
3238 tonic::server::ServerStreamingService<super::SubscribeImuRequest>
3239 for SubscribeImuSvc<T>
3240 {
3241 type Response = super::ImuResponse;
3242 type ResponseStream = T::SubscribeImuStream;
3243 type Future =
3244 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3245 fn call(
3246 &mut self,
3247 request: tonic::Request<super::SubscribeImuRequest>,
3248 ) -> Self::Future {
3249 let inner = self.0.clone();
3250 let fut = async move { (*inner).subscribe_imu(request).await };
3251 Box::pin(fut)
3252 }
3253 }
3254 let accept_compression_encodings = self.accept_compression_encodings;
3255 let send_compression_encodings = self.send_compression_encodings;
3256 let inner = self.inner.clone();
3257 let fut = async move {
3258 let inner = inner.0;
3259 let method = SubscribeImuSvc(inner);
3260 let codec = tonic::codec::ProstCodec::default();
3261 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3262 accept_compression_encodings,
3263 send_compression_encodings,
3264 );
3265 let res = grpc.server_streaming(method, req).await;
3266 Ok(res)
3267 };
3268 Box::pin(fut)
3269 }
3270 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeHealthAllOk" => {
3271 #[allow(non_camel_case_types)]
3272 struct SubscribeHealthAllOkSvc<T: TelemetryService>(pub Arc<T>);
3273 impl<T: TelemetryService>
3274 tonic::server::ServerStreamingService<super::SubscribeHealthAllOkRequest>
3275 for SubscribeHealthAllOkSvc<T>
3276 {
3277 type Response = super::HealthAllOkResponse;
3278 type ResponseStream = T::SubscribeHealthAllOkStream;
3279 type Future =
3280 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3281 fn call(
3282 &mut self,
3283 request: tonic::Request<super::SubscribeHealthAllOkRequest>,
3284 ) -> Self::Future {
3285 let inner = self.0.clone();
3286 let fut =
3287 async move { (*inner).subscribe_health_all_ok(request).await };
3288 Box::pin(fut)
3289 }
3290 }
3291 let accept_compression_encodings = self.accept_compression_encodings;
3292 let send_compression_encodings = self.send_compression_encodings;
3293 let inner = self.inner.clone();
3294 let fut = async move {
3295 let inner = inner.0;
3296 let method = SubscribeHealthAllOkSvc(inner);
3297 let codec = tonic::codec::ProstCodec::default();
3298 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3299 accept_compression_encodings,
3300 send_compression_encodings,
3301 );
3302 let res = grpc.server_streaming(method, req).await;
3303 Ok(res)
3304 };
3305 Box::pin(fut)
3306 }
3307 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeUnixEpochTime" => {
3308 #[allow(non_camel_case_types)]
3309 struct SubscribeUnixEpochTimeSvc<T: TelemetryService>(pub Arc<T>);
3310 impl<T: TelemetryService>
3311 tonic::server::ServerStreamingService<super::SubscribeUnixEpochTimeRequest>
3312 for SubscribeUnixEpochTimeSvc<T>
3313 {
3314 type Response = super::UnixEpochTimeResponse;
3315 type ResponseStream = T::SubscribeUnixEpochTimeStream;
3316 type Future =
3317 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3318 fn call(
3319 &mut self,
3320 request: tonic::Request<super::SubscribeUnixEpochTimeRequest>,
3321 ) -> Self::Future {
3322 let inner = self.0.clone();
3323 let fut =
3324 async move { (*inner).subscribe_unix_epoch_time(request).await };
3325 Box::pin(fut)
3326 }
3327 }
3328 let accept_compression_encodings = self.accept_compression_encodings;
3329 let send_compression_encodings = self.send_compression_encodings;
3330 let inner = self.inner.clone();
3331 let fut = async move {
3332 let inner = inner.0;
3333 let method = SubscribeUnixEpochTimeSvc(inner);
3334 let codec = tonic::codec::ProstCodec::default();
3335 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3336 accept_compression_encodings,
3337 send_compression_encodings,
3338 );
3339 let res = grpc.server_streaming(method, req).await;
3340 Ok(res)
3341 };
3342 Box::pin(fut)
3343 }
3344 "/mavsdk.rpc.telemetry.TelemetryService/SubscribeDistanceSensor" => {
3345 #[allow(non_camel_case_types)]
3346 struct SubscribeDistanceSensorSvc<T: TelemetryService>(pub Arc<T>);
3347 impl<T: TelemetryService>
3348 tonic::server::ServerStreamingService<super::SubscribeDistanceSensorRequest>
3349 for SubscribeDistanceSensorSvc<T>
3350 {
3351 type Response = super::DistanceSensorResponse;
3352 type ResponseStream = T::SubscribeDistanceSensorStream;
3353 type Future =
3354 BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3355 fn call(
3356 &mut self,
3357 request: tonic::Request<super::SubscribeDistanceSensorRequest>,
3358 ) -> Self::Future {
3359 let inner = self.0.clone();
3360 let fut =
3361 async move { (*inner).subscribe_distance_sensor(request).await };
3362 Box::pin(fut)
3363 }
3364 }
3365 let accept_compression_encodings = self.accept_compression_encodings;
3366 let send_compression_encodings = self.send_compression_encodings;
3367 let inner = self.inner.clone();
3368 let fut = async move {
3369 let inner = inner.0;
3370 let method = SubscribeDistanceSensorSvc(inner);
3371 let codec = tonic::codec::ProstCodec::default();
3372 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3373 accept_compression_encodings,
3374 send_compression_encodings,
3375 );
3376 let res = grpc.server_streaming(method, req).await;
3377 Ok(res)
3378 };
3379 Box::pin(fut)
3380 }
3381 "/mavsdk.rpc.telemetry.TelemetryService/SetRatePosition" => {
3382 #[allow(non_camel_case_types)]
3383 struct SetRatePositionSvc<T: TelemetryService>(pub Arc<T>);
3384 impl<T: TelemetryService>
3385 tonic::server::UnaryService<super::SetRatePositionRequest>
3386 for SetRatePositionSvc<T>
3387 {
3388 type Response = super::SetRatePositionResponse;
3389 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3390 fn call(
3391 &mut self,
3392 request: tonic::Request<super::SetRatePositionRequest>,
3393 ) -> Self::Future {
3394 let inner = self.0.clone();
3395 let fut = async move { (*inner).set_rate_position(request).await };
3396 Box::pin(fut)
3397 }
3398 }
3399 let accept_compression_encodings = self.accept_compression_encodings;
3400 let send_compression_encodings = self.send_compression_encodings;
3401 let inner = self.inner.clone();
3402 let fut = async move {
3403 let inner = inner.0;
3404 let method = SetRatePositionSvc(inner);
3405 let codec = tonic::codec::ProstCodec::default();
3406 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3407 accept_compression_encodings,
3408 send_compression_encodings,
3409 );
3410 let res = grpc.unary(method, req).await;
3411 Ok(res)
3412 };
3413 Box::pin(fut)
3414 }
3415 "/mavsdk.rpc.telemetry.TelemetryService/SetRateHome" => {
3416 #[allow(non_camel_case_types)]
3417 struct SetRateHomeSvc<T: TelemetryService>(pub Arc<T>);
3418 impl<T: TelemetryService> tonic::server::UnaryService<super::SetRateHomeRequest>
3419 for SetRateHomeSvc<T>
3420 {
3421 type Response = super::SetRateHomeResponse;
3422 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3423 fn call(
3424 &mut self,
3425 request: tonic::Request<super::SetRateHomeRequest>,
3426 ) -> Self::Future {
3427 let inner = self.0.clone();
3428 let fut = async move { (*inner).set_rate_home(request).await };
3429 Box::pin(fut)
3430 }
3431 }
3432 let accept_compression_encodings = self.accept_compression_encodings;
3433 let send_compression_encodings = self.send_compression_encodings;
3434 let inner = self.inner.clone();
3435 let fut = async move {
3436 let inner = inner.0;
3437 let method = SetRateHomeSvc(inner);
3438 let codec = tonic::codec::ProstCodec::default();
3439 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3440 accept_compression_encodings,
3441 send_compression_encodings,
3442 );
3443 let res = grpc.unary(method, req).await;
3444 Ok(res)
3445 };
3446 Box::pin(fut)
3447 }
3448 "/mavsdk.rpc.telemetry.TelemetryService/SetRateInAir" => {
3449 #[allow(non_camel_case_types)]
3450 struct SetRateInAirSvc<T: TelemetryService>(pub Arc<T>);
3451 impl<T: TelemetryService>
3452 tonic::server::UnaryService<super::SetRateInAirRequest>
3453 for SetRateInAirSvc<T>
3454 {
3455 type Response = super::SetRateInAirResponse;
3456 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3457 fn call(
3458 &mut self,
3459 request: tonic::Request<super::SetRateInAirRequest>,
3460 ) -> Self::Future {
3461 let inner = self.0.clone();
3462 let fut = async move { (*inner).set_rate_in_air(request).await };
3463 Box::pin(fut)
3464 }
3465 }
3466 let accept_compression_encodings = self.accept_compression_encodings;
3467 let send_compression_encodings = self.send_compression_encodings;
3468 let inner = self.inner.clone();
3469 let fut = async move {
3470 let inner = inner.0;
3471 let method = SetRateInAirSvc(inner);
3472 let codec = tonic::codec::ProstCodec::default();
3473 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3474 accept_compression_encodings,
3475 send_compression_encodings,
3476 );
3477 let res = grpc.unary(method, req).await;
3478 Ok(res)
3479 };
3480 Box::pin(fut)
3481 }
3482 "/mavsdk.rpc.telemetry.TelemetryService/SetRateLandedState" => {
3483 #[allow(non_camel_case_types)]
3484 struct SetRateLandedStateSvc<T: TelemetryService>(pub Arc<T>);
3485 impl<T: TelemetryService>
3486 tonic::server::UnaryService<super::SetRateLandedStateRequest>
3487 for SetRateLandedStateSvc<T>
3488 {
3489 type Response = super::SetRateLandedStateResponse;
3490 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3491 fn call(
3492 &mut self,
3493 request: tonic::Request<super::SetRateLandedStateRequest>,
3494 ) -> Self::Future {
3495 let inner = self.0.clone();
3496 let fut = async move { (*inner).set_rate_landed_state(request).await };
3497 Box::pin(fut)
3498 }
3499 }
3500 let accept_compression_encodings = self.accept_compression_encodings;
3501 let send_compression_encodings = self.send_compression_encodings;
3502 let inner = self.inner.clone();
3503 let fut = async move {
3504 let inner = inner.0;
3505 let method = SetRateLandedStateSvc(inner);
3506 let codec = tonic::codec::ProstCodec::default();
3507 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3508 accept_compression_encodings,
3509 send_compression_encodings,
3510 );
3511 let res = grpc.unary(method, req).await;
3512 Ok(res)
3513 };
3514 Box::pin(fut)
3515 }
3516 "/mavsdk.rpc.telemetry.TelemetryService/SetRateAttitude" => {
3517 #[allow(non_camel_case_types)]
3518 struct SetRateAttitudeSvc<T: TelemetryService>(pub Arc<T>);
3519 impl<T: TelemetryService>
3520 tonic::server::UnaryService<super::SetRateAttitudeRequest>
3521 for SetRateAttitudeSvc<T>
3522 {
3523 type Response = super::SetRateAttitudeResponse;
3524 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3525 fn call(
3526 &mut self,
3527 request: tonic::Request<super::SetRateAttitudeRequest>,
3528 ) -> Self::Future {
3529 let inner = self.0.clone();
3530 let fut = async move { (*inner).set_rate_attitude(request).await };
3531 Box::pin(fut)
3532 }
3533 }
3534 let accept_compression_encodings = self.accept_compression_encodings;
3535 let send_compression_encodings = self.send_compression_encodings;
3536 let inner = self.inner.clone();
3537 let fut = async move {
3538 let inner = inner.0;
3539 let method = SetRateAttitudeSvc(inner);
3540 let codec = tonic::codec::ProstCodec::default();
3541 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3542 accept_compression_encodings,
3543 send_compression_encodings,
3544 );
3545 let res = grpc.unary(method, req).await;
3546 Ok(res)
3547 };
3548 Box::pin(fut)
3549 }
3550 "/mavsdk.rpc.telemetry.TelemetryService/SetRateCameraAttitude" => {
3551 #[allow(non_camel_case_types)]
3552 struct SetRateCameraAttitudeSvc<T: TelemetryService>(pub Arc<T>);
3553 impl<T: TelemetryService>
3554 tonic::server::UnaryService<super::SetRateCameraAttitudeRequest>
3555 for SetRateCameraAttitudeSvc<T>
3556 {
3557 type Response = super::SetRateCameraAttitudeResponse;
3558 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3559 fn call(
3560 &mut self,
3561 request: tonic::Request<super::SetRateCameraAttitudeRequest>,
3562 ) -> Self::Future {
3563 let inner = self.0.clone();
3564 let fut =
3565 async move { (*inner).set_rate_camera_attitude(request).await };
3566 Box::pin(fut)
3567 }
3568 }
3569 let accept_compression_encodings = self.accept_compression_encodings;
3570 let send_compression_encodings = self.send_compression_encodings;
3571 let inner = self.inner.clone();
3572 let fut = async move {
3573 let inner = inner.0;
3574 let method = SetRateCameraAttitudeSvc(inner);
3575 let codec = tonic::codec::ProstCodec::default();
3576 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3577 accept_compression_encodings,
3578 send_compression_encodings,
3579 );
3580 let res = grpc.unary(method, req).await;
3581 Ok(res)
3582 };
3583 Box::pin(fut)
3584 }
3585 "/mavsdk.rpc.telemetry.TelemetryService/SetRateVelocityNed" => {
3586 #[allow(non_camel_case_types)]
3587 struct SetRateVelocityNedSvc<T: TelemetryService>(pub Arc<T>);
3588 impl<T: TelemetryService>
3589 tonic::server::UnaryService<super::SetRateVelocityNedRequest>
3590 for SetRateVelocityNedSvc<T>
3591 {
3592 type Response = super::SetRateVelocityNedResponse;
3593 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3594 fn call(
3595 &mut self,
3596 request: tonic::Request<super::SetRateVelocityNedRequest>,
3597 ) -> Self::Future {
3598 let inner = self.0.clone();
3599 let fut = async move { (*inner).set_rate_velocity_ned(request).await };
3600 Box::pin(fut)
3601 }
3602 }
3603 let accept_compression_encodings = self.accept_compression_encodings;
3604 let send_compression_encodings = self.send_compression_encodings;
3605 let inner = self.inner.clone();
3606 let fut = async move {
3607 let inner = inner.0;
3608 let method = SetRateVelocityNedSvc(inner);
3609 let codec = tonic::codec::ProstCodec::default();
3610 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3611 accept_compression_encodings,
3612 send_compression_encodings,
3613 );
3614 let res = grpc.unary(method, req).await;
3615 Ok(res)
3616 };
3617 Box::pin(fut)
3618 }
3619 "/mavsdk.rpc.telemetry.TelemetryService/SetRateGpsInfo" => {
3620 #[allow(non_camel_case_types)]
3621 struct SetRateGpsInfoSvc<T: TelemetryService>(pub Arc<T>);
3622 impl<T: TelemetryService>
3623 tonic::server::UnaryService<super::SetRateGpsInfoRequest>
3624 for SetRateGpsInfoSvc<T>
3625 {
3626 type Response = super::SetRateGpsInfoResponse;
3627 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3628 fn call(
3629 &mut self,
3630 request: tonic::Request<super::SetRateGpsInfoRequest>,
3631 ) -> Self::Future {
3632 let inner = self.0.clone();
3633 let fut = async move { (*inner).set_rate_gps_info(request).await };
3634 Box::pin(fut)
3635 }
3636 }
3637 let accept_compression_encodings = self.accept_compression_encodings;
3638 let send_compression_encodings = self.send_compression_encodings;
3639 let inner = self.inner.clone();
3640 let fut = async move {
3641 let inner = inner.0;
3642 let method = SetRateGpsInfoSvc(inner);
3643 let codec = tonic::codec::ProstCodec::default();
3644 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3645 accept_compression_encodings,
3646 send_compression_encodings,
3647 );
3648 let res = grpc.unary(method, req).await;
3649 Ok(res)
3650 };
3651 Box::pin(fut)
3652 }
3653 "/mavsdk.rpc.telemetry.TelemetryService/SetRateBattery" => {
3654 #[allow(non_camel_case_types)]
3655 struct SetRateBatterySvc<T: TelemetryService>(pub Arc<T>);
3656 impl<T: TelemetryService>
3657 tonic::server::UnaryService<super::SetRateBatteryRequest>
3658 for SetRateBatterySvc<T>
3659 {
3660 type Response = super::SetRateBatteryResponse;
3661 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3662 fn call(
3663 &mut self,
3664 request: tonic::Request<super::SetRateBatteryRequest>,
3665 ) -> Self::Future {
3666 let inner = self.0.clone();
3667 let fut = async move { (*inner).set_rate_battery(request).await };
3668 Box::pin(fut)
3669 }
3670 }
3671 let accept_compression_encodings = self.accept_compression_encodings;
3672 let send_compression_encodings = self.send_compression_encodings;
3673 let inner = self.inner.clone();
3674 let fut = async move {
3675 let inner = inner.0;
3676 let method = SetRateBatterySvc(inner);
3677 let codec = tonic::codec::ProstCodec::default();
3678 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3679 accept_compression_encodings,
3680 send_compression_encodings,
3681 );
3682 let res = grpc.unary(method, req).await;
3683 Ok(res)
3684 };
3685 Box::pin(fut)
3686 }
3687 "/mavsdk.rpc.telemetry.TelemetryService/SetRateRcStatus" => {
3688 #[allow(non_camel_case_types)]
3689 struct SetRateRcStatusSvc<T: TelemetryService>(pub Arc<T>);
3690 impl<T: TelemetryService>
3691 tonic::server::UnaryService<super::SetRateRcStatusRequest>
3692 for SetRateRcStatusSvc<T>
3693 {
3694 type Response = super::SetRateRcStatusResponse;
3695 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3696 fn call(
3697 &mut self,
3698 request: tonic::Request<super::SetRateRcStatusRequest>,
3699 ) -> Self::Future {
3700 let inner = self.0.clone();
3701 let fut = async move { (*inner).set_rate_rc_status(request).await };
3702 Box::pin(fut)
3703 }
3704 }
3705 let accept_compression_encodings = self.accept_compression_encodings;
3706 let send_compression_encodings = self.send_compression_encodings;
3707 let inner = self.inner.clone();
3708 let fut = async move {
3709 let inner = inner.0;
3710 let method = SetRateRcStatusSvc(inner);
3711 let codec = tonic::codec::ProstCodec::default();
3712 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3713 accept_compression_encodings,
3714 send_compression_encodings,
3715 );
3716 let res = grpc.unary(method, req).await;
3717 Ok(res)
3718 };
3719 Box::pin(fut)
3720 }
3721 "/mavsdk.rpc.telemetry.TelemetryService/SetRateActuatorControlTarget" => {
3722 #[allow(non_camel_case_types)]
3723 struct SetRateActuatorControlTargetSvc<T: TelemetryService>(pub Arc<T>);
3724 impl<T: TelemetryService>
3725 tonic::server::UnaryService<super::SetRateActuatorControlTargetRequest>
3726 for SetRateActuatorControlTargetSvc<T>
3727 {
3728 type Response = super::SetRateActuatorControlTargetResponse;
3729 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3730 fn call(
3731 &mut self,
3732 request: tonic::Request<super::SetRateActuatorControlTargetRequest>,
3733 ) -> Self::Future {
3734 let inner = self.0.clone();
3735 let fut = async move {
3736 (*inner).set_rate_actuator_control_target(request).await
3737 };
3738 Box::pin(fut)
3739 }
3740 }
3741 let accept_compression_encodings = self.accept_compression_encodings;
3742 let send_compression_encodings = self.send_compression_encodings;
3743 let inner = self.inner.clone();
3744 let fut = async move {
3745 let inner = inner.0;
3746 let method = SetRateActuatorControlTargetSvc(inner);
3747 let codec = tonic::codec::ProstCodec::default();
3748 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3749 accept_compression_encodings,
3750 send_compression_encodings,
3751 );
3752 let res = grpc.unary(method, req).await;
3753 Ok(res)
3754 };
3755 Box::pin(fut)
3756 }
3757 "/mavsdk.rpc.telemetry.TelemetryService/SetRateActuatorOutputStatus" => {
3758 #[allow(non_camel_case_types)]
3759 struct SetRateActuatorOutputStatusSvc<T: TelemetryService>(pub Arc<T>);
3760 impl<T: TelemetryService>
3761 tonic::server::UnaryService<super::SetRateActuatorOutputStatusRequest>
3762 for SetRateActuatorOutputStatusSvc<T>
3763 {
3764 type Response = super::SetRateActuatorOutputStatusResponse;
3765 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3766 fn call(
3767 &mut self,
3768 request: tonic::Request<super::SetRateActuatorOutputStatusRequest>,
3769 ) -> Self::Future {
3770 let inner = self.0.clone();
3771 let fut = async move {
3772 (*inner).set_rate_actuator_output_status(request).await
3773 };
3774 Box::pin(fut)
3775 }
3776 }
3777 let accept_compression_encodings = self.accept_compression_encodings;
3778 let send_compression_encodings = self.send_compression_encodings;
3779 let inner = self.inner.clone();
3780 let fut = async move {
3781 let inner = inner.0;
3782 let method = SetRateActuatorOutputStatusSvc(inner);
3783 let codec = tonic::codec::ProstCodec::default();
3784 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3785 accept_compression_encodings,
3786 send_compression_encodings,
3787 );
3788 let res = grpc.unary(method, req).await;
3789 Ok(res)
3790 };
3791 Box::pin(fut)
3792 }
3793 "/mavsdk.rpc.telemetry.TelemetryService/SetRateOdometry" => {
3794 #[allow(non_camel_case_types)]
3795 struct SetRateOdometrySvc<T: TelemetryService>(pub Arc<T>);
3796 impl<T: TelemetryService>
3797 tonic::server::UnaryService<super::SetRateOdometryRequest>
3798 for SetRateOdometrySvc<T>
3799 {
3800 type Response = super::SetRateOdometryResponse;
3801 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3802 fn call(
3803 &mut self,
3804 request: tonic::Request<super::SetRateOdometryRequest>,
3805 ) -> Self::Future {
3806 let inner = self.0.clone();
3807 let fut = async move { (*inner).set_rate_odometry(request).await };
3808 Box::pin(fut)
3809 }
3810 }
3811 let accept_compression_encodings = self.accept_compression_encodings;
3812 let send_compression_encodings = self.send_compression_encodings;
3813 let inner = self.inner.clone();
3814 let fut = async move {
3815 let inner = inner.0;
3816 let method = SetRateOdometrySvc(inner);
3817 let codec = tonic::codec::ProstCodec::default();
3818 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3819 accept_compression_encodings,
3820 send_compression_encodings,
3821 );
3822 let res = grpc.unary(method, req).await;
3823 Ok(res)
3824 };
3825 Box::pin(fut)
3826 }
3827 "/mavsdk.rpc.telemetry.TelemetryService/SetRatePositionVelocityNed" => {
3828 #[allow(non_camel_case_types)]
3829 struct SetRatePositionVelocityNedSvc<T: TelemetryService>(pub Arc<T>);
3830 impl<T: TelemetryService>
3831 tonic::server::UnaryService<super::SetRatePositionVelocityNedRequest>
3832 for SetRatePositionVelocityNedSvc<T>
3833 {
3834 type Response = super::SetRatePositionVelocityNedResponse;
3835 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3836 fn call(
3837 &mut self,
3838 request: tonic::Request<super::SetRatePositionVelocityNedRequest>,
3839 ) -> Self::Future {
3840 let inner = self.0.clone();
3841 let fut = async move {
3842 (*inner).set_rate_position_velocity_ned(request).await
3843 };
3844 Box::pin(fut)
3845 }
3846 }
3847 let accept_compression_encodings = self.accept_compression_encodings;
3848 let send_compression_encodings = self.send_compression_encodings;
3849 let inner = self.inner.clone();
3850 let fut = async move {
3851 let inner = inner.0;
3852 let method = SetRatePositionVelocityNedSvc(inner);
3853 let codec = tonic::codec::ProstCodec::default();
3854 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3855 accept_compression_encodings,
3856 send_compression_encodings,
3857 );
3858 let res = grpc.unary(method, req).await;
3859 Ok(res)
3860 };
3861 Box::pin(fut)
3862 }
3863 "/mavsdk.rpc.telemetry.TelemetryService/SetRateGroundTruth" => {
3864 #[allow(non_camel_case_types)]
3865 struct SetRateGroundTruthSvc<T: TelemetryService>(pub Arc<T>);
3866 impl<T: TelemetryService>
3867 tonic::server::UnaryService<super::SetRateGroundTruthRequest>
3868 for SetRateGroundTruthSvc<T>
3869 {
3870 type Response = super::SetRateGroundTruthResponse;
3871 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3872 fn call(
3873 &mut self,
3874 request: tonic::Request<super::SetRateGroundTruthRequest>,
3875 ) -> Self::Future {
3876 let inner = self.0.clone();
3877 let fut = async move { (*inner).set_rate_ground_truth(request).await };
3878 Box::pin(fut)
3879 }
3880 }
3881 let accept_compression_encodings = self.accept_compression_encodings;
3882 let send_compression_encodings = self.send_compression_encodings;
3883 let inner = self.inner.clone();
3884 let fut = async move {
3885 let inner = inner.0;
3886 let method = SetRateGroundTruthSvc(inner);
3887 let codec = tonic::codec::ProstCodec::default();
3888 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3889 accept_compression_encodings,
3890 send_compression_encodings,
3891 );
3892 let res = grpc.unary(method, req).await;
3893 Ok(res)
3894 };
3895 Box::pin(fut)
3896 }
3897 "/mavsdk.rpc.telemetry.TelemetryService/SetRateFixedwingMetrics" => {
3898 #[allow(non_camel_case_types)]
3899 struct SetRateFixedwingMetricsSvc<T: TelemetryService>(pub Arc<T>);
3900 impl<T: TelemetryService>
3901 tonic::server::UnaryService<super::SetRateFixedwingMetricsRequest>
3902 for SetRateFixedwingMetricsSvc<T>
3903 {
3904 type Response = super::SetRateFixedwingMetricsResponse;
3905 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3906 fn call(
3907 &mut self,
3908 request: tonic::Request<super::SetRateFixedwingMetricsRequest>,
3909 ) -> Self::Future {
3910 let inner = self.0.clone();
3911 let fut =
3912 async move { (*inner).set_rate_fixedwing_metrics(request).await };
3913 Box::pin(fut)
3914 }
3915 }
3916 let accept_compression_encodings = self.accept_compression_encodings;
3917 let send_compression_encodings = self.send_compression_encodings;
3918 let inner = self.inner.clone();
3919 let fut = async move {
3920 let inner = inner.0;
3921 let method = SetRateFixedwingMetricsSvc(inner);
3922 let codec = tonic::codec::ProstCodec::default();
3923 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3924 accept_compression_encodings,
3925 send_compression_encodings,
3926 );
3927 let res = grpc.unary(method, req).await;
3928 Ok(res)
3929 };
3930 Box::pin(fut)
3931 }
3932 "/mavsdk.rpc.telemetry.TelemetryService/SetRateImu" => {
3933 #[allow(non_camel_case_types)]
3934 struct SetRateImuSvc<T: TelemetryService>(pub Arc<T>);
3935 impl<T: TelemetryService> tonic::server::UnaryService<super::SetRateImuRequest>
3936 for SetRateImuSvc<T>
3937 {
3938 type Response = super::SetRateImuResponse;
3939 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3940 fn call(
3941 &mut self,
3942 request: tonic::Request<super::SetRateImuRequest>,
3943 ) -> Self::Future {
3944 let inner = self.0.clone();
3945 let fut = async move { (*inner).set_rate_imu(request).await };
3946 Box::pin(fut)
3947 }
3948 }
3949 let accept_compression_encodings = self.accept_compression_encodings;
3950 let send_compression_encodings = self.send_compression_encodings;
3951 let inner = self.inner.clone();
3952 let fut = async move {
3953 let inner = inner.0;
3954 let method = SetRateImuSvc(inner);
3955 let codec = tonic::codec::ProstCodec::default();
3956 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3957 accept_compression_encodings,
3958 send_compression_encodings,
3959 );
3960 let res = grpc.unary(method, req).await;
3961 Ok(res)
3962 };
3963 Box::pin(fut)
3964 }
3965 "/mavsdk.rpc.telemetry.TelemetryService/SetRateUnixEpochTime" => {
3966 #[allow(non_camel_case_types)]
3967 struct SetRateUnixEpochTimeSvc<T: TelemetryService>(pub Arc<T>);
3968 impl<T: TelemetryService>
3969 tonic::server::UnaryService<super::SetRateUnixEpochTimeRequest>
3970 for SetRateUnixEpochTimeSvc<T>
3971 {
3972 type Response = super::SetRateUnixEpochTimeResponse;
3973 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3974 fn call(
3975 &mut self,
3976 request: tonic::Request<super::SetRateUnixEpochTimeRequest>,
3977 ) -> Self::Future {
3978 let inner = self.0.clone();
3979 let fut =
3980 async move { (*inner).set_rate_unix_epoch_time(request).await };
3981 Box::pin(fut)
3982 }
3983 }
3984 let accept_compression_encodings = self.accept_compression_encodings;
3985 let send_compression_encodings = self.send_compression_encodings;
3986 let inner = self.inner.clone();
3987 let fut = async move {
3988 let inner = inner.0;
3989 let method = SetRateUnixEpochTimeSvc(inner);
3990 let codec = tonic::codec::ProstCodec::default();
3991 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
3992 accept_compression_encodings,
3993 send_compression_encodings,
3994 );
3995 let res = grpc.unary(method, req).await;
3996 Ok(res)
3997 };
3998 Box::pin(fut)
3999 }
4000 "/mavsdk.rpc.telemetry.TelemetryService/SetRateDistanceSensor" => {
4001 #[allow(non_camel_case_types)]
4002 struct SetRateDistanceSensorSvc<T: TelemetryService>(pub Arc<T>);
4003 impl<T: TelemetryService>
4004 tonic::server::UnaryService<super::SetRateDistanceSensorRequest>
4005 for SetRateDistanceSensorSvc<T>
4006 {
4007 type Response = super::SetRateDistanceSensorResponse;
4008 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4009 fn call(
4010 &mut self,
4011 request: tonic::Request<super::SetRateDistanceSensorRequest>,
4012 ) -> Self::Future {
4013 let inner = self.0.clone();
4014 let fut =
4015 async move { (*inner).set_rate_distance_sensor(request).await };
4016 Box::pin(fut)
4017 }
4018 }
4019 let accept_compression_encodings = self.accept_compression_encodings;
4020 let send_compression_encodings = self.send_compression_encodings;
4021 let inner = self.inner.clone();
4022 let fut = async move {
4023 let inner = inner.0;
4024 let method = SetRateDistanceSensorSvc(inner);
4025 let codec = tonic::codec::ProstCodec::default();
4026 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
4027 accept_compression_encodings,
4028 send_compression_encodings,
4029 );
4030 let res = grpc.unary(method, req).await;
4031 Ok(res)
4032 };
4033 Box::pin(fut)
4034 }
4035 "/mavsdk.rpc.telemetry.TelemetryService/GetGpsGlobalOrigin" => {
4036 #[allow(non_camel_case_types)]
4037 struct GetGpsGlobalOriginSvc<T: TelemetryService>(pub Arc<T>);
4038 impl<T: TelemetryService>
4039 tonic::server::UnaryService<super::GetGpsGlobalOriginRequest>
4040 for GetGpsGlobalOriginSvc<T>
4041 {
4042 type Response = super::GetGpsGlobalOriginResponse;
4043 type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4044 fn call(
4045 &mut self,
4046 request: tonic::Request<super::GetGpsGlobalOriginRequest>,
4047 ) -> Self::Future {
4048 let inner = self.0.clone();
4049 let fut = async move { (*inner).get_gps_global_origin(request).await };
4050 Box::pin(fut)
4051 }
4052 }
4053 let accept_compression_encodings = self.accept_compression_encodings;
4054 let send_compression_encodings = self.send_compression_encodings;
4055 let inner = self.inner.clone();
4056 let fut = async move {
4057 let inner = inner.0;
4058 let method = GetGpsGlobalOriginSvc(inner);
4059 let codec = tonic::codec::ProstCodec::default();
4060 let mut grpc = tonic::server::Grpc::new(codec).apply_compression_config(
4061 accept_compression_encodings,
4062 send_compression_encodings,
4063 );
4064 let res = grpc.unary(method, req).await;
4065 Ok(res)
4066 };
4067 Box::pin(fut)
4068 }
4069 _ => Box::pin(async move {
4070 Ok(http::Response::builder()
4071 .status(200)
4072 .header("grpc-status", "12")
4073 .header("content-type", "application/grpc")
4074 .body(empty_body())
4075 .unwrap())
4076 }),
4077 }
4078 }
4079 }
4080 impl<T: TelemetryService> Clone for TelemetryServiceServer<T> {
4081 fn clone(&self) -> Self {
4082 let inner = self.inner.clone();
4083 Self {
4084 inner,
4085 accept_compression_encodings: self.accept_compression_encodings,
4086 send_compression_encodings: self.send_compression_encodings,
4087 }
4088 }
4089 }
4090 impl<T: TelemetryService> Clone for _Inner<T> {
4091 fn clone(&self) -> Self {
4092 Self(self.0.clone())
4093 }
4094 }
4095 impl<T: std::fmt::Debug> std::fmt::Debug for _Inner<T> {
4096 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4097 write!(f, "{:?}", self.0)
4098 }
4099 }
4100 impl<T: TelemetryService> tonic::transport::NamedService for TelemetryServiceServer<T> {
4101 const NAME: &'static str = "mavsdk.rpc.telemetry.TelemetryService";
4102 }
4103}