Документация Engee

Публичные методы программного управления

Список публичных методов программного управления

Все публичные методы программного управления, доступные в 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" — путь до скрипта.

edit

Открывает блокнот на редактирование.

Details

Если указано расширение иное от .ngscript, то выведет ошибку ErrorException("path should end with.ngscriptextension"). Если файла нет — он создается.

Сигнатура функции:

engee.script.edit("path")

Аргументы:

  • "path" — путь до скрипта.

extract_code

Извлекает код по указанному пути.

Details

Сигнатура функции:

engee.script.extract_code("path")

Аргументы:

  • "path" — путь до скрипта.