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: waveform changes using subArray |
From: | Hinko Kocevar <[email protected]> |
To: | Andrew Johnson <[email protected]> |
Cc: | [email protected] |
Date: | Fri, 14 Sep 2012 17:30:01 +0200 |
Hi Andrew,Sounds even better to do this stuff in C than in DB, because we put a big emphasis on performance, too.
Thank you! Best Regards, Hinko On 09/14/2012 04:31 PM, Andrew Johnson wrote:
Hi Hinko, You should also be able to replace the waveform record with an aSub record and implement the sub-array replacement part in C code, which would need fewer records on the IOC and is probably slightly more efficient, but will take more development work to implement. - Andrew On 2012-09-14 Hinko Kocevar wrote:Ned, Tim thank you for suggestions. We'll try out solution ASAP. Best Regards, Hinko On 09/13/2012 06:33 PM, Tim Mooney wrote:Hinko, You could do this with the acalcout (array calcout) record in the calc module. (http://www.aps.anl.gov/bcda/synApps/calc/aCalcoutRecord.html) If .BB is the M-element replacement array, you can read the waveform into the .AA field, overwrite with M elements from .BB, beginning at index N, and write the result back to the waveform record, by configuring the record like this: .A = M .B = N .INAA = "waveform.VAL NPP" .CALC = "AA[0,B-1]+(BB[0,A-1]>>B)+(AA[A+B,-1]>>A+B)" .OUT = "waveform.VAL PP" Tim ----- Original Message ----- From: "Hinko Kocevar" <[email protected]> To: "Tech Talk" <[email protected]> Sent: Thursday, September 13, 2012 6:59:05 AM Subject: waveform changes using subArray Hi, We are trying to support a modification of long array (i.e. more than 500 integer values) seen as a waveform in EPICS IOC. Lets say that it is possible and valid for user to change only one or two values from this array. By using waveform user needs to get all 500 integers locate the one she wants to change, do the modification, store complete array back. Using subArray to make a "window" into waveform sounded like a good solution, but as I just read in the docs, subArray does not support value writing back to the waveform. Can this be done in some other manner? The goal here would be to allow user to get/see/change/set only the part of waveform, that shes interested in. Thank you! Hinko
-- Hinko Kocevar Software development engineer Instrumentation Technologies d.d. Velika pot 22, SI-5250 Solkan - Slovenia T:+386 5 3352600, F:+386 5 3352601 E-mail: [email protected] http://www.i-tech.si The information transmitted is intended solely for the addressee and may contain confidential and/or privileged information. Any review, retention, disclosure or other use by persons other than the intended recipient is prohibited. If you received this in error, please notify the sender and delete all copies.