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 <raide...@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);
             }
         }

Reply via email to