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

Subject: Re: subArray processing
From: Carl Lionberger <[email protected]>
To: Hinko Kocevar <[email protected]>
Cc: [email protected]
Date: Wed, 03 Jun 2009 09:04:59 -0700
Hi Hinko,

I agree that MALM should be 16 in this case. My question is what client you are using to show the values you are dissatisfied with. It seems to me that it is mishandling the metadata for the subarray record, or perhaps the metadata from the subarray is not appropriate. Perhaps it is reading NORD, which would be appropriate for a waveform, but not a subarray record.

Carl

Hinko Kocevar wrote:

Hello,

I'm trying to use subArray record type to display each array element at
index 0 .. n (n == 10; my case) in a separate PV.

record(bi, "$(DEVICE)ACQUIRE") {
	field(SCAN, "I/O Intr")
	field(DTYP, "asynUInt32Digital")
	field(FLNK, "$(DEVICE)MONITOR PP")
	field(INP, "@asynMask($(PORT), 200, 0x1, 1.0)")
}

record(waveform, "$(DEVICE)MONITOR") {
	field(DESC, "A B C D X Y Q SUM CX CY")
	field(DTYP, "asynInt32ArrayIn")
	field(FLNK, "$(DEVICE)A PP")
	field(INP, "@asyn($(PORT), 200)")
	field(NELM, "16")
	field(FTVL, "LONG")
}

record(subArray, "$(DEVICE)A") {
	field(INP, "$(DEVICE)MONITOR")
	field(INDX, "0")
	#field(MALM, "16")
	field(MALM, "1")
	field(NELM, "1")
	field(FTVL, "LONG")
	field(FLNK, "$(DEVICE)B PP")
}

record(subArray, "$(DEVICE)B") {
	field(INP, "$(DEVICE)MONITOR")
	field(INDX, "1")
	#field(MALM, "16")
	field(MALM, "1")
	field(NELM, "1")
	field(FTVL, "LONG")
	field(FLNK, "$(DEVICE)C PP")
}

Above are the records that I use. But the record A and B do not work as
expected - A and B both display MONITOR element at index 0. See below:

LIBERA01:SA:MONITOR            2009-06-03 10:31:25.800912 16 4464720
4614628 5834728 7518137 682839 -1902545 -816500 22432214 9866483 657703
1973108 3288513 4603918 5919323 7234728 8550133
LIBERA01:SA:A                  2009-06-03 10:31:25.800912 4464720
LIBERA01:SA:B                  2009-06-03 10:31:25.800912 4464720
LIBERA01:SA:MONITOR            2009-06-03 10:31:25.900912 16 4466474
4610680 5834452 7525126 688647 -1905988 -817173 22436734 9866498 657704
1973111 3288518 4603925 5919332 7234739 8550146
LIBERA01:SA:A                  2009-06-03 10:31:25.900912 4466474
LIBERA01:SA:B                  2009-06-03 10:31:25.900912 4466474
LIBERA01:SA:MONITOR            2009-06-03 10:31:26.000912 16 4470273
4605824 5816126 7515386 697287 -1896477 -818335 22407610 9866513 657705
1973114 3288523 4603932 5919341 7234750 8550159
LIBERA01:SA:A                  2009-06-03 10:31:26.000912 4470273
LIBERA01:SA:B                  2009-06-03 10:31:26.000912 4470273

Now, if remove all the lines with:
	field(MALM, "1")
	field(NELM, "1")
in records A and B, and add this instead:
	field(MALM, "16")

records A and B work as expected, but they are 16 fields long - I would
like to see them 1 element long as the really are (one 32 bit integer
value).

LIBERA01:SA:MONITOR            2009-06-03 10:30:17.280912 16 4472801
4610293 5819417 7532655 701680 -1900157 -824336 22435169 9856373 657029
1971086 3285143 4599200 5913257 7227314 8541371
LIBERA01:SA:A                  2009-06-03 10:30:17.280912 16 4472801 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
LIBERA01:SA:B                  2009-06-03 10:30:17.280912 16 4610293 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
LIBERA01:SA:MONITOR            2009-06-03 10:30:17.380912 16 4465950
4612662 5830285 7532898 692675 -1906287 -823451 22441797 9856388 657030
1971089 3285148 4599207 5913266 7227325 8541384
LIBERA01:SA:A                  2009-06-03 10:30:17.380912 16 4465950 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
LIBERA01:SA:B                  2009-06-03 10:30:17.380912 16 4612662 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
LIBERA01:SA:MONITOR            2009-06-03 10:30:17.480912 16 4467876
4612356 5839784 7524717 685678 -1906164 -814509 22444735 9856403 657031
1971092 3285153 4599214 5913275 7227336 8541397
LIBERA01:SA:A                  2009-06-03 10:30:17.480912 16 4467876 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
LIBERA01:SA:B                  2009-06-03 10:30:17.480912 16 4612356 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0

How can one implement single element PV in subArray record?

Thank you,
Hinko



--
Carl Lionberger
Control System Software Engineer
Berkeley National Laboratory (LBNL)
(510) 486-7503


Replies:
Re: subArray processing Hinko Kocevar
References:
subArray processing Hinko Kocevar

Navigate by Date:
Prev: Re: subArray processing J. Lewis Muir
Next: LabView shared memory interface Kevin Tsubota
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: subArray processing Hinko Kocevar
Next: Re: subArray processing Hinko Kocevar
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·