Скрытие содержимого ссылочной модели для скрытия интеллектуальной собственности
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 для удаления имен любых переменных, которые не требуются модели. Сохраните требуемые переменные в словаре данных.
model - Наименование моделиИмя модели, указанное как вектор символа или скаляр строки. Он содержит имя модели или путь к блоку модели, который ссылается на модель, подлежащую защите.
Типы данных: char | string
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Mode','CodeGeneration','OutputFormat','Binaries','ObfuscateCode',true указывает, что для защищенной модели создается запутанный код. Он также указывает, что пользователи защищенной модели могут видеть только двоичные файлы и заголовки в сгенерированном коде.'Project' - Возможность сбора зависимостей в проектеfalse (по умолчанию) | trueОпция для сбора зависимостей в проекте, указанная как разделенная запятыми пара, состоящая из 'Project' и true или false.
Защищенная модель, ее зависимости и модель электрического жгута сохраняются в архиве проекта (.mlproj). Архив проекта предоставляет способ совместного использования проекта в одном файле. Для создания интерактивного проекта необходимо открыть архив проекта.
Примечание
Прежде чем предоставить общий доступ к проекту, проверьте, содержит ли проект необходимые вспомогательные файлы. Если вспомогательные файлы отсутствуют, их можно идентифицировать с помощью моделирования или генерации кода для связанной модели кабельных трасс. Добавьте отсутствующие зависимости в проект и при необходимости обновите модель кабельных трасс.
Пример: 'Project',true
Типы данных: logical
'ProjectName' - Имя пользовательского проектаИмя пользовательского проекта, указанное как пара, разделенная запятыми, состоящая из 'ProjectName' и вектор символов или строковый скаляр.
Если имя пользовательского проекта не указано, по умолчанию для проекта используется имя защищенной модели, за которым следует _protected.
Пример: 'ProjectName','myname'
Позволить ProjectName, комплект Project кому true.
Типы данных: char | string
'Harness' - Опция для создания модели кабельных трассОпция для создания модели кабельных трасс, заданная как разделенная запятыми пара, состоящая из 'Harness' и логическое значение.
При создании модели кабельных трасс для защищенной модели, основанной на определениях базового рабочего пространства, Simulink ® создает MAT-файл, содержащий определения базового рабочего пространства.
Модель кабельных трасс должна иметь доступ к вспомогательным файлам, таким как MAT-файл с базовыми определениями рабочей области или словарь данных.
Пример: 'Harness',true
Типы данных: logical
'Mode' - Режим защиты модели'Normal' (по умолчанию) | 'Accelerator' | 'CodeGeneration' | 'HDLCodeGeneration' | 'ViewOnly'Режим защиты модели, указанный как разделенная запятыми пара, состоящая из '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'
'CodeInterface' - Интерфейс, через который блок модели получает доступ к сгенерированному коду'Model reference' (по умолчанию) | 'Top model'Интерфейс, через который к сгенерированному коду обращается блок Model, указанный как разделенная запятыми пара, состоящая из 'CodeInterface' и одно из следующих значений:
'Model reference'Доступ к коду через интерфейс ссылочного кода модели, который позволяет использовать защищенную модель в иерархии ссылочного кода модели. Пользователи защищенной модели могут создавать код из родительской модели, содержащей защищенную модель. Кроме того, пользователи могут выполнять моделирование SIL/PIL блока модели с защищенной моделью.
'Top model'Доступ к коду через автономный интерфейс. Пользователи защищенной модели могут выполнять моделирование SIL/PIL блока модели с защищенной моделью.
Пример: 'CodeInterface','Top model'
Системный целевой файл (SystemTargetFile) должен быть установлен в целевой системный файл на основе ERT, например, ert.tlc). Требуется лицензия Embedded Coder ®.
'ObfuscateCode' - Параметр для запутывания сгенерированного кодаtrue (по умолчанию) | falseПараметр для запутывания сгенерированного кода, заданного как разделенная запятыми пара, состоящая из 'ObfuscateCode' и логическое значение. Применяется только в том случае, если генерация кода во время защиты включена. Обфускация не поддерживается для генерации кода HDL.
Пример: 'ObfuscateCode',true
Типы данных: logical
'Path' - Папка для защищенной моделиПапка для защищенной модели, указанная как разделенная запятыми пара, состоящая из 'Path' и вектор символов или строковый скаляр.
Пример: 'Path','C:\Work'
Типы данных: char | string
'Report' - Возможность создания отчетаfalse (по умолчанию) | trueОпция для создания отчета, заданная как пара, разделенная запятыми, состоящая из 'Report' и логическое значение.
Чтобы просмотреть отчет, щелкните правой кнопкой мыши значок защищенной модели и выберите Показать отчет. Или позвоните в Simulink.ProtectedModel.open функции с помощью report вариант.
Отчет создается в формате HTML. Она содержит информацию об среде, функциональных возможностях и интерфейсе для защищенной модели.
Пример: 'Report',true
Типы данных: logical
'hdl' - Возможность генерации кода HDLfalse (по умолчанию) | trueОпция для создания кода HDL, определяемого как разделенная запятыми пара, состоящая из 'hdl' и логическое значение.
Для этого параметра требуется лицензия HDL Coder. Если этот параметр включен, убедитесь, что задан режим. Можно установить для этой опции значение true в сочетании с установленным для параметра Mode значением CodeGeneration включение поддержки генерации кода C и кода HDL для защищенной модели.
Если требуется включить только моделирование и поддержку генерации кода HDL, но не C-кода, установите для параметра Режим значение HDLCodeGeneration. Нет необходимости устанавливать для параметра hdl значение true.
Пример: 'hdl',true
Типы данных: logical
'OutputFormat' - Видимость защищенного кода'CompiledBinaries' (по умолчанию) | 'MinimalCode' | 'AllReferencedHeaders'Видимость защищенного кода, указанная как разделенная запятыми пара, состоящая из 'OutputFormat' и одно из следующих значений:
'CompiledBinaries': Видны только двоичные файлы и заголовки.
'MinimalCode': Включает только минимальные заголовочные файлы, необходимые для построения кода с выбранными параметрами построения. Весь код в папке построения виден. Пользователи могут проверить код в отчете о защищенной модели и перекомпилировать его для своих целей.
'AllReferencedHeaders': Включает заголовочные файлы, найденные по пути включения. Весь код в папке построения виден. Все заголовки, на которые ссылается код, также видны.
Этот аргумент определяет, какая часть кода, созданного для защищенной модели, видна пользователям.
Пример: 'OutputFormat','AllReferencedHeaders'
Этот аргумент влияет на выходные данные только при указании Mode как 'Accelerator' или 'CodeGeneration'. При указании Mode как 'Normal', только MEX-файл является частью выходного пакета.
'Webview' - Возможность включения веб-представления защищенной модели только для чтенияfalse (по умолчанию) | trueПараметр для включения веб-представления защищенной модели, доступного только для чтения, указанный как пара, разделенная запятыми, состоящая из 'Webview' и логическое значение.
Чтобы открыть веб-представление защищенной модели, используйте один из следующих методов.
Щелкните правой кнопкой мыши значок защищенной модели и выберите Показать веб-представление.
Используйте Simulink.ProtectedModel.open функция. Например, отображение веб-представления для защищенной модели sldemo_mdlref_counter, позвоните:
Simulink.ProtectedModel.open('sldemo_mdlref_counter', 'webview');Дважды щелкните значок .slxp защищенный файл модели в браузере текущей папки.
В диалоговом окне «Параметр блока» для защищенной модели нажмите «Открыть модель».
Пример: 'Webview',true
Типы данных: logical
'Encrypt' - Возможность шифрования защищенной моделиfalse (по умолчанию) | trueОпция шифрования защищенной модели, заданная как разделенная запятыми пара, состоящая из 'Encrypt' и логическое значение. Применяется при указании пароля во время защиты или с помощью следующих методов:
Пароль для представления модели только для чтения: Simulink.ModelReference.ProtectedModel.setPasswordForView
Пароль для моделирования: Simulink.ModelReference.ProtectedModel.setPasswordForSimulation
Пароль для создания кода: Simulink.ModelReference.ProtectedModel.setPasswordForCodeGeneration
Пароль для создания кода HDL: Simulink.ModelReference.ProtectedModel.setPasswordForHDLCodeGeneration
Пример: 'Encrypt',true
Типы данных: logical
'CustomPostProcessingHook' - Возможность добавления функции постобработки для защищенных файлов моделиВозможность добавления функции постобработки для защищенных файлов модели, указанной как разделенная запятыми пара, состоящая из 'CustomPostProcessingHook' и дескриптор функции.
Функция принимает Simulink.ModelReference.ProtectedModel.HookInfo объект в качестве входной переменной. Этот объект предоставляет информацию о файлах исходного кода и других файлах, созданных во время создания защищенной модели. В нем также содержится информация об экспортированных обозначениях, которую нельзя изменять. Перед упаковкой защищенной модели вызывается функция постобработки.
Для защищенной модели с интерфейсом верхней модели: Simulink.ModelReference.ProtectedModel.HookInfo объект не может предоставить информацию об экспортированных символах.
Пример: 'CustomPostProcessingHook',@(protectedMdlInf)myHook(protectedMdlInf)
'Modifiable' - Возможность создания изменяемой защищенной моделиfalse (по умолчанию) | trueОпция для создания изменяемой защищенной модели, указанной как разделенная запятыми пара, состоящая из 'Modifiable' и логическое значение. Для использования этой опции:
Добавление пароля для изменения с помощью Simulink.ModelReference.ProtectedModel.setPasswordForModify функция. Если пароль не был добавлен во время создания изменяемой защищенной модели, появится запрос на его создание.
Измените параметры защищенной модели, предварительно предоставив пароль изменения с помощью Simulink.ModelReference.ProtectedModel.setPasswordForModify функция. Затем используйте Simulink.ModelReference.modifyProtectedModel для внесения изменений в опцию.
Пример: 'Modifiable',true
Типы данных: logical
'Callbacks' - Параметр для указания обратных вызовов для защищенной моделиОпция для указания обратных вызовов для защищенной модели, определяемая как разделенная запятыми пара, состоящая из 'Callbacks' и массив ячеек Simulink.ProtectedModel.Callback объекты.
Пример: 'Callbacks',{pmcallback_sim, pmcallback_cg}
Типы данных: cell
'Sign' - Возможность подписи защищенной модели цифровым сертификатомВозможность подписи защищенной модели цифровым сертификатом, указанным как пара, разделенная запятыми, состоящая из 'Sign' и вектор символов или строковый скаляр, который определяет цифровой сертификат. Если файл сертификата защищен паролем, используйте Simulink.ModelReference.ProtectedModel.setPasswordForCertificate для ввода пароля перед использованием сертификата.
Пример: 'Sign','my_certificate.pfx'
Типы данных: char | string
harnessHandle - Рукоятка модели электрического жгутаМаркер модели электрического жгута, возвращаемый как двойной или 0, в зависимости от значения Harness.
Если Harness является true, значение является маркером модели электрического жгута. В противном случае значение равно 0.
neededVars - Имена базовых переменных рабочей областиИмена базовых переменных рабочей области, используемых защищенной моделью, возвращаемых в виде массива ячеек.
Массив ячеек может также включать переменные, которые не используются защищенной моделью.
Simulink.ModelReference.modifyProtectedModel | Simulink.ModelReference.ProtectedModel.clearPasswords | Simulink.ModelReference.ProtectedModel.clearPasswordsForModel | Simulink.ModelReference.ProtectedModel.setPasswordForCodeGeneration | Simulink.ModelReference.ProtectedModel.setPasswordForHDLCodeGeneration | Simulink.ModelReference.ProtectedModel.setPasswordForModify | Simulink.ModelReference.ProtectedModel.setPasswordForSimulation | Simulink.ModelReference.ProtectedModel.setPasswordForView
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.