Неясное содержимое модели, на которое ссылаются, чтобы скрыть интеллектуальную собственность
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
)
Защитите модель, на которую ссылаются, и поместите защищенную модель в текущую рабочую папку.
openExample('sldemo_mdlref_bus'); model= 'sldemo_mdlref_counter_bus' Simulink.ModelReference.protect(model);
Защищенная модель под названием sldemo_mdlref_counter_bus.slxp
создается. Защищенный файл модели помещается в текущую рабочую папку.
Защитите модель, на которую ссылаются, и поместите защищенную модель в заданную папку.
openExample('sldemo_mdlref_bus'); model= 'sldemo_mdlref_counter_bus' Simulink.ModelReference.protect(model,'Path','C:\Work');
Защищенная модель под названием sldemo_mdlref_counter_bus.slxp
создается. Защищенный файл модели помещается в C:\Work
.
Защитите модель, на которую ссылаются, сгенерируйте код для него в режиме normal mode и запутайте код.
openExample('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)
Видимость кода системы управления, позволяя пользователям просмотреть только двоичные файлы и заголовки в коде, сгенерированном для защищенной модели.
openExample('sldemo_mdlref_bus'); model= 'sldemo_mdlref_counter_bus' Simulink.ModelReference.protect(model,'Mode','CodeGeneration','OutputFormat',... 'CompiledBinaries');
Защищенная модель под названием sldemo_mdlref_counter_bus.slxp
создается. Защищенный файл модели помещается в текущую рабочую папку. Пользователи могут просмотреть только двоичные файлы и заголовки в коде, сгенерированном для защищенной модели.
Создайте модель тестовой обвязки для защищенной модели и сгенерируйте отчет HTML.
openExample('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
.
Сгенерируйте защищенную модель и определите необходимые переменные.
openExample('sldemo_mdlref_bus'); model= 'sldemo_mdlref_counter_bus' [~, neededVars] = Simulink.ModelReference.protect(model)
Второй выход, neededVars
, определяет переменные, которые необходимо отправить получателю. Значение neededVars
массив ячеек, который содержит имена переменных, требуемых защищенной моделью. Однако массив ячеек может также содержать имена переменных, в которых не нужна модель.
Прежде чем вы совместно используете защищенную модель, отредактируете neededVars
удалить имена любых переменных, в которых не нужна модель. Сохраните необходимые переменные в словаре данных.
model
— Имя моделиИмя модели в виде вектора символов или строкового скаляра. Это содержит имя модели или путь блока 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
Типы данных: логический
ProjectName
— Пользовательское название проектаПользовательское название проекта в виде разделенной запятой пары, состоящей из 'ProjectName'
и вектор символов или строковый скаляр.
Если вы не задаете пользовательское название проекта, имя по умолчанию для проекта является защищенным именем модели, сопровождаемым _protected
.
Пример: 'ProjectName','myname'
Включить ProjectName
, установите Project
к true
.
Типы данных: char |
string
Harness
— Опция, чтобы создать модель тестовой обвязкиОпция, чтобы создать модель тестовой обвязки в виде разделенной запятой пары, состоящей из 'Harness'
и булево значение.
Когда вы создаете модель тестовой обвязки для защищенной модели, которая использует определения базового рабочего пространства, Simulink® создает MAT-файл, который содержит определения базового рабочего пространства.
Модель тестовой обвязки должна иметь доступ к вспомогательным файлам, таким как MAT-файл с определениями базового рабочего пространства или словарем данных.
Пример: 'Harness',true
Типы данных: логический
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'
: Это значение выключает, Симулируют и Генерируют режимы функциональности кода, и включает режим представления только для чтения.
Пример: 'Mode','Accelerator'
CodeInterface
— Интерфейс, через который к сгенерированному коду получает доступ блок Model'Model reference'
(значение по умолчанию) | 'Top model'
Интерфейс, через который к сгенерированному коду получает доступ блок Model в виде разделенной запятой пары, состоящей из 'CodeInterface'
и одно из следующих значений:
'Model reference'
: Доступ кода через интерфейс модели - ссылки кода, который позволяет использование защищенной модели в иерархии модели - ссылки. Пользователи защищенной модели могут сгенерировать код от родительской модели, которая содержит защищенную модель. Кроме того, пользователи могут запустить SIL/PIL симуляции блока Model с защищенной моделью.
'Top model'
: Доступ кода через автономный интерфейс. Пользователи защищенной модели могут запустить SIL/PIL симуляции блока Model с защищенной моделью.
Пример: 'CodeInterface','Top model'
Системный конечный файл (SystemTargetFile
) должен быть установлен в основанный на ERT системный конечный файл, например, ert.tlc
). Требует Embedded Coder® лицензия.
ObfuscateCode
— Опция, чтобы запутать сгенерированный кодtrue
(значение по умолчанию) | false
Опция, чтобы запутать сгенерированный код в виде разделенной запятой пары, состоящей из 'ObfuscateCode'
и булево значение. Применимый только, когда генерации кода во время защиты включают. Путаница не поддерживается для генерации HDL-кода.
Пример: 'ObfuscateCode',true
Типы данных: логический
Path
— Папка для защищенной моделиПапка для защищенной модели в виде разделенной запятой пары, состоящей из 'Path'
и вектор символов или строковый скаляр.
Пример: 'Path','C:\Work'
Типы данных: char |
string
Report
— Опция, чтобы сгенерировать отчетfalse
(значение по умолчанию) | true
Опция, чтобы сгенерировать отчет в виде разделенной запятой пары, состоящей из 'Report'
и булево значение.
Чтобы просмотреть отчет, щелкните правой кнопкой по значку значка защищенной модели и выберите Display Report. Или, вызовите Simulink.ProtectedModel.open
функция с report
опция.
Отчет сгенерирован в формате HTML. Это включает информацию о среде, функциональности и интерфейсе для защищенной модели.
Пример: 'Report',true
Типы данных: логический
hdl
— Опция, чтобы сгенерировать HDL-кодfalse
(значение по умолчанию) | true
Опция, чтобы сгенерировать HDL-код в виде разделенной запятой пары, состоящей из 'hdl'
и булево значение.
Эта опция требует лицензии HDL Coder. Когда вы включаете эту опцию, убедитесь, что вы задаете Mode. Можно установить эту опцию на true
в сочетании с набором Mode к CodeGeneration
чтобы включить и код С и генерацию HDL-кода поддерживают для защищенной модели.
Если вы хотите включить только симуляцию, и поддержка генерации HDL-кода, но не генерация кода C, установила Mode на HDLCodeGeneration
. Вы не должны устанавливать опцию hdl на true
.
Пример: 'hdl',true
Типы данных: логический
OutputFormat
— Защищенная видимость кода'CompiledBinaries'
(значение по умолчанию) | 'MinimalCode'
| 'AllReferencedHeaders'
Защищенная видимость кода в виде разделенной запятой пары, состоящей из 'OutputFormat'
и одно из следующих значений:
'CompiledBinaries'
: Только двоичные файлы и заголовки отображаются.
'MinimalCode'
: Включает только минимальные заголовочные файлы, требуемые создавать код с выбранными настройками сборки. Весь код в папке сборки отображается. Пользователи могут смотреть код в защищенном отчете модели и перекомпилировать его в их целях.
'AllReferencedHeaders'
: Включает заголовочные файлы, найденные на включать пути. Весь код в папке сборки отображается. Все заголовки, на которые ссылается код, также отображаются.
Этот аргумент определяет то, чем часть кода, сгенерированного для защищенной модели, отображается пользователям.
Пример: 'OutputFormat','AllReferencedHeaders'
Этот аргумент влияет на выход только, когда вы задаете Mode
как 'Accelerator'
или 'CodeGeneration'
. Когда вы задаете Mode
как 'Normal'
, только файл MEX является частью выходного пакета.
Webview
— Опция, чтобы включать Веб-представление только для чтения защищенной моделиfalse
(значение по умолчанию) | true
Опция, чтобы включать Веб-представление только для чтения защищенной модели в виде разделенной запятой пары, состоящей из 'Webview'
и булево значение.
Чтобы открыть Веб-представление защищенной модели, используйте один из следующих методов:
Щелкните правой кнопкой по значку значка защищенной модели и выберите Show Web view.
Используйте Simulink.ProtectedModel.open
функция. Например, чтобы отобразить Веб-представление для защищенной модели sldemo_mdlref_counter
, вызов:
Simulink.ProtectedModel.open('sldemo_mdlref_counter', 'webview');
Дважды кликните .slxp
защищенный файл модели в Браузере текущей папки.
В диалоговом окне Block Parameter для защищенной модели нажмите Open Model.
Пример: 'Webview',true
Типы данных: логический
Encrypt
— Опция, чтобы зашифровать защищенную модельfalse
(значение по умолчанию) | true
Опция, чтобы зашифровать защищенную модель в виде разделенной запятой пары, состоящей из 'Encrypt'
и булево значение. Применимый, когда вы задали пароль во время защиты, или при помощи следующих методов:
Пароль для представления только для чтения модели: Simulink.ModelReference.ProtectedModel.setPasswordForView
Пароль для симуляции: Simulink.ModelReference.ProtectedModel.setPasswordForSimulation
Пароль для генерации кода: Simulink.ModelReference.ProtectedModel.setPasswordForCodeGeneration
Пароль для генерации HDL-кода: Simulink.ModelReference.ProtectedModel.setPasswordForHDLCodeGeneration
(HDL Coder)
Пример: 'Encrypt',true
Типы данных: логический
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
Типы данных: логический
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.setPasswordForModify
| Simulink.ModelReference.ProtectedModel.setPasswordForCodeGeneration
| Simulink.ModelReference.ProtectedModel.setPasswordForHDLCodeGeneration
(HDL Coder) | Simulink.ModelReference.ProtectedModel.setPasswordForSimulation
| Simulink.ModelReference.ProtectedModel.setPasswordForView
| Simulink.ModelReference.ProtectedModel.clearPasswords
| Simulink.ModelReference.ProtectedModel.clearPasswordsForModel
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.