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

mavlink / MAVSDK / 16636200771

30 Jul 2025 11:46PM UTC coverage: 44.271% (-2.0%) from 46.31%
16636200771

Pull #2626

github

web-flow
Merge bfd339d18 into c0a7c02a0
Pull Request #2626: core: flush after each Log* line

237 of 350 new or added lines in 32 files covered. (67.71%)

405 existing lines in 18 files now uncovered.

15319 of 34603 relevant lines covered (44.27%)

293.66 hits per line

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

0.0
/src/mavsdk/plugins/telemetry_server/telemetry_server_impl.h
1
#pragma once
2

3
#include "plugins/telemetry_server/telemetry_server.h"
4
#include "server_plugin_impl_base.h"
5

6
#include <unordered_map>
7
#include <chrono>
8
#include <optional>
9

10
namespace mavsdk {
11

12
class TelemetryServerImpl : public ServerPluginImplBase {
13
public:
14
    struct RequestMsgInterval {
15
        uint32_t msg_id{0};
16
        uint32_t interval{0};
17
        CallEveryHandler::Cookie cookie{};
18
    };
19

20
    explicit TelemetryServerImpl(std::shared_ptr<ServerComponent> server_component);
21
    ~TelemetryServerImpl() override;
22

23
    void init() override;
24
    void deinit() override;
25

26
    void publish_position_async(
27
        TelemetryServer::Position position,
28
        TelemetryServer::VelocityNed velocity_ned,
29
        const TelemetryServer::ResultCallback callback);
30

31
    TelemetryServer::Result publish_position(
32
        TelemetryServer::Position position,
33
        TelemetryServer::VelocityNed velocity_ned,
34
        TelemetryServer::Heading heading);
35

36
    TelemetryServer::Result publish_home(TelemetryServer::Position home);
37

38
    TelemetryServer::Result
39
    publish_raw_gps(TelemetryServer::RawGps raw_gps, TelemetryServer::GpsInfo gps_info);
40

41
    TelemetryServer::Result publish_battery(TelemetryServer::Battery battery);
42

43
    TelemetryServer::Result
44
    publish_distance_sensor(TelemetryServer::DistanceSensor distance_sensor);
45

46
    TelemetryServer::Result publish_status_text(TelemetryServer::StatusText status_text);
47

48
    TelemetryServer::Result publish_odometry(TelemetryServer::Odometry odometry);
49

50
    TelemetryServer::Result
51
    publish_position_velocity_ned(TelemetryServer::PositionVelocityNed position_velocity_ned);
52

53
    TelemetryServer::Result publish_ground_truth(TelemetryServer::GroundTruth ground_truth);
54

55
    void
56
    publish_imu_async(TelemetryServer::Imu imu, const TelemetryServer::ResultCallback callback);
57

58
    TelemetryServer::Result publish_imu(TelemetryServer::Imu imu);
59

60
    TelemetryServer::Result publish_scaled_imu(TelemetryServer::Imu imu);
61

62
    TelemetryServer::Result publish_raw_imu(TelemetryServer::Imu imu);
63

64
    TelemetryServer::Result publish_health_all_ok(bool is_health_all_ok);
65

66
    TelemetryServer::Result publish_unix_epoch_time(uint64_t time_us);
67

68
    TelemetryServer::Result publish_sys_status(
69
        TelemetryServer::Battery battery,
70
        bool rc_receiver_status,
71
        bool gyro_status,
72
        bool accel_status,
73
        bool mag_status,
74
        bool gps_status);
75

76
    TelemetryServer::Result publish_extended_sys_state(
77
        TelemetryServer::VtolState vtol_state, TelemetryServer::LandedState landed_state);
78

79
    TelemetryServer::Result publish_attitude(
80
        TelemetryServer::EulerAngle attitude,
81
        TelemetryServer::AngularVelocityBody angular_velocity);
82

83
    TelemetryServer::Result
84
    publish_visual_flight_rules_hud(TelemetryServer::FixedwingMetrics fixed_wing_metrics);
85

86
private:
87
    bool _send_home();
88

89
    std::chrono::time_point<std::chrono::steady_clock> _start_time;
90

91
    std::mutex _mutex;
92
    std::vector<RequestMsgInterval> _interval_requests;
93

94
    std::optional<TelemetryServer::Position> _maybe_home{};
95

UNCOV
96
    uint64_t get_boot_time_ms()
×
97
    {
UNCOV
98
        return std::chrono::duration_cast<std::chrono::milliseconds>(
×
UNCOV
99
                   std::chrono::steady_clock::now() - _start_time)
×
UNCOV
100
            .count();
×
101
    }
102

103
    uint64_t get_epoch_time()
104
    {
105
        return std::chrono::steady_clock::now().time_since_epoch().count();
106
    }
107
};
108

109
} // 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