Paparazzi UAS  v4.0.4_stable-3-gf39211a
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ins_xsens.c File Reference
#include "ins_module.h"
#include "ins_xsens.h"
#include <inttypes.h>
#include "generated/airframe.h"
#include "mcu_periph/sys_time.h"
#include "subsystems/datalink/downlink.h"
#include "messages.h"
#include "xsens_protocol.h"
#include "mcu_periph/uart.h"
#include "estimator.h"
+ Include dependency graph for ins_xsens.c:

Go to the source code of this file.

Macros

#define XsensInitCheksum()   { send_ck = 0; }
 
#define XsensUpdateChecksum(c)   { send_ck += c; }
 
#define XsensSend1(c)   { uint8_t i8=c; InsUartSend1(i8); XsensUpdateChecksum(i8); }
 
#define XsensSend1ByAddr(x)   { XsensSend1(*x); }
 
#define XsensSend2ByAddr(x)   { XsensSend1(*(x+1)); XsensSend1(*x); }
 
#define XsensSend4ByAddr(x)   { XsensSend1(*(x+3)); XsensSend1(*(x+2)); XsensSend1(*(x+1)); XsensSend1(*x); }
 
#define XsensHeader(msg_id, len)
 
#define XsensTrailer()   { uint8_t i8=0x100-send_ck; InsUartSend1(i8); }
 
#define XSENS_MAX_PAYLOAD   254
 Includes macros generated from xsens_MTi-G.xml. More...
 
#define XSENS_OUTPUT_MODE   0x1836
 
#define XSENS_OUTPUT_SETTINGS   0x80000C05
 
#define UNINIT   0
 
#define GOT_START   1
 
#define GOT_BID   2
 
#define GOT_MID   3
 
#define GOT_LEN   4
 
#define GOT_DATA   5
 
#define GOT_CHECKSUM   6
 
#define DOWNLINK_DEVICE   DOWNLINK_AP_DEVICE
 

Functions

void ahrs_init (void)
 AHRS initialization. More...
 
void ins_init (void)
 
void ins_periodic_task (void)
 
void handle_ins_msg (void)
 
void parse_ins_msg (void)
 
void parse_ins_buffer (uint8_t c)
 

Variables

INS_FORMAT ins_x
 
INS_FORMAT ins_y
 
INS_FORMAT ins_z
 
INS_FORMAT ins_vx
 
INS_FORMAT ins_vy
 
INS_FORMAT ins_vz
 
INS_FORMAT ins_phi
 
INS_FORMAT ins_theta
 
INS_FORMAT ins_psi
 
INS_FORMAT ins_p
 
INS_FORMAT ins_q
 
INS_FORMAT ins_r
 
INS_FORMAT ins_ax
 
INS_FORMAT ins_ay
 
INS_FORMAT ins_az
 
INS_FORMAT ins_mx
 
INS_FORMAT ins_my
 
INS_FORMAT ins_mz
 
float ins_pitch_neutral
 
float ins_roll_neutral
 driver for the VectorNav VN100 More...
 
volatile uint8_t ins_msg_received
 
uint8_t xsens_msg_buf [XSENS_MAX_PAYLOAD]
 
uint8_t xsens_errorcode
 
uint8_t xsens_msg_status
 
uint16_t xsens_time_stamp
 
uint16_t xsens_output_mode
 
uint32_t xsens_output_settings
 
float xsens_declination = 0
 
float xsens_gps_arm_x = 0
 
float xsens_gps_arm_y = 0
 
float xsens_gps_arm_z = 0
 
int8_t xsens_hour
 Library for the XSENS AHRS. More...
 
int8_t xsens_min
 
int8_t xsens_sec
 
int32_t xsens_nanosec
 
int16_t xsens_year
 
int8_t xsens_month
 
int8_t xsens_day
 
static uint8_t xsens_id
 
static uint8_t xsens_status
 
static uint8_t xsens_len
 
static uint8_t xsens_msg_idx
 
static uint8_t ck
 
uint8_t send_ck
 
struct LlaCoor_f lla_f
 
struct UtmCoor_f utm_f
 
