AnyMath 文档

节奏软件控制

要使用 AnyMath 中的KPM"RITM"的软件管理功能,请安装*AnyMath子系统。综合服务*:

engee.package.install("Engee-Device-Manager")

本页包含 AnyMath 中KPM"RITM"的所有可用软件管理功能。

方法 里特姆

RITM_API.Ritm(url::String)

Установление адреса машины РИТМ.

Аргументы

  • url::String: Адрес машины РИТМ, например, "http://192.168.56.3:8000/".

Примеры

# Создадим объект РИТМ:

ritm = RITM_API.Ritm("http://192.168.56.3:8000/")
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)
RITM_API.disableAutostart(ritm)::Dict{String, Union{String, Int64, Bool, Nothing}}

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

Аргументы

  • ritm::Any: объект целевой платформы РИТМ.

Примеры

RITM_API.disableAutostart(ritm)
RITM_API.getAutostart(ritm)::Union{Dict{String, Union{String, Int64, Bool, Nothing}}, Nothing}

Получение модели, находящейся в автозапуске.

Аргументы

  • ritm::Any: объект целевой платформы РИТМ.

Примеры

RITM_API.getAutostart(ritm)
RITM_API.getData(ritm::Any, model_name::String, file_path::String, in_file::Bool = false)

返回基于节奏分析模型的结果。 视值而定 in_file 结果可以作为字符串返回,也可以使用指定的路径保存到文件中。

参数

  • ritm::Any:目标节奏平台的对象。 它是使用连续命令设置的 ritm = Targets.RITM.Ritm()Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/").

  • 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)
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)
getDiagnostic(ritm)::Nothing

Загружает диагностический архив ritm_diagnostic.zip в текущую директорию Engee.

Аргументы

  • ritm::Any: объект целевой платформы РИТМ.

Примеры

RITM_API.getDiagnostic(ritm)
RITM_API.getFile(ritm::Any, file_name::String; from=/mydir::String, to=::String)

检索指定的文件 file_name 从目录 /home/ritm/build/model_name/build/,在哪里 model_name -Engee中的模型名称。

参数

  • ritm::Any:目标节奏平台的对象。 它是使用连续命令设置的 ritm = Targets.RITM.Ritm()Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/").

  • file_name::String:感兴趣的文件的名称。

  • from=/mydir::String:带有感兴趣文件的目录的路径(默认情况下 /home/ritm/build/model_name/build/).

  • to=::StringEngee中保存文件的目录路径(默认情况下在当前目录中)。

例子

RITM_API.getFile(ritm, "install_manifest.txt"; from="/home/ritm/build/newmodel_1/build/", to="")
RITM_API.getLog(ritm::Any, num::Int64)

返回节奏指定的模型执行日志行数。

参数

  • ritm::Any:目标节奏平台的对象。 它是使用连续命令设置的 ritm = Targets.RITM.Ritm()Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/").

  • num::Int64:日志输出行数。

例子

RITM_API.getLog(ritm, 10)
getPtpSettings(ritm) -> Vector{String}

Получает сохраненные настройки PTP. Возвращает настройки PTP — вектор строк с выбранным интерфейсом, механизмом задержки, сетевым транспортом, ролью и атрибутами PTP-часов.

Примеры

getPtpSettings(ritm)
getPtpState(ritm) -> Vector{String}

Получает состояние PTP — вектор строк, обычно с интерфейсом, ролью и состоянием. Возвращает текущее состояние PTP: запущен или остановлен, а также интерфейс и роль, если PTP запущен.

Примеры

getPtpState(ritm)
RITM_API.getScreenshot(ritm::Any, filename::String = "screenshot.png")

在目标节奏平台上创建屏幕截图,并返回保存图像的路径。 屏幕截图保存在节奏机器上的临时目录中。 可以显式指定输出文件的名称;默认情况下,使用该名称 "screenshot.png".

参数

  • ritm::Any:目标节奏平台的对象。 它是使用连续命令设置的 ritm = Targets.RITM.Ritm()Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/").

  • filename::String = "screenshot.png":将保存屏幕截图的文件的名称(在节奏方面)。

例子

# 创建屏幕截图并获取其路径
path = RITM_API.getScreenshot(ritm, "example.png")
RITM_API.isConnected(ritm::Any)

检查节奏的可用性。

参数

ritm::Any:目标节奏平台的对象。 它是使用连续命令设置的 ritm = Targets.RITM.Ritm()Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/").

例子

RITM_API.isConnected(ritm)
RITM_API.isRunning(ritm::Any, model_name::String)

检查指定的模型是否在目标节奏平台上运行。 申报表 true 如果具有指定名称的模型当前在节奏机器上进行,并且 false 如果不执行。

参数

  • ritm::Any:目标节奏平台的对象。 它是使用连续命令设置的 ritm = Targets.RITM.Ritm()Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/").

  • model_name::String:需要检查条件的模型的名称。

例子

# 检查"newmodel_1"模型是否正在运行
is_active = RITM_API.isRunning(ritm, "newmodel_1")
RITM_API.listFiles(ritm::Any, path::String)

显示指定目录中的文件列表。

参数

  • ritm::Any:目标节奏平台的对象。 它是使用连续命令设置的 ritm = Targets.RITM.Ritm()Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/").

  • path::String:感兴趣目录的路径。

