summaryrefslogtreecommitdiff
path: root/src/ao_monitor.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-03-22 05:42:51 +0900
committerKeith Packard <keithp@keithp.com>2011-03-22 05:42:51 +0900
commit7b009b2efe3af8722c358c304c2243652594e0d5 (patch)
tree94e196faeaa24504b534d7ab0363a28489216b21 /src/ao_monitor.c
parent20427ae4965f756aac0cedc5179a1c45b9a781f2 (diff)
altos: Switch telemetrum over to kalman filter
This changes the full telemetry stream to include kalman data instead of the old ad-hoc flight data. It's compatible in that the packet sizes are the same so teledongle can receive either and figure out which it has received. A few plotting and testing tools are added to make validating the new code easier. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/ao_monitor.c')
-rw-r--r--src/ao_monitor.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/ao_monitor.c b/src/ao_monitor.c
index d6fd8305..8f290071 100644
--- a/src/ao_monitor.c
+++ b/src/ao_monitor.c
@@ -92,23 +92,23 @@ ao_monitor(void)
recv.telemetry.accel_plus_g,
recv.telemetry.accel_minus_g);
-#if 0
- /* Kalman state values */
- printf(AO_TELEM_KALMAN_HEIGHT " %d "
- AO_TELEM_KALMAN_SPEED " %d "
- AO_TELEM_KALMAN_ACCEL " %d ",
- recv.telemetry.height,
- recv.telemetry.speed,
- recv.telemetry.accel);
-#else
- /* Ad-hoc flight values */
- printf(AO_TELEM_ADHOC_ACCEL " %d "
- AO_TELEM_ADHOC_SPEED " %ld "
- AO_TELEM_ADHOC_BARO " %d ",
- recv.telemetry.flight_accel,
- recv.telemetry.flight_vel,
- recv.telemetry.flight_pres);
-#endif
+ if (recv.telemetry.u.k.unused == 0x8000) {
+ /* Kalman state values */
+ printf(AO_TELEM_KALMAN_HEIGHT " %d "
+ AO_TELEM_KALMAN_SPEED " %d "
+ AO_TELEM_KALMAN_ACCEL " %d ",
+ recv.telemetry.height,
+ recv.telemetry.u.k.speed,
+ recv.telemetry.accel);
+ } else {
+ /* Ad-hoc flight values */
+ printf(AO_TELEM_ADHOC_ACCEL " %d "
+ AO_TELEM_ADHOC_SPEED " %ld "
+ AO_TELEM_ADHOC_BARO " %d ",
+ recv.telemetry.accel,
+ recv.telemetry.u.flight_vel,
+ recv.telemetry.height);
+ }
ao_gps_print(&recv.telemetry.gps);
ao_gps_tracking_print(&recv.telemetry.gps_tracking);
putchar('\n');