• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mavlink / MAVSDK / 24114167644

08 Apr 2026 02:17AM UTC coverage: 50.468% (+0.003%) from 50.465%
24114167644

push

github

web-flow
core: hide symbols by default, export only public API (#2855)

* core: hide symbols by default, export only public API

Backport of #2824 to v3. Fixes segfault when MAVSDK is used alongside
ROS2 (or any library sharing bundled dependencies like OpenSSL/tinyxml2)
due to symbol conflicts from leaked third-party symbols.

- Add mavsdk_export.h with MAVSDK_PUBLIC, MAVSDK_TEST_EXPORT, and
  MAVSDK_TEMPL_INST macros
- Set CXX_VISIBILITY_PRESET=hidden and VISIBILITY_INLINES_HIDDEN=ON
- MAVSDK_SHARED compile definition gates dllexport/dllimport so that
  static builds on Windows are unaffected
- Annotate all public classes, free functions, operator overloads,
  and explicit template instantiations
- Update jinja2 templates to emit MAVSDK_PUBLIC on generated
  operator== and operator<< definitions
- Disable MSVC C4251 warning for DLL interface on STL members

Fixes #2852

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: remove stale asio includes from mission transfer client header

The backport patch incorrectly added asio includes that don't exist on
v3 (they were added on main after v3 branched).

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

15 of 379 new or added lines in 39 files covered. (3.96%)

4 existing lines in 3 files now uncovered.

19248 of 38139 relevant lines covered (50.47%)

672.95 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

1.79
/src/mavsdk/plugins/telemetry_server/telemetry_server.cpp
1
// WARNING: THIS FILE IS AUTOGENERATED! As such, it should not be edited.
2
// Edits need to be made to the proto files
3
// (see
4
// https://github.com/mavlink/MAVSDK-Proto/blob/master/protos/telemetry_server/telemetry_server.proto)
5

6
#include <iomanip>
7

8
#include "telemetry_server_impl.h"
9
#include "plugins/telemetry_server/telemetry_server.h"
10

11
namespace mavsdk {
12

13
using Position = TelemetryServer::Position;
14
using Heading = TelemetryServer::Heading;
15
using Quaternion = TelemetryServer::Quaternion;
16
using EulerAngle = TelemetryServer::EulerAngle;
17
using AngularVelocityBody = TelemetryServer::AngularVelocityBody;
18
using GpsInfo = TelemetryServer::GpsInfo;
19
using RawGps = TelemetryServer::RawGps;
20
using Battery = TelemetryServer::Battery;
21
using RcStatus = TelemetryServer::RcStatus;
22
using StatusText = TelemetryServer::StatusText;
23
using ActuatorControlTarget = TelemetryServer::ActuatorControlTarget;
24
using ActuatorOutputStatus = TelemetryServer::ActuatorOutputStatus;
25
using Covariance = TelemetryServer::Covariance;
26
using VelocityBody = TelemetryServer::VelocityBody;
27
using PositionBody = TelemetryServer::PositionBody;
28
using Odometry = TelemetryServer::Odometry;
29
using DistanceSensor = TelemetryServer::DistanceSensor;
30
using ScaledPressure = TelemetryServer::ScaledPressure;
31
using PositionNed = TelemetryServer::PositionNed;
32
using VelocityNed = TelemetryServer::VelocityNed;
33
using PositionVelocityNed = TelemetryServer::PositionVelocityNed;
34
using GroundTruth = TelemetryServer::GroundTruth;
35
using FixedwingMetrics = TelemetryServer::FixedwingMetrics;
36
using AccelerationFrd = TelemetryServer::AccelerationFrd;
37
using AngularVelocityFrd = TelemetryServer::AngularVelocityFrd;
38
using MagneticFieldFrd = TelemetryServer::MagneticFieldFrd;
39
using Imu = TelemetryServer::Imu;
40

41
TelemetryServer::TelemetryServer(std::shared_ptr<ServerComponent> server_component) :
6✔
42
    ServerPluginBase(),
43
    _impl{std::make_unique<TelemetryServerImpl>(server_component)}
6✔
44
{}
6✔
45

46
TelemetryServer::~TelemetryServer() {}
6✔
47

48
TelemetryServer::Result TelemetryServer::publish_position(
4✔
49
    Position position, VelocityNed velocity_ned, Heading heading) const
50
{
51
    return _impl->publish_position(position, velocity_ned, heading);
4✔
52
}
53

54
TelemetryServer::Result TelemetryServer::publish_home(Position home) const
×
55
{
56
    return _impl->publish_home(home);
×
57
}
58

59
TelemetryServer::Result TelemetryServer::publish_sys_status(
×
60
    Battery battery,
61
    bool rc_receiver_status,
62
    bool gyro_status,
63
    bool accel_status,
64
    bool mag_status,
65
    bool gps_status) const
66
{
67
    return _impl->publish_sys_status(
×
68
        battery, rc_receiver_status, gyro_status, accel_status, mag_status, gps_status);
×
69
}
70

71
TelemetryServer::Result
72
TelemetryServer::publish_extended_sys_state(VtolState vtol_state, LandedState landed_state) const
×
73
{
74
    return _impl->publish_extended_sys_state(vtol_state, landed_state);
×
75
}
76

77
TelemetryServer::Result TelemetryServer::publish_raw_gps(RawGps raw_gps, GpsInfo gps_info) const
1✔
78
{
79
    return _impl->publish_raw_gps(raw_gps, gps_info);
1✔
80
}
81

82
TelemetryServer::Result TelemetryServer::publish_battery(Battery battery) const
×
83
{
84
    return _impl->publish_battery(battery);
×
85
}
86

87
TelemetryServer::Result TelemetryServer::publish_status_text(StatusText status_text) const
3✔
88
{
89
    return _impl->publish_status_text(status_text);
3✔
90
}
91

92
TelemetryServer::Result TelemetryServer::publish_odometry(Odometry odometry) const
×
93
{
94
    return _impl->publish_odometry(odometry);
×
95
}
96

97
TelemetryServer::Result
98
TelemetryServer::publish_position_velocity_ned(PositionVelocityNed position_velocity_ned) const
×
99
{
100
    return _impl->publish_position_velocity_ned(position_velocity_ned);
×
101
}
102

103
TelemetryServer::Result TelemetryServer::publish_ground_truth(GroundTruth ground_truth) const
×
104
{
105
    return _impl->publish_ground_truth(ground_truth);
×
106
}
107

108
TelemetryServer::Result TelemetryServer::publish_imu(Imu imu) const
×
109
{
110
    return _impl->publish_imu(imu);
×
111
}
112

113
TelemetryServer::Result TelemetryServer::publish_scaled_imu(Imu imu) const
×
114
{
115
    return _impl->publish_scaled_imu(imu);
×
116
}
117

118
TelemetryServer::Result TelemetryServer::publish_raw_imu(Imu imu) const
×
119
{
120
    return _impl->publish_raw_imu(imu);
×
121
}
122

123
TelemetryServer::Result TelemetryServer::publish_unix_epoch_time(uint64_t time_us) const
×
124
{
125
    return _impl->publish_unix_epoch_time(time_us);
×
126
}
127

128
TelemetryServer::Result
129
TelemetryServer::publish_distance_sensor(DistanceSensor distance_sensor) const
×
130
{
131
    return _impl->publish_distance_sensor(distance_sensor);
×
132
}
133

134
TelemetryServer::Result
135
TelemetryServer::publish_attitude(EulerAngle angle, AngularVelocityBody angular_velocity) const
×
136
{
137
    return _impl->publish_attitude(angle, angular_velocity);
×
138
}
139

140
TelemetryServer::Result
141
TelemetryServer::publish_visual_flight_rules_hud(FixedwingMetrics fixed_wing_metrics) const
×
142
{
143
    return _impl->publish_visual_flight_rules_hud(fixed_wing_metrics);
×
144
}
145

146
MAVSDK_PUBLIC bool
NEW
147
operator==(const TelemetryServer::Position& lhs, const TelemetryServer::Position& rhs)
×
148
{
149
    return ((std::isnan(rhs.latitude_deg) && std::isnan(lhs.latitude_deg)) ||
×
150
            rhs.latitude_deg == lhs.latitude_deg) &&
×
151
           ((std::isnan(rhs.longitude_deg) && std::isnan(lhs.longitude_deg)) ||
×
152
            rhs.longitude_deg == lhs.longitude_deg) &&
×
153
           ((std::isnan(rhs.absolute_altitude_m) && std::isnan(lhs.absolute_altitude_m)) ||
×
154
            rhs.absolute_altitude_m == lhs.absolute_altitude_m) &&
×
155
           ((std::isnan(rhs.relative_altitude_m) && std::isnan(lhs.relative_altitude_m)) ||
×
156
            rhs.relative_altitude_m == lhs.relative_altitude_m);
×
157
}
158

NEW
159
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, TelemetryServer::Position const& position)
×
160
{
161
    str << std::setprecision(15);
×
162
    str << "position:" << '\n' << "{\n";
×
163
    str << "    latitude_deg: " << position.latitude_deg << '\n';
×
164
    str << "    longitude_deg: " << position.longitude_deg << '\n';
×
165
    str << "    absolute_altitude_m: " << position.absolute_altitude_m << '\n';
×
166
    str << "    relative_altitude_m: " << position.relative_altitude_m << '\n';
×
167
    str << '}';
×
168
    return str;
×
169
}
170

171
MAVSDK_PUBLIC bool
NEW
172
operator==(const TelemetryServer::Heading& lhs, const TelemetryServer::Heading& rhs)
×
173
{
174
    return (
175
        (std::isnan(rhs.heading_deg) && std::isnan(lhs.heading_deg)) ||
×
176
        rhs.heading_deg == lhs.heading_deg);
×
177
}
178

NEW
179
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, TelemetryServer::Heading const& heading)
×
180
{
181
    str << std::setprecision(15);
×
182
    str << "heading:" << '\n' << "{\n";
×
183
    str << "    heading_deg: " << heading.heading_deg << '\n';
×
184
    str << '}';
×
185
    return str;
×
186
}
187

