mirror of
https://github.com/njchorda/Agilent-Keysight-E8257D-MATLAB-Library.git
synced 2026-02-25 09:20:45 -05:00
Initial
This commit is contained in:
85
E8257D.m
Normal file
85
E8257D.m
Normal file
@@ -0,0 +1,85 @@
|
||||
classdef E8257D
|
||||
properties
|
||||
visaAddress;
|
||||
v;
|
||||
end
|
||||
|
||||
methods
|
||||
function obj = E8257D(ip_addr)
|
||||
obj.v = visadev(['TCPIP0::' ip_addr '::inst0::INSTR']);
|
||||
% Buffer size must precede open command
|
||||
% set(pxa,'InputBufferSize', 640000);
|
||||
% set(obj.v,'OutputBufferSize', 640000);
|
||||
writeline(obj.v, '*CLS');
|
||||
% Check to ensure the error queue is clear. Response is "+0, No Error"
|
||||
writeline(obj.v, 'SYST:ERR?');
|
||||
errIdentifyStart = readline(obj.v);
|
||||
if (isvalid(obj.v) == 0)
|
||||
obj.deInit();
|
||||
error('Cannot instantiate Agilent E8257D');
|
||||
end
|
||||
obj.setModulation(0);
|
||||
end
|
||||
|
||||
function rsp = sendResp(obj, cmd)
|
||||
obj.sendCommand(cmd);
|
||||
rsp = readline(obj.v);
|
||||
end
|
||||
|
||||
function sendCommand(obj, cmd)
|
||||
writeline(obj.v, cmd)
|
||||
end
|
||||
|
||||
function reset(obj)
|
||||
obj.sendCommand('SYST:PRES');
|
||||
end
|
||||
|
||||
function waitUntilDone(obj)
|
||||
thresh = 10000;
|
||||
n = 0;
|
||||
while ~str2double(obj.sendResp('*OPC?'))
|
||||
n = n + 1;
|
||||
if n > thresh
|
||||
warning('PSG timeout occured')
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function setRFPower(obj, powdBm)
|
||||
obj.sendCommand(strcat("SOUR:POW:LEV ", num2str(powdBm), "dbm"));
|
||||
end
|
||||
|
||||
function setCWFrequency(obj, freq)
|
||||
obj.sendCommand(strcat("SOUR:FREQ:CW ", num2str(freq)));
|
||||
end
|
||||
|
||||
function setOutput(obj, bool)
|
||||
if bool
|
||||
obj.sendCommand('OUTP:STATE 1');
|
||||
else
|
||||
obj.sendCommand('OUTP:STATE 0');
|
||||
end
|
||||
end
|
||||
|
||||
function setModulation(obj, bool)
|
||||
if bool
|
||||
obj.sendCommand('OUTP:MOD:STAT 1');
|
||||
else
|
||||
obj.sendCommand('OUTP:MOD:STAT 0');
|
||||
end
|
||||
end
|
||||
|
||||
function bool = deInit(obj)
|
||||
if(isvalid(obj.v) == 1)
|
||||
obj.reset();
|
||||
obj.setModulation(0);
|
||||
clear obj.v;
|
||||
bool = 1;
|
||||
else
|
||||
bool = 0;
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user