> -----Original Message-----
> From: Richard Cochran [mailto:[email protected]]
> Sent: Sunday, August 16, 2015 1:15 PM
> To: [email protected]
> Subject: [Linuxptp-devel] [PATCH RFC v3 23/69] config: convert
> 'pi_proportional_exponent' to the new scheme.
>
> Signed-off-by: Richard Cochran <[email protected]>
> ---
> config.c | 7 +------
> config.h | 1 -
> pi.c | 6 +++---
> pi.h | 7 -------
> ptp4l.c | 1 -
> 5 files changed, 4 insertions(+), 18 deletions(-)
>
> diff --git a/config.c b/config.c
> index 07cb016..43f96fe 100644
> --- a/config.c
> +++ b/config.c
> @@ -98,6 +98,7 @@ struct config_item config_tab[] = {
> GLOB_ITEM_INT("max_frequency", 900000000, 0, INT_MAX),
> GLOB_ITEM_DBL("pi_integral_const", 0.0, 0.0, DBL_MAX),
> GLOB_ITEM_DBL("pi_proportional_const", 0.0, 0.0, DBL_MAX),
> + GLOB_ITEM_DBL("pi_proportional_exponent", -0.3, -DBL_MAX,
> DBL_MAX),
Maybe I am missing something here, but where do we actually read these options
out? Since we no longer set them in global variables, I don't quite understand
how you're reading it now? I don't see any calls to read the option in this
patch...
This applies to a few other patches as well...
Regards,
Jake
> GLOB_ITEM_DBL("pi_proportional_scale", 0.0, 0.0, DBL_MAX),
> GLOB_ITEM_DBL("step_threshold", 0.0, 0.0, DBL_MAX),
> GLOB_ITEM_INT("tx_timestamp_timeout", 1, 1, INT_MAX),
> @@ -544,12 +545,6 @@ static enum parser_result
> parse_global_setting(const char *option,
> cfg->dds.freq_est_interval = val;
> pod->freq_est_interval = val;
>
> - } else if (!strcmp(option, "pi_proportional_exponent")) {
> - r = get_ranged_double(value, &df, -DBL_MAX, DBL_MAX);
> - if (r != PARSED_OK)
> - return r;
> - *cfg->pi_proportional_exponent = df;
> -
> } else if (!strcmp(option, "pi_proportional_norm_max")) {
> r = get_ranged_double(value, &df, DBL_MIN, 1.0);
> if (r != PARSED_OK)
> diff --git a/config.h b/config.h
> index 4b8a4a2..afd7142 100644
> --- a/config.h
> +++ b/config.h
> @@ -69,7 +69,6 @@ struct config {
> struct port_defaults pod;
> enum servo_type clock_servo;
>
> - double *pi_proportional_exponent;
> double *pi_proportional_norm_max;
> double *pi_integral_scale;
> double *pi_integral_exponent;
> diff --git a/pi.c b/pi.c
> index 8fe847a..bf57789 100644
> --- a/pi.c
> +++ b/pi.c
> @@ -36,7 +36,6 @@
> #define FREQ_EST_MARGIN 0.001
>
> /* These take their values from the configuration file. (see ptp4l.c) */
> -double configured_pi_kp_exponent = -0.3;
> double configured_pi_kp_norm_max = 0.7;
> double configured_pi_ki_scale = 0.0;
> double configured_pi_ki_exponent = 0.4;
> @@ -55,6 +54,7 @@ struct pi_servo {
> double configured_pi_kp;
> double configured_pi_ki;
> double configured_pi_kp_scale;
> + double configured_pi_kp_exponent;
> };
>
> static void pi_destroy(struct servo *servo)
> @@ -160,7 +160,7 @@ static void pi_sync_interval(struct servo *servo,
> double interval)
> {
> struct pi_servo *s = container_of(servo, struct pi_servo, servo);
>
> - s->kp = s->configured_pi_kp_scale * pow(interval,
> configured_pi_kp_exponent);
> + s->kp = s->configured_pi_kp_scale * pow(interval, s-
> >configured_pi_kp_exponent);
> if (s->kp > configured_pi_kp_norm_max / interval)
> s->kp = configured_pi_kp_norm_max / interval;
>
> @@ -205,7 +205,7 @@ struct servo *pi_servo_create(struct config *cfg, int
> fadj, int sw_ts)
> unstable. */
> s->configured_pi_kp_scale = s->configured_pi_kp;
> configured_pi_ki_scale = s->configured_pi_ki;
> - configured_pi_kp_exponent = 0.0;
> + s->configured_pi_kp_exponent = 0.0;
> configured_pi_ki_exponent = 0.0;
> configured_pi_kp_norm_max = MAX_KP_NORM_MAX;
> configured_pi_ki_norm_max = MAX_KI_NORM_MAX;
> diff --git a/pi.h b/pi.h
> index d3e541e..27a64b1 100644
> --- a/pi.h
> +++ b/pi.h
> @@ -22,13 +22,6 @@
> #include "servo.h"
>
> /**
> - * This variable determines the exponent in the formula used to set the
> - * proportional constant of the PI controller from the sync interval.
> - * kp = min(kp_scale * sync^kp_exponent, kp_norm_max / sync)
> - */
> -extern double configured_pi_kp_exponent;
> -
> -/**
> * This variable determines the normalized maximum in the formula used to
> set
> * the proportional constant of the PI controller from the sync interval.
> * kp = min(kp_scale * sync^kp_exponent, kp_norm_max / sync)
> diff --git a/ptp4l.c b/ptp4l.c
> index b96bee3..43dd977 100644
> --- a/ptp4l.c
> +++ b/ptp4l.c
> @@ -103,7 +103,6 @@ static struct config cfg_settings = {
> .transport = TRANS_UDP_IPV4,
> .clock_servo = CLOCK_SERVO_PI,
>
> - .pi_proportional_exponent = &configured_pi_kp_exponent,
> .pi_proportional_norm_max = &configured_pi_kp_norm_max,
> .pi_integral_scale = &configured_pi_ki_scale,
> .pi_integral_exponent = &configured_pi_ki_exponent,
> --
> 2.1.4
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Linuxptp-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/linuxptp-devel
------------------------------------------------------------------------------
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel