paparazzi-commits
[Top][All Lists]
Advanced

[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);
+}




reply via email to

[Prev in Thread] Current Thread [Next in Thread]