Estou tentando recuperar dados de um escopo DPO3034 enviando estes comandos:
DATA:SOURCE CH1
DATA:ENCDG ASC
DATA:START
CURVE?
eu recebo 98, 98, 98, 97, 97, 98, 98,...
Como posso converter esses valores formatados em ASCII em voltagens?
Eu também tentei recuperar dados com formato binário
DATA:SOURCE CH1
DATA:ENCDG RIBINARY
DATA:START
CURVE?
eu recebo #520000a b a b b a b c b c a b a a a b ^ b b a b a b....
Como posso convertê-los em pontos de dados adequados?
Referência de comando para o DPO3000
Respostas:
1 para resposta № 1Esses valores que você está lendo usando CURVE?
são valores digitais que possuem ganho e deslocamento para transformá-los em (geralmente) volts. Você também deve ler estes valores:
double YZero = double.Parse(io.Query("WFMO:YZE?"));
double YMult = double.Parse(io.Query("WFMO:YMU?"));
double YOff = double.Parse(io.Query("WFMO:YOF?"));
E então você deve calcular a tensão real de cada valor rawValue
na matriz que você obtém CURVE?
:
double voltValue = YZero - YOff * YMult + (YMult * double.Parse(rawValue));
O mesmo vale para dados binários, apenas analise-os em int16 (dependendo do tamanho do bit de cada número)
P.S. Acredito que seu manual não é o mais recente, recomendo fazer o download destes no site da Tektonix.