From 90e3c5d8a7893f6d88435bda3cd676b6e49a34ab Mon Sep 17 00:00:00 2001 From: galperti <cristian.galperti@epfl.ch> Date: Thu, 23 Jun 2022 16:59:19 +0200 Subject: [PATCH] first matlab -> MDS -> matlab round trip ok on scdds shot 2 --- algos/template/algoobj_template.m | 14 +++++++------- classes/SCDclass_algo.m | 18 ++++++++++++++++++ classes/SCDclass_mdspar.m | 13 +++++++++---- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/algos/template/algoobj_template.m b/algos/template/algoobj_template.m index 5094e17..21cb5f2 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 ed5c226..fc753f7 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 e6c43ab..722fdbe 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) -- GitLab