diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m index 0c95c25f7a33a99406bdcd29f3ef4a8aa5d1a2a4..9224a7a444cfb6021b37eb80483423eb542b1e80 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