Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
xsens.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2010 ENAC
3  *
4  * This file is part of paparazzi.
5  *
6  * paparazzi is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2, or (at your option)
9  * any later version.
10  *
11  * paparazzi is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with paparazzi; see the file COPYING. If not, write to
18  * the Free Software Foundation, 59 Temple Place - Suite 330,
19  * Boston, MA 02111-1307, USA.
20  *
21  */
22 
27 #ifndef XSENS_H
28 #define XSENS_H
29 
30 #include "std.h"
33 #include "math/pprz_geodetic_int.h"
34 
35 #include "xsens_parser.h"
36 
37 
38 #if USE_GPS_XSENS
39 #include "modules/gps/gps.h"
40 #endif
41 
42 struct XsensTime {
50 };
51 
52 struct Xsens {
53  struct XsensTime time;
55 
56  struct FloatRates gyro;
57  struct FloatVect3 accel;
58  struct FloatVect3 mag;
59 
60  struct LlaCoor_f lla_f;
61  struct FloatVect3 vel;
62 
63  struct FloatQuat quat;
64  struct FloatEulers euler;
65 
66  struct XsensParser parser;
67  volatile bool new_attitude;
68 
72 
73 #if USE_GPS_XSENS
74  struct GpsState gps;
75  bool gps_available;
76 #endif
77 };
78 
79 extern struct Xsens xsens;
80 
81 extern void xsens_init(void);
82 extern void xsens_periodic(void);
83 extern void parse_xsens_msg(void);
84 
85 #endif /* XSENS_H */
struct GpsState gps
global GPS state
Definition: gps.c:74
Device independent GPS code (interface)
data structure for GPS information
Definition: gps.h:87
euler angles
Roation quaternion.
angular rates
Paparazzi floating point algebra.
Paparazzi floating point math for geodetic calculations.
vector in Latitude, Longitude and Altitude
Paparazzi fixed point math for geodetic calculations.
unsigned short uint16_t
Typedef defining 16 bit unsigned short type.
Definition: vl53l1_types.h:88
int int32_t
Typedef defining 32 bit int type.
Definition: vl53l1_types.h:83
short int16_t
Typedef defining 16 bit short type.
Definition: vl53l1_types.h:93
signed char int8_t
Typedef defining 8 bit char type.
Definition: vl53l1_types.h:103
struct FloatVect3 accel
Definition: xsens.h:57
int8_t sec
Definition: xsens.h:45
struct FloatQuat quat
Definition: xsens.h:63
bool mag_available
Definition: xsens.h:71
struct LlaCoor_f lla_f
Definition: xsens.h:60
struct XsensParser parser
Definition: xsens.h:66
int8_t day
Definition: xsens.h:49
int16_t year
Definition: xsens.h:47
int8_t hour
Definition: xsens.h:43
int8_t month
Definition: xsens.h:48
bool accel_available
Definition: xsens.h:70
struct FloatEulers euler
Definition: xsens.h:64
int32_t nanosec
Definition: xsens.h:46
struct FloatVect3 vel
NED velocity in m/s.
Definition: xsens.h:61
struct FloatVect3 mag
Definition: xsens.h:58
struct FloatRates gyro
Definition: xsens.h:56
bool gyro_available
Definition: xsens.h:69
int8_t min
Definition: xsens.h:44
uint16_t time_stamp
Definition: xsens.h:54
struct XsensTime time
Definition: xsens.h:53
volatile bool new_attitude
Definition: xsens.h:67
Definition: xsens.h:52
void xsens_init(void)
Definition: xsens.c:113
void xsens_periodic(void)
Definition: xsens.c:124
void parse_xsens_msg(void)
Definition: xsens.c:184
struct Xsens xsens
Definition: xsens.c:109
Parser for the XSens protocol.