diff options
author | cnlohr <lohr85@gmail.com> | 2018-06-23 12:11:33 -0400 |
---|---|---|
committer | cnlohr <lohr85@gmail.com> | 2018-06-23 12:11:33 -0400 |
commit | 9291b950c5508513ea261059229e19760c050a47 (patch) | |
tree | 2cb0217e67896382c3bc395ad91d438c779a32cf /src/survive_playback.c | |
parent | 86bbd12c3889db3290e22ff61934ca1a218ce114 (diff) | |
parent | 87b6229f6fc4e434b9472e6c7722e40497ac97a1 (diff) | |
download | libsurvive-9291b950c5508513ea261059229e19760c050a47.tar.gz libsurvive-9291b950c5508513ea261059229e19760c050a47.tar.bz2 |
Merge branch 'master' into new_config_system
Diffstat (limited to 'src/survive_playback.c')
-rw-r--r-- | src/survive_playback.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/survive_playback.c b/src/survive_playback.c index df922e2..ebf7e3f 100644 --- a/src/survive_playback.c +++ b/src/survive_playback.c @@ -167,8 +167,9 @@ void survive_recording_imu_process(struct SurviveObject *so, int mask, FLT *acce if (recordingData == 0) return; - write_to_output(recordingData, "%s I %d %u %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %d\n", so->codename, mask, timecode, - accelgyro[0], accelgyro[1], accelgyro[2], accelgyro[3], accelgyro[4], accelgyro[5], id); + write_to_output(recordingData, "%s I %d %u %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %0.6f %d\n", + so->codename, mask, timecode, accelgyro[0], accelgyro[1], accelgyro[2], accelgyro[3], accelgyro[4], + accelgyro[5], accelgyro[6], accelgyro[7], accelgyro[8], id); } struct SurvivePlaybackData { @@ -186,16 +187,20 @@ typedef struct SurvivePlaybackData SurvivePlaybackData; static int parse_and_run_imu(const char *line, SurvivePlaybackData *driver) { char dev[10]; int timecode = 0; - FLT accelgyro[6]; + FLT accelgyro[9] = {}; int mask; int id; int rr = sscanf(line, "%s I %d %d " FLT_format " " FLT_format " " FLT_format " " FLT_format " " FLT_format - " " FLT_format "%d", + " " FLT_format " " FLT_format " " FLT_format " " FLT_format "%d", dev, &mask, &timecode, &accelgyro[0], &accelgyro[1], &accelgyro[2], &accelgyro[3], &accelgyro[4], - &accelgyro[5], &id); + &accelgyro[5], &accelgyro[6], &accelgyro[7], &accelgyro[8], &id); - if (rr != 10) { + if (rr == 10) { + // Older formats might not have mag data + id = accelgyro[6]; + accelgyro[6] = 0; + } else if (rr != 13) { fprintf(stderr, "Warning: On line %d, only %d values read: '%s'\n", driver->lineno, rr, line); return -1; } |