From 7d5b1db0edf0ec43f13293de1526206721c3494f Mon Sep 17 00:00:00 2001 From: cnlohr Date: Sun, 24 Jun 2018 13:41:51 -0400 Subject: Fix base calibration values. --- src/survive_default_devices.c | 10 ++++++---- src/survive_vive.c | 14 ++++++++------ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/survive_default_devices.c b/src/survive_default_devices.c index ea38d55..2d63297 100644 --- a/src/survive_default_devices.c +++ b/src/survive_default_devices.c @@ -174,9 +174,11 @@ int survive_load_htc_config_format(SurviveObject *so, char *ct0conf, int len) { so->acc_scale[1] *= -1; so->acc_scale[0] *= -1; } - so->imu_freq = HMD_IMU_HZ; if (so->acc_bias) - scale3d(so->acc_bias, so->acc_bias, 2. / 1000.); // Odd but seems right. + scale3d(so->acc_bias, so->acc_bias, 1000.0 ); // Odd but seems right. + + so->imu_freq = HMD_IMU_HZ; + if (so->gyro_scale) { FLT deg_per_sec = 500; scale3d(so->gyro_scale, so->gyro_scale, deg_per_sec / (1 << 15) * LINMATHPI / 180.); @@ -188,7 +190,7 @@ int survive_load_htc_config_format(SurviveObject *so, char *ct0conf, int len) { if (so->acc_scale) scale3d(so->acc_scale, so->acc_scale, 2. / 8192.0); if (so->acc_bias) - scale3d(so->acc_bias, so->acc_bias, 2. / 1000.); // Need to verify. + scale3d(so->acc_bias, so->acc_bias, 1000.); // Need to verify. FLT deg_per_sec = 2000; if (so->gyro_scale) @@ -209,7 +211,7 @@ int survive_load_htc_config_format(SurviveObject *so, char *ct0conf, int len) { // If any other device, we know we at least need this. // I deeply suspect bias is in milligravities -JB if (so->acc_bias) - scale3d(so->acc_bias, so->acc_bias, 1. / 1000.); + scale3d(so->acc_bias, so->acc_bias, 1000.); // From datasheet, can be 250, 500, 1000, 2000 deg/s range over 16 bits FLT deg_per_sec = 2000; diff --git a/src/survive_vive.c b/src/survive_vive.c index b20052d..a83c6a1 100755 --- a/src/survive_vive.c +++ b/src/survive_vive.c @@ -491,6 +491,7 @@ int survive_usb_init( SurviveViveData * sv, SurviveObject * hmd, SurviveObject * SV_ERROR( "Could not claim interface %d of %s", j, devnames[i] ); return -9; } + usleep(20000); } SV_INFO( "Successfully enumerated %s (%d, %d)", devnames[i], did, conf->bNumInterfaces ); @@ -894,12 +895,6 @@ int survive_get_config( char ** config, SurviveViveData * sv, int devno, int ifa } SV_INFO( "Got config data length %d", count ); - - char fstname[128]; - sprintf( fstname, "calinfo/%d.json.gz", devno ); - FILE * f = fopen( fstname, "wb" ); - fwrite( compressed_data, count, 1, f ); - fclose( f ); int len = survive_simple_inflate( ctx, compressed_data, count, uncompressed_data, sizeof(uncompressed_data)-1 ); if( len <= 0 ) @@ -910,6 +905,13 @@ int survive_get_config( char ** config, SurviveViveData * sv, int devno, int ifa *config = malloc( len + 1 ); memcpy( *config, uncompressed_data, len ); + + char fstname[128]; + sprintf( fstname, "calinfo/%d.json", devno ); + FILE * f = fopen( fstname, "wb" ); + fwrite( uncompressed_data, len, 1, f ); + fclose( f ); + return len; } -- cgit v1.2.3