EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: asynPortDriver createParam complains duplicated parameter name
From: "Kim, Kukhee" <[email protected]>
To: Mark Rivers <[email protected]>, "[email protected]" <[email protected]>
Cc: "Kurty, Thomas Charles" <[email protected]>, "Weaver, Matt" <[email protected]>
Date: Tue, 27 Mar 2018 05:18:10 +0000

Hi Mark,

 

I am using asyn R4-31  for LCLS1 mission readiness LLRF project.

During creating parameters for asyn Port driver, I got error messages as the followings:

 

2018/03/26 21:48:32.076 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC5 to list 0, parameter already exists.

2018/03/26 21:48:32.076 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC6T4 to list 0, parameter already exists.

2018/03/26 21:48:32.076 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC6 to list 0, parameter already exists.

2018/03/26 21:48:32.076 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC7T4 to list 0, parameter already exists.

2018/03/26 21:48:32.076 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC7 to list 0, parameter already exists.

2018/03/26 21:48:32.076 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC8T4 to list 0, parameter already exists.

2018/03/26 21:48:32.076 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC8 to list 0, parameter already exists.

2018/03/26 21:48:32.076 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC9T4 to list 0, parameter already exists.

 

It complains about duplicated parameter names but, I do not have any duplicated name.

 

I am using the following code to create the parameters.

 

#define rawWaveformString       "raw_wfC%dT%d"

#define iWaveformString         "i_wfC%dT%d"

#define qWaveformString         "q_wfC%dT%d"

#define phaseWaveformString     "p_wfC%dT%d"

#define amplitudeWaveformString "a_wfC%dT%d"

 

#define avgPhasePerChnString      "avg_phaseC%dT%d"

#define avgAmplitudePerChnString  "avg_amplitudeC%dT%d"

#define avgPowerPerChnString      "avg_powerC%dT%d"

#define refSubPhasePerChnString   "refsub_phaseC%dT%d"

 

#define tsUnaware_avgPhasePerChnString      "avg_phaseC%d"

#define tsUnaware_avgAmplitudePerChnString  "avg_amplitudeC%d"

#define tsUnaware_avgPowerPerChnString      "avg_powerC%d"

#define tsUnaware_refSubPhasePerChnString   "refsub_phaseC%d"

--------------------

 

    for(int i=0; i < MAX_CHANNEL_NUMBER; i++) {

        for(int j =0; ts[j] > 0; j++) {

            if( i < MAX_RAW_CHANNEL_NUMBER ) sprintf(param_name, rawWaveformString,       i, ts[j]); createParam(param_name, asynParamInt16Array,   &p_signalWaveform[i][j].raw);

            sprintf(param_name, iWaveformString,         i, ts[j]); createParam(param_name, asynParamFloat64Array, &p_signalWaveform[i][j].i);

            sprintf(param_name, qWaveformString,         i, ts[j]); createParam(param_name, asynParamFloat64Array, &p_signalWaveform[i][j].q);

            sprintf(param_name, phaseWaveformString,     i, ts[j]); createParam(param_name, asynParamFloat64Array, &p_signalWaveform[i][j].phase);

            sprintf(param_name, amplitudeWaveformString, i, ts[j]); createParam(param_name, asynParamFloat64Array, &p_signalWaveform[i][j].amplitude);

 

            sprintf(param_name, avgPhasePerChnString,     i, ts[j]); createParam(param_name, asynParamFloat64, &p_signalWaveform[i][j].avg_phase);

            sprintf(param_name, avgAmplitudePerChnString, i, ts[j]); createParam(param_name, asynParamFloat64, &p_signalWaveform[i][j].avg_amplitude);

            sprintf(param_name, avgPowerPerChnString,     i, ts[j]); createParam(param_name, asynParamFloat64, &p_signalWaveform[i][j].avg_power);

            sprintf(param_name, refSubPhasePerChnString,  i, ts[j]); createParam(param_name, asynParamFloat64, &p_signalWaveform[i][j].refsub_phase);

        }

 

        sprintf(param_name, tsUnaware_avgPhasePerChnString,     i); createParam(param_name, asynParamFloat64, &p_signalWaveform_tsUnaware[i].avg_phase);

        sprintf(param_name, tsUnaware_avgAmplitudePerChnString, i); createParam(param_name, asynParamFloat64, &p_signalWaveform_tsUnaware[i].avg_amplitude);

        sprintf(param_name, tsUnaware_avgPowerPerChnString,     i); createParam(param_name, asynParamFloat64, &p_signalWaveform_tsUnaware[i].avg_power);

        sprintf(param_name, tsUnaware_refSubPhasePerChnString,  i); createParam(param_name, asynParamFloat64, &p_signalWaveform_tsUnaware[i].refsub_phase);

    }

----------------

 

If I commented out one of line in the code, the error messages point out other parameters.

For example, if I commented out the following line.

 

//        sprintf(param_name, tsUnaware_refSubPhasePerChnString,  i); createParam(param_name, asynParamFloat64, &p_signalWaveform_tsUnaware[i].refsub_phase);

 

The error message changed as the followings:

 

2018/03/26 22:02:59.907 asynPortDriver:createParam: port=KlystronPort error adding parameter avg_powerC5 to list 0, parameter already exists.

2018/03/26 22:02:59.907 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC6T4 to list 0, parameter already exists.

2018/03/26 22:02:59.907 asynPortDriver:createParam: port=KlystronPort error adding parameter avg_powerC6 to list 0, parameter already exists.

2018/03/26 22:02:59.907 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC7T4 to list 0, parameter already exists.

2018/03/26 22:02:59.907 asynPortDriver:createParam: port=KlystronPort error adding parameter avg_powerC7 to list 0, parameter already exists.

2018/03/26 22:02:59.907 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC8T4 to list 0, parameter already exists.

2018/03/26 22:02:59.907 asynPortDriver:createParam: port=KlystronPort error adding parameter avg_powerC8 to list 0, parameter already exists.

2018/03/26 22:02:59.907 asynPortDriver:createParam: port=KlystronPort error adding parameter refsub_phaseC9T4 to list 0, parameter already exists.

 

The parameter avg_powerC5, C6, C7, and C8 were not in the previous error messages.

Would you give me your advice for this issue?

 

Thank you.

Best regards,

Kukhee

--------------------------------------------

Kukhee Kim

SLAC National Accelerator Laboratory

2575 Sand Hill Rd, MS 64

Menlo Park, CA 94025

Email: [email protected]

Phone: (650)926-4912

Fax:   (650)926-3800

 


Replies:
Re: asynPortDriver createParam complains duplicated parameter name Ralph Lange

Navigate by Date:
Prev: Nanomotion XCD Series of motor controllers Ronald L. Sluiter
Next: Re: asynPortDriver createParam complains duplicated parameter name Ralph Lange
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Nanomotion XCD Series of motor controllers Ronald L. Sluiter
Next: Re: asynPortDriver createParam complains duplicated parameter name Ralph Lange
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
ANJ, 27 Mar 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·