setDisableNonInlinedFuncBodyVerification

Задайте, запретить ли контроль невстроенных функций, определяемых в блоках MATLAB function

    Описание

    пример

    setDisableNonInlinedFuncBodyVerification(cfgObj,disable) задает, запретить ли контроль невстроенных функций, которые сгенерированы от пользовательских функций MATLAB. Невстроенные функции должны быть одноразового использования. Прежде чем вы добавите эту функциональность, установите ручной флаг анализа slci.mlutil.reviewmode в пользовательских функциях MATLAB, для которых вы хотите отключить контроль.

    Примеры

    свернуть все

    Этот пример использует slcidemo_noninline_func_verificationp модель, которая присутствует в вашей текущей рабочей папке. Модель содержит два блока MATLAB function, каждый из которых включает пользовательскую функцию. Эти функции сконфигурированы, чтобы быть одноразового использования и невстроенными.

    Когда вы проверяете совместимость модели при помощи программы контроля совместимости, вы видите что пользовательский функциональный foo1 не поддержал код MATLAB, который может привести к отказу инспекции кода. Чтобы избежать инспекционного отказа, вызванного несовместимостью, отключите осмотр несовместимой невстроенной, пользовательской функции, сгенерированной от foo1.

    Установите ручной флаг анализа в функции MATLAB foo1.

    type fcn1.m
    
    function out1  = fcn1(u1)
    %codegen
    out1 = foo1(u1);
    function y = foo1(u)
    % Set coder.inline directive to 'never'
    coder.inline('never');
    % Set manual review flag
    slci.mlutil.reviewmode('manual');
      y = ones(1,100);
        parfor (i = 1:5)
            y(i) = i+u;
        end
    

    Чтобы отключить контроль невстроенной функции, в командном окне MATLAB запускают этот код:

    config = slci.Configuration('slcidemo_noninline_func_verificationp');
    setDisableNonInlinedFuncBodyVerification(config, true);
    

    Сгенерируйте инспекция кода запуска и код.

    slbuild('slcidemo_noninline_func_verificationp');
    inspect(config, 'DisplayResults', 'None');
    
    ### Starting build procedure for: slcidemo_noninline_func_verificationp
    ### Successful completion of build procedure for: slcidemo_noninline_func_verificationp
    
    Build Summary
    
    Top model targets built:
    
    Model                                  Action                       Rebuild Reason                                    
    ======================================================================================================================
    slcidemo_noninline_func_verificationp  Code generated and compiled  Code generation information file does not exist.  
    
    1 of 1 models built (0 models already up to date)
    Build duration: 0h 0m 31.97s
    

    Просмотрите сгенерированный акт осмотра кода HTML.

    web(fullfile('slprj','slci','slcidemo_noninline_func_verificationp_report.html'));
    

    Полными Инспекционными Результатами является Warning. Simulink Code Inspector не смотрит невстроенную функцию, сгенерированную от функционального foo1 но успешно смотрит остальную часть типового кодекса. В отчете существует индикация, что ручной анализ требуется для невстроенной функции, сгенерированной от foo1.

    Входные параметры

    свернуть все

    Используйте slci.Configuration функция, чтобы создать Simulink® Объект настройки Code Inspector™.

    Значение опции в виде Boolean.

    • Если значением является true, Simulink Code Inspector не смотрит невстроенные функции, сгенерированные от пользовательских функций MATLAB, которые имеют ручной флаг анализа.

    • Если значением является false, Simulink Code Inspector смотрит невстроенные функции, сгенерированные от пользовательских функций MATLAB.

    Альтернативы

    В окне модели, на вкладке Apps, выбирают Code Inspector. Чтобы отключить контроль невстроенных функций, сгенерированных от пользовательских функций MATLAB, установите флажок Model Settings> Skip inspection of non-inlined functions defined in MATLAB Function block.

    Введенный в R2021b