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: | Delay problem in ca_array_put() command |
From: | Perrier Pierre <[email protected]> |
To: | "[email protected]" <[email protected]> |
Date: | Mon, 18 Jul 2011 07:45:55 +0000 |
Hi everybody, I 'm working on a IOC or Portable CA Server capable of managing other IOC in order to sequence them, for instance. Typically this IOC controls multiple motors, each represented by an IOC. I don’t know which type of implementation (Portable CA Server or IOC) is the most efficient. In this case, I started implementing an IOC. is it a good choice ?
More particularly, I’ve a problem with the part of this IOC acting as the client of the others IOC it controls. This client monitors a few PV of the motor’s IOC and all seems ok. It’s a multi-threaded
client. I’ve created my CA context with :
ca_context_create(ca_enable_preemptive_callback);
And to be notified of change events, I’ve created a thread to launch : ca_pend_event (0.0); The problem occurs when I want to change a PV value. All seems ok but the pv is only really modified 30 seconds to 1 min after the call to
ca_array_put (I have tested this in localhost) . To change a value, I proceed in the following manner for a double :
ca_array_put(DBR_DOUBLE, 1, channel, &val); status=ca_pend_io(put_timeout); Is this a normal behaviour? If not, how can this issue be solved? Thanks in advance, Best regards,
|