Программное управление РИТМ
|
Чтобы работать с функциями программного управления КПМ «РИТМ» в Engee, установите подсистему Engee.Интеграции:
|
На этой странице представлены все доступные функции программного управления КПМ «РИТМ» в Engee.
Методы RITM
#
EngeeDeviceManager.Targets.RITM_API.Ritm — Method
RITM_API.Ritm(url::String)
Установление адреса машины РИТМ.
Аргументы
-
url::String: Адрес машины РИТМ, например, "http://192.168.56.3:8000/".
Примеры
# Создадим объект РИТМ:
ritm = RITM_API.Ritm("http://192.168.56.3:8000/")
#
EngeeDeviceManager.Targets.RITM_API.buildModel — Function
buildModel(ritm, model, is_interactive_mode::Bool=false)::Nothing
Собирает и подготавливает модель для запуска на РИТМе.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
model::Any: структура модели. -
is_interactive_mode::Bool: флаг, указывающий режим выполнения модели:true— модель выполняется в интерактивном режиме;false(по умолчанию) — модель выполняется в независимом режиме.
Примеры
# Собираем и запускаем на РИТМе открытую на холсте standalone-модель:
model = engee.gcm()
RITM_API.buildModel(ritm, model, false)
RITM_API.runModel(ritm, model, false)
#
EngeeDeviceManager.Targets.RITM_API.disableAutostart — Method
RITM_API.disableAutostart(ritm)::Dict{String, Union{String, Int64, Bool, Nothing}}
Удаление модели из автозапуска.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ.
Примеры
RITM_API.disableAutostart(ritm)
#
EngeeDeviceManager.Targets.RITM_API.getAutostart — Method
RITM_API.getAutostart(ritm)::Union{Dict{String, Union{String, Int64, Bool, Nothing}}, Nothing}
Получение модели, находящейся в автозапуске.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ.
Примеры
RITM_API.getAutostart(ritm)
#
EngeeDeviceManager.Targets.RITM_API.getData — Method
RITM_API.getData(ritm::Any, model_name::String, file_path::String, in_file::Bool = false)
Возвращает результат профилирования модели на РИТМе. В зависимости от значения in_file, результат может быть возвращен как строка либо сохранен в файл по указанному пути.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
model_name::String: имя модели, для которой запрашиваются данные профилирования. -
file_path::String: путь, по которому сохранить результат (еслиin_file = true). Еслиin_file = false, значение игнорируется. -
in_file::Bool = false: указывает, как вернуть результат. Еслиtrue, данные сохраняются в файл поfile_path. Еслиfalse, возвращается строка с результатом.
Примеры
# Получает данные профилирования как строку
result = RITM_API.getData(ritm, "newmodel_1", "", false)
# Сохраняет данные в файл на РИТМе
RITM_API.getData(ritm, "newmodel_1", "/user/profile.txt", true)
#
EngeeDeviceManager.Targets.RITM_API.getDiagnostic — Method
getDiagnostic(ritm)::Nothing
Загружает диагностический архив ritm_diagnostic.zip в текущую директорию Engee.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ.
Примеры
RITM_API.getDiagnostic(ritm)
#
EngeeDeviceManager.Targets.RITM_API.getFile — Method
RITM_API.getFile(ritm::Any, file_name::String; from=/mydir::String, to=::String)
Получает указанный файл file_name из директории /mydir.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
file_name::String: имя интересующего файла. -
from=/mydir::String: путь до интересующей директории (по умолчанию/home/ritm/). -
to=::String: путь до директории в Engee для сохранения файла (по умолчанию в текущей).
Примеры
# Получаем файл install_manifest.txt из директории /home/ritm/build/newmodel_1/build в текущую директорию Engee:
RITM_API.getFile(ritm, "install_manifest.txt"; from="/home/ritm/build/newmodel_1/build/", to="")
#
EngeeDeviceManager.Targets.RITM_API.getLog — Method
RITM_API.getLog(ritm::Any, num::Int64)
Возвращает указанное число строк логов выполнения модели на РИТМе.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
num::Int64: число выводимых строк из логов.
Примеры
RITM_API.getLog(ritm, 10)
#
EngeeDeviceManager.Targets.RITM_API.getPtpSettings — Method
getPtpSettings(ritm) -> Vector{String}
Получает сохраненные настройки PTP. Возвращает настройки PTP — вектор строк с выбранным интерфейсом, механизмом задержки, сетевым транспортом, ролью и атрибутами PTP-часов.
Примеры
getPtpSettings(ritm)
#
EngeeDeviceManager.Targets.RITM_API.getPtpState — Method
getPtpState(ritm) -> Vector{String}
Получает состояние PTP — вектор строк, обычно с интерфейсом, ролью и состоянием. Возвращает текущее состояние PTP: запущен или остановлен, а также интерфейс и роль, если PTP запущен.
Примеры
getPtpState(ritm)
#
EngeeDeviceManager.Targets.RITM_API.getScreenshot — Method
RITM_API.getScreenshot(ritm::Any, filename::String = "screenshot.png")
Создает скриншот на целевой платформе РИТМ, и возвращает путь к сохраненному изображению. Снимок экрана сохраняется во временной директории на машине РИТМ. Имя выходного файла можно указать явно; по умолчанию используется "screenshot.png".
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
filename::String = "screenshot.png": имя файла, в который будет сохранен скриншот (на стороне РИТМа).
Примеры
# Создает скриншот и получает путь к нему
path = RITM_API.getScreenshot(ritm, "example.png")
#
EngeeDeviceManager.Targets.RITM_API.isConnected — Method
RITM_API.isConnected(ritm::Any)
Проверяет доступность РИТМа.
Аргументы
ritm::Any: объект целевой платформы РИТМ.
Примеры
RITM_API.isConnected(ritm)
#
EngeeDeviceManager.Targets.RITM_API.isRunning — Method
RITM_API.isRunning(ritm::Any, model_name::String)
Проверяет, выполняется ли указанная модель на целевой платформе РИТМ. Возвращает true, если модель с заданным именем в данный момент в процессе выполнения на машине РИТМ, и false если не выполняется.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
model_name::String: имя модели, состояние которой необходимо проверить.
Примеры
# Проверяет, запущена ли модель "newmodel_1"
is_active = RITM_API.isRunning(ritm, "newmodel_1")
#
EngeeDeviceManager.Targets.RITM_API.listFiles — Method
RITM_API.listFiles(ritm::Any, path::String)
Выводит список файлов в указанной директории.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
path::String: путь до интересующей директории.
Примеры
RITM_API.listFiles(ritm, "/home/ritm/")
#
EngeeDeviceManager.Targets.RITM_API.memInfo — Function
RITM_API.memInfo(ritm::Any, model::String)
Выводит информацию о потребляемой моделью памяти.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
model::String: имя модели. Если оставить пустым"", то вернет результат профилирования системы в виде[total, used, free]. Если указать имя модели, то вернет количество байт памяти, потребляемой моделью.
Примеры
RITM_API.memInfo(ritm, "newmodel_1")
#
EngeeDeviceManager.Targets.RITM_API.poweroff — Method
RITM_API.poweroff(ritm)::Dict{String, Union{String, Int64, Bool, Nothing}}
Выключает машину.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ.
Примеры
RITM_API.poweroff(ritm)
#
EngeeDeviceManager.Targets.RITM_API.readFile — Method
RITM_API.readFile(ritm::Any, file_name::String; path=/mydir::String)
Выводит содержимое указанного файла file_name из директории /home/ritm/build/model_name/build/, где model_name — имя модели в Engee.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
file_name::String: имя интересующего файла. -
path=/mydir::String: путь до директории с интересующим файлом (по умолчанию/home/ritm/build/model_name/build/).
Примеры
# Выводим содержимое файла install_manifest.txt из директории /home/ritm/build/newmodel_1/build:
RITM_API.readFile(ritm, "install_manifest.txt"; path="/home/ritm/build/newmodel_1/build/")
#
EngeeDeviceManager.Targets.RITM_API.reboot — Method
RITM_API.reboot(ritm)::Dict{String, Union{String, Int64, Bool, Nothing}}
Перезагружает машину.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ.
Примеры
RITM_API.reboot(ritm)
#
EngeeDeviceManager.Targets.RITM_API.removeFile — Method
RITM_API.removeFile(ritm::Any, path::String)::String
Удаляет файл по указанному пути на целевой платформе РИТМ. Возвращает статус удаления файла с РИТМа.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
path::String: путь к удаляемому с РИТМа файлу.
Примеры
# Удалить файл newmodel_1 на РИТМ:
RITM_API.removeFile(ritm, "/home/ritm/newmodel_1.engee")
#
EngeeDeviceManager.Targets.RITM_API.resetPtpSettings — Method
resetPtpSettings(ritm) -> Dict{String, Union{String, Int64, Bool, Nothing}}
Сбрасывает сохраненные настройки PTP на РИТМе. Возвращает словарь с результатом операции: статус и сообщение об ошибке (если есть).
После сброса перед запуском PTP нужно заново настроить нужный интерфейс через setupEthPtp.
#
EngeeDeviceManager.Targets.RITM_API.runModel — Function
RITM_API.runModel(
ritm,
model,
is_interactive_mode::Bool=false;
simulation_uuid=string(uuid4()),
status_callback=(args...) -> nothing,
termination_callback=(args...) -> nothing,
) -> Union{Channel{TargetSimulationStatus}, Nothing}
Запустить на РИТМе ранее собранную модель.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
model::Any: структура модели. -
is_interactive_mode::Bool: флаг, указывающий режим выполнения модели:true— модель выполняется в интерактивном режиме;false(по умолчанию) — модель выполняется в независимом режиме. -
simulation_uuid::String: идентификатор запуска для интерактивного режима. -
status_callback: функция вызывается для каждого полученного статуса выполнения. -
termination_callback: функция вызывается по завершении интерактивного выполнения.
Значение nothing используется для автономного выполнения или для канала состояния интерактивного выполнения.
Примеры
RITM_API.runModel(ritm, model)
#
EngeeDeviceManager.Targets.RITM_API.setAutostart — Method
RITM_API.setAutostart(ritm, model_name::String)::Dict{String, Union{String, Int64, Bool, Nothing}}
Помещение модели в автозапуск.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
model_name::String: имя модели.
Примеры
RITM_API.setAutostart(ritm)
#
EngeeDeviceManager.Targets.RITM_API.setupEthPtp — Function
setupEthPtp(
ritm,
eth_number,
role="Master";
delay_mech="E2E",
network_tr="UDPv4",
priority1=128,
priority2=128,
clock_class=248,
clock_accuracy=254,
) -> Dict{String, String}
Настраивает PTP на выбранном Ethernet-интерфейсе РИТМа. Возвращает словарь с результатом операции: статус и сообщение об ошибке (если есть).
Аргументы
-
eth_number: номер Ethernet-интерфейса РИТМа, например1для Ethernet 1. -
role: задает роль локальных часов PTP:"Master"или"Slave". -
delay_mech: режим работы PTP. Возможные значения"E2E","P2P"или"Auto". Значение по умолчанию"E2E". -
network_tr: сетевой протокол. Возможные значения"UDPv4","UDPv6"and"L2". Значение по умолчанию"UDPv4". -
priority1: атрибут локальных часов"Приоритет 1". Возможный диапазон0до255. Значение по умолчанию128. -
priority2: атрибут локальных часов"Приоритет 2". Возможный диапазон0до255. Значение по умолчанию128. -
clock_class: атрибут локальных часов"Класс". Возможный диапазон0до255. Значение по умолчанию248. -
clock_accuracy: атрибут локальных часов"Точность". Возможный диапазон0до255. Значение по умолчанию254.
#
EngeeDeviceManager.Targets.RITM_API.setupEthernet — Method
RITM_API.setupEthernet(ritm, interface_id::Int64, ip::String, mask::Int64)::Dict{String, Union{String, Int64, Bool, Nothing}}
Настройка Ethernet-интерфейса машины.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
interface_id::Int64: идентификатор Ethernet-интерфейса. -
ip::String: IP-адрес интерфейса. -
mask::Int64: маска сети.
Примеры
RITM_API.setupEthernet(ritm, 0, "192.168.0.10", 24)
#
EngeeDeviceManager.Targets.RITM_API.startPtp — Method
startPtp(ritm, eth_number) -> Dict{String, Union{String, Int64, Bool, Nothing}}
Запускает PTP на выбранном Ethernet-интерфейсе РИТМа. Возвращает словарь с результатом операции: статус и сообщение об ошибке (если есть).
Перед запуском PTP необходимо настроить интерфейс через setupEthPtp.
Аргументы
-
eth_number: номер Ethernet интерфейса. Возможные значения"HostTarget"или"1"—"max ethernet number".
Примеры
startPtp(ritm, 1)
#
EngeeDeviceManager.Targets.RITM_API.stopModel — Method
RITM_API.stopModel(ritm)::Nothing
Останавливает модель на РИТМе.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ.
Примеры
RITM_API.stopModel(ritm)
#
EngeeDeviceManager.Targets.RITM_API.stopPtp — Method
stopPtp(ritm, eth_number) -> Dict{String, Union{String, Int64, Bool, Nothing}}
Останавливает PTP на выбранном Ethernet-интерфейсе РИТМа. Возвращает словарь с результатом операции: статус и сообщение об ошибке (если есть).
Аргументы
-
eth_number: номер Ethernet интерфейса. Возможные значения"HostTarget"или"1"—"max ethernet number".
Примеры
stopPtp(ritm, 1)
#
EngeeDeviceManager.Targets.RITM_API.updateFirmware — Function
RITM_API.updateFirmware(
ritm,
firmware_path::String="",
checksum_path::String="";
reboot::Bool=true,
show_progress=false,
)::Nothing
Обновляет прошивку РИТМ.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
firmware_path::String: локальный путь к файлу прошивки. -
checksum_path::String: локальный путь к файлу контрольной суммы. -
reboot::Bool: перезагрузка машины РИТМ после успешного обновления. Значение по умолчанию —true. -
show_progress::Bool: вывести в лог информацию о ходе обновления.
Примеры
RITM_API.updateFirmware(ritm; show_progress=true)
RITM_API.updateFirmware(ritm, "/user/firmware.raucb", "/user/firmware.raucb.checksum")
#
EngeeDeviceManager.Targets.RITM_API.updateSupportPackage — Function
RITM_API.updateSupportPackage(ritm, support_package_path::String=""; show_progress=false)::Nothing
Обновляет пакет поддержки РИТМ.
Если аргумент support_package_path не указан, устанавливается пакет, соответствующий текущей версии Engee. Если аргумент support_package_path задан, устанавливается пакет из указанного локального файла.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
support_package_path::String: локальный путь к пакету поддержки. -
show_progress::Bool: выводить в лог информацию о ходе выполнения обновления.
Примеры
RITM_API.updateSupportPackage(ritm)
RITM_API.updateSupportPackage(ritm, "/user/ritm_support_package.tar.gz"; show_progress=true)
#
EngeeDeviceManager.Targets.RITM_API.uploadFile — Method
RITM_API.uploadFile(ritm::Any, filename::AbstractString; from::AbstractString=pwd(), to::AbstractString="/home/ritm")::String
Загружает файл из Engee на целевую платформу РИТМ.
Аргументы
-
ritm::Any: объект целевой платформы РИТМ. -
filename::AbstractString: имя загружаемого на РИТМ файла. -
from::AbstractString = pwd(): путь в Engee к директории, где расположен загружаемый файл (по умолчанию — текущая директория). -
to::AbstractString = "/home/ritm": путь на РИТМе, куда будет загружен файл (по умолчанию —/home/ritm).
Примеры
using Main.EngeeDeviceManager.Targets
using Main.EngeeDeviceManager.Targets.RITM.RITM_API
# Создает объект РИТМ и задает адрес
ritm = Targets.RITM_API.Ritm("http://192.168.56.3:8000/")
# Загружает файл test.bin из текущей директории Engee (pwd()) в /home/ritm на РИТМе
res = RITM_API.uploadFile(ritm, "test.bin")
# Загружает файл из указанной директории Engee (/user/...) в указанную директорию на РИТМе
res = RITM_API.uploadFile(ritm, "install_manifest.txt"; from="/user/project/", to="/home/ritm/data/")