2016-03-24 7 views
2

Я пытаюсь получить данные из DPO3034 сферы, отправив эти следующие команды:Waveform Transfer для Tektronix DPO3000 Scope

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.