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

mavlink / MAVSDK / 11767930807

10 Nov 2024 07:33PM UTC coverage: 38.608% (+0.7%) from 37.921%
11767930807

push

github

web-flow
Merge pull request #2394 from mavlink/pr-consolidate-ci

Consolidate CI

12030 of 31159 relevant lines covered (38.61%)

243.33 hits per line

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

0.0
/src/mavsdk/plugins/gripper/gripper_impl.cpp
1
#include "gripper_impl.h"
2

3
namespace mavsdk {
4

5
GripperImpl::GripperImpl(System& system) : PluginImplBase(system)
×
6
{
7
    _system_impl->register_plugin(this);
×
8
}
×
9

10
GripperImpl::GripperImpl(std::shared_ptr<System> system) : PluginImplBase(std::move(system))
×
11
{
12
    _system_impl->register_plugin(this);
×
13
}
×
14

15
GripperImpl::~GripperImpl()
×
16
{
17
    _system_impl->unregister_plugin(this);
×
18
}
×
19

20
void GripperImpl::init() {}
×
21

22
void GripperImpl::deinit() {}
×
23

24
void GripperImpl::enable() {}
×
25

26
void GripperImpl::disable() {}
×
27

28
void GripperImpl::grab_async(uint32_t instance, const Gripper::ResultCallback callback)
×
29
{
30
    MavlinkCommandSender::CommandLong command{};
×
31

32
    command.command = MAV_CMD_DO_GRIPPER;
×
33
    command.params.maybe_param1 = static_cast<float>(instance);
×
34
    command.params.maybe_param2 = static_cast<float>(Gripper::GripperAction::Grab);
×
35

36
    command.target_component_id = MAV_COMPONENT::MAV_COMP_ID_WINCH; // TODO
×
37

38
    _system_impl->send_command_async(
×
39
        command, [this, callback](MavlinkCommandSender::Result result, float) {
×
40
            command_result_callback(result, callback);
×
41
        });
×
42
}
×
43

44
Gripper::Result GripperImpl::grab(uint32_t instance)
×
45
{
46
    auto prom = std::promise<Gripper::Result>();
×
47
    auto fut = prom.get_future();
×
48

49
    grab_async(instance, [&prom](Gripper::Result result) { prom.set_value(result); });
×
50

51
    return fut.get();
×
52
}
×
53

54
void GripperImpl::release_async(uint32_t instance, const Gripper::ResultCallback callback)
×
55
{
56
    MavlinkCommandSender::CommandLong command{};
×
57

58
    command.command = MAV_CMD_DO_GRIPPER;
×
59
    command.params.maybe_param1 = static_cast<float>(instance);
×
60
    command.params.maybe_param2 = static_cast<float>(Gripper::GripperAction::Release);
×
61

62
    command.target_component_id = MAV_COMPONENT::MAV_COMP_ID_WINCH; // TODO
×
63

64
    _system_impl->send_command_async(
×
65
        command, [this, callback](MavlinkCommandSender::Result result, float) {
×
66
            command_result_callback(result, callback);
×
67
        });
×
68
}
×
69

70
Gripper::Result GripperImpl::release(uint32_t instance)
×
71
{
72
    auto prom = std::promise<Gripper::Result>();
×
73
    auto fut = prom.get_future();
×
74

75
    release_async(instance, [&prom](Gripper::Result result) { prom.set_value(result); });
×
76

77
    return fut.get();
×
78
}
×
79

80
Gripper::Result GripperImpl::gripper_result_from_command_result(MavlinkCommandSender::Result result)
×
81
{
82
    switch (result) {
×
83
        case MavlinkCommandSender::Result::Success:
×
84
            return Gripper::Result::Success;
×
85
        case MavlinkCommandSender::Result::NoSystem:
×
86
            return Gripper::Result::NoSystem;
×
87
        case MavlinkCommandSender::Result::ConnectionError:
×
88
            // Fallthrough
89
        case MavlinkCommandSender::Result::Timeout:
90
            return Gripper::Result::Timeout;
×
91
        case MavlinkCommandSender::Result::Busy:
×
92
            return Gripper::Result::Busy;
×
93
        case MavlinkCommandSender::Result::Denied:
×
94
            // Fallthrough
95
        case MavlinkCommandSender::Result::TemporarilyRejected:
96
            // Fallthrough
97
        case MavlinkCommandSender::Result::Failed:
98
            return Gripper::Result::Failed;
×
99
        case MavlinkCommandSender::Result::Unsupported:
×
100
            return Gripper::Result::Unsupported;
×
101
        default:
×
102
            return Gripper::Result::Unknown;
×
103
    }
104
}
105

106
void GripperImpl::command_result_callback(
×
107
    MavlinkCommandSender::Result command_result, const Gripper::ResultCallback& callback) const
108
{
109
    Gripper::Result action_result = gripper_result_from_command_result(command_result);
×
110

111
    if (callback) {
×
112
        auto temp_callback = callback;
×
113
        _system_impl->call_user_callback(
×
114
            [temp_callback, action_result]() { temp_callback(action_result); });
115
    }
×
116
}
×
117

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

© 2025 Coveralls, Inc