Simulink.ModelReference.protect

Скрыть содержимое модели, на которую ссылаются, чтобы скрыть интеллектуальное свойство

Описание

пример

Simulink.ModelReference.protect(model) создает защищенную модель из заданного model. Он помещает защищенную модель в текущую рабочую папку. Защищенная модель имеет то же имя что и исходная модель. У него есть расширение .slxp.

пример

Simulink.ModelReference.protect(model,Name,Value) использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение".

пример

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

пример

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

Примеры

свернуть все

Защитите модель-ссылку и поместите защищенную модель в текущую рабочую папку.

sldemo_mdlref_bus;
model= 'sldemo_mdlref_counter_bus'

Simulink.ModelReference.protect(model);

Защищенная модель с именем sldemo_mdlref_counter_bus.slxp создается. Защищенный файл модели помещается в текущую рабочую папку.

Защитите модель-ссылку и поместите защищенную модель в указанную папку.

sldemo_mdlref_bus;
model= 'sldemo_mdlref_counter_bus'

Simulink.ModelReference.protect(model,'Path','C:\Work');

Защищенная модель с именем sldemo_mdlref_counter_bus.slxp создается. Защищенный файл модели помещается в C:\Work.

Защитите ссылку на модель, сгенерируйте код для него в режиме normal mode и запутайте код.

sldemo_mdlref_bus;
model= 'sldemo_mdlref_counter_bus'

Simulink.ModelReference.protect(model,'Path','C:\Work','Mode','CodeGeneration',...
'ObfuscateCode',true);

Защищенная модель с именем sldemo_mdlref_counter_bus.slxp создается. Защищенный файл модели помещается в C:\Work папка. Защищенная модель запускается как дочерняя модель родительской модели. Код, сгенерированный для защищенной модели, запутывается программным обеспечением.

Защитите ссылку на модель и сгенерируйте для него HDL-код в режиме normal mode.

parent_model= 'hdlcoder_protected_model_parent_harness';
reference_model_to_protect = 'hdlcoder_referenced_model_gain';

Simulink.ModelReference.protect(reference_model_to_protect, ...
                        'Mode','HDLCodeGeneration')

Защищенная модель с именем hdlcoder_referenced_model_gain.slxp создается. Защищенный файл модели помещается в ту же папку, что и родительская модель и ссылочная модель. Защищенная модель запускается как дочерняя модель родительской модели.

Установите значение опции hdl true с Mode установленным значением CodeGeneration чтобы включить как генерацию кода C, так и генерацию HDL-кода для защищенной модели, которую вы создаете.

parent_model= 'hdlcoder_protected_model_parent_harness';
reference_model_to_protect = 'hdlcoder_referenced_model_gain';

Simulink.ModelReference.protect(reference_model_to_protect, ...
                        'Mode','CodeGeneration','hdl',true)

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

sldemo_mdlref_bus;
model= 'sldemo_mdlref_counter_bus'

Simulink.ModelReference.protect(model,'Mode','CodeGeneration','OutputFormat',...
'CompiledBinaries');

Защищенная модель с именем sldemo_mdlref_counter_bus.slxp создается. Защищенный файл модели помещается в текущую рабочую папку. Пользователи могут просматривать только двоичные файлы и заголовки в коде, сгенерированном для защищенной модели.

Создайте модель тестовой обвязки для защищенной модели и сгенерируйте HTML.

sldemo_mdlref_bus;
modelPath= 'sldemo_mdlref_bus/CounterA'

[harnessHandle] = Simulink.ModelReference.protect(modelPath,'Path','C:\Work',...
'Harness',true,'Report',true);

Защищенная модель с именем sldemo_mdlref_counter_bus.slxp создается вместе с недозаглавленной моделью тестовой обвязки. Защищенный файл модели помещается в C:\Work папка. Папка также содержит HTML. Указатель на модель тестовой обвязки возвращается в harnessHandle.

