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  <20122013  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  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: waveform changes using subArray
From: Rod Nussbaumer <[email protected]>
To: Hinko Kocevar <[email protected]>
Cc: [email protected]
Date: Mon, 17 Sep 2012 09:28:00 -0700
I have used waveform records with device support to acquire data from hardware, and then post-process the waveform data using a subroutine record. The waveform .VAL is linked to an INPut link on the subroutine record, and the waveform FLNK processes the subroutine record. The subroutine record uses it's init function (specified in field 'INAM') to locate the waveform record using dbGetPdbAddrFromLink(). I also connect other waveform records that get written to as part of the subroutine processing code ('SNAM'). This seems to work well for things like stripping SCPI headers and converting odd numeric formats to EPICS-friendly data types.

Rod Nussbaumer
ISAC Controls, TRIUMF
Vancouver, Canada.


Hinko Kocevar wrote:
Hi Andrew,

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.

If I understand the use of aSub correctly, it does not need allow DTYP
being set. Since I can't bind any device to it, I was hoping that INPx
field(s) might be set to point to INST_IO based link type, something like :

@param(PARAM1=abc PARAM2=123)

but that does not seem to work as expected. The problem I see when
trying to get link value (this is from init() at IOC startup):

rec->inpa.value.instio.string ==>> '@param(PARAM1=abc'

ONLY half of string.. where is the other half?

rec->inpa.text ==>> NULL

NULL pointer ?

For other records such ai, bi, longin I can access INP field value using
'rec->inp.text'.

Thanks,
Hinko



Replies:
Re: waveform changes using subArray Hinko Kocevar
References:
Re: waveform changes using subArray Tim Mooney
Re: waveform changes using subArray Hinko Kocevar
Re: waveform changes using subArray Andrew Johnson
Re: waveform changes using subArray Hinko Kocevar

Navigate by Date:
Prev: Re: waveform changes using subArray Andrew Johnson
Next: Re: waveform changes using subArray Hinko Kocevar
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: waveform changes using subArray Andrew Johnson
Next: Re: waveform changes using subArray Hinko Kocevar
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·