188
MAVSDK_PUBLIC bool
NEW
189
operator==(const TelemetryServer::Quaternion& lhs, const TelemetryServer::Quaternion& rhs)
×
190
{
191
    return ((std::isnan(rhs.w) && std::isnan(lhs.w)) || rhs.w == lhs.w) &&
×
192
           ((std::isnan(rhs.x) && std::isnan(lhs.x)) || rhs.x == lhs.x) &&
×
193
           ((std::isnan(rhs.y) && std::isnan(lhs.y)) || rhs.y == lhs.y) &&
×
194
           ((std::isnan(rhs.z) && std::isnan(lhs.z)) || rhs.z == lhs.z) &&
×
195
           (rhs.timestamp_us == lhs.timestamp_us);
×
196
}
197

198
MAVSDK_PUBLIC std::ostream&
NEW
199
operator<<(std::ostream& str, TelemetryServer::Quaternion const& quaternion)
×
200
{
201
    str << std::setprecision(15);
×
202
    str << "quaternion:" << '\n' << "{\n";
×
203
    str << "    w: " << quaternion.w << '\n';
×
204
    str << "    x: " << quaternion.x << '\n';
×
205
    str << "    y: " << quaternion.y << '\n';
×
206
    str << "    z: " << quaternion.z << '\n';
×
207
    str << "    timestamp_us: " << quaternion.timestamp_us << '\n';
×
208
    str << '}';
×
209
    return str;
×
210
}
211

212
MAVSDK_PUBLIC bool
NEW
213
operator==(const TelemetryServer::EulerAngle& lhs, const TelemetryServer::EulerAngle& rhs)
×
214
{
215
    return ((std::isnan(rhs.roll_deg) && std::isnan(lhs.roll_deg)) ||
×
216
            rhs.roll_deg == lhs.roll_deg) &&
×
217
           ((std::isnan(rhs.pitch_deg) && std::isnan(lhs.pitch_deg)) ||
×
218
            rhs.pitch_deg == lhs.pitch_deg) &&
×
219
           ((std::isnan(rhs.yaw_deg) && std::isnan(lhs.yaw_deg)) || rhs.yaw_deg == lhs.yaw_deg) &&
×
220
           (rhs.timestamp_us == lhs.timestamp_us);
×
221
}
222

223
MAVSDK_PUBLIC std::ostream&
NEW
224
operator<<(std::ostream& str, TelemetryServer::EulerAngle const& euler_angle)
×
225
{
226
    str << std::setprecision(15);
×
227
    str << "euler_angle:" << '\n' << "{\n";
×
228
    str << "    roll_deg: " << euler_angle.roll_deg << '\n';
×
229
    str << "    pitch_deg: " << euler_angle.pitch_deg << '\n';
×
230
    str << "    yaw_deg: " << euler_angle.yaw_deg << '\n';
×
231
    str << "    timestamp_us: " << euler_angle.timestamp_us << '\n';
×
232
    str << '}';
×
233
    return str;
×
234
}
235

