aboutsummaryrefslogtreecommitdiff
path: root/src/survive_playback.c
diff options
context:
space:
mode:
authorcnlohr <lohr85@gmail.com>2018-06-23 12:11:33 -0400
committercnlohr <lohr85@gmail.com>2018-06-23 12:11:33 -0400
commit9291b950c5508513ea261059229e19760c050a47 (patch)
tree2cb0217e67896382c3bc395ad91d438c779a32cf /src/survive_playback.c
parent86bbd12c3889db3290e22ff61934ca1a218ce114 (diff)
parent87b6229f6fc4e434b9472e6c7722e40497ac97a1 (diff)
downloadlibsurvive-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.c17
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;
}