Skip to content
Snippets Groups Projects
Commit 51ce1956 authored by Cristian Galperti's avatar Cristian Galperti Committed by Federico Felici
Browse files

Unlinked params and digdens integration

digdens not yet ready
parent 1a70582c
No related branches found
No related tags found
No related merge requests found
...@@ -32,8 +32,8 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous ...@@ -32,8 +32,8 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous
assignstring % actualizedata specific assignstring % actualizedata specific
denanstring % actualizedata specific denanstring % actualizedata specific
caststring % actualizedata specific caststring % actualizedata specific
unlinked % unlinked parameter, no actualization will be performed (this is set via an empty MDS source path)
end end
properties properties
...@@ -75,7 +75,12 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous ...@@ -75,7 +75,12 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous
obj.modelname=obj.cparser.Results.modelname; obj.modelname=obj.cparser.Results.modelname;
obj.datadictionary=obj.cparser.Results.datadictname; obj.datadictionary=obj.cparser.Results.datadictname;
obj.modeltpstruct=obj.cparser.Results.modeltpstruct; obj.modeltpstruct=obj.cparser.Results.modeltpstruct;
obj.skippable=obj.cparser.Results.skippable; obj.skippable=obj.cparser.Results.skippable;
if isempty(obj.cparser.Results.srctdimodel)
obj.unlinked=1;
else
obj.unlinked=0;
end
end end
function name=getmodelname(obj) function name=getmodelname(obj)
...@@ -96,28 +101,34 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous ...@@ -96,28 +101,34 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous
end end
function obj=preactualizecommon(obj, shot) function obj=preactualizecommon(obj, shot)
% Opening the tree if(~obj.unlinked)
obj.mdsconnect(shot); % Opening the tree
% Checking if data can be retrieved, updating get command obj.mdsconnect(shot);
[obj, obj.value]=obj.getdata(shot); % Checking if data can be retrieved, updating get command
[obj, obj.value]=obj.getdata(shot);
pointspos=strfind(obj.modelparam,'.'); pointspos=strfind(obj.modelparam,'.');
baseparam=obj.modelparam(1:pointspos(1)-1); baseparam=obj.modelparam(1:pointspos(1)-1);
structparam=obj.modelparam(pointspos(1):end); structparam=obj.modelparam(pointspos(1):end);
obj.assignvar=sprintf('%s.Value%s',baseparam,structparam); obj.assignvar=sprintf('%s.Value%s',baseparam,structparam);
obj.assignstring=sprintf('%s=%s;',obj.assignvar,obj.getcommand); obj.assignstring=sprintf('%s=%s;',obj.assignvar,obj.getcommand);
obj.denanstring=sprintf('%s(isnan(%s))=0;',obj.assignvar,obj.assignvar); obj.denanstring=sprintf('%s(isnan(%s))=0;',obj.assignvar,obj.assignvar);
obj.caststring=sprintf('%s=%s;',obj.assignvar,obj.assignvar); obj.caststring=sprintf('%s=%s;',obj.assignvar,obj.assignvar);
end
end end
function obj=postactualizecommon(obj, shot) function obj=postactualizecommon(obj, shot)
if obj.verbose==1 if(~obj.unlinked)
fprintf('Actualizing parameter: ''%s'' <- ''%s'' (%s, shot %d)\n', obj.modelparam, obj.tdiexprused, obj.classname, shot); if obj.verbose==1
end fprintf('Actualizing parameter: ''%s'' <- ''%s'' (%s, shot %d)\n', obj.modelparam, obj.tdiexprused, obj.classname, shot);
end
evalin('base', obj.assignstring);
evalin('base', obj.denanstring); evalin('base', obj.assignstring);
evalin('base', obj.caststring); evalin('base', obj.denanstring);
evalin('base', obj.caststring);
else
fprintf('Actualizing parameter: ''%s'', parameter unlinked, SKIPPED!\n', obj.modelparam);
end
end end
function [obj,value]=getdatacommon(obj, shot) function [obj,value]=getdatacommon(obj, shot)
...@@ -150,13 +161,19 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous ...@@ -150,13 +161,19 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous
function printinfocommon(obj) function printinfocommon(obj)
fprintf('%s (class %s):\n', obj.modelparam, obj.classname); fprintf('%s (class %s):\n', obj.modelparam, obj.classname);
fprintf(' Simulink model: ''%s'', data dictionary: ''%s''\n', obj.modelname, obj.datadictionary); fprintf(' Simulink model: ''%s'', data dictionary: ''%s''\n', obj.modelname, obj.datadictionary);
fprintf(' MDS+ source server: ''%s'', Tree: ''%s''\n', obj.mdsserver, obj.mdstree); if(~obj.unlinked)
fprintf(' MDS+ TDI expressions, model: ''%s''', obj.tdiexprmodel); fprintf(' MDS+ source server: ''%s'', Tree: ''%s''\n', obj.mdsserver, obj.mdstree);
if(strcmp(obj.tdiexprmodel, obj.tdiexprshot)) fprintf(' MDS+ TDI expressions, model: ''%s''', obj.tdiexprmodel);
fprintf(', shot: same.\n'); if(strcmp(obj.tdiexprmodel, obj.tdiexprshot))
fprintf(', shot: same.\n');
else
fprintf(', shot: ''%s''\n', obj.tdiexprshot);
end
else else
fprintf(', shot: ''%s''\n', obj.tdiexprshot); fprintf(' UNLINKED!\n');
end end
end end
function out = gettargetparam(obj) function out = gettargetparam(obj)
......
...@@ -68,7 +68,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -68,7 +68,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
assignin('base','temp',T); assignin('base','temp',T);
assigncmd=sprintf('%s.%s=temp;',obj.workspacedatabasestructure, adcbus.Elements(ii).Name); assigncmd=sprintf('%s.%s=temp;',obj.workspacedatabasestructure, adcbus.Elements(ii).Name);
evalin('base',assigncmd); evalin('base',assigncmd);
if obj.verbose==1 if obj.verbose==1 && mod(ii,4)==0
fprintf('.'); fprintf('.');
end end
end end
...@@ -97,7 +97,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -97,7 +97,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
channelstr=sprintf('\\top.crpprt02.board1.adc_%02d.raw',physical2logical(ii)); channelstr=sprintf('\\top.crpprt02.board1.adc_%02d.raw',physical2logical(ii));
T.Data(:,ii)=int16(mdsvalue(channelstr)); T.Data(:,ii)=int16(mdsvalue(channelstr));
if obj.verbose==1 if obj.verbose==1 && mod(ii,4)==0
fprintf('.'); fprintf('.');
end end
end end
...@@ -105,7 +105,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task ...@@ -105,7 +105,7 @@ classdef SCDclass_taskmdsloadprevADC < SCDclass_task
%fprintf('Loading channel %d:%d ...\r',2,physical2logical(ii)); %fprintf('Loading channel %d:%d ...\r',2,physical2logical(ii));
channelstr=sprintf('\\top.crpprt02.board2.adc_%02d.raw',physical2logical(ii)); channelstr=sprintf('\\top.crpprt02.board2.adc_%02d.raw',physical2logical(ii));
T.Data(:,ii+96)=int16(mdsvalue(channelstr)); T.Data(:,ii+96)=int16(mdsvalue(channelstr));
if obj.verbose==1 if obj.verbose==1 && mod(ii,4)==0
fprintf('.'); fprintf('.');
end end
end 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