NEW
236
MAVSDK_PUBLIC bool operator==(
×
237
    const TelemetryServer::AngularVelocityBody& lhs,
238
    const TelemetryServer::AngularVelocityBody& rhs)
239
{
240
    return ((std::isnan(rhs.roll_rad_s) && std::isnan(lhs.roll_rad_s)) ||
×
241
            rhs.roll_rad_s == lhs.roll_rad_s) &&
×
242
           ((std::isnan(rhs.pitch_rad_s) && std::isnan(lhs.pitch_rad_s)) ||
×
243
            rhs.pitch_rad_s == lhs.pitch_rad_s) &&
×
244
           ((std::isnan(rhs.yaw_rad_s) && std::isnan(lhs.yaw_rad_s)) ||
×
245
            rhs.yaw_rad_s == lhs.yaw_rad_s);
×
246
}
247

248
MAVSDK_PUBLIC std::ostream&
249
operator<<(std::ostream& str, TelemetryServer::AngularVelocityBody const& angular_velocity_body)
×
250
{
251
    str << std::setprecision(15);
×
252
    str << "angular_velocity_body:" << '\n' << "{\n";
×
253
    str << "    roll_rad_s: " << angular_velocity_body.roll_rad_s << '\n';
×
254
    str << "    pitch_rad_s: " << angular_velocity_body.pitch_rad_s << '\n';
×
255
    str << "    yaw_rad_s: " << angular_velocity_body.yaw_rad_s << '\n';
×
256
    str << '}';
×
257
    return str;
×
258
}
259

260
MAVSDK_PUBLIC bool
NEW
261
operator==(const TelemetryServer::GpsInfo& lhs, const TelemetryServer::GpsInfo& rhs)
×
262
{
263
    return (rhs.num_satellites == lhs.num_satellites) && (rhs.fix_type == lhs.fix_type);
×
264
}
265

NEW
266
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, TelemetryServer::GpsInfo const& gps_info)
×
267
{
268
    str << std::setprecision(15);
×
269
    str << "gps_info:" << '\n' << "{\n";
×
270
    str << "    num_satellites: " << gps_info.num_satellites << '\n';
×
271
    str << "    fix_type: " << gps_info.fix_type << '\n';
×
272
    str << '}';
×
273
    return str;
×
274
}
275

276
MAVSDK_PUBLIC bool
NEW
277
operator==(const TelemetryServer::RawGps& lhs, const TelemetryServer::RawGps& rhs)
×
278
{
279
    return (rhs.timestamp_us == lhs.timestamp_us) &&
×
280
           ((std::isnan(rhs.latitude_deg) && std::isnan(lhs.latitude_deg)) ||
×
281
            rhs.latitude_deg == lhs.latitude_deg) &&
×
282
           ((std::isnan(rhs.longitude_deg) && std::isnan(lhs.longitude_deg)) ||
×
283
            rhs.longitude_deg == lhs.longitude_deg) &&
×
284
           ((std::isnan(rhs.absolute_altitude_m) && std::isnan(lhs.absolute_altitude_m)) ||
×
285
            rhs.absolute_altitude_m == lhs.absolute_altitude_m) &&
×
286
           ((std::isnan(rhs.hdop) && std::isnan(lhs.hdop)) || rhs.hdop == lhs.hdop) &&
×
287
           ((std::isnan(rhs.vdop) && std::isnan(lhs.vdop)) || rhs.vdop == lhs.vdop) &&
×
288
           ((std::isnan(rhs.velocity_m_s) && std::isnan(lhs.velocity_m_s)) ||
×
289
            rhs.velocity_m_s == lhs.velocity_m_s) &&
×
290
           ((std::isnan(rhs.cog_deg) && std::isnan(lhs.cog_deg)) || rhs.cog_deg == lhs.cog_deg) &&
×
291
           ((std::isnan(rhs.altitude_ellipsoid_m) && std::isnan(lhs.altitude_ellipsoid_m)) ||
×
292
            rhs.altitude_ellipsoid_m == lhs.altitude_ellipsoid_m) &&
×
293
           ((std::isnan(rhs.horizontal_uncertainty_m) &&
×
294
             std::isnan(lhs.horizontal_uncertainty_m)) ||
×
295
            rhs.horizontal_uncertainty_m == lhs.horizontal_uncertainty_m) &&
×
296
           ((std::isnan(rhs.vertical_uncertainty_m) && std::isnan(lhs.vertical_uncertainty_m)) ||
×
297
            rhs.vertical_uncertainty_m == lhs.vertical_uncertainty_m) &&
×
298
           ((std::isnan(rhs.velocity_uncertainty_m_s) &&
×
299
             std::isnan(lhs.velocity_uncertainty_m_s)) ||
×
300
            rhs.velocity_uncertainty_m_s == lhs.velocity_uncertainty_m_s) &&
×
301
           ((std::isnan(rhs.heading_uncertainty_deg) && std::isnan(lhs.heading_uncertainty_deg)) ||
×
302
            rhs.heading_uncertainty_deg == lhs.heading_uncertainty_deg) &&
×
303
           ((std::isnan(rhs.yaw_deg) && std::isnan(lhs.yaw_deg)) || rhs.yaw_deg == lhs.yaw_deg);
×
304
}
305

NEW
306
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, TelemetryServer::RawGps const& raw_gps)
×
307
{
308
    str << std::setprecision(15);
×
309
    str << "raw_gps:" << '\n' << "{\n";
×
310
    str << "    timestamp_us: " << raw_gps.timestamp_us << '\n';
×
311
    str << "    latitude_deg: " << raw_gps.latitude_deg << '\n';
×
312
    str << "    longitude_deg: " << raw_gps.longitude_deg << '\n';
×
313
    str << "    absolute_altitude_m: " << raw_gps.absolute_altitude_m << '\n';
×
314
    str << "    hdop: " << raw_gps.hdop << '\n';
×
315
    str << "    vdop: " << raw_gps.vdop << '\n';
×
316
    str << "    velocity_m_s: " << raw_gps.velocity_m_s << '\n';
×
317
    str << "    cog_deg: " << raw_gps.cog_deg << '\n';
×
318
    str << "    altitude_ellipsoid_m: " << raw_gps.altitude_ellipsoid_m << '\n';
×
319
    str << "    horizontal_uncertainty_m: " << raw_gps.horizontal_uncertainty_m << '\n';
×
320
    str << "    vertical_uncertainty_m: " << raw_gps.vertical_uncertainty_m << '\n';
×
321
    str << "    velocity_uncertainty_m_s: " << raw_gps.velocity_uncertainty_m_s << '\n';
×
322
    str << "    heading_uncertainty_deg: " << raw_gps.heading_uncertainty_deg << '\n';
×
323
    str << "    yaw_deg: " << raw_gps.yaw_deg << '\n';
×
324
    str << '}';
×
325
    return str;
×
326
}
327

