Paparazzi UAS  v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ahrs_gx3.c File Reference

Driver for Microstrain GX3 IMU/AHRS subsystem. More...

+ Include dependency graph for ahrs_gx3.c:

Go to the source code of this file.

Macros

#define GX3_CHKSM(_ubx_payload)   (uint16_t)((uint16_t)(*((uint8_t*)_ubx_payload+66+1))|(uint16_t)(*((uint8_t*)_ubx_payload+66+0))<<8)
 

Functions

static bool_t gx3_verify_chk (volatile uint8_t *buff_add)
 
static float bef (volatile uint8_t *c)
 
void ahrs_gx3_align (void)
 
void imu_impl_init (void)
 must be defined by underlying hardware More...
 
void imu_periodic (void)
 optional. More...
 
void gx3_packet_read_message (void)
 
void gx3_packet_parse (uint8_t c)
 
void ahrs_gx3_init (void)
 
void ahrs_gx3_register (void)
 
void imu_scale_gyro (struct Imu *_imu)
 
void imu_scale_accel (struct Imu *_imu)
 
void imu_scale_mag (struct Imu *_imu)
 
void ahrs_gx3_publish_imu (void)
 

Variables

struct AhrsGX3 ahrs_gx3
 Axis definition: X axis pointing forward, Y axis pointing to the right and Z axis pointing down. More...
 

Detailed Description

Driver for Microstrain GX3 IMU/AHRS subsystem.

Takes care of configuration of the IMU, communication and parsing the received packets. See GX3 datasheet for configuration options.

Author
Michal Podhradsky micha.nosp@m.l.po.nosp@m.dhrad.nosp@m.sky@.nosp@m.aggie.nosp@m.mail.nosp@m..usu..nosp@m.edu

Definition in file ahrs_gx3.c.

Macro Definition Documentation

#define GX3_CHKSM (   _ubx_payload)    (uint16_t)((uint16_t)(*((uint8_t*)_ubx_payload+66+1))|(uint16_t)(*((uint8_t*)_ubx_payload+66+0))<<8)

Definition at line 39 of file ahrs_gx3.c.

Referenced by gx3_packet_read_message().

Function Documentation

void ahrs_gx3_align ( void  )

Definition at line 75 of file ahrs_gx3.c.

References ahrs_gx3, FALSE, AhrsGX3::is_aligned, TRUE, and uart_put_byte().

Referenced by imu_impl_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ahrs_gx3_init ( void  )

Definition at line 327 of file ahrs_gx3.c.

References ahrs_gx3, Imu::body_to_imu, FALSE, imu, AhrsGX3::is_aligned, AhrsGX3::ltp_to_imu_quat, AhrsGX3::mag_offset, orientationGetQuat_f(), and QUAT_COPY.

Referenced by ahrs_gx3_register().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ahrs_gx3_publish_imu ( void  )

Definition at line 353 of file ahrs_gx3.c.

References Imu::accel, get_sys_time_usec(), Imu::gyro, imu, IMU_GX3_ID, and Imu::mag.

Referenced by ImuEvent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ahrs_gx3_register ( void  )
Todo:
: provide enable function

Definition at line 340 of file ahrs_gx3.c.

References ahrs_gx3_init(), and ahrs_register_impl().

+ Here is the call graph for this function:

static float bef ( volatile uint8_t c)
inlinestatic

Definition at line 53 of file ahrs_gx3.c.

References p.

Referenced by gx3_packet_read_message().

+ Here is the caller graph for this function:

void gx3_packet_parse ( uint8_t  c)

Definition at line 294 of file ahrs_gx3.c.

References ahrs_gx3, GX3Packet::chksm_error, FALSE, GX3_HEADER, GX3_MSG_LEN, gx3_verify_chk(), GX3PacketReading, GX3PacketWaiting, GX3Packet::hdr_error, GX3Packet::msg_available, GX3Packet::msg_buf, GX3Packet::msg_idx, AhrsGX3::packet, GX3Packet::status, and TRUE.

Referenced by ReadGX3Buffer().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bool_t gx3_verify_chk ( volatile uint8_t buff_add)
inlinestatic

Definition at line 65 of file ahrs_gx3.c.

References chk_calc, and GX3_MSG_LEN.

Referenced by gx3_packet_parse().

+ Here is the caller graph for this function:

void imu_impl_init ( void  )
void imu_periodic ( void  )

optional.

If not provided by implementation, empty function is used

Definition at line 218 of file ahrs_gx3.c.

Variable Documentation

struct AhrsGX3 ahrs_gx3

Axis definition: X axis pointing forward, Y axis pointing to the right and Z axis pointing down.

Positive pitch : nose up Positive roll : right wing down Positive yaw : clockwise

Definition at line 47 of file ahrs_gx3.c.

Referenced by ahrs_gx3_align(), ahrs_gx3_init(), gx3_packet_parse(), gx3_packet_read_message(), imu_impl_init(), ImuEvent(), and ReadGX3Buffer().