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}

获取autorun中的模型。

参数

  • 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:目标节奏平台的对象。

  • 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诊断存档。压缩到当前的AnyMath目录。

参数

  • ritm::Any:目标节奏平台的对象。

例子

RITM_API.getDiagnostic(ritm)
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=::StringAnyMath中保存文件的目录路径(默认情况下在当前目录中)。

例子

# 获取文件 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="")
RITM_API.getLog(ritm::Any, num::Int64)

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

参数

  • ritm::Any:目标节奏平台的对象。

  • 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:目标节奏平台的对象。

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

例子

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

检查节奏的可用性。

参数

ritm::Any:目标节奏平台的对象。

例子

RITM_API.isConnected(ritm)
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")
RITM_API.listFiles(ritm::Any, path::String)

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

参数

  • ritm::Any:目标节奏平台的对象。

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

例子

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

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

参数

  • ritm::Any:目标节奏平台的对象。

  • 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 -AnyMath中的模型名称。

参数

  • 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/")
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:目标节奏平台的对象。

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

例子

# 删除文件 newmodel_1 在节奏上:
RITM_API.removeFile(ritm, "/home/ritm/newmodel_1.engee")
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:交互模式的启动ID。

  • 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}

在选定的RITM以太网接口上配置PTP。 返回包含操作结果的字典:状态和错误消息(如果有)。

参数

  • eth_number:RITM的以太网接口的编号,例如 1 对于以太网1。

  • role:设置本地PTP时钟的作用: "Master""Slave".

  • delay_mech:PTP工作模式。 可能的值 "E2E", "P2P""Auto". 默认值 "E2E".

  • network_tr:网络协议。 可能的值 "UDPv4", "UDPv6""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}}

配置机器的以太网接口。

参数

  • ritm::Any:目标节奏平台的对象。

  • interface_id::Int64:以太网接口的ID。

  • 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. 返回包含操作结果的字典:状态和错误消息(如果有)。

在启动PTP之前,您需要通过setupEthPtp

参数

  • eth_number:以太网接口的编号。 可能的值 "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}}

在选定的RITM以太网接口上停止PTP。 返回包含操作结果的字典:状态和错误消息(如果有)。

参数

  • eth_number:以太网接口的编号。 可能的值 "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 未指定,正在安装与当前版本__AnyMath__对应的软件包。 如果论点是 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

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

参数

  • ritm::Any:目标节奏平台的对象。

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

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

  • 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/")