diff --git a/algos/template/algoobj_template.m b/algos/template/algoobj_template.m index 5094e17e6391add923e900e19b39e1a8f9c67160..21cb5f246912c4c120a377f96197671573eeb78e 100644 --- a/algos/template/algoobj_template.m +++ b/algos/template/algoobj_template.m @@ -13,15 +13,15 @@ obj=obj.addfpinitfcn('algo_template_loadfp','algo_template_fp'); obj=obj.addtunparamstruct('algo_template_tp', @()algo_template_loadtp(), false); %% Tunable parameters -parshot=-1; +parshot=2; mdsserver='scd.epfl.ch'; mdstree ='scdds'; -obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.kb1','enable' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); -obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.ks1','gain' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); -obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.ks2','refmodel.gain' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); -obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.kv1','rowvect' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); -obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.kv2','colvect' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); -obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.km1','matrix' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); +obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.enable' ,'enable' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); +obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.gain' ,'gain' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); +obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.refmodel.gain' ,'refmodel.gain' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); +obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.rowvect' ,'rowvect' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); +obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.colvect' ,'colvect' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); +obj=obj.addparameter(SCDclass_mdsparnumeric('template.params.matrix' ,'matrix' ,'srcsrv',mdsserver,'srctree',mdstree,'shot',parshot)); %% 2nd tunable parameters structure/parameters % obj=obj.addtunparamstruct('algo_template_tp2', @()algo_template_loadtp(), false); diff --git a/classes/SCDclass_algo.m b/classes/SCDclass_algo.m index ed5c226eba0effd260ff15dbd2650c5c6cced988..fc753f7a79774777955f7cf3dce945500a4b22b0 100644 --- a/classes/SCDclass_algo.m +++ b/classes/SCDclass_algo.m @@ -805,6 +805,24 @@ classdef SCDclass_algo function load(obj) load_system(obj.modelname); end + + function updatemds(obj, shot) + %if shot~=-1 + % error('SCDclass_expcode:updatemds','update permitted only on the model shot'); + %end + +% % first update algorithm tunparams default locally +% for ii=1:numel(obj.algonamelist) +% if strcmp(algo, obj.algonamelist{ii}) +% obj.algos{ii}.updatetemplatetp(); +% end +% end +% % then update mds + obj.mdscontainer.modeltogenerate=obj.modelname; + obj.mdscontainer.autopopulateMDSparams(shot); + obj.mdscontainer.autopopulateMDSwavegens(shot); + end + end methods(Static,Hidden=true) diff --git a/classes/SCDclass_mdspar.m b/classes/SCDclass_mdspar.m index e6c43aba67d9a852229e0003ea21159d461fa5a9..722fdbe35f72894bd83f5de72b5b817db1fbd900 100644 --- a/classes/SCDclass_mdspar.m +++ b/classes/SCDclass_mdspar.m @@ -357,22 +357,27 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous retval=mdsput(node, writeval, 'x'); if isnumeric(retval) if ~rem(retval,2) - warning('SCDclass_mdspar:MDSerror','Error writing node build_param.'); + warning('SCDclass_mdspar:MDSerror','Error writing node build_param. %s',mdsdata('GetMsg($1)',retval)); end else - warning('SCDclass_mdspar:MDSerror','Error writing node build_param.'); + warning('SCDclass_mdspar:MDSerror','Error writing node build_param. %s',retval); + end retval=mdsput(nodecom, obj.mdshelpstr); if isnumeric(retval) if ~rem(retval,2) - warning('SCDclass_mdspar:MDSerror','Error writing node comment.'); + warning('SCDclass_mdspar:MDSerror','Error writing node comment. %s',mdsdata('GetMsg($1)',retval)); end else - warning('SCDclass_mdspar:MDSerror','Error writing node comment.'); + warning('SCDclass_mdspar:MDSerror','Error writing node comment. %s',retval); end writeval=obj.casttomds(val); + + % logical type conversion + if islogical(writeval), writeval=uint8(writeval); end + mdsput(nodeval, writeval); checkval=mdsvalueraw(nodeval); if ~any(writeval==checkval)