Simulink.ModelReference.modifyProtectedModel

Измените существующую защищенную модель

Описание

пример

Simulink.ModelReference.modifyProtectedModel(model) изменяет опции для существующей защищенной модели, созданной из заданного model. Если Name,Value аргументы в виде пар не заданы, измененная защищенная модель обновляется значениями по умолчанию и поддерживает только симуляцию.

пример

Simulink.ModelReference.modifyProtectedModel(model,Name,Value) использует дополнительные опции, заданные одним или несколькими Name,Value аргументы в виде пар. Эти опции являются теми же опциями, которые предусмотрены Simulink.ModelReference.protect функция. Однако эти опции имеют дополнительные опции для изменения паролей шифрования для просмотра, симуляции и генерации кода только для чтения. Когда вы добавляете функциональность к защищенной модели или меняете пароли шифрования, незащищенная модель должна быть доступна. Программное обеспечение ищет модель на MATLAB® путь. Если модель не найдена, программное обеспечение сообщает об ошибке.

пример

[harnessHandle] = Simulink.ModelReference.modifyProtectedModel(model,'Harness',true) создает модель тестовой обвязки для защищенной модели. Он возвращает указатель на запряженную модель в harnessHandle.

[~ ,neededVars] = Simulink.ModelReference.modifyProtectedModel(model) возвращает массив ячеек, который включает имена базового рабочего пространства переменных, используемых защищенной моделью.

Примеры

свернуть все

Создайте изменяемую защищенную модель с поддержкой генерации кода, затем сбросьте ее к значениям по умолчанию.

Добавьте пароль при изменении защищенной модели. Если вы пропустите этот шаг, будет предложено задать пароль при создании изменяемой защищенной модели.

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

Создайте изменяемую защищенную модель с поддержкой генерации кода и веб-представления.

Simulink.ModelReference.protect('sldemo_mdlref_counter','Mode',...
'CodeGeneration','Modifiable',true,'Report',true);

Укажите пароль для изменения защищенной модели.

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

Измените модель, чтобы использовать значения по умолчанию.

Simulink.ModelReference.modifyProtectedModel(...
'sldemo_mdlref_counter');

Получившаяся защищенная модель обновляется значениями по умолчанию и поддерживает только симуляцию.

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

Добавьте пароль при изменении защищенной модели. Если вы пропустите этот шаг, будет предложено задать пароль при создании изменяемой защищенной модели.

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

Создайте изменяемую защищенную модель с поддержкой генерации кода и веб-представления.

Simulink.ModelReference.protect('sldemo_mdlref_counter','Mode',...
'CodeGeneration','Webview',true,'Modifiable',true,'Report',true);

Укажите пароль для изменения защищенной модели.

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

Удалите поддержку веб-представления из созданной вами защищенной модели.

Simulink.ModelReference.modifyProtectedModel(...
'sldemo_mdlref_counter', 'Mode', 'CodeGeneration','Report',true);

Измените пароль шифрования для изменяемой защищенной модели.

Добавьте пароль при изменении защищенной модели. Если вы пропустите этот шаг, будет предложено задать пароль при создании изменяемой защищенной модели.

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

Добавьте пароль, который пользователь защищенной модели должен предоставить для генерации кода.

Simulink.ModelReference.ProtectedModel.setPasswordForSimulation(...
'sldemo_mdlref_counter','cgpassword');

Создайте изменяемую защищенную модель с отчетом и поддержкой генерации кода с шифрованием.

Simulink.ModelReference.protect('sldemo_mdlref_counter','Mode',...
'CodeGeneration','Encrypt',true,'Modifiable',true,'Report',true);

Укажите пароль для изменения защищенной модели.

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

Измените пароль шифрования для симуляции.

Simulink.ModelReference.modifyProtectedModel(
'sldemo_mdlref_counter','Mode','CodeGeneration','Encrypt',true,...
'Report',true,'ChangeSimulationPassword',...
{'cgpassword','new_password'});

Добавьте модель тестовой обвязки для существующей защищенной модели.

Добавьте пароль при изменении защищенной модели. Если вы пропустите этот шаг, будет предложено задать пароль при создании изменяемой защищенной модели.

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

Создайте изменяемую защищенную модель с отчетом и поддержкой генерации кода с шифрованием.

Simulink.ModelReference.protect('sldemo_mdlref_counter','Mode',...
'CodeGeneration','Modifiable',true,'Report',true);

Укажите пароль для изменения защищенной модели.

Simulink.ModelReference.ProtectedModel.setPasswordForModify(...
'sldemo_mdlref_counter','password');

Добавьте модель тестовой обвязки для защищенной модели.

[harnessHandle] = Simulink.ModelReference.modifyProtectedModel(...
'sldemo_mdlref_counter','Mode','CodeGeneration','Report',true,...
'Harness',true);

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

свернуть все

Имя модели, заданное как строковый или символьный вектор. Он содержит имя модели или путь блока Model, который ссылается на защищенную модель.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Mode','CodeGeneration','OutputFormat','Binaries','ObfuscateCode',true задает, что запутанный код должен быть сгенерирован для защищенной модели. Также указывается, что пользователям защищенной модели будут видны только двоичные файлы и заголовки в сгенерированном коде.
Общая информация

свернуть все

Папка для защищенной модели, заданная как строковый или символьный вектор.

Пример: 'Path','C:\Work'

Опция для генерации отчета, заданная как логическое значение.

Чтобы просмотреть отчет, щелкните правой кнопкой значок защищенной модели и выберите Display Report. Или вызовите Simulink.ProtectedModel.open функция со report опция.

