Soletta™ Framework
Framework for making IoT devices

Full online documentation | C API Index
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
sol-mavlink.h
Go to the documentation of this file.
1 /*
2  * This file is part of the Soletta (TM) Project
3  *
4  * Copyright (C) 2015 Intel Corporation. All rights reserved.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 
19 #pragma once
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
56 struct sol_mavlink;
57 typedef struct sol_mavlink sol_mavlink;
58 
70 
77 
85 
87 
93 
95 
101 
106 
115 
121 
129 
137 
143 
150 
156 
166 };
167 
171 typedef struct sol_mavlink_position {
173  float latitude;
174 
176  float longitude;
177 
179  float altitude;
180 
182  float x;
183 
185  float y;
186 
188  float z;
190 
194 typedef struct sol_mavlink_handlers {
195 #ifndef SOL_NO_API_VERSION
196 #define SOL_MAVLINK_HANDLERS_API_VERSION (1)
197 
200  uint16_t api_version;
201 #endif
202 
213  void (*connect) (void *data, struct sol_mavlink *mavlink);
214 
225  void (*mode_changed) (void *data, struct sol_mavlink *mavlink);
226 
239  void (*armed) (void *data, struct sol_mavlink *mavlink);
240 
253  void (*disarmed) (void *data, struct sol_mavlink *mavlink);
254 
267  void (*position_changed) (void *data, struct sol_mavlink *mavlink);
268 
281  void (*mission_reached) (void *data, struct sol_mavlink *mavlink);
283 
287 typedef struct sol_mavlink_config {
288 #ifndef SOL_NO_API_VERSION
289 #define SOL_MAVLINK_CONFIG_API_VERSION (1)
290 
293  uint16_t api_version;
294 #endif
295 
300 
306 
323 struct sol_mavlink *sol_mavlink_connect(const char *addr, const struct sol_mavlink_config *config, const void *data);
324 
335 void sol_mavlink_disconnect(struct sol_mavlink *mavlink);
336 
347 int sol_mavlink_set_armed(struct sol_mavlink *mavlink, bool armed);
348 
366 int sol_mavlink_take_off(struct sol_mavlink *mavlink, struct sol_mavlink_position *pos);
367 
379 int sol_mavlink_set_mode(struct sol_mavlink *mavlink, enum sol_mavlink_mode mode);
380 
392 
402 bool sol_mavlink_is_armed(struct sol_mavlink *mavlink);
403 
412 int sol_mavlink_get_current_position(struct sol_mavlink *mavlink, struct sol_mavlink_position *pos);
413 
425 int sol_mavlink_get_home_position(struct sol_mavlink *mavlink, struct sol_mavlink_position *pos);
426 
435 int sol_mavlink_land(struct sol_mavlink *mavlink, struct sol_mavlink_position *pos);
436 
445 int sol_mavlink_go_to(struct sol_mavlink *mavlink, struct sol_mavlink_position *pos);
446 
456 int sol_mavlink_change_speed(struct sol_mavlink *mavlink, float speed, bool airspeed);
457 
462 #ifdef __cplusplus
463 }
464 #endif