Публичные методы программного управления
Список публичных методов программного управления
Все публичные методы программного управления, доступные в Engee, представлены списком ниже.
Методы engee.
add_block
Добавляет блок из библиотеки.
Details
Сигнатура функции:
engee.add_block("lib_block_path", "tgt_block_path")
Аргументы:
-
"lib_block_path"
— путь до блока в библиотеке. -
"tgt_block_path"
— путь до системы и ожидаемое имя. Если имя не указано, то задается автоматически.
add_line
Добавляет связь (поток данных) между блоками.
Details
Сигнатура функции:
engee.add_line("src_port", "dst_port") = engee.add_line(engee.gcs(), "src_port_path"," dst_port_path")
engee.add_line(system, "src_port", "dst_port")
Аргументы:
-
system
— путь до системы или объект типа ET.System. -
"src_port"
— путь до выходного порта блока. -
"tgt_port"
— полный путь до входного порта блока.
В качестве названия порта используется его порядковый номер.
clear
Очищает все переменные в текущем рабочем пространстве.
Details
Функция clear()
удаляет все данные, хранящиеся в переменных, чтобы освободить память под новые вычисления и потоки данных.
Сигнатура функции:
engee.clear()
Аргументы:
-
Не имеет обязательных или опциональных аргументов.
-
Выполнение функции возвращает Nothing.
clear_all
Очищает все переменные, функции, и defined модули из текущего рабочего пространства.
Details
Функция clear_all()
возвращает текущее рабочее пространство в исходное состояние.
В иных случаях, clear_all()
удаляет всю хранящуюся информацию, возвращая рабочее пространство к состоянию первого открытия.
Сигнатура функции:
engee.clear_all()
Аргументы:
-
Не имеет обязательных или опциональных аргументов.
-
Выполнение функции возвращает Nothing.
close
Закрывает модель.
Details
Сигнатура функции:
engee.close(model_name; force = false)
engee.close(model; force = false)
engee.close(; force = false)
Аргументы:
-
"model_name"
— имя модели, которая будет закрыта. -
model
— текущая модель, открытая во вкладке визуального редактора. Тип данных Model. -
force
— именованный аргумент (по умолчанию false). Тип данных Bool.
close_all
Закрывает все модели.
Details
Сигнатура функции:
engee.close_all()
engee.close_all(; sync_gui=true)
;
— все аргументы после точки с запятой должны быть именованными.
Аргументы:
-
sync_gui
— именованный аргумент и аргумент по умолчанию (по умолчанию false). Соединяет с графическим интерфейсом. Тип данных Bool.
copy_block
Копирует блок из системы.
Details
Сигнатура функции:
engee.copy_block("src_block_path", "tgt_block_path")
Аргументы:
-
"src_block_path"
— путь до блока в системе. -
"tgt_block_path"
— путь до системы и ожидаемое имя. Если имя не указано, то задается автоматически.
create
Создает новую модель с параметрами по умолчанию.
Details
Сигнатура функции:
engee.create("model_name")
Аргументы:
-
"model_name"
— желаемое имя модели в системе.
delete_block
Удаляет блок, все связанные линии и логируемые порты из системы.
Details
Сигнатура функции:
engee.delete_block("block_path")
Аргументы:
-
"block_path"
— путь до блока в системе.
delete_line
Удаляет связь (поток данных) между блоками.
Details
Сигнатура функции:
engee.delete_line("src_port", "dst_port") = delete_line(gcs(), "src_port", "dst_port")
engee.delete_line(system, "src_port", "dst_port")
Аргументы:
-
system
— путь до системы или объект типа ET.System. -
"src_port"
— путь до выходного (out) порта блока. -
"tgt_port"
— путь до входного (in) порта блока. В качестве названия порта используется его порядковый номер.
gcm
Возвращает текущую (активную) модель (возвращает объект с типом Model).
Details
Сигнатура функции:
engee.get_current_model()
engee.gcm()
Аргументы:
-
Не имеет обязательных или опциональных аргументов.
gcs
Возвращает текущую (активную) систему.
Details
Возвращает объект с типом System.
Сигнатура функции:
engee.get_current_system()
engee.gcs()
Аргументы:
-
Не имеет обязательных или опциональных аргументов.
generate_code
Генерирует код на указанном языке для модели.
Details
Сигнатура функции:
engee.generate_code("path/to/modelname.engee", "path/to/output_dir"; subsystem_name="path/to/subsystem")
Обязательные аргументы:
-
"path/to/modelname.engee"
— абсолютный или относительный путь к модели из которой генерируется код. В качестве аргумента может выступать объект модели (объект типа model, полученный функциейengee.gcm
) -
"path/to/output_dir"
— абсолютный или относительный путь к директории, в которую сохранится сгенерированный код. Если директории"output_dir"
не существует — она будет создана автоматически.
Необязательные аргументы:
-
subsystem_id
— уникальный идентификатор атомарной подсистемы из которой генерируется код. -
subsystem_name="path/to/subsystem"
— полный путь к атомарной подсистеме из которой генерируется код. -
"target"
— указание языка для генерации кода. Поддерживаемые языки —c
(по умолчанию),chisel
,verilog
.
Пример:
m = engee.gcm() #текущая открытая модель
output = "save_codegen/model_name" #относительный путь для вывода результатов кодогенерации
engee.generate_code(m, output) #сгенерирует код в output
output = "/user/save_codegen/model_name" #абсолютный путь (можно обращаться к файлам, находящимся в любых директориях).
engee.generate_code(m, output)
# Аналогично при работе с моделью как с файлом:
model_path = "/user/test.engee"
output = "save_codegen/model_name"
engee.generate_code(model_path, output)
Код также может быть сгенерирован через графический интерфейс (см. в статье Генератор кода в Engee).
get_all_models
Возвращает список открытых в текущей сессии моделей.
Details
Функция возвращает массив (вектор) объектов типа Model.
Сигнатура функции:
engee.get_all_models(; sorted=true)
-
;
— все аргументы после точки с запятой должны быть именованными.
Аргументы:
-
sorted=true
— указывает на то, что модели должны быть отсортированы (по умолчаниюtrue
). Если аргументtrue
по умолчанию если не указан при вызове функции.
compare_models
Производит сравнение пары моделей и возвращает список различий.
Details
Сигнатура функции:
engee.compare_models(a, b)
Обязательные аргументы:
-
"model_path_(a/b)"
—путь до файла первой и второй модели для сравнения.
Необязательные аргументы:
-
subsystem_id_(a/b)
— уникальный идентификатор подсистемы из которой будет производиться генерация кода. -
"subsystem_name_(a/b)"
— имя подсистемы или путь до подсистемы из которой будет производиться сравнение пары моделей.
Пример:
m1 = "/user/modelname_1.engee" # абсолютный путь (с указанием полного пути до файла)
m2 = "modelname_2.engee" # относительный путь (лежит в папке рядом с test1.engee)
engee.compare_models(m1, m2) # вернёт результат сравнения m1 и m2.
# По желанию, можно указать опциональные параметры:
engee.compare_models(m1, m2; subsystem_id_a=UUID_YOU_SUBSYSTEM_IN_MODEL_m)
convert_model
Генерирует engee-скрипт для построения текущей модели с помощью команд программного управления.
Details
Сигнатура функции:
engee.convert_model("model_path")
Обязательные аргументы:
-
"model_path"
— путь до модели, из которой требуется сгенерировать код.
Необязательные аргументы:
-
subsystem_id
— уникальный идентификатор подсистемы из которой будет производиться генерация кода. -
"subsystem_name"
— имя подсистемы или путь до подсистемы из которой будет производиться генерация кода.
Пример:
m_path = "/user/modelname_1.engee" #работа с абсолютным путём
engee.convert_model(m_path) #выведет engee-скрипт
m_abs_path = "modelname_2.engee" #работа с относительным путём
engee.convert_model(m_abs_path)
get_current_model
Возвращает текущую (активную) модель.
Details
Возвращает объект типа Model.
Сигнатура функции:
engee.get_current_model()
engee.gcm()
Аргументы:
-
Не имеет обязательных или опциональных аргументов.
get_current_system
Возвращает текущую (активную) систему.
Details
Сигнатура функции:
engee.get_current_system()
engee.gcs()
Аргументы:
-
Не имеет обязательных или опциональных аргументов.
get_logs
Получает сообщения из журнала, связанные с моделью.
Details
Сигнатура функции:
engee.get_logs()
engee.get_logs([m])
Аргументы:
-
m
— модель, относительно которой выполняется операция, по умолчанию, текущая модель. Если модель не открыта, то выводит исключениеNoModelOpenedException
.
get_param
Возвращает все параметры.
Details
Сигнатура функции:
engee.get_param(model)
engee.get_param("path")
engee.get_param("path", param)
Аргументы:
-
model
— модель, относительно которой выполняется операция. По умолчанию — текущая модель. -
"path"
— путь до модели. -
param
— искомый параметр с типом Symbol, либо String. При вызове выбирается определенный параметр.
get_results
Возвращает результаты последней симуляции модели в виде словаря Dict{String, DataFrame}
, где ключ — имя отслеживаемого порта.
Details
Сигнатура функции:
engee.get_results(model_name)
engee.get_results(model)
engee.get_results()
Аргументы:
-
model
— модель, относительно которой выполняется операция. По умолчанию — текущая модель.
get_status
Возвращает статус симуляции как объект типа SimulationStatus.
Details
Сигнатура функции:
engee.get_status()
Аргументы:
-
Не имеет обязательных или опциональных аргументов.
is_dirty
Проверяет, есть ли несохраненные изменения модели.
Details
Сигнатура функции:
engee.is_dirty("model")
engee.is_dirty("model_path")
Аргументы:
-
"model"
— модель, относительно которой выполняется операция. По умолчанию — текущая модель. -
"model_path"
— путь до модели.
load
Загружает модель из файла с расширением .engee, расположенного в file_path
.
Details
Возвращает объект типа Model.
Сигнатура функции:
engee.load("file_path"; "name", force = false)
Аргументы:
-
"file_path"
— путь к файлу, из которого будет загружена модель или данные. -
"name"
— используется для задания имени загружаемой модели или данных. -
force
— по умолчаниюfalse
. Если установленtrue
, то загрузка будет выполнена если файл уже был ранее загружен.
open
Возвращает открытую систему (объект типа System).
Details
Сигнатура функции:
engee.open("path")
engee.open("model")
engee.open(system)
Аргументы:
-
"path"
— путь до модели. -
"model"
— модель, относительно которой выполняется операция. По умолчанию — текущая модель. -
system
— путь до системы или объект типа ET.System.
pause
Приостанавливает запущенную симуляцию модели.
Details
Сигнатура функции:
engee.pause()
Аргументы:
-
Не имеет обязательных или опциональных аргументов.
resume
Возобновляет приостановленную симуляцию.
Details
Сигнатура функции:
engee.resume()
engee.resume(; verbose=false)
-
;
— все аргументы после точки с запятой должны быть именованными.
Аргументы:
-
verbose
— уточнение необходимости вывода прогресса исполнения модели на печать (по умолчаниюfalse
— не выводится).
run
Запускает исполнение модели.
Details
Если модель не указана, запускает симуляцию текущей модели.
Сигнатура функции:
engee.run()
engee.run(m; verbose=false)
-
;
— все аргументы после точки с запятой должны быть именованными.
Аргументы:
-
verbose
— уточнение необходимости вывода прогресса исполнения модели на печать (по умолчаниюfalse
— не выводится). -
m
— модель, относительно которой выполняется операция. По умолчанию — текущая модель.
save
Сохраняет модель по заданному пути.
Details
Сохраняет модель с именем "model_name"
по пути "file_path"
в файл с расширением .engee.
Сигнатура функции:
engee.save("model_name", "file_path"; force = false)
engee.save(model, "file_path"; force = false)
Аргументы:
-
model
— объект типа Model. -
"model_name"
— желаемое имя модели в системе. -
"file_path"
— директория сохраняемой модели. -
force
— если файл уже существует и параметрforce = true
, то перезаписывает файл. Еслиforce = false
, то завершается ошибкойFileAlreadyExists
. По умолчаниюforce = false
.
set_param!
Обновляет выбранные параметры блока.
Details
В первом случае обновляет выбранные параметры модели. Возвращает nothing
. Если в param передана структура настроек симуляции, настройки из нее будут скопированы.
Сигнатура функции:
engee.set_param!(model_name, param...)
engee.set_param!(model_name, param)
engee.set_param!(model, param...)
engee.set_param!(model, param)
Аргументы:
Для параметра param
:
-
"StartTime"
— время начала симуляции в виде Float64. -
"StopTime"
— время остановки симуляции в виде Float64.
"SolverType"
— тип решателя. Одно из значений: fixed-step (фиксированный шаг), variable-step
(переменный шаг).
"SolverName"
— имя решателя. Одно из валидных значений для fixed-step или variable-step соответственно. Тип данных String.
Метод использует тип данных String (строка), Float64 (числа с плавающей запятой), Pair (упорядоченная пара), Int64 (целочисленный тип) и Bool (логический тип).
Во втором случае обновляет выбранные параметры блока. Если изменяется параметр, который влечет за собой изменения количества портов, или состояния, то количество портов и состояние изменяются согласно переданным значениям параметра. Возвращает nothing
. Если в качестве второго параметра передана структура настроек блока, параметры из нее будут скопированы.
Сигнатура функции:
engee.set_param!(block_path,params...)
engee.set_param!(block, params...)
engee.set_param!(block, block_params)
engee.set_param!(block_path, block_params)
Аргументы:
-
"block_path"
— путь до блока. -
block
— структура ET.Block, которая хранит в себе данные идентификации блока. -
block_params
— структура всех настроек блока. -
params
— параметры блока в виде"name"
⇒value
("имя" ⇒ значение).
stop
Останавливает запущенную симуляцию.
Details
Сигнатура функции:
engee.stop()
Аргументы:
-
Не имеет обязательных или опциональных аргументов.
version
Возвращает короткую версию Engee.
Details
Сигнатура функции:
engee.version()
Аргументы:
-
Не имеет обязательных или опциональных аргументов.
screenshot
Печатает модель или систему в файл.
Details
Поддерживаемые форматы: .PNG, .SVG. В других случаях
выводит ошибку ErrorException("unsuported picture format:<FORMAT>")
Позиционирование: auto
(по умолчанию) или tiled
. В других случаях применится auto
.
Сигнатура функции:
screenshot("to_print", "save_path")
Аргументы:
"to_print"
— имя модели, с которой будет делаться скриншот.
"save_path"
— путь для сохранения скриншота.
Пример:
engee.screenshot("newmodel_1", "/user/saved.png") # без tiled
engee.screenshot("newmodel_1", "/user/saved.png"; position_mode="tiled") # с tiled
Методы engee.script
@include
Встраивает код тетрадки вместо вызова макроса.
Details
Сигнатура функции:
engee.script.@include("path")
Аргументы:
-
"path"
— путь до скрипта.