Отчет создается в формате HTML. Она включает информацию о окружении, функциональности, лицензионных требованиях и интерфейсе для защищенной модели.

Пример: 'Report',true

Опция для генерации HDL-кода, заданная как логическое значение.

Для эта опция требуется HDL Coder™ лицензия. Когда вы включите эту опцию, убедитесь, что вы задаете Mode. Можно задать эту опцию следующим образом true в сочетании с Mode, установленной на CodeGeneration чтобы включить как Код С, так и Генерация HDL-кода поддержку защищенной модели.

Если вы хотите включить только симуляцию и поддержку генерации HDL-кода, но не генерацию кода C, задайте Mode HDLCodeGeneration. Вы не должны устанавливать опцию hdl равной true.

Пример: 'hdl',true

Опция для создания модели тестовой обвязки, заданная как логическое значение.

Пример: 'Harness',true

Опция добавления функции постобработки для защищенных файлов модели, заданная как указатель на функцию. Функция принимает Simulink.ModelReference.ProtectedModel.HookInfo объект как переменный вход. Этот объект предоставляет информацию о файлах исходного кода и других файлах, сгенерированных во время создания защищенной модели. Объект также предоставляет информацию об экспортированных символах, которые вы не должны изменять. Перед упаковкой защищенной модели вызывается функция постобработки.

Для защищенной модели с интерфейсом верхней модели, Simulink.ModelReference.ProtectedModel.HookInfo объект не может предоставить информацию об экспортированных символах.

Пример: 'CustomPostProcessingHook',@(protectedMdlInf)myHook(protectedMdlInf)

Функциональность

свернуть все

Моделируйте режим защиты. Задайте одно из следующих значений:

  • 'Normal': Если верхняя модель работает 'Normal' mode, защищенная модель запускается как дочерний элемент верхней модели.

  • 'Accelerator': Верхняя часть может работать в 'Normal', 'Accelerator', или 'Rapid Accelerator' режим.

  • 'CodeGeneration': Верхняя часть может работать в 'Normal', 'Accelerator', или 'Rapid Accelerator' mode и поддержка генерации кода.

  • 'HDLCodeGeneration': Верхняя часть может работать в 'Normal', 'Accelerator', или 'Rapid Accelerator' режим и поддержка генерации HDL-кода.

  • 'ViewOnly': Отключает режимы моделирования и генерации кода функций. Включение режима просмотра только для чтения.

Пример: 'Mode','Accelerator'

Примечание

Этот аргумент влияет на выход только, когда вы задаете Mode как 'Accelerator' или 'CodeGeneration. Когда вы задаете Mode как 'Normal', только Файл MEX является частью выхода пакета.

Защищенная видимость кода. Этот аргумент определяет, какая часть кода, сгенерированная для защищенной модели, видна пользователям. Задайте одно из следующих значений:

  • 'CompiledBinaries': Видны только двоичные файлы и заголовки.

  • 'MinimalCode': Включает только минимальные файлы заголовков, необходимые для создания кода с выбранными настройками сборки. Код в папке сборки отображается. Пользователи могут просматривать код в отчете защищенной модели и повторно компилировать его в своих целях.

  • 'AllReferencedHeaders': Включает файлы заголовков, найденные в пути включения. Код в папке сборки отображается. Файлы заголовков, на которые ссылается код, также видны.

Пример: 'OutputFormat','AllReferencedHeaders'

Опция запутывания сгенерированного кода, заданная как логическое значение. Применяется только, когда генерация кода включена для защищенной модели. Obfuscation не поддерживается для генерации HDL-кода.

Пример: 'ObfuscateCode',true

Опция включения представления защищенной модели только для чтения, заданная как логическое значение.

Чтобы открыть веб-представление защищенной модели, используйте один из следующих методов:

  • Щелкните правой кнопкой значок защищенной модели и выберите Show Web view.

  • Используйте Simulink.ProtectedModel.open функция. Например, чтобы отобразить веб-представление для защищенной модели sldemo_mdlref_counter, можно вызвать:

    Simulink.ProtectedModel.open('sldemo_mdlref_counter', 'webview');

  • Дважды кликните .slxp защищенный файл модели в браузере текущей папки.

  • В диалоговом окне Параметров блоков для защищенной модели нажмите Open Model.

Пример: 'Webview',true

Шифрование

свернуть все

Опция для изменения пароля шифрования для симуляции, заданная как массив ячеек из двух векторов символов. Первый вектор - старый пароль, второй - новый пароль.

Пример: 'ChangeSimulationPassword',{'old_password','new_password'}

Опция изменения пароля шифрования для представления только для чтения, заданная как массив ячеек из двух векторов символов. Первый вектор - старый пароль, второй - новый пароль.

Пример: 'ChangeViewPassword',{'old_password','new_password'}

Опция для изменения пароля шифрования для генерации кода, заданная как массив ячеек из двух векторов символов. Первый вектор - старый пароль, второй - новый пароль.

Пример: 'ChangeCodeGenerationPassword',{'old_password','new_password'}

Опция шифрования защищенной модели в виде логического значения. Применимо, когда вы указали пароль во время защиты или с помощью следующих методов:

Пример: 'Encrypt',true

Выходные аргументы

свернуть все

Указатель на модель тестовой обвязки, возвращенный как double или 0, в зависимости от значения Harness.

Если Harness является true, значение является указателем на модель тестовой обвязки; в противном случае значение 0.

Имена переменных базового рабочего пространства, используемых защищенной моделью, возвращаются как массив ячеек.

Массив ячеек может также включать переменные, которые не использует защищенная модель.

Введенный в R2014b