Skip to content
Snippets Groups Projects
Commit 15196ccb 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 a1a8a420
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
modelname % name of the Simulink model using the parameter
getcommand % full command for getting the value (callable by matlab eval)
classname % class name for logging
cparser % constructor parameters parser
assignvar % actualizedata specific
assignstring % actualizedata specific
......@@ -33,37 +34,37 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous
methods
function obj=SCDclass_mdspar(srctdimodel,destparam,varargin)
% MDS source and model destination constructor
p=inputParser;
addRequired(p,'srctdimodel',@(x) ischar(x));
addRequired(p,'destparam',@(x) ischar(x));
addParameter(p,'srcsrv','tcvdata',@(x) ischar(x));
addParameter(p,'srctree','tcv_shot',@(x) ischar(x));
addParameter(p,'srctdishot','',@(x) ischar(x));
addParameter(p,'modelname','',@(x) ischar(x));
addParameter(p,'datadictname','',@(x) ischar(x));
addParameter(p,'modeltpstruct','',@(x) ischar(x)); % desttp ?
parse(p,srctdimodel,destparam,varargin{:}{:});
function obj=SCDclass_mdspar()
obj.cparser=inputParser;
addRequired(obj.cparser,'srctdimodel',@(x) ischar(x));
addRequired(obj.cparser,'destparam',@(x) ischar(x));
addParameter(obj.cparser,'srcsrv','tcvdata',@(x) ischar(x));
addParameter(obj.cparser,'srctree','tcv_shot',@(x) ischar(x));
addParameter(obj.cparser,'srctdishot','',@(x) ischar(x));
addParameter(obj.cparser,'modelname','',@(x) ischar(x));
addParameter(obj.cparser,'datadictname','',@(x) ischar(x));
addParameter(obj.cparser,'modeltpstruct','',@(x) ischar(x)); % desttp ?
obj.verbose=1;
end
function obj=parseconstructorcommon(obj, srctdimodel, destparam, varargin)
parse(obj.cparser,srctdimodel,destparam,varargin{:}{:});
obj.mdsserver=p.Results.srcsrv;
obj.mdstree=p.Results.srctree;
obj.tdiexprmodel=p.Results.srctdimodel;
if isempty(p.Results.srctdishot)
obj.tdiexprshot=p.Results.srctdimodel;
obj.mdsserver=obj.cparser.Results.srcsrv;
obj.mdstree=obj.cparser.Results.srctree;
obj.tdiexprmodel=obj.cparser.Results.srctdimodel;
if isempty(obj.cparser.Results.srctdishot)
obj.tdiexprshot=obj.cparser.Results.srctdimodel;
else
obj.tdiexprshot=p.Results.srctdishot;
obj.tdiexprshot=obj.cparser.Results.srctdishot;
end
obj.modeltargetpar=p.Results.destparam;
obj.modelname=p.Results.modelname;
obj.datadictionary=p.Results.datadictname;
obj.modeltpstruct=p.Results.modeltpstruct;
obj.verbose=1;
obj.modeltargetpar=obj.cparser.Results.destparam;
obj.modelname=obj.cparser.Results.modelname;
obj.datadictionary=obj.cparser.Results.datadictname;
obj.modeltpstruct=obj.cparser.Results.modeltpstruct;
end
end
% Not abstract methods common to all child classes
......
......@@ -7,7 +7,10 @@ classdef SCDclass_mdspar3Dmatrix < SCDclass_mdspar
methods
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;
end
......
......@@ -10,9 +10,12 @@ classdef SCDclass_mdsparfixdimvector < SCDclass_mdspar
methods
function obj=SCDclass_mdsparfixdimvector(srctdimodel, destparam, destdimension, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin);
obj.classname=mfilename;
obj@SCDclass_mdspar();
% Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
obj.dimension=destdimension;
obj.classname=mfilename;
end
function actualizedata(obj, shot)
......
......@@ -10,14 +10,17 @@ classdef SCDclass_mdsparfixdimvectoridx < SCDclass_mdspar
methods
function obj=SCDclass_mdsparfixdimvectoridx(srctdimodel, destparam, srcinterval, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin);
obj.classname=mfilename;
obj@SCDclass_mdspar();
% 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;
assert(intervalchecker(srcinterval));
obj.idxstart=srcinterval(1);
obj.idxstop=srcinterval(end);
obj.classname=mfilename;
end
function actualizedata(obj, shot)
......
......@@ -11,7 +11,10 @@ classdef SCDclass_mdsparfixdimvectorint < SCDclass_mdspar
methods
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.dimension=destdimension;
end
......
......@@ -7,7 +7,10 @@ classdef SCDclass_mdsparmatrix < SCDclass_mdspar
methods
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;
end
......
......@@ -7,8 +7,10 @@ classdef SCDclass_mdsparscalar < SCDclass_mdspar
methods
function obj=SCDclass_mdsparscalar(srctdimodel, destparam, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin);
obj.getcommand=sprintf('mdsvalue(''%s'')',obj.tdiexprmodel);
obj@SCDclass_mdspar();
% Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
obj.classname=mfilename;
end
......
......@@ -6,8 +6,10 @@ classdef SCDclass_mdsparscalarint < SCDclass_mdspar
methods
function obj=SCDclass_mdsparscalarint(srctdimodel, destparam, varargin)
obj@SCDclass_mdspar(srctdimodel, destparam, varargin);
obj.getcommand=sprintf('mdsvalue(''%s'')',obj.tdiexprmodel);
obj@SCDclass_mdspar();
% Constructor parser customization definitions here
obj=obj.parseconstructorcommon(srctdimodel, destparam, varargin);
% Constructor parser customization results here
obj.classname=mfilename;
end
......
......@@ -9,7 +9,10 @@ classdef SCDclass_mdsparscalartaridx < SCDclass_mdspar
methods
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.classname=mfilename;
end
......@@ -18,8 +21,7 @@ classdef SCDclass_mdsparscalartaridx < SCDclass_mdspar
obj=obj.preactualizecommon(shot);
obj.assignstring=sprintf('%s(%d)=%s;',obj.assignvar,obj.targetidx,obj.getcommand);
obj.caststring=sprintf('%s=single(%s);',obj.assignvar,obj.assignvar);
obj.postactualizecommon(shot);
obj.postactualizecommon(shot);
end
function [obj, value] = getdata(obj, shot)
......
......@@ -7,7 +7,10 @@ classdef SCDclass_mdsparvector < SCDclass_mdspar
methods
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;
end
......
......@@ -16,7 +16,8 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
modelname % name of the Simulink model using the parameter
getcommand % full command for getting the value (callable by matlab eval)
classname % class name for logging
cparser % constructor parameters parser
timebasestart % timebase start time variable
timebasedt % timebase dt variable
timebasestop % timebase stop time variable
......@@ -29,30 +30,29 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
methods
%function obj=SCDclass_mdswavegen(srcsrv, srctree, srctdi, modelname, destwavegen, timebasestart, timebasedt, timebasestop)
function obj=SCDclass_mdswg(srctdi, destwavegen, varargin)
% MDS source and model destination constructor
p=inputParser;
addRequired(p,'srctdi',@(x) ischar(x));
addRequired(p,'destwavegen',@(x) ischar(x));
addParameter(p,'srcsrv','tcvdata',@(x) ischar(x));
addParameter(p,'srctree','tcv_shot',@(x) ischar(x));
addParameter(p,'modelname','',@(x) ischar(x));
% From subclasses constructors, unused here
addParameter(p,'destinterval',0);
addParameter(p,'destindex',0);
function obj=SCDclass_mdswg()
obj.cparser=inputParser;
addRequired(obj.cparser,'srctdi',@(x) ischar(x));
addRequired(obj.cparser,'destwavegen',@(x) ischar(x));
addParameter(obj.cparser,'srcsrv','tcvdata',@(x) ischar(x));
addParameter(obj.cparser,'srctree','tcv_shot',@(x) ischar(x));
addParameter(obj.cparser,'modelname','',@(x) ischar(x));
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.wavegenbasestruct='';
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
% Not abstract methods common to all child classes
......
......@@ -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(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;
assert(intervalchecker(srcinterval));
p=inputParser;
p.addParameter('destinterval',srcinterval,intervalchecker);
parse(p,varargin{:});
dstinterval=p.Results.destinterval;
obj.cparser.addParameter('destinterval',srcinterval,intervalchecker);
%p=inputParser;
%p.addParameter('destinterval',srcinterval,intervalchecker);
%parse(p,varargin{:});
obj=obj.parseconstructorcommon(srctdi, destwavegen, varargin);
dstinterval=obj.cparser.Results.destinterval;
obj.srcstartidx=srcinterval(1);
obj.srcstopidx=srcinterval(end);
obj.deststartidx=dstinterval(1);
obj.deststopidx=dstinterval(end);
obj.classname='SCDclass_mdswgsigarray1';
obj.classname=mfilename;
end
end
......
......@@ -12,16 +12,19 @@ classdef SCDclass_mdswgsigsingle < SCDclass_mdswg
methods
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);
%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;
addParameter(p,'destindex',1,destidxvalchecker);
parse(p,varargin{:});
obj.destidx=p.Results.destindex;
obj.classname='SCDclass_mdswgsigsingle';
obj.classname=mfilename;
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