328
MAVSDK_PUBLIC bool
NEW
329
operator==(const TelemetryServer::Battery& lhs, const TelemetryServer::Battery& rhs)
×
330
{
331
    return ((std::isnan(rhs.voltage_v) && std::isnan(lhs.voltage_v)) ||
×
332
            rhs.voltage_v == lhs.voltage_v) &&
×
333
           ((std::isnan(rhs.remaining_percent) && std::isnan(lhs.remaining_percent)) ||
×
334
            rhs.remaining_percent == lhs.remaining_percent);
×
335
}
336

NEW
337
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, TelemetryServer::Battery const& battery)
×
338
{
339
    str << std::setprecision(15);
×
340
    str << "battery:" << '\n' << "{\n";
×
341
    str << "    voltage_v: " << battery.voltage_v << '\n';
×
342
    str << "    remaining_percent: " << battery.remaining_percent << '\n';
×
343
    str << '}';
×
344
    return str;
×
345
}
346

347
MAVSDK_PUBLIC bool
NEW
348
operator==(const TelemetryServer::RcStatus& lhs, const TelemetryServer::RcStatus& rhs)
×
349
{
350
    return (rhs.was_available_once == lhs.was_available_once) &&
×
351
           (rhs.is_available == lhs.is_available) &&
×
352
           ((std::isnan(rhs.signal_strength_percent) && std::isnan(lhs.signal_strength_percent)) ||
×
353
            rhs.signal_strength_percent == lhs.signal_strength_percent);
×
354
}
355

356
MAVSDK_PUBLIC std::ostream&
NEW
357
operator<<(std::ostream& str, TelemetryServer::RcStatus const& rc_status)
×
358
{
359
    str << std::setprecision(15);
×
360
    str << "rc_status:" << '\n' << "{\n";
×
361
    str << "    was_available_once: " << rc_status.was_available_once << '\n';
×
362
    str << "    is_available: " << rc_status.is_available << '\n';
×
363
    str << "    signal_strength_percent: " << rc_status.signal_strength_percent << '\n';
×
364
    str << '}';
×
365
    return str;
×
366
}
367

368
MAVSDK_PUBLIC bool
NEW
369
operator==(const TelemetryServer::StatusText& lhs, const TelemetryServer::StatusText& rhs)
×
370
{
371
    return (rhs.type == lhs.type) && (rhs.text == lhs.text);
×
372
}
373

374
MAVSDK_PUBLIC std::ostream&
NEW
375
operator<<(std::ostream& str, TelemetryServer::StatusText const& status_text)
×
376
{
377
    str << std::setprecision(15);
×
378
    str << "status_text:" << '\n' << "{\n";
×
379
    str << "    type: " << status_text.type << '\n';
×
380
    str << "    text: " << status_text.text << '\n';
×
381
    str << '}';
×
382
    return str;
×
383
}
384

NEW
385
MAVSDK_PUBLIC bool operator==(
×
386
    const TelemetryServer::ActuatorControlTarget& lhs,
387
    const TelemetryServer::ActuatorControlTarget& rhs)
388
{
389
    return (rhs.group == lhs.group) && (rhs.controls == lhs.controls);
×
390
}
391

392
MAVSDK_PUBLIC std::ostream&
393
operator<<(std::ostream& str, TelemetryServer::ActuatorControlTarget const& actuator_control_target)
×
394
{
395
    str << std::setprecision(15);
×
396
    str << "actuator_control_target:" << '\n' << "{\n";
×
397
    str << "    group: " << actuator_control_target.group << '\n';
×
398
    str << "    controls: [";
×
399
    for (auto it = actuator_control_target.controls.begin();
×
400
         it != actuator_control_target.controls.end();
×
401
         ++it) {
×
402
        str << *it;
×
403
        str << (it + 1 != actuator_control_target.controls.end() ? ", " : "]\n");
×
404
    }
405
    str << '}';
×
406
    return str;
×
407
}
408

NEW
409
MAVSDK_PUBLIC bool operator==(
×
410
    const TelemetryServer::ActuatorOutputStatus& lhs,
411
    const TelemetryServer::ActuatorOutputStatus& rhs)
412
{
413
    return (rhs.active == lhs.active) && (rhs.actuator == lhs.actuator);
×
414
}
415

416
MAVSDK_PUBLIC std::ostream&
417
operator<<(std::ostream& str, TelemetryServer::ActuatorOutputStatus const& actuator_output_status)
×
418
{
419
    str << std::setprecision(15);
×
420
    str << "actuator_output_status:" << '\n' << "{\n";
×
421
    str << "    active: " << actuator_output_status.active << '\n';
×
422
    str << "    actuator: [";
×
423
    for (auto it = actuator_output_status.actuator.begin();
×
424
         it != actuator_output_status.actuator.end();
×
425
         ++it) {
×
426
        str << *it;
×
427
        str << (it + 1 != actuator_output_status.actuator.end() ? ", " : "]\n");
×
428
    }
429
    str << '}';
×
430
    return str;
×
431
}
432

433
MAVSDK_PUBLIC bool
NEW
434
operator==(const TelemetryServer::Covariance& lhs, const TelemetryServer::Covariance& rhs)
×
435
{
436
    return (rhs.covariance_matrix == lhs.covariance_matrix);
×
437
}
438

439
MAVSDK_PUBLIC std::ostream&
NEW
440
operator<<(std::ostream& str, TelemetryServer::Covariance const& covariance)
×
441
{
442
    str << std::setprecision(15);
×
443
    str << "covariance:" << '\n' << "{\n";
×
444
    str << "    covariance_matrix: [";
×
445
    for (auto it = covariance.covariance_matrix.begin(); it != covariance.covariance_matrix.end();
×
446
         ++it) {
×
447
        str << *it;
×
448
        str << (it + 1 != covariance.covariance_matrix.end() ? ", " : "]\n");
×
449
    }
450
    str << '}';
×
451
    return str;
×
452
}
453

454
MAVSDK_PUBLIC bool
NEW
455
operator==(const TelemetryServer::VelocityBody& lhs, const TelemetryServer::VelocityBody& rhs)
×
456
{
457
    return ((std::isnan(rhs.x_m_s) && std::isnan(lhs.x_m_s)) || rhs.x_m_s == lhs.x_m_s) &&
×
458
           ((std::isnan(rhs.y_m_s) && std::isnan(lhs.y_m_s)) || rhs.y_m_s == lhs.y_m_s) &&
×
459
           ((std::isnan(rhs.z_m_s) && std::isnan(lhs.z_m_s)) || rhs.z_m_s == lhs.z_m_s);
×
460
}
461

462
MAVSDK_PUBLIC std::ostream&
NEW
463
operator<<(std::ostream& str, TelemetryServer::VelocityBody const& velocity_body)
×
464
{
465
    str << std::setprecision(15);
×
466
    str << "velocity_body:" << '\n' << "{\n";
×
467
    str << "    x_m_s: " << velocity_body.x_m_s << '\n';
×
468
    str << "    y_m_s: " << velocity_body.y_m_s << '\n';
×
469
    str << "    z_m_s: " << velocity_body.z_m_s << '\n';
×
470
    str << '}';
×
471
    return str;
×
472
}
473

474
MAVSDK_PUBLIC bool
NEW
475
operator==(const TelemetryServer::PositionBody& lhs, const TelemetryServer::PositionBody& rhs)
×
476
{
477
    return ((std::isnan(rhs.x_m) && std::isnan(lhs.x_m)) || rhs.x_m == lhs.x_m) &&
×
478
           ((std::isnan(rhs.y_m) && std::isnan(lhs.y_m)) || rhs.y_m == lhs.y_m) &&
×
479
           ((std::isnan(rhs.z_m) && std::isnan(lhs.z_m)) || rhs.z_m == lhs.z_m);
×
480
}
481

482
MAVSDK_PUBLIC std::ostream&
NEW
483
operator<<(std::ostream& str, TelemetryServer::PositionBody const& position_body)
×
484
{
485
    str << std::setprecision(15);
×
486
    str << "position_body:" << '\n' << "{\n";
×
487
    str << "    x_m: " << position_body.x_m << '\n';
×
488
    str << "    y_m: " << position_body.y_m << '\n';
×
489
    str << "    z_m: " << position_body.z_m << '\n';
×
490
    str << '}';
×
491
    return str;
×
492
}
493

494
MAVSDK_PUBLIC std::ostream&
NEW
495
operator<<(std::ostream& str, TelemetryServer::Odometry::MavFrame const& mav_frame)
×
496
{
497
    switch (mav_frame) {
×
498
        case TelemetryServer::Odometry::MavFrame::Undef:
×
499
            return str << "Undef";
×
500
        case TelemetryServer::Odometry::MavFrame::BodyNed:
×
501
            return str << "Body Ned";
×
502
        case TelemetryServer::Odometry::MavFrame::VisionNed:
×
503
            return str << "Vision Ned";
×
504
        case TelemetryServer::Odometry::MavFrame::EstimNed:
×
505
            return str << "Estim Ned";
×
506
        default:
×
507
            return str << "Unknown";
×
508
    }
509
}
510
MAVSDK_PUBLIC bool
NEW
511
operator==(const TelemetryServer::Odometry& lhs, const TelemetryServer::Odometry& rhs)
×
512
{
513
    return (rhs.time_usec == lhs.time_usec) && (rhs.frame_id == lhs.frame_id) &&
×
514
           (rhs.child_frame_id == lhs.child_frame_id) && (rhs.position_body == lhs.position_body) &&
×
515
           (rhs.q == lhs.q) && (rhs.velocity_body == lhs.velocity_body) &&
×
516
           (rhs.angular_velocity_body == lhs.angular_velocity_body) &&
×
517
           (rhs.pose_covariance == lhs.pose_covariance) &&
×
518
           (rhs.velocity_covariance == lhs.velocity_covariance);
×
519
}
520

NEW
521
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, TelemetryServer::Odometry const& odometry)
×
522
{
523
    str << std::setprecision(15);
×
524
    str << "odometry:" << '\n' << "{\n";
×
525
    str << "    time_usec: " << odometry.time_usec << '\n';
×
526
    str << "    frame_id: " << odometry.frame_id << '\n';
×
527
    str << "    child_frame_id: " << odometry.child_frame_id << '\n';
×
528
    str << "    position_body: " << odometry.position_body << '\n';
×
529
    str << "    q: " << odometry.q << '\n';
×
530
    str << "    velocity_body: " << odometry.velocity_body << '\n';
×
531
    str << "    angular_velocity_body: " << odometry.angular_velocity_body << '\n';
×
532
    str << "    pose_covariance: " << odometry.pose_covariance << '\n';
×
533
    str << "    velocity_covariance: " << odometry.velocity_covariance << '\n';
×
534
    str << '}';
×
535
    return str;
×
536
}
537

538
MAVSDK_PUBLIC bool
NEW
539
operator==(const TelemetryServer::DistanceSensor& lhs, const TelemetryServer::DistanceSensor& rhs)
×
540
{
541
    return ((std::isnan(rhs.minimum_distance_m) && std::isnan(lhs.minimum_distance_m)) ||
×
542
            rhs.minimum_distance_m == lhs.minimum_distance_m) &&
×
543
           ((std::isnan(rhs.maximum_distance_m) && std::isnan(lhs.maximum_distance_m)) ||
×
544
            rhs.maximum_distance_m == lhs.maximum_distance_m) &&
×
545
           ((std::isnan(rhs.current_distance_m) && std::isnan(lhs.current_distance_m)) ||
×
546
            rhs.current_distance_m == lhs.current_distance_m);
×
547
}
548

549
MAVSDK_PUBLIC std::ostream&
NEW
550
operator<<(std::ostream& str, TelemetryServer::DistanceSensor const& distance_sensor)
×
551
{
552
    str << std::setprecision(15);
×
553
    str << "distance_sensor:" << '\n' << "{\n";
×
554
    str << "    minimum_distance_m: " << distance_sensor.minimum_distance_m << '\n';
×
555
    str << "    maximum_distance_m: " << distance_sensor.maximum_distance_m << '\n';
×
556
    str << "    current_distance_m: " << distance_sensor.current_distance_m << '\n';
×
557
    str << '}';
×
558
    return str;
×
559
}
560

