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