例子

RITM_API.listFiles(ritm, "/home/ritm/")
RITM_API.memInfo(ritm::Any, model::String)

显示有关模型消耗的内存的信息。

参数

  • ritm::Any:目标节奏平台的对象。 它是使用连续命令设置的 ritm = Targets.RITM.Ritm()Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/").

  • model::String:模型的名称。 如果留空 "",然后以窗体返回对系统进行分析的结果 [total, used, free]. 如果指定模型名称,则返回模型消耗的内存字节数。

例子

RITM_API.memInfo(ritm, "newmodel_1")
RITM_API.poweroff(ritm)::Dict{String, Union{String, Int64, Bool, Nothing}}

Выключает машину.

Аргументы

  • ritm::Any: объект целевой платформы РИТМ.

Примеры

RITM_API.poweroff(ritm)
RITM_API.readFile(ritm::Any, file_name::String; path=/mydir::String)

输出指定文件的内容 file_name 从目录 /home/ritm/build/model_name/build/,在哪里 model_name -Engee中的模型名称。

参数

  • ritm::Any:目标节奏平台的对象。 它是使用连续命令设置的 ritm = Targets.RITM.Ritm()Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/").

  • file_name::String:感兴趣的文件的名称。

  • path=/mydir::String:带有感兴趣文件的目录的路径(默认情况下 /home/ritm/build/model_name/build/).

例子

RITM_API.readFile(ritm, "install_manifest.txt"; path="/home/ritm/build/newmodel_1/build/")
RITM_API.reboot(ritm)::Dict{String, Union{String, Int64, Bool, Nothing}}

Перезагружает машину.

Аргументы

  • ritm::Any: объект целевой платформы РИТМ.

Примеры

RITM_API.reboot(ritm)
RITM_API.removeFile(ritm::Any, path::String)::String

使用目标节奏平台上的指定路径删除文件。 从节奏返回文件删除状态。

参数

  • ritm::Any:目标节奏平台的对象。 它是使用连续命令设置的 ritm = Targets.RITM.Ritm()Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/").

  • path::String:从节奏中删除文件的路径。

例子

using Main.EngeeDeviceManager.Targets
using Main.EngeeDeviceManager.RITM_API

# 创建节奏对象并设置地址
ritm = Targets.RITM.Ritm()
ritm.set_url("http://192.168.56.3:8000/")

# 删除节奏上的文件
status = RITM_API.removeFile(ritm, "/home/ritm/data/log.txt")
resetPtpSettings(ritm) -> Dict{String, Union{String, Int64, Bool, Nothing}}

Сбрасывает сохраненные настройки PTP на РИТМе. Возвращает словарь с результатом операции: статус и сообщение об ошибке (если есть).

После сброса перед запуском PTP нужно заново настроить нужный интерфейс через setupEthPtp.

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)
RITM_API.setAutostart(ritm, model_name::String)::Dict{String, Union{String, Int64, Bool, Nothing}}

Помещение модели в автозапуск.

Аргументы

  • ritm::Any: объект целевой платформы РИТМ.

  • model_name::String: имя модели.

Примеры

RITM_API.setAutostart(ritm)

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.

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)
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)
RITM_API.stopModel(ritm)::Nothing

Останавливает модель на РИТМе.

Аргументы

  • ritm::Any: объект целевой платформы РИТМ.

Примеры

RITM_API.stopModel(ritm)
stopPtp(ritm, eth_number) -> Dict{String, Union{String, Int64, Bool, Nothing}}

Останавливает PTP на выбранном Ethernet-интерфейсе РИТМа. Возвращает словарь с результатом операции: статус и сообщение об ошибке (если есть).

Аргументы

  • eth_number: номер Ethernet интерфейса. Возможные значения "HostTarget" или "1" — "max ethernet number".

Примеры

stopPtp(ritm, 1)

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")
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)
RITM_API.uploadFile(ritm::Any, filename::AbstractString; from::AbstractString=pwd(), to::AbstractString="/home/ritm")::String

Engee上传文件到目标节奏平台。

参数

  • ritm::Any:目标节奏平台的对象。 它是使用连续命令设置的 ritm = Targets.RITM.Ritm()Targets.RITM.set_url(ritm, "http://192.168.56.3:8000/").

  • filename::AbstractString:上传到服务器的文件的名称。

  • from::AbstractString = pwd()Engee中下载文件所在目录的路径(默认为当前目录)。

  • to::AbstractString = "/home/ritm":文件将被上传的节奏上的路径(默认情况下 — /home/ritm).

例子

using Main.EngeeDeviceManager.Targets
using Main.EngeeDeviceManager.Targets.RITM.RITM_API

# 创建节奏对象并设置地址
ritm=目标。里特姆里特姆()
里特姆set_url("http://192.168.56.3:8000 /")

# 下载测试文件。从目前的情况来看,从目前的情况来看,从目前的情况来看,从目前的情况来看,从目前的情况来看,从目前的情况来看,从目前的情况来看,从目前的情况来看,
res=RITM_API。uploadFile(ritm,"测试。斌")

# 从客户的登记册(/用户/)下载文件。..)到节奏上的指定目录
res=RITM_API。uploadFile(ritm,"install_manifest。txt";from="/user/project/",to="/home/ritm/data/")