X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ao-tools%2Fao-telem%2Fao-telem.c;h=f1755b824f82ef233a89d6ec9312bdea623700c9;hb=ca4b20f9781b1dc6974d26952973dfe0d607478c;hp=e7fc8e268712c5251aa1cbf126d6c13b76b7efe6;hpb=0b5548d6ced67201311e1072d37fbedd3d9929c9;p=fw%2Faltos diff --git a/ao-tools/ao-telem/ao-telem.c b/ao-tools/ao-telem/ao-telem.c index e7fc8e26..f1755b82 100644 --- a/ao-tools/ao-telem/ao-telem.c +++ b/ao-tools/ao-telem/ao-telem.c @@ -24,6 +24,7 @@ #include "cc.h" static const struct option options[] = { + { .name = "crc", .has_arg = 0, .val = 'c' }, { 0, 0, 0, 0}, }; @@ -44,8 +45,12 @@ main (int argc, char **argv) char *s; FILE *file; int serial; - while ((c = getopt_long(argc, argv, "", options, NULL)) != -1) { + int ignore_crc = 0; + while ((c = getopt_long(argc, argv, "c", options, NULL)) != -1) { switch (c) { + case 'c': + ignore_crc = 1; + break; default: usage(argv[0]); break; @@ -74,7 +79,7 @@ main (int argc, char **argv) printf ("serial %5d rssi %d status %02x tick %5d type %3d ", telem.generic.serial, rssi, telem.generic.status, telem.generic.tick, telem.generic.type); - if ((telem.generic.status & (1 << 7)) == 0) { + if (!ignore_crc && (telem.generic.status & (1 << 7)) == 0) { printf ("CRC error\n"); continue; } @@ -189,6 +194,39 @@ main (int argc, char **argv) telem.mega_data.height); break; + case AO_TELEMETRY_METRUM_SENSOR: + printf ("state %1d accel %5d pres %9d temp %6.2f acceleration %6.2f speed %6.2f height %5d v_batt %5d sense_a %5d sense_m %5d\n", + telem.metrum_sensor.state, + telem.metrum_sensor.accel, + telem.metrum_sensor.pres, + telem.metrum_sensor.temp / 100.0, + telem.metrum_sensor.acceleration / 16.0, + telem.metrum_sensor.speed / 16.0, + telem.metrum_sensor.height, + telem.metrum_sensor.v_batt, + telem.metrum_sensor.sense_a, + telem.metrum_sensor.sense_m); + break; + case AO_TELEMETRY_METRUM_DATA: + printf ("ground_pres %9d ground_accel %5d accel_plus %5d accel_minus %5d\n", + telem.metrum_data.ground_pres, + telem.metrum_data.ground_accel, + telem.metrum_data.accel_plus_g, + telem.metrum_data.accel_minus_g); + break; + case AO_TELEMETRY_MINI: + printf ("state %1d v_batt %5d sense_a %5d sense_m %5d pres %9d temp %6.2f acceleration %6.2f speed %6.2f height %5d ground_pres %9d\n", + telem.mini.state, + telem.mini.v_batt, + telem.mini.sense_a, + telem.mini.sense_m, + telem.mini.pres, + telem.mini.temp / 100.0, + telem.mini.acceleration / 16.0, + telem.mini.speed / 16.0, + telem.mini.height, + telem.mini.ground_pres); + break; default: printf("\n"); }