From bd57ee548481d6a8f334370962b41a3fdf0f473f Mon Sep 17 00:00:00 2001 From: Cristian Galperti <cristian.galperti@epfl.ch> Date: Thu, 21 Nov 2019 12:51:16 +0100 Subject: [PATCH] Add warning for MDS parameter errors in matlab --- code/classes/SCDclass_mdspar.m | 13 ++++++++++--- code/classes/SCDclass_mdspar3Dmatrix.m | 1 + code/classes/SCDclass_mdsparfixdimvector.m | 3 ++- code/classes/SCDclass_mdsparfixdimvectorint.m | 3 ++- code/classes/SCDclass_mdsparmatrix.m | 1 + code/classes/SCDclass_mdsparscalar.m | 1 + code/classes/SCDclass_mdsparscalarint.m | 1 + code/classes/SCDclass_mdsparscalartaridx.m | 1 + code/classes/SCDclass_mdsparvector.m | 1 + 9 files changed, 20 insertions(+), 5 deletions(-) diff --git a/code/classes/SCDclass_mdspar.m b/code/classes/SCDclass_mdspar.m index 656e6f1..a89b0f8 100644 --- a/code/classes/SCDclass_mdspar.m +++ b/code/classes/SCDclass_mdspar.m @@ -34,6 +34,7 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous caststring % actualizedata specific unlinked % unlinked parameter, no actualization will be performed (this is set via an empty MDS source path) + actualizable % true if after MDS data retrieval phase the parameter is actualizable end properties @@ -106,7 +107,8 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous obj.mdsconnect(shot); % Checking if data can be retrieved, updating get command [obj, obj.value]=obj.getdata(shot); - + if ~obj.actualizable, return; end + pointspos=strfind(obj.modelparam,'.'); baseparam=obj.modelparam(1:pointspos(1)-1); structparam=obj.modelparam(pointspos(1):end); @@ -133,9 +135,14 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous function [obj,value]=getdatacommon(obj, shot) obj=obj.actualizegetcmd('mdsvalue(''%s'')', shot); + value=eval(obj.getcommand); - str=sprintf('MDS+ error for parameter %s: %s', obj.modelparam, value); - assert(isnumeric(value), str); + if(~isnumeric(value)) + warning('SCDclass_mdspar:MDSerror','MDS+ error for parameter %s: %s. Actualization skipped.',obj.modelparam, value); + obj.actualizable=false; + else + obj.actualizable=true; + end end function obj=actualizegetcmd(obj, cmdstring, shot) diff --git a/code/classes/SCDclass_mdspar3Dmatrix.m b/code/classes/SCDclass_mdspar3Dmatrix.m index bc8b2ce..7287fb0 100644 --- a/code/classes/SCDclass_mdspar3Dmatrix.m +++ b/code/classes/SCDclass_mdspar3Dmatrix.m @@ -17,6 +17,7 @@ classdef SCDclass_mdspar3Dmatrix < SCDclass_mdspar function actualizedata(obj, shot) obj=obj.preactualizecommon(shot); + if ~obj.actualizable, return; end obj.caststring=sprintf('%s=single(%s);',obj.assignvar,obj.assignvar); obj.postactualizecommon(shot); end diff --git a/code/classes/SCDclass_mdsparfixdimvector.m b/code/classes/SCDclass_mdsparfixdimvector.m index aa3518a..2229910 100644 --- a/code/classes/SCDclass_mdsparfixdimvector.m +++ b/code/classes/SCDclass_mdsparfixdimvector.m @@ -21,7 +21,8 @@ classdef SCDclass_mdsparfixdimvector < SCDclass_mdspar function actualizedata(obj, shot) obj=obj.preactualizecommon(shot); - + if ~obj.actualizable, return; end + numelements=numel(obj.value); if(numelements<obj.dimension) localgetcommand=sprintf('[%s; zeros(%d,1)]',obj.getcommand, obj.dimension-numelements); diff --git a/code/classes/SCDclass_mdsparfixdimvectorint.m b/code/classes/SCDclass_mdsparfixdimvectorint.m index 197d4d4..810b25c 100644 --- a/code/classes/SCDclass_mdsparfixdimvectorint.m +++ b/code/classes/SCDclass_mdsparfixdimvectorint.m @@ -22,7 +22,8 @@ classdef SCDclass_mdsparfixdimvectorint < SCDclass_mdspar function actualizedata(obj, shot) obj=obj.preactualizecommon(shot); - + if ~obj.actualizable, return; end + numelements=numel(obj.value); if(numelements<obj.dimension) localgetcommand=sprintf('[%s; zeros(%d,1)]',obj.getcommand, obj.dimension-numelements); diff --git a/code/classes/SCDclass_mdsparmatrix.m b/code/classes/SCDclass_mdsparmatrix.m index 63b9c40..c62e0b3 100644 --- a/code/classes/SCDclass_mdsparmatrix.m +++ b/code/classes/SCDclass_mdsparmatrix.m @@ -17,6 +17,7 @@ classdef SCDclass_mdsparmatrix < SCDclass_mdspar function actualizedata(obj, shot) obj=obj.preactualizecommon(shot); + if ~obj.actualizable, return; end obj.caststring=sprintf('%s=single(%s);',obj.assignvar,obj.assignvar); obj.postactualizecommon(shot); end diff --git a/code/classes/SCDclass_mdsparscalar.m b/code/classes/SCDclass_mdsparscalar.m index bc59931..22f7658 100644 --- a/code/classes/SCDclass_mdsparscalar.m +++ b/code/classes/SCDclass_mdsparscalar.m @@ -17,6 +17,7 @@ classdef SCDclass_mdsparscalar < SCDclass_mdspar function actualizedata(obj, shot) obj=obj.preactualizecommon(shot); + if ~obj.actualizable, return; end obj.caststring=sprintf('%s=single(%s);',obj.assignvar,obj.assignvar); obj.postactualizecommon(shot); end diff --git a/code/classes/SCDclass_mdsparscalarint.m b/code/classes/SCDclass_mdsparscalarint.m index af6ac78..ce8d503 100644 --- a/code/classes/SCDclass_mdsparscalarint.m +++ b/code/classes/SCDclass_mdsparscalarint.m @@ -16,6 +16,7 @@ classdef SCDclass_mdsparscalarint < SCDclass_mdspar function actualizedata(obj, shot) obj=obj.preactualizecommon(shot); + if ~obj.actualizable, return; end obj.caststring=sprintf('%s=int32(%s);',obj.assignvar,obj.assignvar); obj.postactualizecommon(shot); end diff --git a/code/classes/SCDclass_mdsparscalartaridx.m b/code/classes/SCDclass_mdsparscalartaridx.m index e67b8d5..3835533 100644 --- a/code/classes/SCDclass_mdsparscalartaridx.m +++ b/code/classes/SCDclass_mdsparscalartaridx.m @@ -19,6 +19,7 @@ classdef SCDclass_mdsparscalartaridx < SCDclass_mdspar function actualizedata(obj, shot) obj=obj.preactualizecommon(shot); + if ~obj.actualizable, return; end obj.assignstring=sprintf('%s(%d)=%s;',obj.assignvar,obj.targetidx,obj.getcommand); obj.caststring=sprintf('%s=single(%s);',obj.assignvar,obj.assignvar); obj.postactualizecommon(shot); diff --git a/code/classes/SCDclass_mdsparvector.m b/code/classes/SCDclass_mdsparvector.m index 8eed939..7819247 100644 --- a/code/classes/SCDclass_mdsparvector.m +++ b/code/classes/SCDclass_mdsparvector.m @@ -17,6 +17,7 @@ classdef SCDclass_mdsparvector < SCDclass_mdspar function actualizedata(obj, shot) obj=obj.preactualizecommon(shot); + if ~obj.actualizable, return; end obj.caststring=sprintf('%s=single(%s);',obj.assignvar,obj.assignvar); obj.postactualizecommon(shot); end -- GitLab