Skip to content
Snippets Groups Projects
Commit 66ccf4d0 authored by Federico Felici's avatar Federico Felici
Browse files

Also vectorize wavegen addition and improve binding

parent 5247e53f
No related branches found
No related tags found
No related merge requests found
......@@ -474,19 +474,17 @@ classdef SCDclass_algo
%% MDS container methods forwarders
function obj = addparameter(obj, param)
% bind parameter(s) to algoobj's name, dictionary and last
% exported tp
function obj = addparameter(obj, params)
% assume this parameter is bound to last exported tp on the list
if ~isempty(obj.exportedtps), tpname = obj.exportedtps{end};
else, tpname = '';
end
for ii=1:numel(param)
param(ii) = param(ii).bind(obj.modelname, obj.datadictionary, tpname);
end
obj.mdscontainer=obj.mdscontainer.addparameter(param);
% bind parameter(s) to algoobj's name, dictionary and exportedtp
params = params.bind(obj.modelname, obj.datadictionary, tpname);
% add params to mdscontainer
obj.mdscontainer=obj.mdscontainer.addparameter(params);
end
function obj = printparameters(obj)
......@@ -498,8 +496,10 @@ classdef SCDclass_algo
end
function obj = addwavegen(obj, wavegen)
for ii=1:numel(wavegen)
wavegen(ii) = wavegen(ii).bind(obj.modelname,obj.datadictionary,obj.timing);
end
obj.mdscontainer=obj.mdscontainer.addwavegen(wavegen);
obj.mdscontainer=obj.mdscontainer.bindlastwavegen(obj.modelname, obj.datadictionary, obj.timing);
end
function obj = printwavegens(obj)
......
......@@ -379,7 +379,7 @@ classdef SCDclass_expcode
for ii=1:numel(obj.exportedtps), fprintf(' ''%s''\n', char(obj.exportedtps{ii})); end
end
fprintf('* Configured MDS tunparams objects: %d (use printparameters method for details)\n', obj.mdscontainer.getnumparams);
fprintf('* Configured MDS wavegens objects: %d (use printwavegens method for details)\n', obj.mdscontainer.numwavegens);
fprintf('* Configured MDS wavegens objects: %d (use printwavegens method for details)\n', obj.mdscontainer.getnumwavegens);
fprintf('* Configured general purpose tasks: %d (use printtasks method for details)\n', obj.taskcontainer.numtasks);
fprintf('* Configured init scripts: %d (use printinits method for details)\n', numel(obj.algoobjlist));
end
......
......@@ -59,14 +59,6 @@ classdef SCDclass_mdsobjcontainer
obj.mdswavegens=[obj.mdswavegens; wavegen];
end
function obj = bindlastwavegen(obj, modelname, datadictionary, timingsrc)
if obj.getnumwavegens>0
obj.mdswavegens(end)=obj.mdswavegens(end).setmodelname(modelname);
obj.mdswavegens(end)=obj.mdswavegens(end).setdatadictionary(datadictionary);
obj.mdswavegens(end)=obj.mdswavegens(end).settiminginfo(timingsrc);
end
end
function obj = setwavegenbasestruct(obj, basestruct)
if obj.getnumwavegens>0
for ii=1:obj.getnumwavegens
......
......@@ -226,12 +226,6 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous
end
function obj = bind(obj,modelname,datadictionary,exportedtp)
obj = obj.setmodelname(modelname);
obj = obj.setdatadictionary(datadictionary);
obj = obj.setparamstructure(exportedtp);
end
function [mdsserver] = getMDSserver(obj)
mdsserver = obj.mdsserver;
end
......@@ -278,6 +272,14 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous
out = {obj.modelparammarte}';
end
end
function obj = bind(obj,modelname,datadictionary,exportedtp)
for ii=1:numel(obj)
obj(ii) = obj.setmodelname(modelname);
obj(ii) = obj.setdatadictionary(datadictionary);
obj(ii) = obj.setparamstructure(exportedtp);
end
end
end
methods
......
......@@ -62,6 +62,17 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
end
% Sealed methods for heterogeneous arrays
methods(Sealed)
function obj = bind(obj,modelname,datadictionary,timingsrc)
for ii=1:numel(obj)
obj(ii) = obj(ii).setmodelname(modelname);
obj(ii) = obj(ii).setdatadictionary(datadictionary);
obj(ii) = obj(ii).settiminginfo(timingsrc);
end
end
end
% Not abstract methods common to all child classes
methods
function mdsconnect(obj, shot)
......@@ -77,7 +88,7 @@ classdef SCDclass_mdswg < matlab.mixin.Heterogeneous
fprintf(' MDS+ source server: ''%s'', Tree: ''%s''\n', obj.mdsserver, obj.mdstree);
fprintf(' MDS+ TDI expression: ''%s''\n',obj.tdiexpr);
end
function obj = settiminginfo(obj, timeinfo)
obj.timebasestart=timeinfo.t_start;
obj.timebasedt=timeinfo.dt;
......
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