1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 <2018> 2019 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 <2018> 2019 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 |