Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
Loading...
Searching...
No Matches
imu_nps.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2012 Felix Ruess <felix.ruess@gmail.com>
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, see
18 * <http://www.gnu.org/licenses/>.
19 */
20
21#include "modules/imu/imu_nps.h"
22#include "modules/imu/imu.h"
23#include "modules/core/abi.h"
24#include "generated/airframe.h"
25#include "modules/imu/imu_nps.h"
26#include "nps_sensors.h"
27
29
63
64
66{
67 RATES_ASSIGN(imu_nps.gyro, sensors.gyro.value.x, sensors.gyro.value.y, sensors.gyro.value.z);
68 VECT3_COPY(imu_nps.accel, sensors.accel.value);
69
70 // set availability flags...
73}
74
75
76void imu_feed_mag(void)
77{
78 VECT3_COPY(imu_nps.mag, sensors.mag.value);
80}
81
82
Main include for ABI (AirBorneInterface).
#define IMU_NPS_ID
#define sensors(...)
uint32_t get_sys_time_usec(void)
Get the time in microseconds since startup.
#define RATES_ASSIGN(_ra, _p, _q, _r)
#define VECT3_COPY(_a, _b)
angular rates
void imu_set_defaults_mag(uint8_t abi_id, const struct Int32RMat *imu_to_sensor, const struct Int32Vect3 *neutral, const struct Int32Vect3 *scale)
Set the defaults for a mag sensor WARNING: Should be called before sensor is publishing messages to e...
Definition imu.c:640
void imu_set_defaults_accel(uint8_t abi_id, const struct Int32RMat *imu_to_sensor, const struct Int32Vect3 *neutral, const struct Int32Vect3 *scale)
Set the defaults for a accel sensor WARNING: Should be called before sensor is publishing messages to...
Definition imu.c:610
void imu_set_defaults_gyro(uint8_t abi_id, const struct Int32RMat *imu_to_sensor, const struct Int32Rates *neutral, const struct Int32Rates *scale)
Set the defaults for a gyro sensor WARNING: Should be called before sensor is publishing messages to ...
Definition imu.c:580
Inertial Measurement Unit interface.
void imu_feed_mag(void)
Definition imu_nps.c:76
void imu_feed_gyro_accel(void)
Definition imu_nps.c:65
void imu_nps_event(void)
Definition imu_nps.c:83
struct ImuNps imu_nps
Definition imu_nps.c:28
void imu_nps_init(void)
Definition imu_nps.c:30
struct Int32Rates gyro
Definition imu_nps.h:33
struct Int32Vect3 accel
Definition imu_nps.h:34
uint8_t gyro_available
Definition imu_nps.h:31
struct Int32Vect3 mag
Definition imu_nps.h:35
uint8_t mag_available
Definition imu_nps.h:29
uint8_t accel_available
Definition imu_nps.h:30
uint16_t foo
Definition main_demo5.c:58
static const struct Int32Vect3 accel_neutral
Definition navdata.c:104
static const struct Int32Vect3 mag_scale[2]
Default mag scale.
Definition navdata.c:111
static const struct Int32Rates gyro_scale[2]
Default gyro scale.
Definition navdata.c:92
static const struct Int32Vect3 accel_scale[2]
Default accel scale/neutral.
Definition navdata.c:100
unsigned int uint32_t
Typedef defining 32 bit unsigned int type.