Чтобы симулировать модель, которая ссылается на защищенную модель, вам, возможно, потребуется задать переменные в базовом рабочем пространстве или словарях данных. Для примера, sldemo_mdlref_counter_bus модели нужны переменные, которые задают шины в корневых входных и выходных портах модели. Когда вы отправляете защищенную модель, необходимо включать определения необходимых переменных или модель непригодна.

Совет

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

Сгенерируйте защищенную модель и определите необходимые переменные.

sldemo_mdlref_bus;
model= 'sldemo_mdlref_counter_bus'

[~, neededVars] = Simulink.ModelReference.protect(model)

Второй выход, neededVars, определяет переменные, которые вы должны отправить получателю. Значение neededVars - массив ячеек, содержащий имена переменных, требуемых защищенной моделью. Однако массив ячеек может также содержать имена переменных, которые не нужны модели.

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

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

свернуть все

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

Типы данных: char | string

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

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

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

Опция для сбора зависимостей в проекте, заданная как разделенная разделенными запятой парами, состоящая из 'Project' и true или false.

Защищенная модель, ее зависимости и ее модель тестовой обвязки сохранены в архиве проекта (.mlproj). Архив проекта предоставляет способ совместного использования проекта в одном файле. Для создания интерактивного проекта необходимо открыть архив проекта.

Примечание

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

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

Типы данных: logical

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

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

Пример: 'ProjectName','myname'

Зависимости

Чтобы включить ProjectName, задать Project на true.

Типы данных: char | string

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

Когда вы создаете модель тестовой обвязки для защищенной модели, которая опирается на определения базовых рабочих пространств, Simulink® создает MAT-файл, содержащий определения базовых рабочих пространств.

Модель тестовой обвязки должна иметь доступ к вспомогательным файлам, таким как MAT-файл с определениями базовых рабочих пространств или словарь данных.

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

Типы данных: logical

Режим защиты модели, заданный как разделенная разделенными запятой парами, состоящая из 'Mode' и одно из следующих значений:

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

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

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

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

  • 'ViewOnly': Это значение отключает режимы функциональности Simulate и Generate кода и включает режим просмотра только для чтения.

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

Интерфейс, посредством которого к сгенерированному коду обращается блок Model, заданный как разделенная разделенными запятой парами, состоящая из 'CodeInterface' и одно из следующих значений:

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

  • 'Top model': Доступ к коду через автономный интерфейс. Пользователи защищенной модели могут запускать SIL/PIL симуляции блоков Model с защищенной моделью.

Пример: 'CodeInterface','Top model'

Зависимости

Системный целевой файл (SystemTargetFile) должен быть установлен системный целевой файл на основе ERT, например ert.tlc). Требуется Embedded Coder® лицензия.

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

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

Типы данных: logical

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

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

Типы данных: char | string

Опция для генерации отчета, заданная как разделенная разделенными запятой парами, состоящая из 'Report' и логическое значение.

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

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

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

Типы данных: logical

Опция для генерации HDL-кода, заданная как разделенная разделенными запятой парами, состоящая из 'hdl' и логическое значение.

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

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

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

Типы данных: logical

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

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

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

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

Типы данных: logical

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

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

Типы данных: logical

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

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

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

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

Опция для создания изменяемой защищенной модели, заданная как разделенная разделенными запятой парами, состоящая из 'Modifiable' и логическое значение. Чтобы использовать эту опцию:

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

Типы данных: logical

Опция для задания коллбэков для защищенной модели, заданная как разделенная разделенными запятой парами, состоящая из 'Callbacks' и массив ячеек Simulink.ProtectedModel.Callback объекты.

Пример: 'Callbacks',{pmcallback_sim, pmcallback_cg}

Типы данных: cell

Опция подписи защищенной модели цифровым сертификатом, заданная как разделенная разделенными запятой парами, состоящая из 'Sign' и вектор символов или строковый скаляр, который задает цифровой сертификат. Если файл сертификата защищен паролем, используйте Simulink.ModelReference.ProtectedModel.setPasswordForCertificate функция для предоставления пароля перед использованием сертификата.

Пример: 'Sign','my_certificate.pfx'

Типы данных: char | string

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

свернуть все

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

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

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

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

Введенный в R2012b