forked from mavlink/MAVSDK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
dronecore.h
54 lines (41 loc) · 1.15 KB
/
dronecore.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#pragma once
#include "device.h"
#include <string>
#include <vector>
#include <functional>
namespace dronecore {
class DroneCoreImpl;
class DroneCore
{
public:
DroneCore();
~DroneCore();
enum class ConnectionResult {
SUCCESS = 0,
TIMEOUT,
SOCKET_ERROR,
BIND_ERROR,
CONNECTION_ERROR,
NOT_IMPLEMENTED,
DEVICE_NOT_CONNECTED,
DEVICE_BUSY,
COMMAND_DENIED,
DESTINATION_IP_UNKNOWN,
CONNECTIONS_EXHAUSTED
};
static const char *connection_result_str(ConnectionResult);
ConnectionResult add_udp_connection();
ConnectionResult add_udp_connection(int local_port_number);
const std::vector<uint64_t> &device_uuids() const;
Device &device() const;
Device &device(uint64_t uuid) const;
typedef std::function<void(uint64_t uuid)> event_callback_t;
void register_on_discover(event_callback_t callback);
void register_on_timeout(event_callback_t callback);
private:
DroneCoreImpl *_impl;
// Non-copyable
DroneCore(const DroneCore &) = delete;
const DroneCore &operator=(const DroneCore &) = delete;
};
} // namespace dronecore