public AltosTelemetryReader (FileInputStream input) {
boolean saw_boost = false;
+ int current_tick = 0;
records = new LinkedList<AltosRecord> ();
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;
+ }
if (!saw_boost && record.state >= Altos.ao_flight_boost)
{
saw_boost = true;
records.add(record);
} catch (ParseException pe) {
System.out.printf("parse exception %s\n", pe.getMessage());
+ } catch (AltosCRCException ce) {
+ System.out.printf("crc error\n");
}
}
} catch (IOException io) {