You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2023/10/19 23:18:53 UTC
[nuttx-apps] branch master updated: examples/foc: use the current configuration values when printing the help message
This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
The following commit(s) were added to refs/heads/master by this push:
new aad2bcb62 examples/foc: use the current configuration values when printing the help message
aad2bcb62 is described below
commit aad2bcb6219c1a0baa1649c87e702cf99e830186
Author: raiden00pl <ra...@railab.me>
AuthorDate: Thu Oct 12 13:05:33 2023 +0200
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
---
examples/foc/foc_parseargs.c | 89 ++++++++++++++++++++++----------------------
1 file changed, 45 insertions(+), 44 deletions(-)
diff --git a/examples/foc/foc_parseargs.c b/examples/foc/foc_parseargs.c
index e8eddd47a..1c8c6adc4 100644
--- a/examples/foc/foc_parseargs.c
+++ b/examples/foc/foc_parseargs.c
@@ -27,6 +27,7 @@
#include <unistd.h>
#include <stdlib.h>
#include <getopt.h>
+#include <inttypes.h>
#include "foc_debug.h"
#include "foc_thr.h"
@@ -45,16 +46,16 @@
#define OPT_IIV (SCHAR_MAX + 6)
#define OPT_IIS (SCHAR_MAX + 7)
-#define OPT_VOPLLKP (SCHAR_MAX + 7)
-#define OPT_VOPLLKI (SCHAR_MAX + 8)
-#define OPT_VODIVS (SCHAR_MAX + 9)
-#define OPT_VODIVF (SCHAR_MAX + 10)
+#define OPT_VOPLLKP (SCHAR_MAX + 8)
+#define OPT_VOPLLKI (SCHAR_MAX + 9)
+#define OPT_VODIVS (SCHAR_MAX + 10)
+#define OPT_VODIVF (SCHAR_MAX + 11)
-#define OPT_VCPIKP (SCHAR_MAX + 11)
-#define OPT_VCPIKI (SCHAR_MAX + 12)
+#define OPT_VCPIKP (SCHAR_MAX + 12)
+#define OPT_VCPIKI (SCHAR_MAX + 13)
-#define OPT_ANFOS (SCHAR_MAX + 13)
-#define OPT_ANFOG (SCHAR_MAX + 14)
+#define OPT_ANFOS (SCHAR_MAX + 14)
+#define OPT_ANFOG (SCHAR_MAX + 15)
#define OPT_OLFORCE (SCHAR_MAX + 16)
#define OPT_OLTHR (SCHAR_MAX + 17)
@@ -127,7 +128,7 @@ static struct option g_long_options[] =
* Name: foc_help
****************************************************************************/
-static void foc_help(void)
+static void foc_help(FAR struct args_s *args)
{
PRINTF("Usage: foc [OPTIONS]\n");
PRINTF(" [-t] run time (default: %d)\n",
@@ -161,15 +162,15 @@ static void foc_help(void)
PRINTF(" [-x] position [x1000]\n");
#endif
PRINTF(" [-s] motor state init (default: %d)\n",
- CONFIG_EXAMPLES_FOC_STATE_INIT);
+ args->state);
PRINTF(" 1 - motor free\n");
PRINTF(" 2 - motor stop\n");
PRINTF(" 3 - motor CW\n");
PRINTF(" 4 - motor CCW\n");
PRINTF(" [-j] enable specific instances\n");
#ifdef CONFIG_EXAMPLES_FOC_HAVE_OPENLOOP
- PRINTF(" [-o] openloop Vq/Iq setting [x1000] (default: %d)\n",
- CONFIG_EXAMPLES_FOC_OPENLOOP_Q);
+ PRINTF(" [-o] openloop Vq/Iq setting [x1000] (default: %" PRId32 ")\n",
+ args->cfg.qparam);
PRINTF(" [--olforce] force openloop\n");
# ifdef CONFIG_EXAMPLES_FOC_ANGOBS
PRINTF(" [--olthr] observer vel threshold [x1] (default: %d)\n",
@@ -179,46 +180,46 @@ static void foc_help(void)
# endif
#endif
#ifdef CONFIG_EXAMPLES_FOC_CONTROL_PI
- PRINTF(" [--fki] PI Kp coefficient [x1000] (default: %d)\n",
- CONFIG_EXAMPLES_FOC_IDQ_KP);
- PRINTF(" [--fkp] PI Ki coefficient [x1000] (default: %d)\n",
- CONFIG_EXAMPLES_FOC_IDQ_KI);
+ PRINTF(" [--fkp] PI Kp coefficient [x1000] (default: %" PRId32 ")\n",
+ args->cfg.foc_pi_kp);
+ PRINTF(" [--fki] PI Ki coefficient [x1000] (default: %" PRId32 ")\n",
+ args->cfg.foc_pi_ki);
#endif
#ifdef CONFIG_EXAMPLES_FOC_HAVE_IDENT
- PRINTF(" [--irki] res Ki coefficient [x1000] (default: %d)\n",
- CONFIG_EXAMPLES_FOC_IDENT_RES_KI);
- PRINTF(" [--irc] res current [x1000] (default: %d)\n",
- CONFIG_EXAMPLES_FOC_IDENT_RES_CURRENT);
- PRINTF(" [--irs] res sec (default: %d)\n",
- CONFIG_EXAMPLES_FOC_IDENT_RES_SEC);
- PRINTF(" [--iiv] ind voltage [x1000] (default: %d)\n",
- CONFIG_EXAMPLES_FOC_IDENT_IND_VOLTAGE);
- PRINTF(" [--iis] ind sec (default: %d)\n",
- CONFIG_EXAMPLES_FOC_IDENT_IND_SEC);
+ PRINTF(" [--irki] res Ki coefficient [x1000] (default: %" PRId32 ")\n",
+ args->cfg.ident_res_ki);
+ PRINTF(" [--irc] res current [x1000] (default: %" PRId32 ")\n",
+ args->cfg.ident_res_curr);
+ PRINTF(" [--irs] res sec (default: %" PRId32 ")\n",
+ args->cfg.ident_res_sec);
+ PRINTF(" [--iiv] ind voltage [x1000] (default: %" PRId32 ")\n",
+ args->cfg.ident_ind_volt);
+ PRINTF(" [--iis] ind sec (default: %" PRId32 ")\n",
+ args->cfg.ident_ind_sec);
#endif
#ifdef CONFIG_EXAMPLES_FOC_VELOBS_PLL
- PRINTF(" [--vopllkp] velobs PLL Kp (default: %d)\n",
- CONFIG_EXAMPLES_FOC_VELOBS_PLL_KP);
- PRINTF(" [--vopllki] velobs PLL Ki (default: %d)\n",
- CONFIG_EXAMPLES_FOC_VELOBS_PLL_KI);
+ PRINTF(" [--vopllkp] velobs PLL Kp [x1] (default: %" PRId32 ")\n",
+ args->cfg.vel_pll_kp);
+ PRINTF(" [--vopllki] velobs PLL Ki [x1] (default: %" PRId32 ")\n",
+ args->cfg.vel_pll_ki);
#endif
#ifdef CONFIG_EXAMPLES_FOC_VELOBS_DIV
- PRINTF(" [--vodivs] velobs DIV samples (default: %d)\n",
- CONFIG_EXAMPLES_FOC_VELOBS_DIV_SAMPLES);
- PRINTF(" [--vodivf] velobs DIV filter (default: %d)\n",
- CONFIG_EXAMPLES_FOC_VELOBS_DIV_FILTER);
+ PRINTF(" [--vodivs] velobs DIV samples (default: %" PRId32 ")\n",
+ args->cfg.vel_div_samples);
+ PRINTF(" [--vodivf] velobs DIV filter (default: %" PRId32 ")\n",
+ args->cfg.vel_div_filter);
#endif
#ifdef CONFIG_EXAMPLES_FOC_VELCTRL_PI
- PRINTF(" [--vcpikp] velctrl PI Kp (default: %d)\n",
- CONFIG_EXAMPLES_FOC_VELCTRL_PI_KP);
- PRINTF(" [--vcpiki] velctrl PI Ki (default: %d)\n",
- CONFIG_EXAMPLES_FOC_VELCTRL_PI_KI);
+ PRINTF(" [--vcpikp] velctrl PI Kp [x1000000] (default: %" PRId32 ")\n",
+ args->cfg.vel_pi_kp);
+ PRINTF(" [--vcpiki] velctrl PI Ki [x1000000] (default: %" PRId32 ")\n",
+ args->cfg.vel_pi_ki);
#endif
#ifdef CONFIG_INDUSTRY_FOC_ANGLE_ONFO
- PRINTF(" [--anfos] angobs NFO Slow (default: %d)\n",
- CONFIG_EXAMPLES_FOC_ANGOBS_NFO_GAINSLOW);
- PRINTF(" [--anfog] angobs NFO Gain (default: %d)\n",
- CONFIG_EXAMPLES_FOC_ANGOBS_NFO_GAIN);
+ PRINTF(" [--anfos] angobs NFO Slow [x1] (default: %" PRId32 ")\n",
+ args->cfg.ang_nfo_slow);
+ PRINTF(" [--anfog] angobs NFO Gain [x1] (default: %" PRId32 ")\n",
+ args->cfg.ang_nfo_gain);
#endif
}
@@ -357,7 +358,7 @@ void parse_args(FAR struct args_s *args, int argc, FAR char **argv)
case 'h':
{
- foc_help();
+ foc_help(args);
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]);
}
- foc_help();
+ foc_help(args);
exit(1);
}
}