summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2009-05-13 11:16:53 -0700
committerKeith Packard <keithp@keithp.com>2009-05-13 11:16:53 -0700
commitd3dbd8949e1102220ad5fd0863f493c819b96e46 (patch)
tree4f3c89998a276eab020e0a8dc594fe33ec17ed36
parent8168820b667cc1deffab64dd81cb4e6e2e6eabe4 (diff)
Print only RSSI when packet CRC is invalid
Packets with invalid CRC usually contain bogus data, so don't print that, just print out the RSSI which may contain useful data. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--ao_monitor.c34
1 files changed, 18 insertions, 16 deletions
diff --git a/ao_monitor.c b/ao_monitor.c
index 17eee5a3..e05e84d8 100644
--- a/ao_monitor.c
+++ b/ao_monitor.c
@@ -40,22 +40,24 @@ ao_monitor(void)
memcpy(callsign, recv.telemetry.callsign, AO_MAX_CALLSIGN);
if (state > ao_flight_invalid)
state = ao_flight_invalid;
- printf ("CALL %s SERIAL %3d RSSI %3d STATUS %02x STATE %7s ",
- callsign,
- recv.telemetry.addr,
- (int) recv.rssi - 74, recv.status,
- ao_state_names[state]);
- if (!(recv.status & PKT_APPEND_STATUS_1_CRC_OK))
- printf("CRC INVALID ");
- printf("%5u a: %5d p: %5d t: %5d v: %5d d: %5d m: %5d ",
- recv.telemetry.adc.tick,
- recv.telemetry.adc.accel,
- recv.telemetry.adc.pres,
- recv.telemetry.adc.temp,
- recv.telemetry.adc.v_batt,
- recv.telemetry.adc.sense_d,
- recv.telemetry.adc.sense_m);
- ao_gps_print(&recv.telemetry.gps);
+ if (recv.status & PKT_APPEND_STATUS_1_CRC_OK) {
+ printf ("CALL %s SERIAL %3d RSSI %3d STATUS %02x STATE %7s ",
+ callsign,
+ recv.telemetry.addr,
+ (int) recv.rssi - 74, recv.status,
+ ao_state_names[state]);
+ printf("%5u a: %5d p: %5d t: %5d v: %5d d: %5d m: %5d ",
+ recv.telemetry.adc.tick,
+ recv.telemetry.adc.accel,
+ recv.telemetry.adc.pres,
+ recv.telemetry.adc.temp,
+ recv.telemetry.adc.v_batt,
+ recv.telemetry.adc.sense_d,
+ recv.telemetry.adc.sense_m);
+ ao_gps_print(&recv.telemetry.gps);
+ } else {
+ printf("CRC INVALID RSSI %3d\n", (int) recv.rssi - 74);
+ }
ao_usb_flush();
ao_led_toggle(ao_monitor_led);
}