[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[paparazzi-commits] [6321] add event makros for ets sensors again to pre
From: |
Felix Ruess |
Subject: |
[paparazzi-commits] [6321] add event makros for ets sensors again to prevent unnecessary function calls |
Date: |
Mon, 01 Nov 2010 20:53:42 +0000 |
Revision: 6321
http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=6321
Author: flixr
Date: 2010-11-01 20:53:42 +0000 (Mon, 01 Nov 2010)
Log Message:
-----------
add event makros for ets sensors again to prevent unnecessary function calls
Modified Paths:
--------------
paparazzi3/trunk/conf/modules/airspeed_adc.xml
paparazzi3/trunk/conf/modules/airspeed_ets.xml
paparazzi3/trunk/conf/modules/baro_ets.xml
paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.c
paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.h
paparazzi3/trunk/sw/airborne/modules/sensors/baro_ets.c
paparazzi3/trunk/sw/airborne/modules/sensors/baro_ets.h
Modified: paparazzi3/trunk/conf/modules/airspeed_adc.xml
===================================================================
--- paparazzi3/trunk/conf/modules/airspeed_adc.xml 2010-11-01 17:18:22 UTC
(rev 6320)
+++ paparazzi3/trunk/conf/modules/airspeed_adc.xml 2010-11-01 20:53:42 UTC
(rev 6321)
@@ -16,7 +16,7 @@
<periodic fun="airspeed_adc_update()" freq="10."/>
<makefile>
- <file name="airspeed_adc.c"/>
+ <file name="airspeed_adc.c"/>
</makefile>
<makefile target="ap">
<flag name="ADC_CHANNEL_AIRSPEED" value="$(ADC_AIRSPEED)"/>
Modified: paparazzi3/trunk/conf/modules/airspeed_ets.xml
===================================================================
--- paparazzi3/trunk/conf/modules/airspeed_ets.xml 2010-11-01 17:18:22 UTC
(rev 6320)
+++ paparazzi3/trunk/conf/modules/airspeed_ets.xml 2010-11-01 20:53:42 UTC
(rev 6321)
@@ -16,7 +16,7 @@
</header>
<init fun="airspeed_ets_init()"/>
<periodic fun="airspeed_ets_read_periodic()" freq="10."/>
- <event fun="airspeed_ets_event()"/>
+ <event fun="AirspeedEtsEvent()"/>
<makefile>
<file name="airspeed_ets.c"/>
Modified: paparazzi3/trunk/conf/modules/baro_ets.xml
===================================================================
--- paparazzi3/trunk/conf/modules/baro_ets.xml 2010-11-01 17:18:22 UTC (rev
6320)
+++ paparazzi3/trunk/conf/modules/baro_ets.xml 2010-11-01 20:53:42 UTC (rev
6321)
@@ -12,7 +12,7 @@
</header>
<init fun="baro_ets_init()"/>
<periodic fun="baro_ets_read_periodic()" freq="10."/>
- <event fun="baro_ets_event()"/>
+ <event fun="BaroEtsEvent()"/>
<makefile>
<file name="baro_ets.c"/>
Modified: paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.c
===================================================================
--- paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.c 2010-11-01
17:18:22 UTC (rev 6320)
+++ paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.c 2010-11-01
20:53:42 UTC (rev 6321)
@@ -109,68 +109,64 @@
#endif //SITL
}
-void airspeed_ets_event( void ) {
+void airspeed_ets_read_event( void ) {
+ int n;
+ float airspeed_tmp = 0.0;
- if (airspeed_ets_i2c_trans.status == I2CTransSuccess) {
- int n;
- float airspeed_tmp = 0.0;
+ // Get raw airspeed from buffer
+ airspeed_ets_raw = ((uint16_t)(airspeed_ets_i2c_trans.buf[1]) << 8) |
(uint16_t)(airspeed_ets_i2c_trans.buf[0]);
+ // Check if this is valid airspeed
+ if (airspeed_ets_raw == 0)
+ airspeed_ets_valid = FALSE;
+ else
+ airspeed_ets_valid = TRUE;
- // Get raw airspeed from buffer
- airspeed_ets_raw = ((uint16_t)(airspeed_ets_i2c_trans.buf[1]) << 8) |
(uint16_t)(airspeed_ets_i2c_trans.buf[0]);
- // Check if this is valid airspeed
- if (airspeed_ets_raw == 0)
- airspeed_ets_valid = FALSE;
- else
- airspeed_ets_valid = TRUE;
-
- // Continue only if a new airspeed value was received
- if (airspeed_ets_valid) {
- // Calculate offset average if not done already
- if (!airspeed_ets_offset_init) {
- --airspeed_ets_cnt;
- // Check if averaging completed
- if (airspeed_ets_cnt == 0) {
- // Calculate average
- airspeed_ets_offset = (uint16_t)(airspeed_ets_offset_tmp /
AIRSPEED_ETS_OFFSET_NBSAMPLES_AVRG);
- // Limit offset
- if (airspeed_ets_offset < AIRSPEED_ETS_OFFSET_MIN)
- airspeed_ets_offset = AIRSPEED_ETS_OFFSET_MIN;
- if (airspeed_ets_offset > AIRSPEED_ETS_OFFSET_MAX)
- airspeed_ets_offset = AIRSPEED_ETS_OFFSET_MAX;
- airspeed_ets_offset_init = TRUE;
- }
- // Check if averaging needs to continue
- else if (airspeed_ets_cnt <= AIRSPEED_ETS_OFFSET_NBSAMPLES_AVRG)
- airspeed_ets_offset_tmp += airspeed_ets_raw;
+ // Continue only if a new airspeed value was received
+ if (airspeed_ets_valid) {
+ // Calculate offset average if not done already
+ if (!airspeed_ets_offset_init) {
+ --airspeed_ets_cnt;
+ // Check if averaging completed
+ if (airspeed_ets_cnt == 0) {
+ // Calculate average
+ airspeed_ets_offset = (uint16_t)(airspeed_ets_offset_tmp /
AIRSPEED_ETS_OFFSET_NBSAMPLES_AVRG);
+ // Limit offset
+ if (airspeed_ets_offset < AIRSPEED_ETS_OFFSET_MIN)
+ airspeed_ets_offset = AIRSPEED_ETS_OFFSET_MIN;
+ if (airspeed_ets_offset > AIRSPEED_ETS_OFFSET_MAX)
+ airspeed_ets_offset = AIRSPEED_ETS_OFFSET_MAX;
+ airspeed_ets_offset_init = TRUE;
}
- // Convert raw to m/s
- if (airspeed_ets_offset_init && airspeed_ets_raw > airspeed_ets_offset)
- airspeed_tmp = AIRSPEED_ETS_SCALE * sqrtf(
(float)(airspeed_ets_raw-airspeed_ets_offset) ) - AIRSPEED_ETS_OFFSET;
- else
- airspeed_tmp = 0.0;
- // Airspeed should always be positive
- if (airspeed_tmp < 0.0)
- airspeed_tmp = 0.0;
- // Moving average
- airspeed_ets_buffer[airspeed_ets_buffer_idx++] = airspeed_tmp;
- if (airspeed_ets_buffer_idx >= AIRSPEED_ETS_NBSAMPLES_AVRG)
- airspeed_ets_buffer_idx = 0;
- airspeed_ets = 0.0;
- for (n = 0; n < AIRSPEED_ETS_NBSAMPLES_AVRG; ++n)
- airspeed_ets += airspeed_ets_buffer[n];
- airspeed_ets = airspeed_ets / (float)AIRSPEED_ETS_NBSAMPLES_AVRG;
+ // Check if averaging needs to continue
+ else if (airspeed_ets_cnt <= AIRSPEED_ETS_OFFSET_NBSAMPLES_AVRG)
+ airspeed_ets_offset_tmp += airspeed_ets_raw;
+ }
+ // Convert raw to m/s
+ if (airspeed_ets_offset_init && airspeed_ets_raw > airspeed_ets_offset)
+ airspeed_tmp = AIRSPEED_ETS_SCALE * sqrtf(
(float)(airspeed_ets_raw-airspeed_ets_offset) ) - AIRSPEED_ETS_OFFSET;
+ else
+ airspeed_tmp = 0.0;
+ // Airspeed should always be positive
+ if (airspeed_tmp < 0.0)
+ airspeed_tmp = 0.0;
+ // Moving average
+ airspeed_ets_buffer[airspeed_ets_buffer_idx++] = airspeed_tmp;
+ if (airspeed_ets_buffer_idx >= AIRSPEED_ETS_NBSAMPLES_AVRG)
+ airspeed_ets_buffer_idx = 0;
+ airspeed_ets = 0.0;
+ for (n = 0; n < AIRSPEED_ETS_NBSAMPLES_AVRG; ++n)
+ airspeed_ets += airspeed_ets_buffer[n];
+ airspeed_ets = airspeed_ets / (float)AIRSPEED_ETS_NBSAMPLES_AVRG;
#ifdef USE_AIRSPEED
- EstimatorSetAirspeed(airspeed_ets);
+ EstimatorSetAirspeed(airspeed_ets);
#endif
#ifdef SENSOR_SYNC_SEND
- DOWNLINK_SEND_AIRSPEED_ETS(DefaultChannel, &airspeed_ets_raw,
&airspeed_ets_offset, &airspeed_ets);
+ DOWNLINK_SEND_AIRSPEED_ETS(DefaultChannel, &airspeed_ets_raw,
&airspeed_ets_offset, &airspeed_ets);
#endif
- } else {
- airspeed_ets = 0.0;
- }
-
- // Transaction has been read
- airspeed_ets_i2c_trans.status = I2CTransDone;
-
+ } else {
+ airspeed_ets = 0.0;
}
+
+ // Transaction has been read
+ airspeed_ets_i2c_trans.status = I2CTransDone;
}
Modified: paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.h
===================================================================
--- paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.h 2010-11-01
17:18:22 UTC (rev 6320)
+++ paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.h 2010-11-01
20:53:42 UTC (rev 6321)
@@ -50,6 +50,8 @@
extern void airspeed_ets_init( void );
extern void airspeed_ets_read_periodic( void );
-extern void airspeed_ets_event( void );
+extern void airspeed_ets_read_event( void );
+#define AirspeedEtsEvent() { if (airspeed_ets_i2c_trans.status ==
I2CTransSuccess) airspeed_ets_read_event(); }
+
#endif // AIRSPEED_ETS_H
Modified: paparazzi3/trunk/sw/airborne/modules/sensors/baro_ets.c
===================================================================
--- paparazzi3/trunk/sw/airborne/modules/sensors/baro_ets.c 2010-11-01
17:18:22 UTC (rev 6320)
+++ paparazzi3/trunk/sw/airborne/modules/sensors/baro_ets.c 2010-11-01
20:53:42 UTC (rev 6321)
@@ -102,48 +102,46 @@
#endif
}
-void baro_ets_event( void ) {
- if (baro_ets_i2c_trans.status == I2CTransSuccess) {
- // Get raw altimeter from buffer
- baro_ets_adc = ((uint16_t)(baro_ets_i2c_trans.buf[1]) << 8) |
(uint16_t)(baro_ets_i2c_trans.buf[0]);
- // Check if this is valid altimeter
- if (baro_ets_adc == 0)
- baro_ets_valid = FALSE;
- else
- baro_ets_valid = TRUE;
+void baro_ets_read_event( void ) {
+ // Get raw altimeter from buffer
+ baro_ets_adc = ((uint16_t)(baro_ets_i2c_trans.buf[1]) << 8) |
(uint16_t)(baro_ets_i2c_trans.buf[0]);
+ // Check if this is valid altimeter
+ if (baro_ets_adc == 0)
+ baro_ets_valid = FALSE;
+ else
+ baro_ets_valid = TRUE;
- // Continue only if a new altimeter value was received
- if (baro_ets_valid) {
- // Calculate offset average if not done already
- if (!baro_ets_offset_init) {
- --baro_ets_cnt;
- // Check if averaging completed
- if (baro_ets_cnt == 0) {
- // Calculate average
- baro_ets_offset = (uint16_t)(baro_ets_offset_tmp /
BARO_ETS_OFFSET_NBSAMPLES_AVRG);
- // Limit offset
- if (baro_ets_offset < BARO_ETS_OFFSET_MIN)
- baro_ets_offset = BARO_ETS_OFFSET_MIN;
- if (baro_ets_offset > BARO_ETS_OFFSET_MAX)
- baro_ets_offset = BARO_ETS_OFFSET_MAX;
- baro_ets_offset_init = TRUE;
- }
- // Check if averaging needs to continue
- else if (baro_ets_cnt <= BARO_ETS_OFFSET_NBSAMPLES_AVRG)
- baro_ets_offset_tmp += baro_ets_adc;
+ // Continue only if a new altimeter value was received
+ if (baro_ets_valid) {
+ // Calculate offset average if not done already
+ if (!baro_ets_offset_init) {
+ --baro_ets_cnt;
+ // Check if averaging completed
+ if (baro_ets_cnt == 0) {
+ // Calculate average
+ baro_ets_offset = (uint16_t)(baro_ets_offset_tmp /
BARO_ETS_OFFSET_NBSAMPLES_AVRG);
+ // Limit offset
+ if (baro_ets_offset < BARO_ETS_OFFSET_MIN)
+ baro_ets_offset = BARO_ETS_OFFSET_MIN;
+ if (baro_ets_offset > BARO_ETS_OFFSET_MAX)
+ baro_ets_offset = BARO_ETS_OFFSET_MAX;
+ baro_ets_offset_init = TRUE;
}
- // Convert raw to m/s
- if (baro_ets_offset_init)
- baro_ets_altitude = BARO_ETS_SCALE *
(float)(baro_ets_offset-baro_ets_adc);
- else
- baro_ets_altitude = 0.0;
- // New value available
- EstimatorSetAlt(baro_ets_altitude);
- } else {
- baro_ets_altitude = 0.0;
+ // Check if averaging needs to continue
+ else if (baro_ets_cnt <= BARO_ETS_OFFSET_NBSAMPLES_AVRG)
+ baro_ets_offset_tmp += baro_ets_adc;
}
-
- // Transaction has been read
- baro_ets_i2c_trans.status = I2CTransDone;
+ // Convert raw to m/s
+ if (baro_ets_offset_init)
+ baro_ets_altitude = BARO_ETS_SCALE *
(float)(baro_ets_offset-baro_ets_adc);
+ else
+ baro_ets_altitude = 0.0;
+ // New value available
+ EstimatorSetAlt(baro_ets_altitude);
+ } else {
+ baro_ets_altitude = 0.0;
}
+
+ // Transaction has been read
+ baro_ets_i2c_trans.status = I2CTransDone;
}
Modified: paparazzi3/trunk/sw/airborne/modules/sensors/baro_ets.h
===================================================================
--- paparazzi3/trunk/sw/airborne/modules/sensors/baro_ets.h 2010-11-01
17:18:22 UTC (rev 6320)
+++ paparazzi3/trunk/sw/airborne/modules/sensors/baro_ets.h 2010-11-01
20:53:42 UTC (rev 6321)
@@ -56,6 +56,8 @@
extern void baro_ets_init( void );
extern void baro_ets_read_periodic( void );
-extern void baro_ets_event( void );
+extern void baro_ets_read_event( void );
+#define BaroEtsEvent() { if (baro_ets_i2c_trans.status == I2CTransSuccess)
baro_ets_read_event(); }
+
#endif // BARO_ETS_H
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paparazzi-commits] [6321] add event makros for ets sensors again to prevent unnecessary function calls,
Felix Ruess <=