exponenta event banner

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.

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

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 в обычном режиме.

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 с режимом, установленным на 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 для удаления имен любых переменных, которые не требуются модели. Сохраните требуемые переменные в словаре данных.

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

свернуть все

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

Типы данных: 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' защищенная модель запускается как дочерняя от верхней модели.

  • 'Accelerator': Топ-модель может работать в 'Normal', 'Accelerator', или 'Rapid Accelerator' режим.

  • 'CodeGeneration': Топ-модель может работать в 'Normal', 'Accelerator', или 'Rapid Accelerator' режим и поддержка формирования кода.

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

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

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Зависимости

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

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

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

  • Щелкните правой кнопкой мыши значок защищенной модели и выберите Показать веб-представление.

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

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

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

  • В диалоговом окне «Параметр блока» для защищенной модели нажмите «Открыть модель».

Пример: '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

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

свернуть все

Маркер модели электрического жгута, возвращаемый как двойной или 0, в зависимости от значения Harness.

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

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

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

Представлен в R2012b