examples/foc: use the current configuration values when printing the help message
This is useful when tuning the controller and running application many times with different parameters from the NSH
This commit is contained in:
parent
36a9ccc3a8
commit
aad2bcb621
@ -27,6 +27,7 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
#include <inttypes.h>
|
||||||
|
|
||||||
#include "foc_debug.h"
|
#include "foc_debug.h"
|
||||||
#include "foc_thr.h"
|
#include "foc_thr.h"
|
||||||
@ -45,16 +46,16 @@
|
|||||||
#define OPT_IIV (SCHAR_MAX + 6)
|
#define OPT_IIV (SCHAR_MAX + 6)
|
||||||
#define OPT_IIS (SCHAR_MAX + 7)
|
#define OPT_IIS (SCHAR_MAX + 7)
|
||||||
|
|
||||||
#define OPT_VOPLLKP (SCHAR_MAX + 7)
|
#define OPT_VOPLLKP (SCHAR_MAX + 8)
|
||||||
#define OPT_VOPLLKI (SCHAR_MAX + 8)
|
#define OPT_VOPLLKI (SCHAR_MAX + 9)
|
||||||
#define OPT_VODIVS (SCHAR_MAX + 9)
|
#define OPT_VODIVS (SCHAR_MAX + 10)
|
||||||
#define OPT_VODIVF (SCHAR_MAX + 10)
|
#define OPT_VODIVF (SCHAR_MAX + 11)
|
||||||
|
|
||||||
#define OPT_VCPIKP (SCHAR_MAX + 11)
|
#define OPT_VCPIKP (SCHAR_MAX + 12)
|
||||||
#define OPT_VCPIKI (SCHAR_MAX + 12)
|
#define OPT_VCPIKI (SCHAR_MAX + 13)
|
||||||
|
|
||||||
#define OPT_ANFOS (SCHAR_MAX + 13)
|
#define OPT_ANFOS (SCHAR_MAX + 14)
|
||||||
#define OPT_ANFOG (SCHAR_MAX + 14)
|
#define OPT_ANFOG (SCHAR_MAX + 15)
|
||||||
|
|
||||||
#define OPT_OLFORCE (SCHAR_MAX + 16)
|
#define OPT_OLFORCE (SCHAR_MAX + 16)
|
||||||
#define OPT_OLTHR (SCHAR_MAX + 17)
|
#define OPT_OLTHR (SCHAR_MAX + 17)
|
||||||
@ -127,7 +128,7 @@ static struct option g_long_options[] =
|
|||||||
* Name: foc_help
|
* Name: foc_help
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static void foc_help(void)
|
static void foc_help(FAR struct args_s *args)
|
||||||
{
|
{
|
||||||
PRINTF("Usage: foc [OPTIONS]\n");
|
PRINTF("Usage: foc [OPTIONS]\n");
|
||||||
PRINTF(" [-t] run time (default: %d)\n",
|
PRINTF(" [-t] run time (default: %d)\n",
|
||||||
@ -161,15 +162,15 @@ static void foc_help(void)
|
|||||||
PRINTF(" [-x] position [x1000]\n");
|
PRINTF(" [-x] position [x1000]\n");
|
||||||
#endif
|
#endif
|
||||||
PRINTF(" [-s] motor state init (default: %d)\n",
|
PRINTF(" [-s] motor state init (default: %d)\n",
|
||||||
CONFIG_EXAMPLES_FOC_STATE_INIT);
|
args->state);
|
||||||
PRINTF(" 1 - motor free\n");
|
PRINTF(" 1 - motor free\n");
|
||||||
PRINTF(" 2 - motor stop\n");
|
PRINTF(" 2 - motor stop\n");
|
||||||
PRINTF(" 3 - motor CW\n");
|
PRINTF(" 3 - motor CW\n");
|
||||||
PRINTF(" 4 - motor CCW\n");
|
PRINTF(" 4 - motor CCW\n");
|
||||||
PRINTF(" [-j] enable specific instances\n");
|
PRINTF(" [-j] enable specific instances\n");
|
||||||
#ifdef CONFIG_EXAMPLES_FOC_HAVE_OPENLOOP
|
#ifdef CONFIG_EXAMPLES_FOC_HAVE_OPENLOOP
|
||||||
PRINTF(" [-o] openloop Vq/Iq setting [x1000] (default: %d)\n",
|
PRINTF(" [-o] openloop Vq/Iq setting [x1000] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_OPENLOOP_Q);
|
args->cfg.qparam);
|
||||||
PRINTF(" [--olforce] force openloop\n");
|
PRINTF(" [--olforce] force openloop\n");
|
||||||
# ifdef CONFIG_EXAMPLES_FOC_ANGOBS
|
# ifdef CONFIG_EXAMPLES_FOC_ANGOBS
|
||||||
PRINTF(" [--olthr] observer vel threshold [x1] (default: %d)\n",
|
PRINTF(" [--olthr] observer vel threshold [x1] (default: %d)\n",
|
||||||
@ -179,46 +180,46 @@ static void foc_help(void)
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_EXAMPLES_FOC_CONTROL_PI
|
#ifdef CONFIG_EXAMPLES_FOC_CONTROL_PI
|
||||||
PRINTF(" [--fki] PI Kp coefficient [x1000] (default: %d)\n",
|
PRINTF(" [--fkp] PI Kp coefficient [x1000] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_IDQ_KP);
|
args->cfg.foc_pi_kp);
|
||||||
PRINTF(" [--fkp] PI Ki coefficient [x1000] (default: %d)\n",
|
PRINTF(" [--fki] PI Ki coefficient [x1000] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_IDQ_KI);
|
args->cfg.foc_pi_ki);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_EXAMPLES_FOC_HAVE_IDENT
|
#ifdef CONFIG_EXAMPLES_FOC_HAVE_IDENT
|
||||||
PRINTF(" [--irki] res Ki coefficient [x1000] (default: %d)\n",
|
PRINTF(" [--irki] res Ki coefficient [x1000] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_IDENT_RES_KI);
|
args->cfg.ident_res_ki);
|
||||||
PRINTF(" [--irc] res current [x1000] (default: %d)\n",
|
PRINTF(" [--irc] res current [x1000] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_IDENT_RES_CURRENT);
|
args->cfg.ident_res_curr);
|
||||||
PRINTF(" [--irs] res sec (default: %d)\n",
|
PRINTF(" [--irs] res sec (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_IDENT_RES_SEC);
|
args->cfg.ident_res_sec);
|
||||||
PRINTF(" [--iiv] ind voltage [x1000] (default: %d)\n",
|
PRINTF(" [--iiv] ind voltage [x1000] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_IDENT_IND_VOLTAGE);
|
args->cfg.ident_ind_volt);
|
||||||
PRINTF(" [--iis] ind sec (default: %d)\n",
|
PRINTF(" [--iis] ind sec (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_IDENT_IND_SEC);
|
args->cfg.ident_ind_sec);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_EXAMPLES_FOC_VELOBS_PLL
|
#ifdef CONFIG_EXAMPLES_FOC_VELOBS_PLL
|
||||||
PRINTF(" [--vopllkp] velobs PLL Kp (default: %d)\n",
|
PRINTF(" [--vopllkp] velobs PLL Kp [x1] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_VELOBS_PLL_KP);
|
args->cfg.vel_pll_kp);
|
||||||
PRINTF(" [--vopllki] velobs PLL Ki (default: %d)\n",
|
PRINTF(" [--vopllki] velobs PLL Ki [x1] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_VELOBS_PLL_KI);
|
args->cfg.vel_pll_ki);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_EXAMPLES_FOC_VELOBS_DIV
|
#ifdef CONFIG_EXAMPLES_FOC_VELOBS_DIV
|
||||||
PRINTF(" [--vodivs] velobs DIV samples (default: %d)\n",
|
PRINTF(" [--vodivs] velobs DIV samples (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_VELOBS_DIV_SAMPLES);
|
args->cfg.vel_div_samples);
|
||||||
PRINTF(" [--vodivf] velobs DIV filter (default: %d)\n",
|
PRINTF(" [--vodivf] velobs DIV filter (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_VELOBS_DIV_FILTER);
|
args->cfg.vel_div_filter);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_EXAMPLES_FOC_VELCTRL_PI
|
#ifdef CONFIG_EXAMPLES_FOC_VELCTRL_PI
|
||||||
PRINTF(" [--vcpikp] velctrl PI Kp (default: %d)\n",
|
PRINTF(" [--vcpikp] velctrl PI Kp [x1000000] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_VELCTRL_PI_KP);
|
args->cfg.vel_pi_kp);
|
||||||
PRINTF(" [--vcpiki] velctrl PI Ki (default: %d)\n",
|
PRINTF(" [--vcpiki] velctrl PI Ki [x1000000] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_VELCTRL_PI_KI);
|
args->cfg.vel_pi_ki);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_INDUSTRY_FOC_ANGLE_ONFO
|
#ifdef CONFIG_INDUSTRY_FOC_ANGLE_ONFO
|
||||||
PRINTF(" [--anfos] angobs NFO Slow (default: %d)\n",
|
PRINTF(" [--anfos] angobs NFO Slow [x1] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_ANGOBS_NFO_GAINSLOW);
|
args->cfg.ang_nfo_slow);
|
||||||
PRINTF(" [--anfog] angobs NFO Gain (default: %d)\n",
|
PRINTF(" [--anfog] angobs NFO Gain [x1] (default: %" PRId32 ")\n",
|
||||||
CONFIG_EXAMPLES_FOC_ANGOBS_NFO_GAIN);
|
args->cfg.ang_nfo_gain);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -357,7 +358,7 @@ void parse_args(FAR struct args_s *args, int argc, FAR char **argv)
|
|||||||
|
|
||||||
case 'h':
|
case 'h':
|
||||||
{
|
{
|
||||||
foc_help();
|
foc_help(args);
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -448,7 +449,7 @@ void parse_args(FAR struct args_s *args, int argc, FAR char **argv)
|
|||||||
PRINTF("ERROR: invalid option %s\n", argv[optind - 1]);
|
PRINTF("ERROR: invalid option %s\n", argv[optind - 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
foc_help();
|
foc_help(args);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user