Skip to content
Snippets Groups Projects
Commit bd57ee54 authored by Cristian Galperti's avatar Cristian Galperti
Browse files

Add warning for MDS parameter errors in matlab

parent 58f89737
No related branches found
No related tags found
No related merge requests found
......@@ -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)
......
......@@ -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
......
......@@ -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);
......
......@@ -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);
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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);
......
......@@ -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
......
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