561
MAVSDK_PUBLIC bool
NEW
562
operator==(const TelemetryServer::ScaledPressure& lhs, const TelemetryServer::ScaledPressure& rhs)
×
563
{
564
    return (rhs.timestamp_us == lhs.timestamp_us) &&
×
565
           ((std::isnan(rhs.absolute_pressure_hpa) && std::isnan(lhs.absolute_pressure_hpa)) ||
×
566
            rhs.absolute_pressure_hpa == lhs.absolute_pressure_hpa) &&
×
567
           ((std::isnan(rhs.differential_pressure_hpa) &&
×
568
             std::isnan(lhs.differential_pressure_hpa)) ||
×
569
            rhs.differential_pressure_hpa == lhs.differential_pressure_hpa) &&
×
570
           ((std::isnan(rhs.temperature_deg) && std::isnan(lhs.temperature_deg)) ||
×
571
            rhs.temperature_deg == lhs.temperature_deg) &&
×
572
           ((std::isnan(rhs.differential_pressure_temperature_deg) &&
×
573
             std::isnan(lhs.differential_pressure_temperature_deg)) ||
×
574
            rhs.differential_pressure_temperature_deg == lhs.differential_pressure_temperature_deg);
×
575
}
576

577
MAVSDK_PUBLIC std::ostream&
NEW
578
operator<<(std::ostream& str, TelemetryServer::ScaledPressure const& scaled_pressure)
×
579
{
580
    str << std::setprecision(15);
×
581
    str << "scaled_pressure:" << '\n' << "{\n";
×
582
    str << "    timestamp_us: " << scaled_pressure.timestamp_us << '\n';
×
583
    str << "    absolute_pressure_hpa: " << scaled_pressure.absolute_pressure_hpa << '\n';
×
584
    str << "    differential_pressure_hpa: " << scaled_pressure.differential_pressure_hpa << '\n';
×
585
    str << "    temperature_deg: " << scaled_pressure.temperature_deg << '\n';
×
586
    str << "    differential_pressure_temperature_deg: "
×
587
        << scaled_pressure.differential_pressure_temperature_deg << '\n';
×
588
    str << '}';
×
589
    return str;
×
590
}
591

592
MAVSDK_PUBLIC bool
NEW
593
operator==(const TelemetryServer::PositionNed& lhs, const TelemetryServer::PositionNed& rhs)
×
594
{
595
    return ((std::isnan(rhs.north_m) && std::isnan(lhs.north_m)) || rhs.north_m == lhs.north_m) &&
×
596
           ((std::isnan(rhs.east_m) && std::isnan(lhs.east_m)) || rhs.east_m == lhs.east_m) &&
×
597
           ((std::isnan(rhs.down_m) && std::isnan(lhs.down_m)) || rhs.down_m == lhs.down_m);
×
598
}
599

600
MAVSDK_PUBLIC std::ostream&
NEW
601
operator<<(std::ostream& str, TelemetryServer::PositionNed const& position_ned)
×
602
{
603
    str << std::setprecision(15);
×
604
    str << "position_ned:" << '\n' << "{\n";
×
605
    str << "    north_m: " << position_ned.north_m << '\n';
×
606
    str << "    east_m: " << position_ned.east_m << '\n';
×
607
    str << "    down_m: " << position_ned.down_m << '\n';
×
608
    str << '}';
×
609
    return str;
×
610
}
611

612
MAVSDK_PUBLIC bool
NEW
613
operator==(const TelemetryServer::VelocityNed& lhs, const TelemetryServer::VelocityNed& rhs)
×
614
{
615
    return ((std::isnan(rhs.north_m_s) && std::isnan(lhs.north_m_s)) ||
×
616
            rhs.north_m_s == lhs.north_m_s) &&
×
617
           ((std::isnan(rhs.east_m_s) && std::isnan(lhs.east_m_s)) ||
×
618
            rhs.east_m_s == lhs.east_m_s) &&
×
619
           ((std::isnan(rhs.down_m_s) && std::isnan(lhs.down_m_s)) || rhs.down_m_s == lhs.down_m_s);
×
620
}
621

622
MAVSDK_PUBLIC std::ostream&
NEW
623
operator<<(std::ostream& str, TelemetryServer::VelocityNed const& velocity_ned)
×
624
{
625
    str << std::setprecision(15);
×
626
    str << "velocity_ned:" << '\n' << "{\n";
×
627
    str << "    north_m_s: " << velocity_ned.north_m_s << '\n';
×
628
    str << "    east_m_s: " << velocity_ned.east_m_s << '\n';
×
629
    str << "    down_m_s: " << velocity_ned.down_m_s << '\n';
×
630
    str << '}';
×
631
    return str;
×
632
}
633

NEW
634
MAVSDK_PUBLIC bool operator==(
×
635
    const TelemetryServer::PositionVelocityNed& lhs,
636
    const TelemetryServer::PositionVelocityNed& rhs)
637
{
638
    return (rhs.position == lhs.position) && (rhs.velocity == lhs.velocity);
×
639
}
640

641
MAVSDK_PUBLIC std::ostream&
642
operator<<(std::ostream& str, TelemetryServer::PositionVelocityNed const& position_velocity_ned)
×
643
{
644
    str << std::setprecision(15);
×
645
    str << "position_velocity_ned:" << '\n' << "{\n";
×
646
    str << "    position: " << position_velocity_ned.position << '\n';
×
647
    str << "    velocity: " << position_velocity_ned.velocity << '\n';
×
648
    str << '}';
×
649
    return str;
×
650
}
651

652
MAVSDK_PUBLIC bool
NEW
653
operator==(const TelemetryServer::GroundTruth& lhs, const TelemetryServer::GroundTruth& rhs)
×
654
{
655
    return ((std::isnan(rhs.latitude_deg) && std::isnan(lhs.latitude_deg)) ||
×
656
            rhs.latitude_deg == lhs.latitude_deg) &&
×
657
           ((std::isnan(rhs.longitude_deg) && std::isnan(lhs.longitude_deg)) ||
×
658
            rhs.longitude_deg == lhs.longitude_deg) &&
×
659
           ((std::isnan(rhs.absolute_altitude_m) && std::isnan(lhs.absolute_altitude_m)) ||
×
660
            rhs.absolute_altitude_m == lhs.absolute_altitude_m) &&
×
661
           (rhs.timestamp_us == lhs.timestamp_us);
×
662
}
663

664
MAVSDK_PUBLIC std::ostream&
NEW
665
operator<<(std::ostream& str, TelemetryServer::GroundTruth const& ground_truth)
×
666
{
667
    str << std::setprecision(15);
×
668
    str << "ground_truth:" << '\n' << "{\n";
×
669
    str << "    latitude_deg: " << ground_truth.latitude_deg << '\n';
×
670
    str << "    longitude_deg: " << ground_truth.longitude_deg << '\n';
×
671
    str << "    absolute_altitude_m: " << ground_truth.absolute_altitude_m << '\n';
×
672
    str << "    timestamp_us: " << ground_truth.timestamp_us << '\n';
×
673
    str << '}';
×
674
    return str;
×
675
}
676