volatile int xsens_configured = 0
 

Macro Definition Documentation

#define DOWNLINK_DEVICE   DOWNLINK_AP_DEVICE

Definition at line 192 of file ins_xsens.c.

#define GOT_BID   2

Definition at line 184 of file ins_xsens.c.

Referenced by parse_ins_buffer().

#define GOT_CHECKSUM   6

Definition at line 188 of file ins_xsens.c.

#define GOT_DATA   5

Definition at line 187 of file ins_xsens.c.

Referenced by parse_ins_buffer().

#define GOT_LEN   4

Definition at line 186 of file ins_xsens.c.

Referenced by parse_ins_buffer().

#define GOT_MID   3

Definition at line 185 of file ins_xsens.c.

Referenced by parse_ins_buffer().

#define GOT_START   1

Definition at line 183 of file ins_xsens.c.

Referenced by parse_ins_buffer().

#define UNINIT   0

Definition at line 182 of file ins_xsens.c.

Referenced by ins_init(), and parse_ins_buffer().

#define XSENS_MAX_PAYLOAD   254

Includes macros generated from xsens_MTi-G.xml.

Definition at line 125 of file ins_xsens.c.

Referenced by parse_ins_buffer().

#define XSENS_OUTPUT_MODE   0x1836

Definition at line 150 of file ins_xsens.c.

Referenced by ins_init().

#define XSENS_OUTPUT_SETTINGS   0x80000C05

Definition at line 179 of file ins_xsens.c.

Referenced by ins_init().

#define XsensHeader (   msg_id,
  len 
)
Value:
{ \
InsUartSend1(XSENS_START); \
XsensSend1(XSENS_BID); \
XsensSend1(msg_id); \
XsensSend1(len); \
}
#define XsensInitCheksum()
Definition: ins_xsens.c:104
#define XsensSend1(c)
Definition: ins_xsens.c:107
#define InsUartSend1(c)
Definition: ins_module.h:88

Definition at line 112 of file ins_xsens.c.

#define XsensInitCheksum ( )    { send_ck = 0; }

Definition at line 104 of file ins_xsens.c.

#define XsensSend1 (   c)    { uint8_t i8=c; InsUartSend1(i8); XsensUpdateChecksum(i8); }

Definition at line 107 of file ins_xsens.c.

#define XsensSend1ByAddr (   x)    { XsensSend1(*x); }

Definition at line 108 of file ins_xsens.c.

#define XsensSend2ByAddr (   x)    { XsensSend1(*(x+1)); XsensSend1(*x); }

Definition at line 109 of file ins_xsens.c.

#define XsensSend4ByAddr (   x)    { XsensSend1(*(x+3)); XsensSend1(*(x+2)); XsensSend1(*(x+1)); XsensSend1(*x); }

Definition at line 110 of file ins_xsens.c.

#define XsensTrailer ( )    { uint8_t i8=0x100-send_ck; InsUartSend1(i8); }

Definition at line 119 of file ins_xsens.c.

#define XsensUpdateChecksum (   c)    { send_ck += c; }

Definition at line 105 of file ins_xsens.c.

Function Documentation

void ahrs_init ( void  )

AHRS initialization.

Called at startup. Needs to be implemented by each AHRS algorithm.

Definition at line 75 of file ins_xsens.c.

Referenced by init_ap(), and main_init().

+ Here is the caller graph for this function:

void ins_init ( void  )
void parse_ins_buffer ( uint8_t  c)
void parse_ins_msg ( void  )

Definition at line 351 of file ins_xsens.c.

