2016-04-13 39 views
0
% Find a VISA-GPIB object. 
obj1 = instrfind('Type', 'visa-gpib', 'RsrcName', 'GPIB8::1::INSTR', 'Tag', ''); 

% Create the VISA-GPIB object if it does not exist 
% otherwise use the object that was found. 
if isempty(obj1) 
     obj1 = visa('TEK', 'GPIB8::1::INSTR'); 
else 
     fclose(obj1); 
     obj1 = obj1(1); 
end 

% Connect to instrument object, obj1. 
fopen(obj1); 

t = timer; 

t.TasksToExecute = 3; 

t.Period = 30; 

t.ExecutionMode = 'fixedRate'; 

t.TimerFcn = @(myTimerObj, thisEvent)disp(query(obj1,'CALCulate:SPECtrum:MARKer0:Y?')); 

start(t) 

Bu, bir dizide Query('CALCulate:SPECtrum:MARKer0:Y?') görüntülenen çıktı değerlerini kaydetmem gereken programım.Çıktıyı matlab kullanarak dizi biçiminde kaydetme?

cevap

0

query(obj1, 'CALCulate:SPECtrum:MARKer0:Y?') çıkışlarını tutmak için bir değişken oluşturmanız gerekir. Ardından, bu değişkeni zamanlayıcı geri çağırma işlevinden ekleyebilirsiniz.

%// Initialize a cell array (because I'm not sure of your datatype) 
results = {}; 

%// Define a function to be called when the timer fires 
function timerCallback(varargin) 
    newresult = query(obj1,'CALCulate:SPECtrum:MARKer0:Y?'); 

    %// Display the result (like you currently are) 
    disp(newresult) 

    %// Append the result to your results container 
    results{end+1} = newresult; 
end 

%// Then set your timer callback 
t = timer('TasksToExecute', 3, ... 
      'Period', 30, ... 
      'ExecutionMode', 'FixedRate', ... 
      'TimerFcn', @timerCallback); 

start(t) 

Diğer tüm kurulum kodlarınız aynı kalır.

+0

Bu sorguyu kullandığımda, çıkış değerlerim float biçiminde olurdu! – SSG

+0

@SaiSandyuthGandham Ne bekliyorsunuz? Bu kod herhangi bir şeye (herhangi bir hücre dizisi kullandığım için) hiçbir şey yayınlamıyor. – Suever

+0

efendim, "Kullanım, geçersiz matlab sözdizimi" diyerek, işlevde hata gösteriyor! – SSG