NEW
677
MAVSDK_PUBLIC bool operator==(
×
678
    const TelemetryServer::FixedwingMetrics& lhs, const TelemetryServer::FixedwingMetrics& rhs)
679
{
680
    return ((std::isnan(rhs.airspeed_m_s) && std::isnan(lhs.airspeed_m_s)) ||
×
681
            rhs.airspeed_m_s == lhs.airspeed_m_s) &&
×
682
           ((std::isnan(rhs.throttle_percentage) && std::isnan(lhs.throttle_percentage)) ||
×
683
            rhs.throttle_percentage == lhs.throttle_percentage) &&
×
684
           ((std::isnan(rhs.climb_rate_m_s) && std::isnan(lhs.climb_rate_m_s)) ||
×
685
            rhs.climb_rate_m_s == lhs.climb_rate_m_s) &&
×
686
           ((std::isnan(rhs.groundspeed_m_s) && std::isnan(lhs.groundspeed_m_s)) ||
×
687
            rhs.groundspeed_m_s == lhs.groundspeed_m_s) &&
×
688
           ((std::isnan(rhs.heading_deg) && std::isnan(lhs.heading_deg)) ||
×
689
            rhs.heading_deg == lhs.heading_deg) &&
×
690
           ((std::isnan(rhs.absolute_altitude_m) && std::isnan(lhs.absolute_altitude_m)) ||
×
691
            rhs.absolute_altitude_m == lhs.absolute_altitude_m);
×
692
}
693

694
MAVSDK_PUBLIC std::ostream&
695
operator<<(std::ostream& str, TelemetryServer::FixedwingMetrics const& fixedwing_metrics)
×
696
{
697
    str << std::setprecision(15);
×
698
    str << "fixedwing_metrics:" << '\n' << "{\n";
×
699
    str << "    airspeed_m_s: " << fixedwing_metrics.airspeed_m_s << '\n';
×
700
    str << "    throttle_percentage: " << fixedwing_metrics.throttle_percentage << '\n';
×
701
    str << "    climb_rate_m_s: " << fixedwing_metrics.climb_rate_m_s << '\n';
×
702
    str << "    groundspeed_m_s: " << fixedwing_metrics.groundspeed_m_s << '\n';
×
703
    str << "    heading_deg: " << fixedwing_metrics.heading_deg << '\n';
×
704
    str << "    absolute_altitude_m: " << fixedwing_metrics.absolute_altitude_m << '\n';
×
705
    str << '}';
×
706
    return str;
×
707
}
708

709
MAVSDK_PUBLIC bool
NEW
710
operator==(const TelemetryServer::AccelerationFrd& lhs, const TelemetryServer::AccelerationFrd& rhs)
×
711
{
712
    return ((std::isnan(rhs.forward_m_s2) && std::isnan(lhs.forward_m_s2)) ||
×
713
            rhs.forward_m_s2 == lhs.forward_m_s2) &&
×
714
           ((std::isnan(rhs.right_m_s2) && std::isnan(lhs.right_m_s2)) ||
×
715
            rhs.right_m_s2 == lhs.right_m_s2) &&
×
716
           ((std::isnan(rhs.down_m_s2) && std::isnan(lhs.down_m_s2)) ||
×
717
            rhs.down_m_s2 == lhs.down_m_s2);
×
718
}
719

720
MAVSDK_PUBLIC std::ostream&
721
operator<<(std::ostream& str, TelemetryServer::AccelerationFrd const& acceleration_frd)
×
722
{
723
    str << std::setprecision(15);
×
724
    str << "acceleration_frd:" << '\n' << "{\n";
×
725
    str << "    forward_m_s2: " << acceleration_frd.forward_m_s2 << '\n';
×
726
    str << "    right_m_s2: " << acceleration_frd.right_m_s2 << '\n';
×
727
    str << "    down_m_s2: " << acceleration_frd.down_m_s2 << '\n';
×
728
    str << '}';
×
729
    return str;
×
730
}
731

NEW
732
MAVSDK_PUBLIC bool operator==(
×
733
    const TelemetryServer::AngularVelocityFrd& lhs, const TelemetryServer::AngularVelocityFrd& rhs)
734
{
735
    return ((std::isnan(rhs.forward_rad_s) && std::isnan(lhs.forward_rad_s)) ||
×
736
            rhs.forward_rad_s == lhs.forward_rad_s) &&
×
737
           ((std::isnan(rhs.right_rad_s) && std::isnan(lhs.right_rad_s)) ||
×
738
            rhs.right_rad_s == lhs.right_rad_s) &&
×
739
           ((std::isnan(rhs.down_rad_s) && std::isnan(lhs.down_rad_s)) ||
×
740
            rhs.down_rad_s == lhs.down_rad_s);
×
741
}
742

743
MAVSDK_PUBLIC std::ostream&
744
operator<<(std::ostream& str, TelemetryServer::AngularVelocityFrd const& angular_velocity_frd)
×
745
{
746
    str << std::setprecision(15);
×
747
    str << "angular_velocity_frd:" << '\n' << "{\n";
×
748
    str << "    forward_rad_s: " << angular_velocity_frd.forward_rad_s << '\n';
×
749
    str << "    right_rad_s: " << angular_velocity_frd.right_rad_s << '\n';
×
750
    str << "    down_rad_s: " << angular_velocity_frd.down_rad_s << '\n';
×
751
    str << '}';
×
752
    return str;
×
753
}
754

NEW
755
MAVSDK_PUBLIC bool operator==(
×
756
    const TelemetryServer::MagneticFieldFrd& lhs, const TelemetryServer::MagneticFieldFrd& rhs)
757
{
758
    return ((std::isnan(rhs.forward_gauss) && std::isnan(lhs.forward_gauss)) ||
×
759
            rhs.forward_gauss == lhs.forward_gauss) &&
×
760
           ((std::isnan(rhs.right_gauss) && std::isnan(lhs.right_gauss)) ||
×
761
            rhs.right_gauss == lhs.right_gauss) &&
×
762
           ((std::isnan(rhs.down_gauss) && std::isnan(lhs.down_gauss)) ||
×
763
            rhs.down_gauss == lhs.down_gauss);
×
764
}
765

