From cb06bbdba6cefc042f32985000f1ef03aafdb9a9 Mon Sep 17 00:00:00 2001 From: cnlohr Date: Sat, 23 Jun 2018 14:04:06 -0400 Subject: Fix config in master. --- src/poser_general_optimizer.c | 6 +++--- src/poser_sba.c | 14 +++++++------- src/poser_sba.h | 16 ---------------- src/survive.c | 4 ++-- src/survive_config.c | 41 +++++++++++++++++++++++++++++++++++++---- src/survive_playback.c | 2 +- 6 files changed, 50 insertions(+), 33 deletions(-) delete mode 100644 src/poser_sba.h (limited to 'src') diff --git a/src/poser_general_optimizer.c b/src/poser_general_optimizer.c index 186b359..6f181a3 100644 --- a/src/poser_general_optimizer.c +++ b/src/poser_general_optimizer.c @@ -17,9 +17,9 @@ void general_optimizer_data_init(GeneralOptimizerData *d, SurviveObject *so) { SurviveContext *ctx = so->ctx; - survive_attach_config( ctx, "failures-to-reset", &d->failures_to_reset, 'i' ); - survive_attach_config( ctx, "successes-to-reset", &d->successes_to_reset, 'i' ); - survive_attach_config( ctx, "max-error", &d->max_error, 'f' ); + survive_attach_configf( ctx, "max-error", &d->max_error ); + survive_attach_configi( ctx, "failures-to-reset", &d->failures_to_reset ); + survive_attach_configi( ctx, "successes-to-reset", &d->successes_to_reset ); const char *subposer = survive_configs(ctx, "seed-poser", SC_GET, 0 ); d->seed_poser = (PoserCB)GetDriver(subposer); diff --git a/src/poser_sba.c b/src/poser_sba.c index 21dd74f..b049c80 100644 --- a/src/poser_sba.c +++ b/src/poser_sba.c @@ -50,7 +50,7 @@ typedef struct SBAData { survive_kpose_t kpose; SurviveIMUTracker tracker; - bool useIMU; + int useIMU; struct { int meas_failures; @@ -352,12 +352,12 @@ int PoserSBA(SurviveObject *so, PoserData *pd) { general_optimizer_data_init(&d->opt, so); - survive_attach_config( ctx, "sba-use-imu", &d->useIMU, 'i' ); - survive_attach_config( ctx, "sba-required-meas", &d->required_meas, 'i' ); - survive_attach_config( ctx, "sba-time-window", &d->sensor_time_window, 'i' ); - survive_attach_config( ctx, "sba-sensor-variance-per-sec", &d->sensor_variance_per_second, 'f' ); - survive_attach_config( ctx, "sba-sensor-variance", &d->sensor_variance, 'f' ); - survive_attach_config( ctx, "sba-use-jacobian-function", &d->use_jacobian_function, 'i' ); + survive_attach_configi( ctx, "sba-use-imu", &d->useIMU ); + survive_attach_configi( ctx, "sba-required-meas", &d->required_meas ); + survive_attach_configi( ctx, "sba-time-window", &d->sensor_time_window ); + survive_attach_configf( ctx, "sba-sensor-variance-per-sec", &d->sensor_variance_per_second ); + survive_attach_configf( ctx, "sba-sensor-variance", &d->sensor_variance ); + survive_attach_configi( ctx, "sba-use-jacobian-function", &d->use_jacobian_function ); SV_INFO("Initializing SBA:"); SV_INFO("\tsba-required-meas: %d", d->required_meas); diff --git a/src/poser_sba.h b/src/poser_sba.h deleted file mode 100644 index 8a49122..0000000 --- a/src/poser_sba.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#pragma once -#include -#define FLT double -#include "survive_reproject.h" -#include -#include - -struct SurviveObject; - -int sba_bruteforce_config_solver_cb(SurviveObject *so, PoserData *pd); -int sba_solver_poser_cb(SurviveObject *so, PoserData *pd); - -std::ostream &operator<<(std::ostream &o, const survive_calibration_options_config &self); -std::ostream &operator<<(std::ostream &o, const survive_calibration_config &self); \ No newline at end of file diff --git a/src/survive.c b/src/survive.c index 2bdefca..7ee1992 100644 --- a/src/survive.c +++ b/src/survive.c @@ -156,8 +156,8 @@ SurviveContext *survive_init_internal(int argc, char *const *argv) { ctx->lh_config = malloc(sizeof(config_group) * NUM_LIGHTHOUSES); // initdata - init_config_group(ctx->global_config_values, 10, ctx); - init_config_group(ctx->temporary_config_values, 20, ctx); + init_config_group(ctx->global_config_values, 30, ctx); + init_config_group(ctx->temporary_config_values, 30, ctx); for( i = 0; i < NUM_LIGHTHOUSES; i++ ) init_config_group(&ctx->lh_config[i], 10, ctx); diff --git a/src/survive_config.c b/src/survive_config.c index 23433c4..5ee4a84 100644 --- a/src/survive_config.c +++ b/src/survive_config.c @@ -77,7 +77,7 @@ int survive_print_help_for_parameter( const char * tomap ) { char sthelp[160]; snprintf( sthelp, 159, " %s: %s [%c]", sc->name, sc->description, sc->type ); - fprintf( stderr, "\0337\033[1A\033[1000D%s\0338", sthelp, strlen( sthelp )); + fprintf( stderr, "\0337\033[1A\033[1000D%s\0338", sthelp ); return 1; } } @@ -776,13 +776,31 @@ const char *survive_configs(SurviveContext *ctx, const char *tag, char flags, co return def; } -SURVIVE_EXPORT void survive_attach_config(SurviveContext *ctx, const char *tag, void * var, char type ) +static void survive_attach_config(SurviveContext *ctx, const char *tag, void * var, char type ) { config_entry *cv = sc_search(ctx, tag); if( !cv ) { - SV_ERROR( "Configuration item %s not initialized.\n", tag ); - return; + //Check to see if there is a static config with this value. + if( type == 'i' ) + { + *((int*)var) = survive_configi( ctx, tag, SC_SET, 0); + } + if( type == 'f' ) + { + *((FLT*)var) = survive_configf( ctx, tag, SC_SET, 0); + } + if( type == 's' ) + { + const char * cv = survive_configs( ctx, tag, SC_SET, 0); + memcpy( var, cv, strlen(cv) ); + } + cv = sc_search(ctx, tag); + if( !cv ) + { + SV_ERROR( "Configuration item %s not initialized.\n", tag ); + return; + } } update_list_t ** ul = &cv->update_list; while( *ul ) @@ -795,6 +813,21 @@ SURVIVE_EXPORT void survive_attach_config(SurviveContext *ctx, const char *tag, t->value = var; } +SURVIVE_EXPORT void survive_attach_configi(SurviveContext *ctx, const char *tag, int * var ) +{ + survive_attach_config( ctx, tag, var, 'i' ); +} + +SURVIVE_EXPORT void survive_attach_configf(SurviveContext *ctx, const char *tag, FLT * var ) +{ + survive_attach_config( ctx, tag, var, 'f' ); +} + +SURVIVE_EXPORT void survive_attach_configs(SurviveContext *ctx, const char *tag, char * var ) +{ + survive_attach_config( ctx, tag, var, 's' ); +} + SURVIVE_EXPORT void survive_detach_config(SurviveContext *ctx, const char *tag, void * var ) { config_entry *cv = sc_search(ctx, tag); diff --git a/src/survive_playback.c b/src/survive_playback.c index ebf7e3f..c616aea 100644 --- a/src/survive_playback.c +++ b/src/survive_playback.c @@ -401,7 +401,7 @@ int DriverRegPlayback(SurviveContext *ctx) { return -1; } - survive_attach_config( ctx, "playback-factor", &sp->playback_factor, 'f' ); + survive_attach_configf( ctx, "playback-factor", &sp->playback_factor ); SV_INFO("Using playback file '%s' with timefactor of %f", playback_file, sp->playback_factor ); SurviveObject *hmd = survive_create_hmd(ctx, "Playback", sp); -- cgit v1.2.3