References LlaCoor_i::alt, UtmCoor_i::alt, CHIMU_Msg_3_IMU_Attitude, CHIMU_Parse(), SVinfo::cno, DefaultChannel, DefaultDevice, UtmCoor_f::east, UtmCoor_i::east, EstimatorSetAtt, EstimatorSetRate, CHIMU_attitude_data::euler, GpsState::fix, SVinfo::flags, gps, GPS_FIX_3D, GPS_FIX_NONE, GPS_NB_CHANNELS, GpsState::hmsl, ins_ax, ins_ay, ins_az, INS_FORMAT, ins_mx, ins_my, ins_mz, ins_p, ins_phi, ins_psi, ins_q, ins_r, ins_theta, ins_vx, ins_vy, ins_vz, ins_x, ins_y, ins_z, InsLink, GpsState::last_fix_time, LlaCoor_f::lat, LlaCoor_i::lat, LED_TOGGLE, lla_f, GpsState::lla_pos, LlaCoor_f::lon, LlaCoor_i::lon, CHIMU_PARSER_DATA::m_attitude, CHIMU_PARSER_DATA::m_attrates, CHIMU_PARSER_DATA::m_MsgID, CHIMU_PARSER_DATA::m_sensor, Min, nav_utm_zone0, GpsState::nb_channels, sys_time::nb_sec, GpsState::ned_vel, new_ins_attitude, UtmCoor_f::north, UtmCoor_i::north, GpsState::num_sv, GpsState::pacc, GpsState::pdop, CHIMU_Euler::phi, CHIMU_Euler::psi, SVinfo::qi, CHIMU_sensor_data::rate, GpsState::sacc, SVinfo::svid, GpsState::svinfos, CHIMU_Euler::theta, GpsState::tow, utm_f, utm_of_lla_f(), GpsState::utm_pos, GpsState::week, WGS84_ELLIPSOID_TO_GEOID, NedCoor_i::x, xsens_day, xsens_declination, xsens_errorcode, xsens_gps_arm_x, xsens_gps_arm_y, xsens_gps_arm_z, xsens_hour, xsens_id, xsens_min, xsens_month, xsens_msg_buf, xsens_msg_status, xsens_nanosec, xsens_output_mode, xsens_output_settings, xsens_sec, xsens_time_stamp, xsens_year, NedCoor_i::y, NedCoor_i::z, UtmCoor_f::zone, and UtmCoor_i::zone.

+ Here is the call graph for this function:

Variable Documentation

uint8_t ck
static

Definition at line 222 of file ins_xsens.c.

Referenced by parse_ins_buffer().

INS_FORMAT ins_ax

Definition at line 63 of file ins_xsens.c.

Referenced by parse_ins_msg().

INS_FORMAT ins_ay

Definition at line 64 of file ins_xsens.c.

Referenced by parse_ins_msg().

INS_FORMAT ins_az

Definition at line 65 of file ins_xsens.c.

Referenced by parse_ins_msg().

volatile uint8_t ins_msg_received

Definition at line 102 of file ins_xsens.c.

Referenced by parse_ins_buffer().

INS_FORMAT ins_mx

Definition at line 67 of file ins_xsens.c.

Referenced by parse_ins_msg().

INS_FORMAT ins_my

Definition at line 68 of file ins_xsens.c.

Referenced by parse_ins_msg().

INS_FORMAT ins_mz

Definition at line 69 of file ins_xsens.c.

Referenced by parse_ins_msg().

INS_FORMAT ins_p

Definition at line 59 of file ins_xsens.c.

Referenced by handle_ins_msg(), and parse_ins_msg().

INS_FORMAT ins_phi

Definition at line 55 of file ins_xsens.c.

Referenced by handle_ins_msg(), and parse_ins_msg().

float ins_pitch_neutral

Definition at line 71 of file ins_xsens.c.

Referenced by handle_ins_msg(), and ins_init().

INS_FORMAT ins_psi

Definition at line 57 of file ins_xsens.c.

Referenced by handle_ins_msg(), and parse_ins_msg().

INS_FORMAT ins_q

Definition at line 60 of file ins_xsens.c.

Referenced by handle_ins_msg(), and parse_ins_msg().

INS_FORMAT ins_r

Definition at line 61 of file ins_xsens.c.

Referenced by handle_ins_msg(), and parse_ins_msg().

float ins_roll_neutral

driver for the VectorNav VN100

Definition at line 72 of file ins_xsens.c.

Referenced by handle_ins_msg(), and ins_init().

INS_FORMAT ins_theta

Definition at line 56 of file ins_xsens.c.

Referenced by handle_ins_msg(), and parse_ins_msg().

INS_FORMAT ins_vx

