From d4767abc40b9621cdd59e5898f062a535d04ec2c Mon Sep 17 00:00:00 2001
From: Francesco Carpanese <francesco.carpanese@epfl.ch>
Date: Tue, 4 Oct 2016 15:47:05 +0000
Subject: [PATCH] modified rtc data reading

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@6514 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/TCV/gdat_tcv.m | 118 ++++++-----------------------------------
 1 file changed, 17 insertions(+), 101 deletions(-)

diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m
index 0c95c25f..9224a7a4 100644
--- a/crpptbx/TCV/gdat_tcv.m
+++ b/crpptbx/TCV/gdat_tcv.m
@@ -1463,19 +1463,8 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
           end              
           
 
-          %Check if varargins match source_avail
-          if ~isfield(gdat_data.gdat_params,'path')  
-              if exist('~/rtccode/development/R2015a/algorithms/define_mem_list.m', 'file')
-                  path = '~/rtccode/development/models/R2015a/algorithms/SCD06advancedcontrol1/define_mem_list.m';
-              else
-                  path = '/home/carpanes/rtccode/development/models/R2015a/algorithms/SCD06advancedcontrol1/define_mem_list.m';
-              end              
-          else
-              path = gdat_data.gdat_params.path;
-          end
-
           
-          sources_avail = {'all','defined','combined'};
+          sources_avail = {'defined'};
           %Check if varargins match source_avail
           if ~isfield(gdat_data.gdat_params,'source') || isempty(gdat_data.gdat_params.source) % with no specifications all, defined, combined are taken
               gdat_data.gdat_params.source = sources_avail;
@@ -1518,33 +1507,25 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
           for ii=1:numel(gdat_data.gdat_params.source)
               switch gdat_data.gdat_params.source{ii}
                   case 'defined'
-                      mdsconnect('scd');
-                      mdsopen('rtc', shot);
-
-
-                      DS = read_from_memlist(path); %Read from memlist in SVN repository
-
-                      % Default signals initialization
-                      %DS = init_default_signals();
-                      
-                      
-                      % Put signals in standard data strucure (SDS)
-                      SDS_DS = define_simulink_signals(DS);
+                     
+                      DS = take_all_signals(shot); %Read from mds
+                      SDS_DS = define_simulink_signals(DS); %Put them in predifined structure
+                    
                       
                       % Add the .data and .t structure
-                      for ii=1:numel(SDS_DS) %iter over node
+                      for ii=1:numel(SDS_DS) %iter over node 
                           node = ii;
                           for jj=1:numel(SDS_DS{ii}) %iter over threads
                               thread = jj;
                               fieldnameslist = fieldnames(SDS_DS{ii}{jj});
                               
-                              if numel(SDS_DS{ii})>1
+                              if SDS_DS{ii}{1}.conf.hasthreads
                                   is_with_threads = 1;
                               else
                                   is_with_threads = 0;
                               end
                               
-                              for kk=1:numel(fieldnameslist) %iter over fieldnames
+                              for kk=2:numel(fieldnameslist) %iter over fieldnames (the  first one is configuration)
 
                                   indices = SDS_DS{ii}{jj}.(fieldnameslist{kk}).ind;
                                   SDS_DS{ii}{jj}.(fieldnameslist{kk}).data = [];
@@ -1553,6 +1534,10 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
                                   for zz=1:numel(indices) %iter over indices
                                       ind = indices(zz);
                                       
+                                      
+                                      mdsconnect('scd');
+                                      mdsopen('rtc', shot);
+                      
                                       % data expression
                                       if is_with_threads ==0
                                           expression =  sprintf('\\top.crpprt%.2d.mems.mem_%.2d',node,ind);
@@ -1561,8 +1546,9 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
                                       end
                                       
                                       tmp = tdi(expression);
-                                      
-                                      if isnumeric(tmp.data)
+
+                                   
+                                      if isnumeric(tmp.data) && ~isempty(tmp.data)
                                           SDS_DS{ii}{jj}.(fieldnameslist{kk}).data =[SDS_DS{ii}{jj}.(fieldnameslist{kk}).data;  tmp.data'];
                                           
                                           SDS_DS{ii}{jj}.(fieldnameslist{kk}).t =  tmp.dim{1};
@@ -1653,79 +1639,9 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
                       mdsclose;
                       mdsdisconnect;
                       
-                  case 'combined'
-                      mdsconnect('scd');
-                      mdsopen('rtc', shot);
-                      
-                      %[node, threads, #number of signals for each thread of the node]
-                      global_node_thread_signals = ...
-                          [1,1,32;
-                          2,1,32;
-                          3,1,32;
-                          6,4,256;
-                          7,2,32];
-                      
-                      % Defined signalds initialization
-                      DS = read_from_memlist(path); %Read from memlist in SVN repository
-
-                      % Combined signals initialization
-                      CS = init_combined_signals(DS,global_node_thread_signals);
-                      
-                      % Put signals in standard data strucure (SDS)
-                      SDS_CS = define_simulink_signals(CS);
-                      
-                      % Add the .data and .t structure
-                      for ii=1:numel(SDS_CS) %iter over node
-                          node = ii;
-                          for jj=1:numel(SDS_CS{ii}) %iter over threads
-                              thread = jj;
-                              fieldnameslist = fieldnames(SDS_CS{ii}{jj});
-                              
-                              if numel(SDS_CS{ii})>1
-                                  is_with_threads = 1;
-                              else
-                                  is_with_threads = 0;
-                              end
-                              
-                              for kk=1:numel(fieldnameslist) %iter over fieldnames
-                                  
-                                  indices = SDS_CS{ii}{jj}.(fieldnameslist{kk}).ind;
-                                  SDS_CS{ii}{jj}.(fieldnameslist{kk}).data = [];
-                                  
-                                  for zz=1:numel(indices) %iter over indices
-                                      ind = indices(zz);
-                                      
-                                      % data expression
-                                      if is_with_threads ==0
-                                          expression =  sprintf('\\top.crpprt%.2d.mems.mem_%.2d',node,ind);
-                                      else
-                                          expression =  sprintf('\\top.crpprt%.2d.thread%.1d.mems.mem_%.3d',node,thread,ind);
-                                      end
-                                      
-                                      tmp = tdi(expression);
-                                      
-                                      
-                                      if isnumeric(tmp.data)
-                                          SDS_CS{ii}{jj}.(fieldnameslist{kk}).data =[SDS_CS{ii}{jj}.(fieldnameslist{kk}).data;  tmp.data'];
-                                          
-                                          SDS_CS{ii}{jj}.(fieldnameslist{kk}).t =  tmp.dim{1};
-                                          
-                                      else
-                                          fprintf('Warning node: %d   thread: %d   signal: %s   ind %d not available\n', ii,jj,fieldnameslist{kk}, zz );
-                                      end
-                                      
-                                      
-                                  end
-                              end
-                              
-                          end
-                      end
-                      
-                      gdat_data.rtc_combined = SDS_CS;
-                      mdsclose;
-                      mdsdisconnect;
+                 
                   otherwise
-                      %to be added
+                      %to be added in case
               end
           end
           
-- 
GitLab