From efacc5f5ab2e0e5bb49ef0aff575ed3435553792 Mon Sep 17 00:00:00 2001 From: galperti <cristian.galperti@epfl.ch> Date: Tue, 9 Jun 2020 13:40:59 +0200 Subject: [PATCH] tolerate params whose mdsopen fails --- code/classes/SCDclass_mdspar.m | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/code/classes/SCDclass_mdspar.m b/code/classes/SCDclass_mdspar.m index b47951a..abf225e 100644 --- a/code/classes/SCDclass_mdspar.m +++ b/code/classes/SCDclass_mdspar.m @@ -103,7 +103,7 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous % Not abstract methods common to all child classes methods - function mdsconnect(obj, shot) + function obj = mdsconnect(obj, shot) assert(~~exist('mdsconnect','file'),... 'SCD:NoMDS','mdsconnect not found, are the mds matlab tools installed?') mdsconnect(obj.mdsserver); @@ -117,8 +117,26 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous localshot = shot; end s=mdsopen(obj.mdstree, localshot); - str=sprintf('SCDclass_mdsparam (%s), failed opening MDS+ tree', obj.modelparam); - assert(s==localshot, str); + openok=true; + if isempty(s) + openok=false; + end + if openok + if ~isnumeric(s) || s~=localshot + openok=false; + end + end + if openok + if s~=localshot + openok=false; + end + end + if ~openok + warning('SCDclass_mdspar:MDSerror','MDS+ tree open error for parameter %s. Actualization skipped.',obj.modelparam); + obj.actualizable=false; + end + %str=sprintf('SCDclass_mdsparam (%s), failed opening MDS+ tree', obj.modelparam); + %assert(s==localshot, str); end function obj=setactualizecmds(obj, shot) @@ -134,11 +152,11 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous function obj=preactualizecommon(obj, shot) if(~obj.unlinked) % Opening the tree - obj.mdsconnect(shot); - % Checking if data can be retrieved, updating get command + obj=obj.mdsconnect(shot); + if ~obj.actualizable, return; end + % Checking if data can be retrieved, updating get command [obj, obj.value]=obj.getdata(shot); if ~obj.actualizable, return; end - obj=obj.setactualizecmds(shot); end end -- GitLab