Rigol DSO DS1054Z FW 4.3.2.3 SP2 Bug Report (#2):Symptom:
when requesting data from dso during "RUN" state, we receive 30 pts, ie partial data of the screen.
Persistence/Severity:
reproducable everytime. severity: medium-hard for pc software development. non-severe for dso user.
1) What are you task are you trying to perform?
ANS: download data from the screen in RUN state
2) What are you seeing vs. what you expect to see?
ANS: partial data is copied, 30 pts only. i expect 1200 pts of full screen data points.
3) Can you send me a text version of your code, in the exact order that the commands are being sent?
the exact order is as follows:1) dso connected to pc by usb cable. communication is made with visa32.dll and bundled visa32.bas for VB6 app.
2) in running state (auto or normal).. using dso button, set mem depth to auto (from "acquire" button), set to 5ns/div timescale.
3) activate ch1 and ch2, top screen will show 500MSa/s 30.0 pts
4) from VB app, establish connection using
res = viOpenDefaultRM(defrm)
res = viFindRsrc(defrm, "USB?*", list, nmatches, matches)
res = viOpen(defrm, matches, 0, 0, vi)
hwnd = vi
as outlined by the VB6 code example provided by Rigol.
5) send command ":WAV:MODE MAXIMUM" to switch reading mode. (it is critical to invoke this command, otherwise bug will not reveals itself)
5) press button stop or single on the dso. dso will enter "stop" state.
6) from VB app, download data using command as in the programming guide (PG):
":WAV:SOUR CHAN1"
":WAV:DATA?"
or
":WAV:SOUR CHAN1"
":WAV:MODE NORM"
":WAV:DATA?"
7) you will receive 30 pts data. this is expected since PG stated data will be read from internal memory during "STOP" state (maximum 30 pts have been saved).
8> press button run on the dso. dso will enter "running" state.
9) from this on, whenever you send request data ":WAV:DATA?" to the dso, it will return 30 pts (partial data on screen) from "viVScanf hWnd, "%t", bufPtr" function call. changing timescale to any value on the dso, you will still get 30 pts partial screen data..
10) there are 2 ways to remedy this problem...
a) from dso button/knob panel, change to timescale so that it will record more than 1200 pts for eg 200ns/div (1.2Kpts) or 500ns/div (3Kpts), make sure we are still in ":WAV:MODE MAXIMUM", if not, send the command again. press "STOP" and download the data it will be 1.2Kpts or 3Kpts as expected. set the dso to "RUN" mode. the dso will recover and will return 1200 pts full screen whenever ":WAV:DATA?" is invoked.
b) no need to change timebase as (a) leave timescale at 5ns/div or where the problem is. make sure we are still in ":WAV:MODE MAXIMUM", if not, send the command again. set mem depth to other than AUTO (greater than 1200), press stop. download data to pc. press RUN button. download data to pc again, now its ok 1200pts full screen.
11) setting back to 5ns/div (30pts) in running mode. invoking ":WAV:DATA?" request, we will get 1200pts as expected, but not when you do step 5-9 again.
12) close the visa session by using code recommended by Rigol example..
viClose hwnd
viClose defrm
so...
Q: what you expect to see?
A: i expect to see what has been stated by the Bloody Goat Damned Programming Guide!