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

multiple configurable base structure for waveform enabled

parent ae667be3
No related branches found
No related tags found
No related merge requests found
...@@ -24,6 +24,8 @@ classdef SCDclass_algo ...@@ -24,6 +24,8 @@ classdef SCDclass_algo
exportedtpspermiss % tunable parameters loading error permissivity rule exportedtpspermiss % tunable parameters loading error permissivity rule
buslist % list of buses and their sources buslist % list of buses and their sources
defaulttunparampermissivity % default tunparams loading permissivity defaulttunparampermissivity % default tunparams loading permissivity
wavegenbasestruct % base struct name of the next added wavegen
exportedwgstructs % list of exported waveforms structs
end end
properties properties
...@@ -54,6 +56,8 @@ classdef SCDclass_algo ...@@ -54,6 +56,8 @@ classdef SCDclass_algo
obj.timing.dt = 1e-3; obj.timing.dt = 1e-3;
obj.buslist = []; obj.buslist = [];
obj.defaulttunparampermissivity = true; obj.defaulttunparampermissivity = true;
obj.wavegenbasestruct = '';
obj.exportedwgstructs = {};
% Buses % Buses
obj.modelslx = [obj.modelname,'.slx']; obj.modelslx = [obj.modelname,'.slx'];
...@@ -236,6 +240,11 @@ classdef SCDclass_algo ...@@ -236,6 +240,11 @@ classdef SCDclass_algo
obj.refdatadictionaries{end+1} = refdd; obj.refdatadictionaries{end+1} = refdd;
end end
%% Wavegens setter and getters
function obj = addwavegenbasetruct(obj, basestruct)
obj.exportedwgstructs{end+1}=basestruct;
end
%% Data dictionary manipulation manipulations %% Data dictionary manipulation manipulations
function addbusestodd(obj) function addbusestodd(obj)
% Add buses to data dictionary from .m file descriptions % Add buses to data dictionary from .m file descriptions
...@@ -509,8 +518,9 @@ classdef SCDclass_algo ...@@ -509,8 +518,9 @@ classdef SCDclass_algo
for wgidx=1:numwavegens for wgidx=1:numwavegens
wg=obj.mdscontainer.mdswavegens(wgidx); wg=obj.mdscontainer.mdswavegens(wgidx);
eval(['simdata.' wg.gettarget '=timeseries(wg.castdata([0;0]),[0;1]);']); eval(['simdata.' wg.gettarget '=timeseries(wg.castdata([0;0]),[0;1]);']);
assignin('base',wg.getbasestruct,simdata);
end end
assignin('base',[obj.getname '_simdata'],simdata); %assignin('base',wg.getbasestruct,simdata);
else else
warning('SCDclass_algo:buildworkspacesimdata','No wavegens configured for this algo, nothing to do.'); warning('SCDclass_algo:buildworkspacesimdata','No wavegens configured for this algo, nothing to do.');
return; return;
...@@ -566,14 +576,22 @@ classdef SCDclass_algo ...@@ -566,14 +576,22 @@ classdef SCDclass_algo
end end
function obj = addwavegen(obj, wavegen) function obj = addwavegen(obj, wavegen)
% bind wavegen to modelname, dd and algo timing if ~isempty(obj.exportedwgstructs), wgbasename = obj.exportedwgstructs{end};
else, wgbasename = '';
end
% bind wavegen to modelname, dd, algo timing and base struicture
% name
for ii=1:numel(wavegen) for ii=1:numel(wavegen)
wavegen(ii) = wavegen(ii).bind(obj.modelname,obj.datadictionary,obj.timing); wavegen(ii) = wavegen(ii).bind(obj.modelname,obj.datadictionary,obj.timing,wgbasename);
end end
% add to algo's mds object container % add to algo's mds object container
obj.mdscontainer=obj.mdscontainer.addwavegen(wavegen); obj.mdscontainer=obj.mdscontainer.addwavegen(wavegen);
% set default wavegen base structure name % set default wavegen base structure name
obj.mdscontainer=obj.mdscontainer.setwavegenbasestruct([obj.getname '_simdata']); % if isempty(obj.wavegenbasestruct)
% obj.mdscontainer=obj.mdscontainer.setwavegenbasestruct([obj.getname '_simdata']);
% else
% obj.mdscontainer=obj.mdscontainer.setwavegenbasestruct([obj.wavegenbasestruct '_simdata']);
% end
end end
function obj = printwavegens(obj) function obj = printwavegens(obj)
......
...@@ -53,6 +53,7 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous ...@@ -53,6 +53,7 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
obj.verbose=1; obj.verbose=1;
obj.wavegenbasestruct=''; obj.wavegenbasestruct='';
obj.bound=false; obj.bound=false;
end end
function obj=parseconstructor(obj, srctdi, destwavegen, varargin) function obj=parseconstructor(obj, srctdi, destwavegen, varargin)
...@@ -79,11 +80,12 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous ...@@ -79,11 +80,12 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
% Sealed methods for heterogeneous arrays % Sealed methods for heterogeneous arrays
methods(Sealed) methods(Sealed)
function obj = bind(obj,modelname,datadictionary,timingsrc) function obj = bind(obj,modelname,datadictionary,timingsrc,basestruct)
for ii=1:numel(obj) for ii=1:numel(obj)
obj(ii) = obj(ii).setmodelname(modelname); obj(ii) = obj(ii).setmodelname(modelname);
obj(ii) = obj(ii).setdatadictionary(datadictionary); obj(ii) = obj(ii).setdatadictionary(datadictionary);
obj(ii) = obj(ii).settiminginfo(timingsrc); obj(ii) = obj(ii).settiminginfo(timingsrc);
obj(ii) = obj(ii).setbasestruct(basestruct);
obj(ii).bound = true; obj(ii).bound = true;
end end
end end
...@@ -140,6 +142,11 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous ...@@ -140,6 +142,11 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
function obj = setbasestruct(obj, basestruct) function obj = setbasestruct(obj, basestruct)
obj.wavegenbasestruct = basestruct; obj.wavegenbasestruct = basestruct;
end end
function out = getbasestruct(obj)
out = obj.wavegenbasestruct;
end
%function out = gettargetparam(obj) %function out = gettargetparam(obj)
% out = obj.modelparam; % out = obj.modelparam;
......
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