|
- classdef Oscilloscope < Equipment
- %OSCILLOSCOPE Summary of this class goes here
- % Detailed explanation goes here
-
- properties
- nchannels
- horizontalPosition
- timescale
- ch1
- ch2
- ch3
- ch4
- trigger
- acquisition
- end
-
- methods
- function sc = Oscilloscope(ipAddress,port,nchannels)
- %OSCILLOSCOPE Construct an instance of this class
- % Detailed explanation goes here
- sc@Equipment(ipAddress,port,-1);
- sc.trigger = Trigger(sc);
- for i = 1:nchannels
- sc.(['ch',num2str(i)]) = Channel(sc,i);
- end
- end
-
- function s = get.acquisition(sc)
- s = sc.query('ACQ:STAT?');
- end
-
- function run(sc)
- sc.write_noerror('RUN');
- end
-
- function single(sc)
- sc.write_noerror('SING');
- end
-
- function stop(sc)
- sc.write_noerror('STOP');
- end
-
- function auto(sc)
- sc.write_noerror('AUT');
- end
-
- function enable_channels(sc)
- sc.write('CHAN:AON')
- end
-
- function disable_channels(sc)
- sc.write('CHAN:AOFF')
- end
-
- function setMeasurement(sc,measurement,type,source1,source2)
- prefix = ['MEAS',num2str(measurement),':'];
- fprintf(num2str(nargin))
- if nargin < 5
- source2 = 'CH2';
- if nargin < 4
- source1 = 'CH1';
- end
- end
- source = [source1,', ',source2];
- sc.write([prefix,'SOUR ',source]);
- sc.write([prefix,'MAIN ',type]);
- end
-
- function m = getMeasurement(sc,measurement)
- m = str2double(sc.query(['MEAS',num2str(measurement),':RES:ACT?']));
- end
-
-
-
- % function data = waveform(ch,cha)
- % ch.scope.clear;
- % ch.scope.write('CHAN1:TYPE HRES');
- % ch.scope.write('FORM REAL');
- % ch.scope.write('FORM:BORD MSBF');
- % ch.scope.write('CHAN1:DATA:POIN DEF');
- % ch.scope.write('SING');
- % header = str2num(ch.scope.query('CHAN1:DATA:HEAD?'));
- % ch.scope.write_unsafe('CHAN1:DATA?');
- % prefixstring = fscanf(ch.scope.tcp,'%c',2);
- % prefixlength = str2double(prefixstring(2));
- % datalength = fscanf(ch.scope.tcp,'%c',prefixlength);
- % data = fread(ch.scope.tcp,header(3),'float');
- % flushinput(ch.scope.tcp);
- % end
- end
- end
-
-
-
-
|