From 20351325ceb33833ab7fa8d835dc12e1291a67c1 Mon Sep 17 00:00:00 2001
From: Cristian Galperti <cristian.galperti@epfl.ch>
Date: Wed, 10 Apr 2019 14:47:11 +0200
Subject: [PATCH] printMARTe2config working for f4e example

printMARTe2config now doesn't require any mds connection
to produce its output and can take a model filter
optional parameter as the actualize
---
 code/classes/SCDclass_expcode.m         | 16 ++++++++++++++-
 code/classes/SCDclass_mdsobjcontainer.m | 26 +++++++++++++++++++++----
 code/classes/SCDclass_mdspar.m          | 13 +++++++++++--
 code/classes/SCDclass_mdswgsigsingle.m  |  1 +
 4 files changed, 49 insertions(+), 7 deletions(-)

diff --git a/code/classes/SCDclass_expcode.m b/code/classes/SCDclass_expcode.m
index 7475572..c9a6f86 100644
--- a/code/classes/SCDclass_expcode.m
+++ b/code/classes/SCDclass_expcode.m
@@ -506,7 +506,21 @@ classdef SCDclass_expcode
           end
         end
         
-        function printMARTe2config(obj, shot)
+        function printMARTe2config(obj, shot, varargin)   
+            p=inputParser;
+            % if a model name is given, operations will be performed
+            % only on it, otherwise they will be performed on all
+            % configured models
+            addParameter(p,'model','',@(x) ischar(x));
+            parse(p,varargin{:});
+            
+            if(isempty(p.Results.model))
+                obj.mdscontainer.modeltogenerate='all';
+            else
+                obj.mdscontainer.modeltogenerate=p.Results.model;
+            end
+            
+            
             fprintf("+MDSParameters = {\n");
             fprintf("   Class = MDSParameters\n");
             fprintf("   Shot = %d\n",shot);
diff --git a/code/classes/SCDclass_mdsobjcontainer.m b/code/classes/SCDclass_mdsobjcontainer.m
index 738fdd9..ae7e84e 100644
--- a/code/classes/SCDclass_mdsobjcontainer.m
+++ b/code/classes/SCDclass_mdsobjcontainer.m
@@ -16,6 +16,7 @@ classdef SCDclass_mdsobjcontainer
         simstructlist       % list of names of simstructs to be transferred to
                             % base workspace upon expcode setup
         modeltoactualize    % model name to actualize ('all' for all)
+        modeltogenerate     % model name to generate conf script ('all' for all)
     end
     
     methods
@@ -244,15 +245,32 @@ classdef SCDclass_mdsobjcontainer
         
         function printMARTe2parconfig(obj, shot)       
            for ii=1:obj.numparams
-               str=obj.mdsparams(ii).genMARTe2entry(shot);
-               fprintf("   %s\n",str);
+               if(strcmp(obj.modeltogenerate,'all'))
+                  str=obj.mdsparams(ii).genMARTe2entry(shot);
+                  fprintf("   %s\n",str);
+               else
+                  if(strcmp(obj.modeltogenerate,obj.mdsparams(ii).getmodelname))
+                      str=obj.mdsparams(ii).genMARTe2entry(shot);
+                      fprintf("   %s\n",str);
+                  end
+               end       
+                      
            end
         end
+     
+        
         
         function printMARTe2wgconfig(obj, shot)       
            for ii=1:obj.numwavegens
-               str=obj.mdswavegens(ii).genMARTe2entry(shot);
-               fprintf("   %s\n",str);
+               if(strcmp(obj.modeltogenerate,'all'))
+                  str=obj.mdswavegens(ii).genMARTe2entry(shot);
+                  fprintf("   %s\n",str);
+               else
+                   if(strcmp(obj.modeltogenerate,obj.mdswavegens(ii).getmodelname))
+                      str=obj.mdswavegens(ii).genMARTe2entry(shot);
+                      fprintf("   %s\n",str);
+                   end
+               end
            end
         end
         
diff --git a/code/classes/SCDclass_mdspar.m b/code/classes/SCDclass_mdspar.m
index 6b4a37a..1a02793 100644
--- a/code/classes/SCDclass_mdspar.m
+++ b/code/classes/SCDclass_mdspar.m
@@ -123,6 +123,14 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous
             obj.modelparam=[obj.modeltpstruct '.' obj.modeltargetpar];
         end
         
+        function obj=actualizetdiexpr(obj, shot)
+            if(shot==-1)
+                obj.tdiexprused=obj.tdiexprmodel;
+            else
+                obj.tdiexprused=obj.tdiexprshot;
+            end            
+        end
+        
         function printinfocommon(obj)
             fprintf('%s (class %s):\n', obj.modelparam, obj.classname);
             fprintf('  Simulink model: ''%s'', data dictionary: ''%s''\n', obj.modelname, obj.datadictionary);
@@ -161,8 +169,9 @@ classdef SCDclass_mdspar < matlab.mixin.Heterogeneous
         end
         
         function entrystring = genMARTe2entrycommon(obj, shot)
-            obj.mdsconnect(shot);
-            [obj,~]=obj.getdata(shot);
+            %obj.mdsconnect(shot);
+            %[obj,~]=obj.getdata(shot);
+            obj=obj.actualizetdiexpr(shot);
             %entrystring = ['+' obj.modeltargetpar ' = { Class=' obj.classname ' Path=' obj.tdiexprused ' }'];
             entrystring = ['+' obj.modeltargetpar ' = { Class=' obj.classname ' Path=' obj.tdiexprused];     
         end
diff --git a/code/classes/SCDclass_mdswgsigsingle.m b/code/classes/SCDclass_mdswgsigsingle.m
index fe7ec15..9ce4a0b 100644
--- a/code/classes/SCDclass_mdswgsigsingle.m
+++ b/code/classes/SCDclass_mdswgsigsingle.m
@@ -113,6 +113,7 @@ classdef SCDclass_mdswgsigsingle < SCDclass_mdswg
         
         function entrystring = genMARTe2entry(obj, shot)
             entrystring=obj.genMARTe2entrycommon(shot);
+            entrystring=[entrystring ' }'];
         end
        
     end
-- 
GitLab