2

我正在尝试通过发送以下命令从 DPO3034 范围检索数据:

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.... 如何将这些转换为正确的数据点?

DPO3000 的命令参考

4

1 回答 1

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 网站下载这些。

于 2016-06-03T07:03:56.677 回答