classdef Trigger %TRIGGER Summary of this class goes here % Detailed explanation goes here properties (Hidden, Access = private) scope end properties (Dependent) mode type source slope level coupling end methods function tr = Trigger(scope) tr.scope = scope; end function s = get.mode(tr) s = tr.gettrig('mode?'); end function s = get.type(tr) s = tr.gettrig('type?'); end function s = get.source(tr) s = tr.gettrig('sour?'); end function s = get.level(tr) s = tr.gettrig(['LEV',tr.trigsource,'?']); end function s = get.coupling(tr) s = tr.gettrig('EDGE:COUP?'); end function tr = set.mode(tr,string) tr.settrig(['mode ',string]); end function tr = set.type(tr,string) tr.settrig(['type ',string]); end function tr = set.source(tr,string) tr.settrig(['sour ',string]); end function tr = set.level(tr,level) tr.settrig(['LEV',tr.trigsource,' ',num2str(level)]); end function tr = set.coupling(tr,string) tr.settrig(['EDGE:COUP ',string]); end end methods (Hidden, Access = private) function c = gettrig(tr,string) c = tr.scope.query(['TRIG:A:',string]); end function settrig(tr,string) tr.scope.write(['TRIG:A:',string]); end function c = MEAS(ch,string) c = ch.scope.query(['MEAS',num2str(ch.channelnumber),':RES:ACT?',string]); end function c = CHANsend(ch,string,in) c = ['CHAN',num2str(ch.channelnumber),':',string,' ',in]; end function src = trigsource(tr) src = tr.source; channel = regexp(src,'(?<=CH)[1-4]','match','once'); if ~isempty(channel) src = channel; elseif strcmp(src,'EXT') src = '5'; else error('Cannot get a trigger level for these settings. Try to switch the trigger source to a channel or external'); end end end end