Генератор кода в Engee
Генерация кода через графический интерфейс
Генерация кода для подсистемы
Для генерации кода через графический интерфейс Engee нажмите правой кнопкой мыши по подсистеме (блок Subsystem):
Таким образом можно сгенерировать код из любой выбранной подсистемы в модели.
Сгенерированный код находится в директории с именем modelname_Subsystem_code
в той же директории, где находится модель (либо в текущей директории, если модель еще не сохранялась на диск). Здесь modelname
— это имя модели, Subsystem
— имя подсистемы, а code
— суффикс, добавляемый к имени директории со сгенерированным кодом. Например, для блока с именем Subsystem в модели newmodel_1:
После завершения генерации в окне диагностики модели появится уведомление об успешной генерации кода:
Генерация кода для верхнего уровня модели
Для создания кода всей модели в графическом интерфейсе Engee нажмите кнопку «Сгенерировать код» , расположенную на панели инструментов рабочего пространства.
В выпадающем меню рядом с кнопкой генерации должна быть выбрана целевая платформа Engee (выбрана по умолчанию).
Сгенерированный код находится в директории с именем modelname_code
в той же директории, где находится модель (либо в текущей директории, если модель еще не сохранялась на диск). Здесь modelname
— это имя модели, а code
— суффикс, добавляемый к имени директории со сгенерированным кодом. Например, для модели newmodel_1 (подсистема не выбрана):
Генерация кода через командную строку или интерактивный скрипт
Для генерации кода в Engee используется команда engee.generate_code в командной строке или редакторе скриптов .
Генерация кода для подсистемы
Для генерации кода подсистемы укажите полный путь к подсистеме с помощью аргумента subsystem_name
. Полный путь к подсистеме включает ее имя в модели.
Сигнатура функции:
engee.generate_code(
path/to/modelname.engee::String,
path/to/output_dir::String;
subsystem_name=subsystem_path::String,
subsystem_id = subsystem_id::String,
target::String
)
Аргументы:
-
path/to/modelname.engee::String
: Абсолютный или относительный путь к модели из которой генерируется код. В качестве аргумента может выступать объект модели (объект типа model, полученный функциейengee.gcm
). -
path/to/output_dir::String
: Абсолютный или относительный путь к директории, в которую сохранится сгенерированный код. Если директорииoutput_dir
не существует — она будет создана автоматически. -
subsystem_name=path/to/subsystem::String
: Полный путь к атомарной подсистеме из которой генерируется код. -
subsystem_id = subsystem_id::String
: Уникальный идентификатор атомарной подсистемы из которой генерируется код. -
target::String
: Указание языка для генерации кода. Поддерживаемые языки —Си
(по умолчанию) илиVerilog
.
Если не указан путь к генерируемой подсистеме, то код генерируется из верхнего уровня модели.
Пример:
engee.generate_code("/user/newmodel_1.engee", "/user/newmodel_1/Subsystem") # генерация кода для подсистемы
engee.generate_code("/user/newmodel_1.engee", "/user/newmodel_1/Subsystem"; subsystem_id = "88275e0b-a049-4bb5-b8c7-057badd1b536") # генерация кода для атомарной подсистемы по ее id
Генерация кода для модели
Для генерации кода из всей модели укажите путь к модели и директорию для сохранения сгенерированного кода. Если модель уже открыта в Engee, то можно передать объект модели, полученный с помощью функции engee.gcm).
Сигнатура функции:
engee.generate_code(
path/to/modelname.engee::String,
path/to/output_dir::String;
target::String
)
Аргументы:
-
path/to/modelname.engee::String
: Абсолютный или относительный путь к модели из которой генерируется код. В качестве аргумента может выступать объект модели (объект типа model, полученный функциейengee.gcm
). -
path/to/modelname.engee::String
: Абсолютный или относительный путь к модели из которой генерируется код. В качестве аргумента может выступать объект модели (объект типа model, полученный функциейengee.gcm
). -
path/to/output_dir::String
: Абсолютный или относительный путь к директории, в которую сохранится сгенерированный код. Если директорииoutput_dir
не существует — она будет создана автоматически. -
target::String
: Указание языка для генерации кода. Поддерживаемые языки —Си
(по умолчанию) илиVerilog
.
Пример:
engee.generate_code("/user/newmodel_1.engee", "/user/newmodel_1/codegen_output") # абсолютный путь к модели
engee.generate_code("newmodel_1.engee", "newmodel_1/codegen_output") # относительный путь к модели
m = engee.gcm() # получение текущей открытой модели
engee.generate_code(m, "/user/newmodel_1/codegen_output")