www.gusucode.com > mbcexpr 工具箱 matlab 源码程序 > mbcexpr/@cgconstant/buildSLSource.m

    function [C,vpos] = buildSLSource(E,sys,vpos,col,SOPTS,~)
%BUILDSLSOURCE build Simulink source block for strategy editor
% 
% [C,thisVal] = buildSLSource(E,sys,vpos,col,SOPTS,pNonNormalisers)

%  Copyright 2007-2012 The MathWorks, Inc. and Ford Global Technologies, Inc.

valName = getname(E);
vP= address(E);

val = eval(E);
if isempty(val) || isnan(val)
    val=1;
else
    val = val(1);
end
if SOPTS.WriteCalibration
    if isempty(val) || isnan(val)
        width = 15;
    else
        width = 75;
    end
else
    width = 15;
end



blk = add_block('built-in/constant',[sys,'/',valName],...
    'MakeNameUnique','on',...
    'orientation','right',...
    'position',[20 vpos 20+width vpos+15],...
    'ForeGroundColor',col,...
    'userdata',vP,'linkstatus','none',...
    'Tag','cgSLSource');

if SOPTS.Export
    % assign constant data to model workspace
    ws = get_param(bdroot(blk),'ModelWorkspace');
    ws.assignin( valName, val);
    set_param(blk,'Value',valName);
else
    set_param(blk,'Value',num2str(val));
end

set_param(blk,'copyfcn','set_param(gcb,''userdata'',[])');
h = add_block('built-in/Goto',[sys,'/_G',valName],...
    'MakeNameUnique', 'on', ...
    'orientation','right',...
    'position',[135 vpos 235 vpos+15],...
    'GotoTag',valName,...
    'Description',valName,...
    'ShowName','off',...
    'ForeGroundColor',col,...
    'TagVisibility','scoped');
add_block('built-in/GotoTagVisibility',[sys,'/',valName,'_Tag'],...
    'MakeNameUnique', 'on', ...
    'GotoTag',valName,...
    'ShowName','off',...
    'foregroundcolor',col,...
    'position',[240 vpos 250 vpos+15]);


vpos = vpos + 30;


C=get_param(blk,'PortHandles');
C=C.Outport;
c=get_param(C,'Position');

G=get_param(h,'PortHandles');
G=G.Inport;
g=get_param(G,'Position');
add_line(sys,[c;g]);