2016-03-24 40 views
2

我试图通过发送这些这些命令检索从DPO3034示波器数据:波形转换为泰克DPO3000范围

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

我得到98, 98, 98, 97, 97, 98, 98,... 我怎样才能将这些格式的ASCII值电压?

我也试着检索那些二进制格式

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

我得到#520000a b a b b a b c b c a b a a a b^b b a b a b.... 数据我怎么能转换这些适当的数据点?

Command reference for the DPO3000

回答

1

您使用CURVE?读取这些值是有增益和把他们变成(通常)伏偏移数字值。 你应该也看过这些值:

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

然后你应该从每个值rawValue计算阵列中的实际电压从CURVE?得到:

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

同样适用于二进制数据,只是解析它转换为int16(取决于每个数字的位长)

PS 我相信你的手册不是最新的,我建议从Tektonix网站下载这些手册。