Unfortunately, I believe what you want to do (and which seems
reasonable) is not possible.
You can work-around (if performance is not critical), e.g., by writing
a calcout device support
module that
1. fetches a copy of the entire waveform
2. modifies the target element
3. writes the modified waveform back to the waveform record
- Till
On 6/10/21 12:00 PM, Florian Feldbauer via Tech-talk wrote:
> Hey all,
>
> I have a question regarding waveform records. So far I never really
> worked with waveform or any other array-type record.
>
> The Situation is:
> - Our DAQ collects the data coming from our Pixel sensor.
> - Every 10s an IOC reads the stored data and fills a waveform record
> with the hits (index of array = pixel, value = number of hits in the run)
> - I use an image widget in Phoebus to display the hit map of the pixel
> sensor
>
> Now, for testing the sensors after bonding, we can perform charge
> injections to individual pixels. We can also mask individual pixels if
> they are too noisy.
>
> As we need to always send the information for all pixels to the
> sensor, I thought about using a second waveform record holding the per
> pixel configuration.
> Using the cursor X/Y PVs from the image widget in phoebus I could
> select a pixel I want to inject a charge for testing (or I want to
> mask b/c it's noisy) and get calculate the index within the waveform
> record from these two PV's using a CALC record.
>
> So now my actual question: Let's say I want to mask pixel 42, is it
> possible to just write to val[41] from my config waveform record from
> a CALC(OUT) record without touching the other values of the array?
>
> Cheers,
> Florian
>