Definition at line 51 of file ins_xsens.c.

Referenced by handle_ins_msg(), and parse_ins_msg().

INS_FORMAT ins_vy

Definition at line 52 of file ins_xsens.c.

Referenced by handle_ins_msg(), and parse_ins_msg().

INS_FORMAT ins_vz

Definition at line 53 of file ins_xsens.c.

Referenced by handle_ins_msg(), and parse_ins_msg().

INS_FORMAT ins_x

Definition at line 47 of file ins_xsens.c.

Referenced by parse_ins_msg().

INS_FORMAT ins_y

Definition at line 48 of file ins_xsens.c.

Referenced by parse_ins_msg().

INS_FORMAT ins_z

Definition at line 49 of file ins_xsens.c.

Referenced by parse_ins_msg().

struct LlaCoor_f lla_f

Definition at line 225 of file ins_xsens.c.

Referenced by parse_ins_msg().

uint8_t send_ck

Definition at line 223 of file ins_xsens.c.

struct UtmCoor_f utm_f

Definition at line 226 of file ins_xsens.c.

Referenced by parse_ins_msg().

volatile int xsens_configured = 0

Definition at line 228 of file ins_xsens.c.

Referenced by ins_init(), and ins_periodic_task().

int8_t xsens_day

Definition at line 216 of file ins_xsens.c.

Referenced by parse_ins_msg().

float xsens_declination = 0

Definition at line 204 of file ins_xsens.c.

Referenced by ins_periodic_task(), and parse_ins_msg().

uint8_t xsens_errorcode

Definition at line 199 of file ins_xsens.c.

Referenced by parse_ins_msg().

float xsens_gps_arm_x = 0

Definition at line 205 of file ins_xsens.c.

Referenced by parse_ins_msg().

float xsens_gps_arm_y = 0

Definition at line 206 of file ins_xsens.c.

Referenced by parse_ins_msg().

float xsens_gps_arm_z = 0

Definition at line 207 of file ins_xsens.c.

Referenced by parse_ins_msg().

int8_t xsens_hour

Library for the XSENS AHRS.

Definition at line 210 of file ins_xsens.c.

Referenced by parse_ins_msg().

uint8_t xsens_id
static

Definition at line 218 of file ins_xsens.c.

Referenced by parse_ins_buffer(), and parse_ins_msg().

uint8_t xsens_len
static

Definition at line 220 of file ins_xsens.c.

Referenced by parse_ins_buffer().

int8_t xsens_min

Definition at line 211 of file ins_xsens.c.

Referenced by parse_ins_msg().

int8_t xsens_month

Definition at line 215 of file ins_xsens.c.

Referenced by parse_ins_msg().

uint8_t xsens_msg_buf[XSENS_MAX_PAYLOAD]

Definition at line 126 of file ins_xsens.c.

Referenced by parse_ins_buffer(), and parse_ins_msg().

uint8_t xsens_msg_idx
static

Definition at line 221 of file ins_xsens.c.

Referenced by parse_ins_buffer().

uint8_t xsens_msg_status

Definition at line 200 of file ins_xsens.c.

Referenced by ins_init(), and parse_ins_msg().

int32_t xsens_nanosec

Definition at line 213 of file ins_xsens.c.

Referenced by parse_ins_msg().

uint16_t xsens_output_mode

Definition at line 202 of file ins_xsens.c.

Referenced by ins_init(), ins_periodic_task(), and parse_ins_msg().

uint32_t xsens_output_settings

Definition at line 203 of file ins_xsens.c.

Referenced by ins_init(), ins_periodic_task(), and parse_ins_msg().

int8_t xsens_sec

Definition at line 212 of file ins_xsens.c.

Referenced by parse_ins_msg().

uint8_t xsens_status
static

Definition at line 219 of file ins_xsens.c.

Referenced by ins_init(), and parse_ins_buffer().

uint16_t xsens_time_stamp

Definition at line 201 of file ins_xsens.c.

Referenced by ins_init(), and parse_ins_msg().

int16_t xsens_year

Definition at line 214 of file ins_xsens.c.

Referenced by parse_ins_msg().