diff options
author | Tobias Klauser <tobias.klauser@uzh.ch> | 2013-02-14 14:01:09 +0100 |
---|---|---|
committer | Tobias Klauser <tobias.klauser@uzh.ch> | 2013-02-14 14:01:09 +0100 |
commit | 5110cbf6ee01883b65c59a7ac133a2ccb9faa9d9 (patch) | |
tree | 08f51f1e4bfc4013fb467fe83bea18ff731a1445 | |
parent | 99de0553dcfb9f6c43993609dabe208c2b991e9d (diff) |
LocomotorPrimitives: Add option to disable input prompting
-rw-r--r-- | LocomotorPrimitives.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/LocomotorPrimitives.cpp b/LocomotorPrimitives.cpp index cf6ed91..b72199c 100644 --- a/LocomotorPrimitives.cpp +++ b/LocomotorPrimitives.cpp @@ -25,6 +25,8 @@ static const double INTEGRATOR_ACCURACY = 1.0e-3; static Logger &logger = Logger::getInstance(); static LocomotorPrimitivesManager *manager = NULL; +static bool yes = false; + static void signal_handler(int signr) { switch (signr) { @@ -46,7 +48,8 @@ static void constructModel(OpenSim::Model &model, OpenSim::Storage actData) control->setActuators(model.updActuators()); if (control->checkControls() != 0) { logger.err("Control data for some muscles in the model is missing. Press ENTER to continue, ^-C to quit."); - std::cin.get(); + if (!yes) + std::cin.get(); } model.addController(control); @@ -160,6 +163,7 @@ static void usage() << " -m FILE specify .osim to use as model" << std::endl << " -o DIR set output directory to DIR (default: current directory)" << std::endl << " -s N set fixed step size for integrator to N (default: dynamic)" << std::endl + << " -y don't prompt for any input on errors and finishing" << std::endl << " -h show this help and exit" << std::endl; } @@ -189,6 +193,9 @@ int main(int argc, char **argv) case 's': fixed_step_size = strtod(argv[++i], NULL); break; + case 'y': + yes = true; + break; case 'h': usage(); exit(0); @@ -228,20 +235,24 @@ int main(int argc, char **argv) simulateModel(osimModel, initial_time, final_time, fixed_step_size, output_dir); } catch (OpenSim::Exception ex) { logger.err("Exception: %s. Press ENTER to quit", ex.getMessage()); - std::cin.get(); + if (!yes) + std::cin.get(); return 1; } catch (std::exception ex) { logger.err("Exception: %s. Press ENTER to quit", ex.what()); - std::cin.get(); + if (!yes) + std::cin.get(); return 1; } catch (...) { logger.err("Unrecognized Exception. Press ENTER to quit"); - std::cin.get(); + if (!yes) + std::cin.get(); return 1; } logger.log("Total runtime = %fms\n", 1.e3 * (clock() - ts_start) / CLOCKS_PER_SEC); logger.log("Simulation %s completed successfully. Press ENTER to quit", MODEL_NAME.c_str()); - std::cin.get(); + if (!yes) + std::cin.get(); return 0; } |