766
MAVSDK_PUBLIC std::ostream&
767
operator<<(std::ostream& str, TelemetryServer::MagneticFieldFrd const& magnetic_field_frd)
×
768
{
769
    str << std::setprecision(15);
×
770
    str << "magnetic_field_frd:" << '\n' << "{\n";
×
771
    str << "    forward_gauss: " << magnetic_field_frd.forward_gauss << '\n';
×
772
    str << "    right_gauss: " << magnetic_field_frd.right_gauss << '\n';
×
773
    str << "    down_gauss: " << magnetic_field_frd.down_gauss << '\n';
×
774
    str << '}';
×
775
    return str;
×
776
}
777

NEW
778
MAVSDK_PUBLIC bool operator==(const TelemetryServer::Imu& lhs, const TelemetryServer::Imu& rhs)
×
779
{
780
    return (rhs.acceleration_frd == lhs.acceleration_frd) &&
×
781
           (rhs.angular_velocity_frd == lhs.angular_velocity_frd) &&
×
782
           (rhs.magnetic_field_frd == lhs.magnetic_field_frd) &&
×
783
           ((std::isnan(rhs.temperature_degc) && std::isnan(lhs.temperature_degc)) ||
×
784
            rhs.temperature_degc == lhs.temperature_degc) &&
×
785
           (rhs.timestamp_us == lhs.timestamp_us);
×
786
}
787

NEW
788
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, TelemetryServer::Imu const& imu)
×
789
{
790
    str << std::setprecision(15);
×
791
    str << "imu:" << '\n' << "{\n";
×
792
    str << "    acceleration_frd: " << imu.acceleration_frd << '\n';
×
793
    str << "    angular_velocity_frd: " << imu.angular_velocity_frd << '\n';
×
794
    str << "    magnetic_field_frd: " << imu.magnetic_field_frd << '\n';
×
795
    str << "    temperature_degc: " << imu.temperature_degc << '\n';
×
796
    str << "    timestamp_us: " << imu.timestamp_us << '\n';
×
797
    str << '}';
×
798
    return str;
×
799
}
800

NEW
801
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, TelemetryServer::Result const& result)
×
802
{
803
    switch (result) {
×
804
        case TelemetryServer::Result::Unknown:
×
805
            return str << "Unknown";
×
806
        case TelemetryServer::Result::Success:
×
807
            return str << "Success";
×
808
        case TelemetryServer::Result::NoSystem:
×
809
            return str << "No System";
×
810
        case TelemetryServer::Result::ConnectionError:
×
811
            return str << "Connection Error";
×
812
        case TelemetryServer::Result::Busy:
×
813
            return str << "Busy";
×
814
        case TelemetryServer::Result::CommandDenied:
×
815
            return str << "Command Denied";
×
816
        case TelemetryServer::Result::Timeout:
×
817
            return str << "Timeout";
×
818
        case TelemetryServer::Result::Unsupported:
×
819
            return str << "Unsupported";
×
820
        default:
×
821
            return str << "Unknown";
×
822
    }
823
}
824

NEW
825
MAVSDK_PUBLIC std::ostream& operator<<(std::ostream& str, TelemetryServer::FixType const& fix_type)
×
826
{
827
    switch (fix_type) {
×
828
        case TelemetryServer::FixType::NoGps:
×
829
            return str << "No Gps";
×
830
        case TelemetryServer::FixType::NoFix:
×
831
            return str << "No Fix";
×
832
        case TelemetryServer::FixType::Fix2D:
×
833
            return str << "Fix 2D";
×
834
        case TelemetryServer::FixType::Fix3D:
×
835
            return str << "Fix 3D";
×
836
        case TelemetryServer::FixType::FixDgps:
×
837
            return str << "Fix Dgps";
×
838
        case TelemetryServer::FixType::RtkFloat:
×
839
            return str << "Rtk Float";
×
840
        case TelemetryServer::FixType::RtkFixed:
×
841
            return str << "Rtk Fixed";
×
842
        default:
×
843
            return str << "Unknown";
×
844
    }
845
}
846

847
MAVSDK_PUBLIC std::ostream&
NEW
848
operator<<(std::ostream& str, TelemetryServer::VtolState const& vtol_state)
×
849
{
850
    switch (vtol_state) {
×
851
        case TelemetryServer::VtolState::Undefined:
×
852
            return str << "Undefined";
×
853
        case TelemetryServer::VtolState::TransitionToFw:
×
854
            return str << "Transition To Fw";
×
855
        case TelemetryServer::VtolState::TransitionToMc:
×
856
            return str << "Transition To Mc";
×
857
        case TelemetryServer::VtolState::Mc:
×
858
            return str << "Mc";
×
859
        case TelemetryServer::VtolState::Fw:
×
860
            return str << "Fw";
×
861
        default:
×
862
            return str << "Unknown";
×
863
    }
864
}
865

866
MAVSDK_PUBLIC std::ostream&
NEW
867
operator<<(std::ostream& str, TelemetryServer::StatusTextType const& status_text_type)
×
868
{
869
    switch (status_text_type) {
×
870
        case TelemetryServer::StatusTextType::Debug:
×
871
            return str << "Debug";
×
872
        case TelemetryServer::StatusTextType::Info:
×
873
            return str << "Info";
×
874
        case TelemetryServer::StatusTextType::Notice:
×
875
            return str << "Notice";
×
876
        case TelemetryServer::StatusTextType::Warning:
×
877
            return str << "Warning";
×
878
        case TelemetryServer::StatusTextType::Error:
×
879
            return str << "Error";
×
880
        case TelemetryServer::StatusTextType::Critical:
×
881
            return str << "Critical";
×
882
        case TelemetryServer::StatusTextType::Alert:
×
883
            return str << "Alert";
×
884
        case TelemetryServer::StatusTextType::Emergency:
×
885
            return str << "Emergency";
×
886
        default:
×
887
            return str << "Unknown";
×
888
    }
889
}
890

891
MAVSDK_PUBLIC std::ostream&
NEW
892
operator<<(std::ostream& str, TelemetryServer::LandedState const& landed_state)
×
893
{
894
    switch (landed_state) {
×
895
        case TelemetryServer::LandedState::Unknown:
×
896
            return str << "Unknown";
×
897
        case TelemetryServer::LandedState::OnGround:
×
898
            return str << "On Ground";
×
899
        case TelemetryServer::LandedState::InAir:
×
900
            return str << "In Air";
×
901
        case TelemetryServer::LandedState::TakingOff:
×
902
            return str << "Taking Off";
×
903
        case TelemetryServer::LandedState::Landing:
×
904
            return str << "Landing";
×
905
        default:
×
906
            return str << "Unknown";
×
907
    }
908
}
909

910
} // namespace mavsdk
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc