[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[paparazzi-commits] [6265] remove airspeed ets event makro and move tran
From: |
Felix Ruess |
Subject: |
[paparazzi-commits] [6265] remove airspeed ets event makro and move transaction status check into event function |
Date: |
Tue, 26 Oct 2010 11:21:13 +0000 |
Revision: 6265
http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=6265
Author: flixr
Date: 2010-10-26 11:21:13 +0000 (Tue, 26 Oct 2010)
Log Message:
-----------
remove airspeed ets event makro and move transaction status check into event
function
Modified Paths:
--------------
paparazzi3/trunk/conf/modules/airspeed_ets.xml
paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.c
paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.h
Modified: paparazzi3/trunk/conf/modules/airspeed_ets.xml
===================================================================
--- paparazzi3/trunk/conf/modules/airspeed_ets.xml 2010-10-26 11:21:07 UTC
(rev 6264)
+++ paparazzi3/trunk/conf/modules/airspeed_ets.xml 2010-10-26 11:21:13 UTC
(rev 6265)
@@ -13,7 +13,7 @@
</header>
<init fun="airspeed_ets_init()"/>
<periodic fun="airspeed_ets_read_periodic()" freq="10."/>
- <event fun="AirspeedEtsEvent()"/>
+ <event fun="airspeed_ets_event()"/>
<makefile>
<file name="airspeed_ets.c"/>
Modified: paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.c
===================================================================
--- paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.c 2010-10-26
11:21:07 UTC (rev 6264)
+++ paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.c 2010-10-26
11:21:13 UTC (rev 6265)
@@ -100,60 +100,63 @@
#endif //SITL
}
-void airspeed_ets_read_event( void ) {
- int n;
- float airspeed_tmp = 0.0;
+void airspeed_ets_event( void ) {
- // 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;
+ if (airspeed_ets_i2c_trans.status == I2CTransSuccess) {
+ int n;
+ float airspeed_tmp = 0.0;
- // 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;
+ // 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;
}
- // 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;
+ EstimatorSetAirspeed(airspeed_ets);
+ } else {
+ airspeed_ets = 0.0;
}
- // 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;
- EstimatorSetAirspeed(airspeed_ets);
- } else {
- airspeed_ets = 0.0;
- }
- // Transaction has been read
- airspeed_ets_i2c_trans.status = I2CTransDone;
+ // 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-10-26
11:21:07 UTC (rev 6264)
+++ paparazzi3/trunk/sw/airborne/modules/sensors/airspeed_ets.h 2010-10-26
11:21:13 UTC (rev 6265)
@@ -50,8 +50,6 @@
extern void airspeed_ets_init( void );
extern void airspeed_ets_read_periodic( void );
-extern void airspeed_ets_read_event( void );
+extern void airspeed_ets_event( void );
-#define AirspeedEtsEvent() { if (airspeed_ets_i2c_trans.status ==
I2CTransSuccess) airspeed_ets_read_event(); }
-
#endif // AIRSPEED_ETS_H
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paparazzi-commits] [6265] remove airspeed ets event makro and move transaction status check into event function,
Felix Ruess <=