Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
ahrs.c File Reference

Dispatcher to register actual AHRS implementations. More...

+ Include dependency graph for ahrs.c:

Go to the source code of this file.

Data Structures

struct  AhrsImpl
 references a registered AHRS implementation More...
 

Macros

#define __RegisterAhrs(_x)   _x ## _register()
 
#define _RegisterAhrs(_x)   __RegisterAhrs(_x)
 
#define RegisterAhrs(_x)   _RegisterAhrs(_x)
 
#define AHRS_NB_IMPL   2
 maximum number of AHRS implementations that can register More...
 

Functions

void ahrs_register_impl (AhrsEnableOutput enable)
 Register an AHRS implementation. More...
 
void ahrs_init (void)
 AHRS initialization. More...
 
int ahrs_switch (uint8_t idx)
 Switch to the output of another AHRS impl. More...
 

Variables

struct AhrsImpl ahrs_impls [AHRS_NB_IMPL]
 
uint8_t ahrs_output_idx
 

Detailed Description

Dispatcher to register actual AHRS implementations.

Definition in file ahrs.c.


Data Structure Documentation

◆ AhrsImpl

struct AhrsImpl

references a registered AHRS implementation

Definition at line 55 of file ahrs.c.

Data Fields
AhrsEnableOutput enable

Macro Definition Documentation

◆ __RegisterAhrs

#define __RegisterAhrs (   _x)    _x ## _register()

Definition at line 45 of file ahrs.c.

◆ _RegisterAhrs

#define _RegisterAhrs (   _x)    __RegisterAhrs(_x)

Definition at line 46 of file ahrs.c.

◆ AHRS_NB_IMPL

#define AHRS_NB_IMPL   2

maximum number of AHRS implementations that can register

Definition at line 51 of file ahrs.c.

◆ RegisterAhrs

#define RegisterAhrs (   _x)    _RegisterAhrs(_x)

Definition at line 47 of file ahrs.c.

Function Documentation

◆ ahrs_init()

void ahrs_init ( void  )

AHRS initialization.

Called at startup. Registers/initializes the default AHRS.

Definition at line 73 of file ahrs.c.

References ahrs_aligner_init(), ahrs_impls, AHRS_NB_IMPL, ahrs_switch(), AhrsImpl::enable, PRIMARY_AHRS, and RegisterAhrs.

Referenced by main_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ahrs_register_impl()

void ahrs_register_impl ( AhrsEnableOutput  enable)

Register an AHRS implementation.

Adds it to an internal list.

Parameters
enablepointer to function to enable/disable the output of registering AHRS

Definition at line 62 of file ahrs.c.

References ahrs_impls, AHRS_NB_IMPL, and AhrsImpl::enable.

Referenced by ahrs_chimu_register(), ahrs_dcm_register(), ahrs_fc_register(), ahrs_float_invariant_register(), ahrs_icq_register(), ahrs_madgwick_register(), ahrs_mlkf_register(), ahrs_sim_register(), and ahrs_vectornav_register().

+ Here is the caller graph for this function:

◆ ahrs_switch()

int ahrs_switch ( uint8_t  idx)

Switch to the output of another AHRS impl.

Parameters
idxindex of the AHRS impl (0 = PRIMARY_AHRS, 1 = SECONDARY_AHRS).

Definition at line 93 of file ahrs.c.

References ahrs_impls, AHRS_NB_IMPL, ahrs_output_idx, AhrsImpl::enable, FALSE, idx, and TRUE.

Referenced by ahrs_init().

+ Here is the caller graph for this function:

Variable Documentation

◆ ahrs_impls

struct AhrsImpl ahrs_impls[AHRS_NB_IMPL]

Definition at line 1 of file ahrs.c.

Referenced by ahrs_init(), ahrs_register_impl(), and ahrs_switch().

◆ ahrs_output_idx

uint8_t ahrs_output_idx

Definition at line 60 of file ahrs.c.

Referenced by ahrs_switch().