[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[paparazzi-commits] [5434] Add pressure sensors to lisa passthrough
From: |
Allen Ibara |
Subject: |
[paparazzi-commits] [5434] Add pressure sensors to lisa passthrough |
Date: |
Tue, 17 Aug 2010 21:31:53 +0000 |
Revision: 5434
http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=5434
Author: aibara
Date: 2010-08-17 21:31:52 +0000 (Tue, 17 Aug 2010)
Log Message:
-----------
Add pressure sensors to lisa passthrough
Modified Paths:
--------------
paparazzi3/trunk/conf/autopilot/lisa_passthrough.makefile
paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h
paparazzi3/trunk/sw/airborne/lisa/lisa_stm_passthrough_main.c
Modified: paparazzi3/trunk/conf/autopilot/lisa_passthrough.makefile
===================================================================
--- paparazzi3/trunk/conf/autopilot/lisa_passthrough.makefile 2010-08-17
21:27:59 UTC (rev 5433)
+++ paparazzi3/trunk/conf/autopilot/lisa_passthrough.makefile 2010-08-17
21:31:52 UTC (rev 5434)
@@ -70,3 +70,8 @@
stm_passthrough.CFLAGS += -DSERVO_HZ=$(SERVOS_REFRESH_FREQ)
stm_passthrough.srcs += $(SRC_BOOZ)/actuators/booz_actuators_pwm.c
stm_passthrough.srcs += $(SRC_BOOZ_ARCH)/actuators/booz_actuators_pwm_arch.c
+
+# Baro
+stm_passthrough.srcs += $(SRC_LISA)/lisa_baro.c
+stm_passthrough.CFLAGS += -DUSE_I2C2
+stm_passthrough.srcs += i2c.c $(SRC_ARCH)/i2c_hw.c
Modified: paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h
===================================================================
--- paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h 2010-08-17
21:27:59 UTC (rev 5433)
+++ paparazzi3/trunk/sw/airborne/fms/fms_autopilot_msg.h 2010-08-17
21:31:52 UTC (rev 5434)
@@ -70,7 +70,8 @@
struct __attribute__ ((packed)) PTUpValidFlags
{
unsigned rc:1;
- unsigned pressure:1;
+ unsigned pressure_absolute:1;
+ unsigned pressure_differential:1;
unsigned vane:1;
unsigned imu:1;
};
@@ -80,6 +81,8 @@
struct Int32Rates gyro;
struct Int16Vect3 accel;
struct Int16Vect3 mag;
+ int16_t pressure_absolute;
+ int16_t pressure_differential;
int16_t rc_pitch;
int16_t rc_roll;
int16_t rc_yaw;
Modified: paparazzi3/trunk/sw/airborne/lisa/lisa_stm_passthrough_main.c
===================================================================
--- paparazzi3/trunk/sw/airborne/lisa/lisa_stm_passthrough_main.c
2010-08-17 21:27:59 UTC (rev 5433)
+++ paparazzi3/trunk/sw/airborne/lisa/lisa_stm_passthrough_main.c
2010-08-17 21:31:52 UTC (rev 5434)
@@ -31,6 +31,7 @@
#include "booz/booz_imu.h"
#include "booz/booz_radio_control.h"
#include "lisa/lisa_overo_link.h"
+#include "lisa/lisa_baro.h"
static inline void main_init(void);
static inline void main_periodic(void);
@@ -46,6 +47,8 @@
static inline void on_rc_message(void);
static bool_t new_radio_msg;
+static bool_t new_baro_diff;
+static bool_t new_baro_abs;
int main(void) {
@@ -60,55 +63,22 @@
return 0;
}
-static inline void main_init(void) {
-
- hw_init();
- sys_time_init();
- booz_imu_init();
- radio_control_init();
- booz_actuators_init();
- overo_link_init();
- new_radio_msg = FALSE;
-
-}
-
-static inline void main_periodic(void) {
-
- booz_imu_periodic();
- OveroLinkPeriodic(on_overo_link_lost);
- RunOnceEvery(10, {
- LED_PERIODIC();
- DOWNLINK_SEND_ALIVE(DefaultChannel, 16, MD5SUM);
- radio_control_periodic();
- });
-
-}
-
-static inline void main_event(void) {
-
- BoozImuEvent(on_gyro_accel_event, on_mag_event);
- OveroLinkEvent(on_overo_link_msg_received, on_overo_link_crc_failed);
- RadioControlEvent(on_rc_message);
-
-}
-
static inline void on_rc_message(void) {
new_radio_msg = TRUE;
}
static inline void on_overo_link_msg_received(void) {
- overo_link.up.msg.valid.rc = new_radio_msg;
- new_radio_msg = FALSE;
-
+ /* IMU up */
overo_link.up.msg.valid.imu = 1;
-
RATES_COPY(overo_link.up.msg.gyro, booz_imu.gyro);
-
VECT3_COPY(overo_link.up.msg.accel, booz_imu.accel);
-
VECT3_COPY(overo_link.up.msg.mag, booz_imu.mag);
+ /* RC up */
+ overo_link.up.msg.valid.rc = new_radio_msg;
+ new_radio_msg = FALSE;
+
overo_link.up.msg.rc_pitch = radio_control.values[RADIO_CONTROL_PITCH];
overo_link.up.msg.rc_roll = radio_control.values[RADIO_CONTROL_ROLL];
overo_link.up.msg.rc_yaw = radio_control.values[RADIO_CONTROL_YAW];
@@ -126,7 +96,16 @@
overo_link.up.msg.stm_msg_cnt = overo_link.msg_cnt;
overo_link.up.msg.stm_crc_err_cnt = overo_link.crc_err_cnt;
+
+ /* baro up */
+ overo_link.up.msg.valid.pressure_differential = new_baro_diff;
+ overo_link.up.msg.valid.pressure_absolute = new_baro_abs;
+ new_baro_diff = FALSE;
+ new_baro_abs = FALSE;
+ overo_link.up.msg.pressure_differential = baro.diff_raw;
+ overo_link.up.msg.pressure_absolute = baro.abs_raw;
+ /* pwm acuators down */
for (int i = 0; i < LISA_PWM_OUTPUT_NB; i++)
booz_actuators_pwm_values[i] = overo_link.down.msg.pwm_outputs_usecs[i];
booz_actuators_pwm_commit();
@@ -150,3 +129,43 @@
BoozImuScaleMag(booz_imu);
}
+static inline void main_on_baro_diff(void) {
+ new_baro_diff = TRUE;
+}
+
+static inline void main_on_baro_abs(void) {
+ new_baro_abs = TRUE;
+}
+
+static inline void main_init(void) {
+
+ hw_init();
+ sys_time_init();
+ booz_imu_init();
+ baro_init();
+ radio_control_init();
+ booz_actuators_init();
+ overo_link_init();
+ new_radio_msg = FALSE;
+
+}
+
+static inline void main_periodic(void) {
+
+ booz_imu_periodic();
+ OveroLinkPeriodic(on_overo_link_lost);
+ RunOnceEvery(10, {
+ LED_PERIODIC();
+ DOWNLINK_SEND_ALIVE(DefaultChannel, 16, MD5SUM);
+ radio_control_periodic();
+ });
+
+}
+
+static inline void main_event(void) {
+
+ BoozImuEvent(on_gyro_accel_event, on_mag_event);
+ BaroEvent(main_on_baro_abs, main_on_baro_diff);
+ OveroLinkEvent(on_overo_link_msg_received, on_overo_link_crc_failed);
+ RadioControlEvent(on_rc_message);
+}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paparazzi-commits] [5434] Add pressure sensors to lisa passthrough,
Allen Ibara <=