On 11/1/07, Emmanuel Mayssat <[email protected]> wrote:
There is a standard record called "compress" that may be another
alternative. A compress record can work as a circular waveform or
circular buffer or FIFO stack. I use it with my ADC to have scrolling
waveform. If I increase the SCAN rate, I don't get as many samples as
with a bigger one, but I get a very smooth scrolling ;-)
Yes, but I'm pretty sure I should get the entire waveform, we need some calculation on that. And thank you all the same.
In other words, with the compress you don't need to fetch the entire
waveform at once. Not sure it will help in your case, but just wanted to
remind everybody about the compress record.
> waveforms I registered. So it will take 40*timescale to get all I want
> because I've told that my product---DPO7054---used only one probe for
> all four channels. Before I get the waveform, the buffer is locked and
> will never refresh in my case.
You probably have 2 pointers on your on-device memory (a circular buffer
most likely). One points to the last sample you read, the other to the
last updated samples. The newly acquired samples are those between those
2 pointers.
>
> I know I can set SCAN to a very big number but, when the time scale is
> small, I think it's not efficient then. I'm just wondering whether I
> could use another record to control it, or something alternative.
Below is probably what you want to put in your db file.
Beware that my menuScan.dbd is not the default one, so you probably will
have to change the SacanRateMO labels.
record(event, "$(deviceName):ScanOnceEV") {
field(DESC, "Scan once event")
field(VAL, "$(scanOnceEventNumber)")
field(SCAN, "Passive")
}
record(mbbo, "$(deviceName):ScanRateMO") {
field(DESC, "Selectable scan rate")
field(VAL, "$(scanRate)")
field(ZRST, "Passive")
field(ZRVL, "0")
field(ONST, "Event $(scanOnceEventNumber)")
field(ONVL, "1")
field(TWST, "I/O Intr")
field(TWVL, "2")
field(THST, ".1 second")
field(THVL, "3")
field(FRST, ".2 second")
field(FRVL, "4")
field(FVST, ".5 second")
field(FVVL, "5")
field(SXST, "1 second")
field(SXVL, "6")
field(SVST, "2 second")
field(SVVL, "7")
field(EIST, "5 second")
field(EIVL, "8")
field(NIST, "10 second")
field(NIVL, "9")
field(TEST, "20 second")
field(TEVL, "10")
field(ELST, "50 second")
field(ELVL, "11")
field(TVST, "1 minute")
field(TVVL, "12")
field(TTST, "2 minute")
field(TTVL, "13")
field(FTST, "5 minute")
field(FTVL, "14")
field(FFST, "10 minute")
field(FFVL, "15")
field(OUT, "$(deviceName):
ScanEnblFO.SCAN")
field(PINI, "YES")
field(FLNK, "$(deviceName):ScanRateSI")
}
record(stringin, "$(deviceName):ScanRateSI") {
field(SCAN, "Passive")
field(DESC, "Scan rate readback")
field(INP, "$(deviceName):ScanEnblFO.SCAN")
field(DTYP, "Soft Channel")
}
That's a little too complicated for me. I'll figure that out later.
>
>
> Thanks for any input.
>
> --
> Best Regards
> Chen
> ----------------------------------------------------------------
>
> Zhi-chu Chen | Shanghai Synchrotron Radiation Facility
> No. 2019 | Jialuo Rd. | Jiading | Shanghai | P.R. China
> tel: 086 21 5955 3405 |
zhichu.chen.googlepages.com
> | www.sinap.ac.cn
> ----------------------------------------------------------------