2

I'm trying to retrieve data from a DPO3034 scope by sending these these commands:

DATA:SOURCE CH1
DATA:ENCDG ASC
DATA:START
CURVE?

I get 98, 98, 98, 97, 97, 98, 98,... How can I convert these ASCII formatted values to voltages?

I also tried retrieving data that are binary formatted

DATA:SOURCE CH1
DATA:ENCDG RIBINARY
DATA:START
CURVE?

I get #520000a b a b b a b c b c a b a a a b ^ b b a b a b.... How can I convert these to proper data points?

Command reference for the DPO3000

Darwin von Corax
  • 5,201
  • 3
  • 17
  • 28
Lalaluye
  • 71
  • 1
  • 9

1 Answers1

1

These values you are reading using CURVE? are digital value that has gain and offset for turning them into (usually) volts. You should read also these values:

double YZero = double.Parse(io.Query("WFMO:YZE?"));
double YMult = double.Parse(io.Query("WFMO:YMU?"));
double YOff = double.Parse(io.Query("WFMO:YOF?"));

And then you should calculate the real voltage from each value rawValue in the array you get from CURVE?:

double voltValue = YZero - YOff * YMult + (YMult * double.Parse(rawValue));

same goes for binary data, just parse it into int16 (depending on the bit-length of each number)

P.S. I believe your manual is not the latest, I'm recommending downloading these from Tektonix website.

idanp
  • 973
  • 12
  • 18