diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m index e45c3246d111c0d1b58d39195eb0518e4979ab0b..4925e0a7ef2131a9694d0d939238ea07c1432cd2 100644 --- a/matlab/TCV/gdat_tcv.m +++ b/matlab/TCV/gdat_tcv.m @@ -2941,174 +2941,29 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') %Get the data from mds and fill the data structure defined by %define_simulink_signals - % If the rtccode/developemnet folder is not in your path - % read from default or Carpanese's folder ( he might have not - % updated the folder to the last version) - aaa=which('take_all_signals'); + % If the rtccode/tools not in paths use sauter's link + % need: get_scd_mems.m + % + aaa=which('get_scd_mems'); if isempty(aaa) - if exist('/home/sauter/TCV/rtc_tools_io_defs_crpptbx') - addpath('/home/sauter/TCV/rtc_tools_io_defs_crpptbx','-end'); - elseif exist('~/rtccode/development/tools/io_defs') - addpath('~/rtccode/development/tools/io_defs','-end'); - else - addpath('/home/carpanes/rtccode/development/tools/io_defs','-end'); - end - end - sources_avail = {'defined', 'all', 'adcs'}; - %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(1:2); - elseif ~iscell(gdat_data.gdat_params.source) - if ischar(gdat_data.gdat_params.source) - gdat_data.gdat_params.source = lower(gdat_data.gdat_params.source); - if ~any(strmatch(gdat_data.gdat_params.source,lower(sources_avail))) - if (gdat_params.nverbose>=1) - warning(['source= ' gdat_data.gdat_params.source ' is not part of the available sources: ' sprintf('''%s'' ',sources_avail{:})]); - end - return - else - gdat_data.gdat_params.source = {lower(gdat_data.gdat_params.source)}; - end + if exist('/home/sauter/NoTivoli/rtccode_develop/tools') + addpath('/home/sauter/NoTivoli/rtccode_develop/tools','-end'); else - if (gdat_params.nverbose>=1); warning([' source parameter not compatible with: ' sprintf('''%s'' ',sources_avail{:})]); end + warning('Cannot add path for get_scd_mems') return end - else - tmp = {}; - for i=1:length(gdat_data.gdat_params.source) - gdat_data.gdat_params.source{i} = lower(gdat_data.gdat_params.source{i}); %put vargin in params - if ~any(strmatch(gdat_data.gdat_params.source{i},lower(sources_avail))) - if gdat_data.gdat_params.nverbose>=1 - warning(['source = ' gdat_data.gdat_params.source{i} ' not expected with data_request= ' data_request_eff]) - end - else - tmp{end+1} = gdat_data.gdat_params.source{i}; - end - end - gdat_data.gdat_params.source = tmp; end - if isfield(gdat_data.gdat_params,'max_adcs') - zshift = gdat_data.gdat_params.max_adcs; - else - gdat_data.gdat_params.max_adcs = []; - end - - % Get data for the source requested - for isource=1:numel(gdat_data.gdat_params.source) - switch gdat_data.gdat_params.source{isource} - case 'adcs' - [DS, DSraw] = take_all_adcs(shot,gdat_data.gdat_params.max_adcs); - gdat_data.adcs = DSraw; - gdat_data.adcs_grouped = DS; - mdsclose; - mdsdisconnect; - mdsopen(shot); - - case 'defined' - 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 - % there was a conflict with r 7471 - for ii=1:numel(SDS_DS) %iter over node - node = ii; - for jj=1:numel(SDS_DS{ii}) %iter over threads - thread = jj; - if ~isempty(SDS_DS{ii}{jj}) - fieldnameslist = fieldnames(SDS_DS{ii}{jj}); - if SDS_DS{ii}{jj}.conf.hasthreads - is_with_threads = 1; - else - is_with_threads = 0; - end - 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 = []; - 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); - else - expression = sprintf('\\top.crpprt%.2d.thread%.1d.mems.mem_%.3d',node,thread,ind); - end - tmp = tdi(expression); - 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}; - else - fprintf('Warning node: %d thread: %d signal: %s ind %d not available\n', ii,jj,fieldnameslist{kk}, zz ); - end - end - end - end - end - end - gdat_data.rtc_defined = SDS_DS; - mdsclose; - mdsdisconnect; - - case 'all' - 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,4,256; - 6,4,256; - 7,4,256; - 8,4,256]; - % Default signals initialization - AS = init_all_signals(global_node_thread_signals); - % Put signals in standard data strucure (SDS) - SDS_AS = define_simulink_signals(AS); - % Add the .data and .t structure - for ii=1:numel(SDS_AS) %iter over node - node = ii; - for jj=1:numel(SDS_AS{ii}) %iter over threads - thread = jj; - if ~isempty(SDS_AS{ii}{jj}) - fieldnameslist = fieldnames(SDS_AS{ii}{jj}); - if numel(SDS_AS{ii})>1 - is_with_threads = 1; - else - is_with_threads = 0; - end - for kk=2:numel(fieldnameslist) %iter over fieldnames (the first one is configuration) - indices = SDS_AS{ii}{jj}.(fieldnameslist{kk}).ind; - SDS_AS{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_AS{ii}{jj}.(fieldnameslist{kk}).data =[SDS_AS{ii}{jj}.(fieldnameslist{kk}).data; tmp.data']; - SDS_AS{ii}{jj}.(fieldnameslist{kk}).t = tmp.dim{1}; - else - if gdat_params.nverbose>=3 - fprintf('Warning node: %d thread: %d signal: %s ind %d not available\n', ii,jj,fieldnameslist{kk},zz); - end - end - end - end - end - end - end - gdat_data.rtc_all = SDS_AS; - mdsclose; - mdsdisconnect; - otherwise - %to be added in case + + aa = get_scd_mems(shot); + if isstruct(aa) + scd_names = fieldnames(aa); + for i=1:length(scd_names) + gdat_data.scd_mems.(scd_names{i}) = aa.(scd_names{i}); end end + mdsclose; + mdsdisconnect; + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case {'sxr', 'mpx'} diff --git a/matlab/TCV/tcv_requests_mapping.m b/matlab/TCV/tcv_requests_mapping.m index d010ce02c19c67d6c95d5b3de07b9638d2bab44c..53398c803c3df34efd41521ff1ac41bf7d077d31 100644 --- a/matlab/TCV/tcv_requests_mapping.m +++ b/matlab/TCV/tcv_requests_mapping.m @@ -395,9 +395,10 @@ switch lower(data_request) mapping.expression = '\results::r_axis'; mapping.expression = '\tcv_shot::top.results.equil_1.results:r_axis'; mapping.expression = 'tcv_eq(''''r_axis'''',''''LIUQE.M'''')'; - case 'rtc' + case {'rtc','scd'} + if strcmp('scd',lower(data_request)); error('********* should call with request****** ''rtc'''); end mapping.timedim = 1; - mapping.label = 'rtc\_signals'; + mapping.label = 'scd\_mems\_signals'; mapping.method = 'switchcase'; mapping.expression = ''; case 'surface_rho'