Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
xsens700.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 XSENS700_H
28 #define XSENS700_H
29 
30 #include "std.h"
33 #include "math/pprz_geodetic_int.h"
34 
35 #include "xsens_parser.h"
36 
37 #if USE_GPS_XSENS
38 #include "modules/gps/gps.h"
39 #endif
40 
41 struct XsensTime {
42  int8_t hour;
43  int8_t min;
44  int8_t sec;
46  int16_t year;
47  int8_t month;
48  int8_t day;
49 };
50 
51 struct Xsens {
52  struct XsensTime time;
54 
55  struct FloatRates gyro;
56  struct FloatVect3 accel;
57  struct FloatVect3 mag;
58 
59  struct LlaCoor_f lla_f;
60  struct FloatVect3 vel;
61 
62  struct FloatQuat quat;
63  struct FloatEulers euler;
64 
65  struct XsensParser parser;
66  volatile bool new_attitude;
67 
68  bool gyro_available;
69  bool accel_available;
70  bool mag_available;
71 
72 #if USE_GPS_XSENS
73  struct GpsState gps;
74  bool gps_available;
75 #endif
76 };
77 
78 extern struct Xsens xsens700;
79 
80 extern void xsens700_init(void);
81 extern void xsens700_periodic(void);
82 extern void parse_xsens700_msg(void);
83 
84 #endif /* XSENS700_H */
struct GpsState gps
global GPS state
Definition: gps.c:69
Device independent GPS code (interface)
data structure for GPS information
Definition: gps.h:85
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
void xsens700_init(void)
Definition: xsens700.c:53
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
void parse_xsens700_msg(void)
Definition: xsens700.c:141
struct FloatVect3 mag
Definition: xsens.h:58
void xsens700_periodic(void)
Definition: xsens700.c:71
struct FloatRates gyro
Definition: xsens.h:56
bool gyro_available
Definition: xsens.h:69
struct Xsens xsens700
Definition: xsens700.c:49
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
Parser for the XSens protocol.