+ try {
+ System.out.printf("%s\n", line);
+ AltosTelemetry record = new AltosTelemetry(line);
+ if (record == null)
+ break;
+ if (records.isEmpty()) {
+ current_tick = record.tick;
+ } else {
+ int tick = record.tick | (current_tick & ~ 0xffff);
+ if (tick < current_tick - 0x1000)
+ tick += 0x10000;
+ current_tick = tick;
+ record.tick = current_tick;
+ }
+ System.out.printf("\tRSSI %d tick %d\n", record.rssi, record.tick);
+ if (!saw_boost && record.state >= Altos.ao_flight_boost)
+ {
+ saw_boost = true;
+ boost_tick = record.tick;
+ }
+ records.add(record);
+ } catch (ParseException pe) {
+ System.out.printf("parse exception %s\n", pe.getMessage());
+ } catch (AltosCRCException ce) {
+ System.out.printf("crc error\n");
+ }