www.gusucode.com > robotsimulink 工具箱 matlab源码程序 > robotsimulink/@slCustomizer/customization_ros.m

    function customization_ros(obj)
% CUSTOMIZATION_ROS Customizes Simulink for Robotics System Toolbox

% Copyright 2014 The MathWorks, Inc.

cm = obj.CustomizationManager;

% Note: The ROS entry in Simulink Tools menu is implemented via dig.xml
% See robotInternalROSMenuCustomization.m for details

% TargetRegistry and TargetBoardRegistry are part of Embedded Coder
% functionality. So if user opens a Simulink model with just Simulink and
% RST, ensure that we don't call these functions.

if exist('codertarget.TargetRegistry', 'class') == 8
    cm.registerTargetRegistry(@loc_registerThisTarget);
    cm.registerTargetBoardRegistry(@loc_registerBoardsForThisTarget);
end

end

% -------------------------------------------------------------------------
function ret = loc_registerThisTarget()
ret.Name = 'Robot Operating System (ROS)';
[targetFilePath, ~, ~] = fileparts(mfilename('fullpath'));
ret.TargetFolder = fullfile(targetFilePath, '..', 'robotslros');

% TargetType=2 indicates that code may be generated with just Simulink Coder
ret.TargetType = 2;
end

% -------------------------------------------------------------------------
function boardInfo = loc_registerBoardsForThisTarget()
target = 'Robot Operating System (ROS)';
[targetFolder, ~, ~] = fileparts(mfilename('fullpath'));
targetFolder = fullfile(targetFolder, '..', 'robotslros');
boardFolder = codertarget.target.getTargetHardwareRegistryFolder(targetFolder);
boardInfo = codertarget.target.getTargetHardwareInfo(targetFolder, boardFolder, target);
end

%% ------------------------------------------------------------------------
function isConfigSetCompatible = i_isConfigSetCompatible(configSet) %#ok<DEFNU>
isConfigSetCompatible = false;
if configSet.isValidParam('CoderTargetData')
    data = configSet.getParam('CoderTargetData');
    isConfigSetCompatible = isequal(data.TargetHardware, 'Robot Operating System (ROS)');
end
end