Программное управление РИТМ
|
Чтобы работать с функциями программного управления КПМ «РИТМ» в Engee, установите пакет поддержки оборудования, как указано в статье. После установки импортируйте модуль и добавьте машину РИТМ:
Замените имя и IP-адрес в примере значениями своей машины РИТМ либо используйте уже зарегистрированную машину. |
На этой странице представлены все доступные функции программного управления КПМ «РИТМ» в Engee.
Методы RITM_API
У большинства функций первым аргументом является name::String — имя или IP-адрес машины, сохраненной в Engee (например "RITM 1", "192.168.56.3"). Машину нужно предварительно добавить через RITM_API.addMachine или в приложении РИТМ.Управление машинами
. Если машина выключена или клиентская программа Engee.Интеграции не подключена к Engee, вызов вернет ошибку с описанием причины либо исключение.
#
EngeeDeviceManager.Targets.RITM_API.addMachine — Method
RITM_API.addMachine(name, ip; port="8000", is_default=false)::Nothing
Добавляет машину в список известных в Engee.
В случае успешного добавления возвращает nothing и выводит сообщение об успешном добавлении.
Аргументы
-
name::String: имя машины. -
ip::String: IP-адрес машины. -
port::String: порт машины. Этот аргумент передается как именованный (port="..."). Значение по умолчанию —"8000". -
is_default::Bool: пометка машины как используемой по умолчанию. Этот аргумент передается как именованный (is_default=true). Значение по умолчанию —false. Еслиis_default=true, новая машина становится машиной по умолчанию, в том числе в приложении «РИТМ.Управление машинами».
Примеры
RITM_API.addMachine("RITM 2", "192.168.56.4")
RITM_API.addMachine("RITM 3", "192.168.56.5"; is_default=true)
#
EngeeDeviceManager.Targets.RITM_API.buildModel — Method
RITM_API.buildModel(name, model, is_interactive_mode::Bool=false)::Nothing
Собирает и подготавливает модель для запуска на РИТМе.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
model::EngeeModel: структура модели. -
is_interactive_mode::Bool: определяет режим выполнения модели:true— модель выполняется в интерактивном режиме;false(по умолчанию) — модель выполняется в независимом режиме.
Примеры
# Собираем и запускаем на РИТМе открытую на холсте standalone-модель:
model = engee.gcm()
RITM_API.buildModel("RITM 1", model)
RITM_API.runModel("RITM 1", model; is_interactive_mode=false)
#
EngeeDeviceManager.Targets.RITM_API.changeParam — Method
RITM_API.changeParam(name, block_key, param, data)
Изменяет параметр модели, запущенной в интерактивном режиме, во время выполнения модели.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
block_key::Union{String, UUID}: путь к блоку в модели (например,"model_name/Block Name") или UUID блока. -
param::String: имя параметра. -
data::Union{Bool, Float64, Int64, Vector{Bool}, Vector{Float64}, Vector{Int64}}: новое значение параметра; приводится к типу, объявленному в модели.
Примеры
RITM_API.changeParam("RITM 1", "my_model/Gain", "Gain", 2.5)
#
EngeeDeviceManager.Targets.RITM_API.disableAutostart — Method
RITM_API.disableAutostart(name)
Удаляет модель из автозапуска.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ.
Примеры
RITM_API.disableAutostart("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.downloadFile — Method
RITM_API.downloadFile(name, filename; from="/home/ritm", to=pwd())::Nothing
Скачивает указанный файл filename из директории на РИТМе в директорию Engee.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
filename::String: имя файла для скачивания. -
from::String: путь до директории на РИТМе. Этот аргумент передается как именованный (from="..."). Значение по умолчанию —"/home/ritm". -
to::String: путь до директории на Engee. Этот аргумент передается как именованный (to="..."). Значение по умолчанию — текущая директория.
Примеры
RITM_API.downloadFile("RITM 1", "example_ritm_extmodel_profile.txt"; from="/home/ritm/build/example_ritm_extmodel/")
#
EngeeDeviceManager.Targets.RITM_API.getAutostart — Method
RITM_API.getAutostart(name)::Vector{String}
Возвращает вектор имен моделей, находящихся в автозапуске, или пустой вектор, если автозапуск не настроен.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ.
Примеры
RITM_API.getAutostart("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.getDiagnostic — Method
RITM_API.getDiagnostic(name)::Nothing
Загружает диагностический архив ritm_diagnostic.zip в текущую директорию Engee.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ.
Примеры
RITM_API.getDiagnostic("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.getIPByName — Method
RITM_API.getIPByName(name)::Union{String, Nothing}
Возвращает IP-адрес машины РИТМ по ее имени. Возвращает nothing, если машины с таким именем нет.
Аргументы
-
name::String: имя машины.
Примеры
RITM_API.getIPByName("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.getLog — Method
RITM_API.getLog(name, num)::String
Возвращает последние num строк логов выполнения модели на РИТМе.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
num::Int64: число выводимых строк из логов.
Примеры
RITM_API.getLog("RITM 1", 10)
#
EngeeDeviceManager.Targets.RITM_API.getMachines — Method
RITM_API.getMachines()::Vector{Dict{String, Any}}
Список машин, сохраненных в Engee.
Возвращает вектор словарей с ключами "name", "ip", "port" и "default".
"default" означает отображаемую по умолчанию машину в «РИТМ.Управление машинами».
Примеры
RITM_API.getMachines()
#
EngeeDeviceManager.Targets.RITM_API.getNameByIP — Method
RITM_API.getNameByIP(ip)::Vector{String}
Возвращает имена всех машин РИТМ с заданным IP-адресом.
Аргументы
-
ip::String: IP-адрес машины.
Примеры
RITM_API.getNameByIP("192.168.56.3")
#
EngeeDeviceManager.Targets.RITM_API.getProfileData — Method
RITM_API.getProfileData(name, model_name; engee_location="/user/", in_file=false)::Union{String, Nothing}
Возвращает в виде строки или записывает в файл результаты профилирования модели на РИТМе.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
model_name::String: имя модели. -
engee_location::String: директория Engee для записи файла, еслиin_file=true. Этот аргумент передается как именованный (engee_location="..."). Значение по умолчанию —"/user/". -
in_file::Bool: записать в файл, если заданоtrue, вернуть строку, если заданоfalse(по умолчанию). Этот аргумент передается как именованный (in_file=true).
Примеры
data = RITM_API.getProfileData("RITM 1", "my_model")
RITM_API.getProfileData("RITM 1", "my_model"; engee_location="/user/", in_file=true)
#
EngeeDeviceManager.Targets.RITM_API.getPtpSettings — Method
RITM_API.getPtpSettings(name)::Vector{String}
Возвращает сохраненные настройки PTP в виде вектора, который содержит строки с выбранным интерфейсом, механизмом задержки, сетевым транспортом, ролью и атрибутами PTP-часов.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ.
Примеры
RITM_API.getPtpSettings("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.getPtpState — Method
RITM_API.getPtpState(name)::Vector{String}
Возвращает текущее состояние PTP: запущен или остановлен, а также интерфейс и роль, если PTP запущен.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ.
Примеры
RITM_API.getPtpState("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.getScreenshot — Method
RITM_API.getScreenshot(name, filename)::String
Создает скриншот на целевой платформе РИТМ и загружает его в файловую систему Engee.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
filename::String: имя файла, в который будет сохранен скриншот, по умолчанию"screenshot.png".
Примеры
path = RITM_API.getScreenshot("RITM 1", "example.png")
#
EngeeDeviceManager.Targets.RITM_API.isConnected — Method
RITM_API.isConnected(name)::Bool
Проверяет доступность машины РИТМ. Возвращает true, если машина РИТМ доступна, и false в противном случае.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ.
Примеры
RITM_API.isConnected("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.isMachineExists — Method
RITM_API.isMachineExists(name::String)::Bool
Проверяет, существует ли машина РИТМ с заданным именем в Engee.
Возвращает true, если машина существует, и false в противном случае.
Аргументы
-
name::String: имя машины.
Примеры
RITM_API.isMachineExists("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.isRunning — Method
RITM_API.isRunning(name, model_name)::Bool
Проверяет состояние запуска модели на РИТМе. Возвращает true, если модель с заданным именем в данный момент в процессе выполнения на машине РИТМ, и false, если не выполняется.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
model_name::String: имя модели, состояние которой необходимо проверить.
Примеры
RITM_API.isRunning("RITM 1", "newmodel_1")
#
EngeeDeviceManager.Targets.RITM_API.listFiles — Method
RITM_API.listFiles(name, path)::Vector{String}
Возвращает список файлов в указанной директории.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
path::String: путь до интересующей директории.
Примеры
RITM_API.listFiles("RITM 1", "/home/ritm")
#
EngeeDeviceManager.Targets.RITM_API.memInfo — Method
RITM_API.memInfo(name, model_name)::Union{Vector{Int64}, Int64}
Возвращает информацию о потребляемой моделью памяти.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
model_name::Union{String, Nothing}: имя модели. Если этот аргумент не указан или задан пустой строкой, возвращается результат профилирования системы в виде[total, used, free]. Если указано имя модели — количество байт памяти, потребляемой моделью.
Примеры
RITM_API.memInfo("RITM 1", "newmodel_1")
#
EngeeDeviceManager.Targets.RITM_API.poweroff — Method
RITM_API.poweroff(name)
Выключает машину.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ.
Примеры
RITM_API.poweroff("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.readFile — Method
RITM_API.readFile(name, filename; path="/home/ritm")::String
Возвращает содержимое указанного файла на машине РИТМ.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
filename::String: имя интересующего файла. -
path::String: путь до интересующей директории. Этот аргумент передается
как именованный (path="..."). Значение по умолчанию — "/home/ritm".
Примеры
RITM_API.readFile("RITM 1", "install_manifest.txt"; path="/home/ritm/build/newmodel_1/build/")
#
EngeeDeviceManager.Targets.RITM_API.reboot — Method
RITM_API.reboot(name)
Перезагружает машину.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ.
Примеры
RITM_API.reboot("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.removeFile — Method
RITM_API.removeFile(name, path)
Удаляет файл по указанному пути на РИТМе.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
path::String: путь к удаляемому файлу на РИТМе.
Примеры
RITM_API.removeFile("RITM 1", "/home/ritm/newmodel_1.engee")
#
EngeeDeviceManager.Targets.RITM_API.removeMachine — Method
RITM_API.removeMachine(name)::Nothing
Удаляет машину по точному имени из списка известных в Engee.
В случае успешного удаления возвращает nothing и выводит сообщение об успешном удалении.
Аргументы
-
name::String: имя машины.
Примеры
RITM_API.removeMachine("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.resetPtpSettings — Method
RITM_API.resetPtpSettings(name)::Dict{String, Union{String, Int64, Bool, Nothing}}
Сбрасывает сохраненные настройки PTP на РИТМе. Возвращает словарь с результатом операции: статус и сообщение об ошибке (если есть).
После сброса перед запуском PTP заново настройте интерфейс через setupEthPtp.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ.
Примеры
RITM_API.resetPtpSettings("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.runModel — Method
RITM_API.runModel(name, model; is_interactive_mode=false)
Запускает на РИТМе ранее собранную модель.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
model::EngeeModel: структура модели. -
is_interactive_mode::Bool: режим запуска, должен совпадать с режимом сборки:true— модель выполняется в интерактивном режиме;false(по умолчанию) — модель выполняется в независимом режиме.
Примеры
RITM_API.runModel("RITM 1", model; is_interactive_mode=false)
#
EngeeDeviceManager.Targets.RITM_API.setAutostart — Method
RITM_API.setAutostart(name, model_name::String)
Помещает модель в автозапуск.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
model_name::String: имя модели.
Примеры
RITM_API.setAutostart("RITM 1", "my_model")
#
EngeeDeviceManager.Targets.RITM_API.setupEthPtp — Method
RITM_API.setupEthPtp(
name,
eth_number,
role;
delay_mech="E2E",
network_tr="UDPv4",
priority1=128,
priority2=128,
clock_class=248,
clock_accuracy=254,
)::Dict{String, Union{String, Int64, Bool, Nothing}}
Настраивает PTP на выбранном Ethernet-интерфейсе РИТМа. Возвращает словарь с результатом операции: статус и сообщение об ошибке (если есть).
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
eth_number::Union{Int64, String}: номер Ethernet-интерфейса. Может быть задан в виде строки"HostTarget"или в виде целого числа от1до максимального количества интерфейсов Ethernet. -
role::String: задает роль локальных часов PTP:"Master"или"Slave". -
delay_mech: режим работы PTP. Возможные значения"E2E","P2P"или"Auto". Значение по умолчанию"E2E". -
network_tr: сетевой протокол. Возможные значения"UDPv4","UDPv6"и"L2". Значение по умолчанию"UDPv4". -
priority1: атрибут локальных часов"Priority 1". Возможный диапазон от0до255. Значение по умолчанию128. -
priority2: атрибут локальных часов"Priority 2". Возможный диапазон от0до255. Значение по умолчанию128. -
clock_class: атрибут локальных часов"Class". Возможный диапазон от0до255. Значение по умолчанию248. -
clock_accuracy: атрибут локальных часов"Accuracy". Возможный диапазон от0до255. Значение по умолчанию254.
#
EngeeDeviceManager.Targets.RITM_API.setupEthernet — Method
RITM_API.setupEthernet(name, interface_id, ip, mask)
Настраивает Ethernet-интерфейс машины.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
interface_id::Int64: идентификатор Ethernet-интерфейса. -
ip::String: IP-адрес интерфейса. -
mask::Int64: маска сети.
Примеры
RITM_API.setupEthernet("RITM 1", 0, "192.168.0.10", 24)
#
EngeeDeviceManager.Targets.RITM_API.startPtp — Method
RITM_API.startPtp(name, eth_number)::Dict{String, Union{String, Int64, Bool, Nothing}}
Запускает PTP на выбранном Ethernet-интерфейсе РИТМа. Возвращает словарь с результатом операции: статус и сообщение об ошибке (если есть).
Перед запуском PTP необходимо настроить интерфейс через setupEthPtp.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
eth_number::Union{Int64, String}: номер Ethernet-интерфейса. Может быть задан в виде строки"HostTarget"или в виде целого числа от1до максимального количества интерфейсов Ethernet.
Примеры
RITM_API.startPtp("RITM 1", 1)
#
EngeeDeviceManager.Targets.RITM_API.stopModel — Method
RITM_API.stopModel(name)::Nothing
Останавливает модель на РИТМе.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ.
Примеры
RITM_API.stopModel("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.stopPtp — Method
RITM_API.stopPtp(name, eth_number)::Dict{String, Union{String, Int64, Bool, Nothing}}
Останавливает PTP на выбранном Ethernet-интерфейсе РИТМа. Возвращает словарь с результатом операции: статус и сообщение об ошибке (если есть).
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
eth_number::Union{Int64, String}: номер Ethernet-интерфейса. Может быть задан в виде строки"HostTarget"или в виде целого числа от1до максимального количества интерфейсов Ethernet.
Примеры
RITM_API.stopPtp("RITM 1", 1)
#
EngeeDeviceManager.Targets.RITM_API.uploadFile — Method
RITM_API.uploadFile(name, filename; from=pwd(), to="/home/ritm")
Загружает файл из Engee на РИТМ.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ. -
filename::String: имя загружаемого на РИТМ файла. -
from::String: путь в Engee к директории, где расположен загружаемый файл (по умолчанию — текущая директория). -
to::String: путь на РИТМе, куда будет загружен файл (по умолчанию —"/home/ritm").
Примеры
RITM_API.uploadFile("RITM 1", "my_file.txt"; from="/user/", to="/home/ritm")
#
EngeeDeviceManager.Targets.RITM_API.version — Method
RITM_API.version(name)::Dict{String, String}
Версии прошивки и пакета поддержки РИТМ. Возвращает словарь с ключами:
-
firmware::String— версия прошивки. -
support_package::String— версия пакета поддержки.
Аргументы
-
name::String: имя или IP-адрес машины РИТМ.
Примеры
RITM_API.version("RITM 1")