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: | Re: pvPut error message by Sequencer |
From: | Ralph Lange <[email protected]> |
To: | EPICS Tech Talk <[email protected]> |
Date: | Tue, 30 Jan 2018 16:28:57 +0100 |
On 01/30/2018 03:31 PM, Simon Reiter wrote:
> after updating from EPICS 3.14.12.6 to 3.16.1 I receive the following
> message.
> A PV is set by the sequencer (2.2.4). It is actually done, but every
> time, the sequencer set the PV, I get this message.
>
> sevr=minor ca_array_put(typeToCA(type), count, var->chid, value):
> Channel write request failed
>
> int pv_variable;
> assign pv_variable to "{IOC}:timeout:S";
> pv_variable = value;
> pvPut(pv_variable);
>
> The connected PV is binary output.
From looking at the CA sources it seems that this is ECA_PUTFAIL error
code, which is used as the default (catch-all) error code in
src/ca/client/oldChannelNotify.cpp e.g. line 525:
catch ( ... )
{
caStatus = ECA_PUTFAIL;
}
So we know that /something/ fails and it is not any of the expected
exceptions (cacChannel::badString, ... std::bad_alloc). You could insert
debug statements in the catch-all clause to print more information about
the exception.
Does a caput from the command line work also result in an error message?