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