Mercurial > hg > ltpda
view m-toolbox/m/gui/gltpda/g_numberDataInput.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line source
function g_numberDataInput(hObject,varargin) % Called whenever the user changes the number of data inputs: global params if nargin>2 prevNumb = varargin{1}; newNumb = varargin{2}; else prevNumb = get(hObject,'UserData'); newNumb = str2double(get(hObject,'String')); if isnan(newNumb), set(hObject,'String',num2str(prevNumb)); return; end end fakeInp = find_system(gcb,'SearchDepth',1,'LookUnderMasks','all','BlockType','Ground'); if ~isempty(fakeInp) && newNumb>0 blockLines = get_param(fakeInp{1},'LineHandles'); if (blockLines.Outport(1)~=-1 && ~isempty(blockLines.Outport(1))), delete_line(blockLines.Outport(1)); end delete_block(fakeInp{1}) end dataInports = find_system(gcb,'SearchDepth',1,'LookUnderMasks','all','BlockType','Inport'); paramFromSimulink = 0; for ii=1:nparams(params) paramvals{ii} = params.params(ii).val; if isa(paramvals{ii},'char') && numel(paramvals{ii})>2 && strcmp(paramvals{ii},'-->'), paramFromSimulink = paramFromSimulink + 1; end end % To set the proper port number for parameters inport: for ii=1:paramFromSimulink set_param(dataInports{end-paramFromSimulink+ii},'Port',num2str(newNumb+11)); end % To avoid considering inports for parameters: dataInports(end-paramFromSimulink+1:end) = []; % To remove all previous data inports: for ii=1:numel(dataInports) try %#ok<ALIGN> blockLines = get_param(dataInports{ii},'LineHandles'); if (blockLines.Outport(1)~=-1 && ~isempty(blockLines.Outport(1))), delete_line(blockLines.Outport(1)); end delete_block(dataInports{ii}); catch, end end % To add new inports for all data expected: if newNumb==0, add_block('simulink/Sources/Ground', [gcb,'/data_input'],'MakeNameUnique','on','Name','data'); end for ii=1:newNumb newBlock = add_block('simulink/Sources/In1', [gcb,'/Inport1'],'MakeNameUnique','on','Name',['data',num2str(ii)]); set_param(newBlock,'Port',num2str(ii)); end g_UpdateInports('',1) end