Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
formation.h
Go to the documentation of this file.
1
7#ifndef FORMATION_H
8#define FORMATION_H
9
10#include "modules/datalink/datalink.h" // dl_buffer
11#include "generated/airframe.h" // AC_ID
13
14#define FORM_MODE_GLOBAL 0
15#define FORM_MODE_COURSE 1
16
18extern float form_prox;
19extern uint8_t form_mode;
20extern uint8_t leader_id;
21
23
24struct slot_ {
26 float east;
27 float north;
28 float alt;
29};
30
31extern struct slot_ formation[];
32
33extern int formation_init(void);
34
35extern int add_slot(uint8_t _id, float slot_e, float slot_n, float slot_a);
36
37static inline void updateSlot(uint8_t id, float se, float sn, float sa)
38{
42}
43
45
46static inline void parseFormationStatus(uint8_t *buf)
47{
51 if (ac_id == AC_ID) { leader_id = leader; }
52 else if (leader == leader_id) { updateFormationStatus(ac_id, status); }
53 else { updateFormationStatus(ac_id, UNSET); }
54}
55
66
67extern int start_formation(void);
68extern int stop_formation(void);
69extern int formation_flight(void);
70extern void formation_pre_call(void);
71
72#endif /* FORMATION_H */
static uint8_t status
static void parseFormationSlot(uint8_t *buf)
Definition formation.h:56
enum slot_status status
Definition formation.h:25
struct slot_ formation[]
Definition formation.c:32
int formation_flight(void)
Definition formation.c:124
slot_status
Definition formation.h:22
@ LOST
Definition formation.h:22
@ ACTIVE
Definition formation.h:22
@ UNSET
Definition formation.h:22
@ IDLE
Definition formation.h:22
float alt
Definition formation.h:28
float coef_form_pos
Definition formation.h:17
float coef_form_course
Definition formation.h:17
float east
Definition formation.h:26
uint8_t leader_id
Definition formation.c:29
static void updateSlot(uint8_t id, float se, float sn, float sa)
Definition formation.h:37
int add_slot(uint8_t _id, float slot_e, float slot_n, float slot_a)
Definition formation.c:80
int start_formation(void)
Definition formation.c:91
uint8_t form_mode
Definition formation.c:28
float north
Definition formation.h:27
static void updateFormationStatus(uint8_t id, uint8_t status)
Definition formation.h:44
float coef_form_speed
Definition formation.h:17
static void parseFormationStatus(uint8_t *buf)
Definition formation.h:46
float form_prox
Definition formation.c:23
float coef_form_alt
Definition formation.c:27
int formation_init(void)
Definition formation.c:62
void formation_pre_call(void)
Definition formation.c:254
int stop_formation(void)
Definition formation.c:106
uint8_t ti_acs_id[NB_ACS_ID]
uint16_t foo
Definition main_demo5.c:58
static uint8_t mode
mode holds the current sonar mode mode = 0 used at high altitude, uses 16 wave patterns mode = 1 used...
Definition sonar_bebop.c:65
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.