Skip to content
Snippets Groups Projects
Commit 6e494a60 authored by Cristian Galperti's avatar Cristian Galperti
Browse files

MDS classes parser fixed, f4e example ok ctrl-d

matlab MDS+ classes fixed for correctly
handling optional parameters,
f4e example included, simulink debug
passes after expcode setup.
parent 871eefcc
No related branches found
No related tags found
No related merge requests found
Showing with 107 additions and 74 deletions
...@@ -19,6 +19,7 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous ...@@ -19,6 +19,7 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous
modelname % name of the Simulink model using the parameter modelname % name of the Simulink model using the parameter
getcommand % full command for getting the value (callable by matlab eval) getcommand % full command for getting the value (callable by matlab eval)
classname % class name for logging classname % class name for logging
cparser % constructor parameters parser
assignvar % actualizedata specific assignvar % actualizedata specific
assignstring % actualizedata specific assignstring % actualizedata specific
...@@ -33,37 +34,37 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous ...@@ -33,37 +34,37 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous
methods methods
function obj=SCDclass_mdspar(srctdimodel,destparam,varargin) function obj=SCDclass_mdspar()
% MDS source and model destination constructor obj.cparser=inputParser;
addRequired(obj.cparser,'srctdimodel',@(x) ischar(x));
p=inputParser; addRequired(obj.cparser,'destparam',@(x) ischar(x));
addRequired(p,'srctdimodel',@(x) ischar(x)); addParameter(obj.cparser,'srcsrv','tcvdata',@(x) ischar(x));
addRequired(p,'destparam',@(x) ischar(x)); addParameter(obj.cparser,'srctree','tcv_shot',@(x) ischar(x));
addParameter(p,'srcsrv','tcvdata',@(x) ischar(x)); addParameter(obj.cparser,'srctdishot','',@(x) ischar(x));
addParameter(p,'srctree','tcv_shot',@(x) ischar(x)); addParameter(obj.cparser,'modelname','',@(x) ischar(x));
addParameter(p,'srctdishot','',@(x) ischar(x)); addParameter(obj.cparser,'datadictname','',@(x) ischar(x));
addParameter(p,'modelname','',@(x) ischar(x)); addParameter(obj.cparser,'modeltpstruct','',@(x) ischar(x)); % desttp ?
addParameter(p,'datadictname','',@(x) ischar(x));
addParameter(p,'modeltpstruct','',@(x) ischar(x)); % desttp ? obj.verbose=1;
end
parse(p,srctdimodel,destparam,varargin{:}{:});
function obj=parseconstructorcommon(obj, srctdimodel, destparam, varargin)
parse(obj.cparser,srctdimodel,destparam,varargin{:}{:});
obj.mdsserver=p.Results.srcsrv; obj.mdsserver=obj.cparser.Results.srcsrv;
obj.mdstree=p.Results.srctree; obj.mdstree=obj.cparser.Results.srctree;
obj.tdiexprmodel=p.Results.srctdimodel; obj.tdiexprmodel=obj.cparser.Results.srctdimodel;
if isempty(p.Results.srctdishot) if isempty(obj.cparser.Results.srctdishot)
obj.tdiexprshot=p.Results.srctdimodel; obj.tdiexprshot=obj.cparser.Results.srctdimodel;
else else
obj.tdiexprshot=p.Results.srctdishot; obj.tdiexprshot=obj.cparser.Results.srctdishot;
end end
obj.modeltargetpar=p.Results.destparam; obj.modeltargetpar=obj.cparser.Results.destparam;
obj.modelname=p.Results.modelname; obj.modelname=obj.cparser.Results.modelname;
obj.datadictionary=p.Results.datadictname; obj.datadictionary=obj.cparser.Results.datadictname;
obj.modeltpstruct=p.Results.modeltpstruct; obj.modeltpstruct=obj.cparser.Results.modeltpstruct;
obj.verbose=1;
end end
end end
% Not abstract methods common to all child classes % Not abstract methods common to all child classes
......
...@@ -7,7 +7,10 @@ classdef SCDclass_mdspar3Dmatrix < SCDclass_mdspar ...@@ -7,7 +7,10 @@ classdef SCDclass_mdspar3Dmatrix < SCDclass_mdspar
methods methods
function obj=SCDclass_mdspar3Dmatrix(srctdimodel, destparam, varargin) function obj=SCDclass_mdspar3Dmatrix(srctdimodel, destparam, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin); obj@SCDclass_mdspar();
% Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
obj.classname=mfilename; obj.classname=mfilename;
end end
......
...@@ -10,9 +10,12 @@ classdef SCDclass_mdsparfixdimvector < SCDclass_mdspar ...@@ -10,9 +10,12 @@ classdef SCDclass_mdsparfixdimvector < SCDclass_mdspar
methods methods
function obj=SCDclass_mdsparfixdimvector(srctdimodel, destparam, destdimension, varargin) function obj=SCDclass_mdsparfixdimvector(srctdimodel, destparam, destdimension, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin); obj@SCDclass_mdspar();
obj.classname=mfilename; % Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
obj.dimension=destdimension; obj.dimension=destdimension;
obj.classname=mfilename;
end end
function actualizedata(obj, shot) function actualizedata(obj, shot)
......
...@@ -10,14 +10,17 @@ classdef SCDclass_mdsparfixdimvectoridx < SCDclass_mdspar ...@@ -10,14 +10,17 @@ classdef SCDclass_mdsparfixdimvectoridx < SCDclass_mdspar
methods methods
function obj=SCDclass_mdsparfixdimvectoridx(srctdimodel, destparam, srcinterval, varargin) function obj=SCDclass_mdsparfixdimvectoridx(srctdimodel, destparam, srcinterval, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin); obj@SCDclass_mdspar();
obj.classname=mfilename; % Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
intervalchecker=@(x) isnumeric(x) && min(diff(x))==1 && max(diff(x))==1; intervalchecker=@(x) isnumeric(x) && min(diff(x))==1 && max(diff(x))==1;
assert(intervalchecker(srcinterval)); assert(intervalchecker(srcinterval));
obj.idxstart=srcinterval(1); obj.idxstart=srcinterval(1);
obj.idxstop=srcinterval(end); obj.idxstop=srcinterval(end);
obj.classname=mfilename;
end end
function actualizedata(obj, shot) function actualizedata(obj, shot)
......
...@@ -11,7 +11,10 @@ classdef SCDclass_mdsparfixdimvectorint < SCDclass_mdspar ...@@ -11,7 +11,10 @@ classdef SCDclass_mdsparfixdimvectorint < SCDclass_mdspar
methods methods
function obj=SCDclass_mdsparfixdimvectorint(srctdimodel, destparam, destdimension, varargin) function obj=SCDclass_mdsparfixdimvectorint(srctdimodel, destparam, destdimension, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin); obj@SCDclass_mdspar();
% Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
obj.classname=mfilename; obj.classname=mfilename;
obj.dimension=destdimension; obj.dimension=destdimension;
end end
......
...@@ -7,7 +7,10 @@ classdef SCDclass_mdsparmatrix < SCDclass_mdspar ...@@ -7,7 +7,10 @@ classdef SCDclass_mdsparmatrix < SCDclass_mdspar
methods methods
function obj=SCDclass_mdsparmatrix(srctdimodel, destparam, varargin) function obj=SCDclass_mdsparmatrix(srctdimodel, destparam, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin); obj@SCDclass_mdspar();
% Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
obj.classname=mfilename; obj.classname=mfilename;
end end
......
...@@ -7,8 +7,10 @@ classdef SCDclass_mdsparscalar < SCDclass_mdspar ...@@ -7,8 +7,10 @@ classdef SCDclass_mdsparscalar < SCDclass_mdspar
methods methods
function obj=SCDclass_mdsparscalar(srctdimodel, destparam, varargin) function obj=SCDclass_mdsparscalar(srctdimodel, destparam, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin); obj@SCDclass_mdspar();
obj.getcommand=sprintf('mdsvalue(''%s'')',obj.tdiexprmodel); % Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
obj.classname=mfilename; obj.classname=mfilename;
end end
......
...@@ -6,8 +6,10 @@ classdef SCDclass_mdsparscalarint < SCDclass_mdspar ...@@ -6,8 +6,10 @@ classdef SCDclass_mdsparscalarint < SCDclass_mdspar
methods methods
function obj=SCDclass_mdsparscalarint(srctdimodel, destparam, varargin) function obj=SCDclass_mdsparscalarint(srctdimodel, destparam, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin); obj@SCDclass_mdspar();
obj.getcommand=sprintf('mdsvalue(''%s'')',obj.tdiexprmodel); % Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
obj.classname=mfilename; obj.classname=mfilename;
end end
......
...@@ -9,7 +9,10 @@ classdef SCDclass_mdsparscalartaridx < SCDclass_mdspar ...@@ -9,7 +9,10 @@ classdef SCDclass_mdsparscalartaridx < SCDclass_mdspar
methods methods
function obj=SCDclass_mdsparscalartaridx(srctdimodel, destparam, targetidx, varargin) function obj=SCDclass_mdsparscalartaridx(srctdimodel, destparam, targetidx, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin); obj@SCDclass_mdspar();
% Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
obj.targetidx=targetidx; obj.targetidx=targetidx;
obj.classname=mfilename; obj.classname=mfilename;
end end
...@@ -18,8 +21,7 @@ classdef SCDclass_mdsparscalartaridx < SCDclass_mdspar ...@@ -18,8 +21,7 @@ classdef SCDclass_mdsparscalartaridx < SCDclass_mdspar
obj=obj.preactualizecommon(shot); obj=obj.preactualizecommon(shot);
obj.assignstring=sprintf('%s(%d)=%s;',obj.assignvar,obj.targetidx,obj.getcommand); obj.assignstring=sprintf('%s(%d)=%s;',obj.assignvar,obj.targetidx,obj.getcommand);
obj.caststring=sprintf('%s=single(%s);',obj.assignvar,obj.assignvar); obj.caststring=sprintf('%s=single(%s);',obj.assignvar,obj.assignvar);
obj.postactualizecommon(shot); obj.postactualizecommon(shot);
end end
function [obj, value] = getdata(obj, shot) function [obj, value] = getdata(obj, shot)
......
...@@ -7,7 +7,10 @@ classdef SCDclass_mdsparvector < SCDclass_mdspar ...@@ -7,7 +7,10 @@ classdef SCDclass_mdsparvector < SCDclass_mdspar
methods methods
function obj=SCDclass_mdsparvector(srctdimodel, destparam, varargin) function obj=SCDclass_mdsparvector(srctdimodel, destparam, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin); obj@SCDclass_mdspar();
% Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
obj.classname=mfilename; obj.classname=mfilename;
end end
......
...@@ -16,7 +16,8 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous ...@@ -16,7 +16,8 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
modelname % name of the Simulink model using the parameter modelname % name of the Simulink model using the parameter
getcommand % full command for getting the value (callable by matlab eval) getcommand % full command for getting the value (callable by matlab eval)
classname % class name for logging classname % class name for logging
cparser % constructor parameters parser
timebasestart % timebase start time variable timebasestart % timebase start time variable
timebasedt % timebase dt variable timebasedt % timebase dt variable
timebasestop % timebase stop time variable timebasestop % timebase stop time variable
...@@ -29,30 +30,29 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous ...@@ -29,30 +30,29 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
methods methods
%function obj=SCDclass_mdswavegen(srcsrv, srctree, srctdi, modelname, destwavegen, timebasestart, timebasedt, timebasestop) %function obj=SCDclass_mdswavegen(srcsrv, srctree, srctdi, modelname, destwavegen, timebasestart, timebasedt, timebasestop)
function obj=SCDclass_mdswg(srctdi, destwavegen, varargin) function obj=SCDclass_mdswg()
% MDS source and model destination constructor obj.cparser=inputParser;
p=inputParser; addRequired(obj.cparser,'srctdi',@(x) ischar(x));
addRequired(p,'srctdi',@(x) ischar(x)); addRequired(obj.cparser,'destwavegen',@(x) ischar(x));
addRequired(p,'destwavegen',@(x) ischar(x)); addParameter(obj.cparser,'srcsrv','tcvdata',@(x) ischar(x));
addParameter(p,'srcsrv','tcvdata',@(x) ischar(x)); addParameter(obj.cparser,'srctree','tcv_shot',@(x) ischar(x));
addParameter(p,'srctree','tcv_shot',@(x) ischar(x)); addParameter(obj.cparser,'modelname','',@(x) ischar(x));
addParameter(p,'modelname','',@(x) ischar(x));
% From subclasses constructors, unused here
addParameter(p,'destinterval',0);
addParameter(p,'destindex',0);
parse(p,srctdi,destwavegen,varargin{:}{:});
obj.mdsserver=p.Results.srcsrv;
obj.mdstree=p.Results.srctree;
obj.tdiexpr=p.Results.srctdi;
obj.wavegentarget=p.Results.destwavegen;
obj.modelname=p.Results.modelname;
obj.verbose=1; obj.verbose=1;
obj.wavegenbasestruct=''; obj.wavegenbasestruct='';
end end
function obj=parseconstructorcommon(obj, srctdi, destwavegen, varargin)
parse(obj.cparser,srctdi,destwavegen,varargin{:}{:});
obj.mdsserver=obj.cparser.Results.srcsrv;
obj.mdstree=obj.cparser.Results.srctree;
obj.tdiexpr=obj.cparser.Results.srctdi;
obj.wavegentarget=obj.cparser.Results.destwavegen;
obj.modelname=obj.cparser.Results.modelname;
end
end end
% Not abstract methods common to all child classes % Not abstract methods common to all child classes
......
...@@ -17,22 +17,27 @@ classdef SCDclass_mdswgsigarray1 < SCDclass_mdswg ...@@ -17,22 +17,27 @@ classdef SCDclass_mdswgsigarray1 < SCDclass_mdswg
%function obj=SCDclass_mdswgsigarray1(srcsrv, srctree, srctdi, modelname, destwavegen, tbstart, tbdt, tbstop, srcstartidx, srcstopidx, deststartidx, deststopidx) %function obj=SCDclass_mdswgsigarray1(srcsrv, srctree, srctdi, modelname, destwavegen, tbstart, tbdt, tbstop, srcstartidx, srcstopidx, deststartidx, deststopidx)
function obj=SCDclass_mdswgsigarray1(srctdi, destwavegen, srcinterval, varargin) function obj=SCDclass_mdswgsigarray1(srctdi, destwavegen, srcinterval, varargin)
obj@SCDclass_mdswg(srctdi, destwavegen, varargin); obj@SCDclass_mdswg();
intervalchecker=@(x) isnumeric(x) && min(diff(x))==1 && max(diff(x))==1; intervalchecker=@(x) isnumeric(x) && min(diff(x))==1 && max(diff(x))==1;
assert(intervalchecker(srcinterval)); assert(intervalchecker(srcinterval));
p=inputParser; obj.cparser.addParameter('destinterval',srcinterval,intervalchecker);
p.addParameter('destinterval',srcinterval,intervalchecker);
parse(p,varargin{:}); %p=inputParser;
dstinterval=p.Results.destinterval; %p.addParameter('destinterval',srcinterval,intervalchecker);
%parse(p,varargin{:});
obj=obj.parseconstructorcommon(srctdi, destwavegen, varargin);
dstinterval=obj.cparser.Results.destinterval;
obj.srcstartidx=srcinterval(1); obj.srcstartidx=srcinterval(1);
obj.srcstopidx=srcinterval(end); obj.srcstopidx=srcinterval(end);
obj.deststartidx=dstinterval(1); obj.deststartidx=dstinterval(1);
obj.deststopidx=dstinterval(end); obj.deststopidx=dstinterval(end);
obj.classname='SCDclass_mdswgsigarray1'; obj.classname=mfilename;
end end
end end
......
...@@ -12,16 +12,19 @@ classdef SCDclass_mdswgsigsingle < SCDclass_mdswg ...@@ -12,16 +12,19 @@ classdef SCDclass_mdswgsigsingle < SCDclass_mdswg
methods methods
function obj=SCDclass_mdswgsigsingle(srctdi, destwavegen, varargin) function obj=SCDclass_mdswgsigsingle(srctdi, destwavegen, varargin)
obj@SCDclass_mdswg(srctdi, destwavegen, varargin); %obj@SCDclass_mdswg(srctdi, destwavegen, varargin);
obj@SCDclass_mdswg();
destidxvalchecker=@(x) isscalar(x); destidxvalchecker=@(x) isscalar(x);
%addParameter(obj.cparser,'destindex',1,destidxvalchecker);
obj.cparser.addParameter('destindex',1,destidxvalchecker)
obj=obj.parseconstructorcommon(srctdi, destwavegen, varargin);
%parse(p,varargin{:});
obj.destidx=obj.cparser.Results.destindex;
p=inputParser; obj.classname=mfilename;
addParameter(p,'destindex',1,destidxvalchecker);
parse(p,varargin{:});
obj.destidx=p.Results.destindex;
obj.classname='SCDclass_mdswgsigsingle';
end end
end end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment