The telemetry packets now send the kalman height/speed/accel values
instead of the ad-hoc values. If received by an old TeleDongle box,
the speed value will be of the form 0x8000abcd, which will be printed
as a 32-bit value by TeleDongle. We only want the abcd part, which is
the speed * 16. Detect this automatically and compute the correct
values for all three.
Signed-off-by: Keith Packard <keithp@keithp.com>
AltosParse.word(words[i++], "fp:");
flight_pres = AltosParse.parse_int(words[i++]);
AltosParse.word(words[i++], "fp:");
flight_pres = AltosParse.parse_int(words[i++]);
+ /* Old TeleDongle code with kalman-reporting TeleMetrum code */
+ if ((flight_vel & 0xffff0000) == 0x80000000) {
+ speed = ((short) flight_vel) / 16.0;
+ acceleration = flight_accel / 16.0;
+ height = flight_pres;
+ flight_vel = MISSING;
+ flight_pres = MISSING;
+ flight_accel = MISSING;
+ }
+
AltosParse.word(words[i++], "gp:");
ground_pres = AltosParse.parse_int(words[i++]);
AltosParse.word(words[i++], "gp:");
ground_pres = AltosParse.parse_int(words[i++]);