User`s guide
Model Advisor Code Examples
25-57
function resultDescription = modelVersionChecksumCallbackUsingFT(system)
resultDescription = [];
system = getfullname(system);
model = bdroot(system);
% Format results in a list using Model Advisor Result Template API
ft = ModelAdvisor.FormatTemplate('ListTemplate');
% Add See Also section for references to standards
docLinkSfunction{1} = {['IEC 61508-3, Table A.8 (5)' ...
' ''Software configuration management'' ']};
setRefLink(ft,docLinkSfunction);
% Description of check in results
desc = 'Display model configuration and checksum information.';
% If running the Model Advisor on a subsystem, add note to description
if strcmp(system, model) == false
desc = strcat(desc, ['<br/>NOTE: The Model Advisor is reviewing a' ...
' sub-system, but these results are based on root-level settings.']);
end
setCheckText(ft, desc);
mdladvObj = Simulink.ModelAdvisor.getModelAdvisor(system);
% If err, use these values
mdlver = 'Error - could not retrieve Version';
mdlauthor = 'Error - could not retrieve Author';
mdldate = 'Error - could not retrieve Date';
mdlsum = 'Error - could not retrieve CheckSum';
% Get model configuration and checksum information
try
mdlver = get_param(model,'ModelVersion');
mdlauthor = get_param(model,'LastModifiedBy');
mdldate = get_param(model,'LastModifiedDate');
mdlsum = Simulink.BlockDiagram.getChecksum(model);
mdlsum = [num2str(mdlsum(1)) ' ' num2str(mdlsum(2)) ' ' ...
num2str(mdlsum(3)) ' ' num2str(mdlsum(4))];
mdladvObj.setCheckResultStatus(true); % init to true
catch err
mdladvObj.setCheckResultStatus(false);
setSubResultStatusText(ft,err.message);
resultDescription{end+1} = ft;
return
end
% Display the results
lbStr ='<br/>';
resultStr = ['Model Version: ' mdlver lbStr 'Author: ' mdlauthor lbStr ...
'Date: ' mdldate lbStr 'Model Checksum: ' mdlsum];
setSubResultStatusText(ft,resultStr);
% Informational checks do not have subresults, supress line
setSubBar(ft,false);
resultDescription{end+1} = ft;