节奏软件控制
|
要使用 AnyMath 中的KPM"RITM"的软件管理功能,请安装*AnyMath子系统。综合服务*:
|
本页包含 AnyMath 中KPM"RITM"的所有可用软件管理功能。
方法 里特姆
#
EngeeDeviceManager.Targets.RITM_API.Ritm — Method
Ritm(spec::AbstractString)::RITM.Ritm
创建用于管理RITM机器的对象。
参数
-
spec::AbstractString:RITM机器的规格。 机器规格可通过以下两种方式之一指定:-
完整URL,例如
"http://192.168.56.3:8000/"; -
存储在机器内存中的机器名称或IP地址(例如
"RITM 1"或"192.168.56.3")。完整URL地址基于已保存的机器信息卡确定。
-
无法访问未保存的机器:必须先通过addMachine 方法或"`RITM.机器管理`"应用程序将其添加,否则将出现错误ArgumentError 。
每次调用都会创建一个新的描述符,并替换缓存中的机器描述符。当向RITM_API 方法传递字符串参数时,每台机器都会使用一个通用描述符,而显式传递的描述符则会原样使用。如果客户端已被重启,则在下一次使用字符串参数进行调用时,描述符将自动重新创建。
示例
ritm = RITM_API.Ritm("http://192.168.56.3:8000/")
ritm = RITM_API.Ritm("192.168.56.3")
ritm = RITM_API.Ritm("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API._resolve_ritm_address — _Method
_resolve_ritm_address(spec::AbstractString)::String
将机器规范转换为完整 URL。如果传入的是完整 URL, 则原样返回;否则,将根据名称或已保存的 IP 地址在存储库中搜索该机器。如果机器未在存储库中注册,则抛出标准异常ArgumentError ,并提示未找到该机器。
参数
spec::AbstractString :RITM机器的规格。
#
EngeeDeviceManager.Targets.RITM_API._ritm_cache_key — _Method
_ritm_cache_key(address::AbstractString)::String
RITM机器地址的规范注册表键。
参数
-
address::AbstractString:主机名(小写)和端口; 如果未指定端口,则使用默认值RITM_MACHINE_DEFAULT_PORT。允许输入完整的 URL、host:port这样的组合,或仅输入主机名;同时支持userinfo组件、方括号中的 IPv6 地址以及查询字符串(query strings)。未指定协议的地址将被解释为http://,以避免将host:port这样的组合误认为协议。
#
EngeeDeviceManager.Targets.RITM_API.addMachine — Method
addMachine(name, ip; port="8000", is_default=false)::Nothing
将 RITM 机器卡片添加到机器存储库中。
若添加成功,日志中将记录一条确认消息。
如果存储库在并行操作中被修改,则会引发RitmMachinesStorageConflict 异常:此时应重新读取机器列表并重试调用。
参数
-
name::AbstractString:机器名称。 -
ip::AbstractString: 机器的 IP 地址。 -
port::AbstractString: 机器的端口。该参数作为命名参数传递(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
buildModel(ritm, model, is_interactive_mode::Bool=false)::Nothing
构建并准备模型,以便在 RITM 上运行。
参数
-
ritm::Any:RITM目标平台对象。 -
model::Any:模型结构。 -
is_interactive_mode::Bool:指示模型执行模式的标志:true— 模型以交互模式执行;false(默认)-- 模型以独立模式执行。
示例
# 在RITM上收集并运行在standalone 画布中打开的模型:
model = engee.gcm()
RITM_API.buildModel(ritm, model, false)
RITM_API.runModel(ritm, model, false)
#
EngeeDeviceManager.Targets.RITM_API.changeParam — Method
changeParam(ritm, block_key, param, data)::String
修改在 RITM 机器上以交互模式运行的模型的参数。模型的运行不会中断;新值将转换为模型中主机端声明的参数类型。
模型必须已构建并以交互模式运行,即使用参数is_interactive_mode=true (适用于buildModel 和runModel )。
返回操作结果的消息。
参数
-
ritm:地址(URL)、IP 地址或 RITM 主机名。 -
block_key::Union{String, UUID}:模型中区块的路径(例如,"model_name/Block Name")或区块的 UUID。 -
param::String:参数名称。 -
data:参数的新值:数字、逻辑值或数字或逻辑值的向量。
示例
RITM_API.changeParam(ritm, "my_model/Gain", "Gain", 2.5)
#
EngeeDeviceManager.Targets.RITM_API.disableAutostart — Method
disableAutostart(ritm)::Dict{String, Union{String, Int64, Bool, Nothing}}
从自动启动中删除模型。
参数
-
ritm::Any:目标 RITM 平台对象。
示例
RITM_API.disableAutostart(ritm)
#
EngeeDeviceManager.Targets.RITM_API.downloadFile — Method
downloadFile(ritm, filename; from="/home/ritm/", to=pwd())::Nothing
将文件从 RITM 机器下载到本地目录 AnyMath。
参数
-
ritm::Any: RITM 目标平台对象。 -
filename::AbstractString: 要下载的文件名。 -
from::AbstractString: RITM 机器上的源目录。该参数作为命名参数传递(from="...")。默认值为"/home/ritm/"。 -
to::AbstractString: 本地目标目录。该参数作为命名参数传递(to="...")。默认值为当前目录。
示例
RITM_API.downloadFile(ritm, "profile.txt"; from="/home/ritm/build/my_model/", to="/tmp/")
#
EngeeDeviceManager.Targets.RITM_API.getAutostart — Method
getAutostart(ritm)::Union{Dict{String, Union{String, Int64, Bool, Nothing}}, Nothing}
获取处于自动启动状态的模型。
参数
-
ritm::Any:RITM目标平台对象。
示例
RITM_API.getAutostart(ritm)
#
EngeeDeviceManager.Targets.RITM_API.getData — Method
getData(ritm::Any, model_name::String, file_path::String, in_file::Bool = false)
返回在RITM上对模型进行性能分析的结果。根据in_file 的值,结果可以以字符串形式返回,或保存在指定路径的文件中。
参数
-
ritm::Any:RITM目标平台对象。 -
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上的文件中
RITM_API.getData(ritm, "newmodel_1", "/user/profile.txt", true)
#
EngeeDeviceManager.Targets.RITM_API.getDiagnostic — Method
getDiagnostic(ritm)::Nothing
将诊断存档ritm_diagnostic.zip 下载到当前目录 AnyMath 中。
参数
-
ritm::Any:RITM 目标平台对象。
示例
RITM_API.getDiagnostic(ritm)
#
EngeeDeviceManager.Targets.RITM_API.getFile — Method
getFile(ritm::Any, file_name::String; from::String, to::String)
从目录from 中获取指定文件file_name 。
参数
-
ritm::Any:目标平台的 RITM 对象。 -
file_name::String:目标文件的名称。 -
from::String:目标目录的路径(默认值为/home/ritm/)。 -
to::String:AnyMath中用于保存文件的目录路径(默认位于当前目录)。
示例
# 将文件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.getIPByName — Method
getIPByName(name::AbstractString)::Union{String, Nothing}
返回存储在机器存储库中的RITM机器的IP地址。
参数
-
name::AbstractString:存储在机器存储库中的机器名称。
示例
RITM_API.getIPByName("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.getLog — Method
getLog(ritm, number_of_lines::Int64)::String
返回在 RITM 上执行模型时指定数量的日志行。
参数
-
ritm::Any:目标 RITM 平台对象。 -
number_of_lines::Int64:要输出的日志行数。
示例
RITM_API.getLog(ritm, 10)
#
EngeeDeviceManager.Targets.RITM_API.getMachines — Method
getMachines()::Vector{Dict{String, Any}}
返回存储在机器存储库中的 RITM 机器描述向量。
每个描述都是一个字典,其键为"name" 、"ip" 、"port" 和"default" 。
示例
RITM_API.getMachines()
#
EngeeDeviceManager.Targets.RITM_API.getNameByIP — Method
getNameByIP(ip::AbstractString)::Vector{String}
返回所有具有指定IP地址的RITM机器的名称。
返回结果始终是一个向量:每台对应机器对应一个名称;若 IP 地址重复,则返回多个名称(按存储顺序排列);若不存在具有该 IP 地址的机器,则返回空向量。
参数
-
ip::AbstractString:机器的IP地址。
示例
RITM_API.getNameByIP("192.168.56.3")
#
EngeeDeviceManager.Targets.RITM_API.getProfileData — Method
getProfileData(ritm, model_name; engee_location="/user/", in_file=false)::Union{String, Nothing}
获取在RITM机器上收集的模型分析数据。
如果in_file=false ,则以字符串形式返回数据。如果in_file=true ,则将数据写入指定本地目录下的<model_name>.txt 文件,并返回nothing 。
参数
-
ritm::Any:RITM 目标平台对象。 -
model_name::AbstractString:模型名称。 -
engee_location::AbstractString:若in_file=true,则用于写入文件的本地目录。该参数作为命名参数传递(engee_location="...")。默认值为/user/。 -
in_file::Bool:数据接收模式。当值为false时,返回字符串;当值为true时,数据写入文件,且不返回任何值。该参数作为命名参数传递(in_file=true)。
示例
data = RITM_API.getProfileData(ritm, "my_model")
RITM_API.getProfileData(ritm, "my_model"; engee_location="/user/", in_file=true)
#
EngeeDeviceManager.Targets.RITM_API.getPtpSettings — Method
getPtpSettings(ritm)::Vector{String}
获取已保存的 PTP 设置。返回 PTP 设置----一个字符串向量,其中包含所选接口、延迟机制、网络传输、角色以及 PTP 时钟属性。
参数
-
ritm::Any:RITM目标平台对象。
示例
RITM_API.getPtpSettings(ritm)
#
EngeeDeviceManager.Targets.RITM_API.getPtpState — Method
getPtpState(ritm)::Vector{String}
获取PTP状态。返回当前PTP状态:已启动或已停止;若PTP已启动,则同时返回接口和角色。
参数
-
ritm::Any:RITM目标平台对象。
示例
RITM_API.getPtpState(ritm)
#
EngeeDeviceManager.Targets.RITM_API.getScreenshot — Method
getScreenshot(ritm, filename::String="screenshot.png"; to=pwd())::String
在RITM目标平台上生成屏幕截图,并将其上传至AnyMath文件系统。
参数
-
ritm::Any:目标 RITM 平台的对象。 -
filename::String = "screenshot.png":用于保存屏幕截图的文件名(在 RITM 端)。 -
to=pwd():AnyMath 端的本地目标目录。 该参数作为命名参数(to="...")传递。默认值为当前目录。
示例
# 生成屏幕截图并获取其路径
path = RITM_API.getScreenshot(ritm, "example.png")
#
EngeeDeviceManager.Targets.RITM_API.isConnected — Method
isConnected(ritm::Any)::Bool
检查RITM服务器的可用性。若RITM服务器可用,则返回true ;否则返回false 。
参数
-
ritm::Any:RITM目标平台对象。
示例
RITM_API.isConnected(ritm)
#
EngeeDeviceManager.Targets.RITM_API.isMachineExists — Method
isMachineExists(name::AbstractString)::Bool
检查指定名称的 RITM 机器是否已保存到机器存储库中。
如果机器存在,则返回true ;否则返回false 。
参数
-
name::AbstractString:机器名称。
示例
RITM_API.isMachineExists("RITM 1")
#
EngeeDeviceManager.Targets.RITM_API.isRunning — Method
isRunning(ritm::Any, model_name::String)::Bool
检查指定的模型是否正在RITM目标平台上运行。 如果指定名称的模型当前正在 RITM 机器上运行,则返回true ;如果未运行,则返回false 。
参数
-
ritm::Any:RITM 目标平台对象。 -
model_name::String:需要检查其状态的模型名称。
示例
# 检查模型 "newmodel_1" 是否已运行
is_active = RITM_API.isRunning(ritm, "newmodel_1")
#
EngeeDeviceManager.Targets.RITM_API.listFiles — Method
listFiles(ritm, path::String)::Vector{String}
返回指定目录中的文件列表。
参数
-
ritm::Any:RITM目标平台对象。 -
path::String:目标目录的路径。
示例
RITM_API.listFiles(ritm, "/home/ritm/")
#
EngeeDeviceManager.Targets.RITM_API.memInfo — Method
memInfo(ritm, model_name=nothing)::Union{Vector{Int64}, Int64}
返回一个包含系统内存信息的值向量,或一个表示特定模型所占用内存大小的整数。
参数
-
ritm::Any:目标 RITM 平台对象。 -
model_name::Union{String, Nothing}: 模型名称。如果未指定此参数或指定为空字符串,则返回系统内存信息。如果指定了模型名称,则返回该模型占用的内存大小
示例
RITM_API.memInfo(ritm, "newmodel_1")
#
EngeeDeviceManager.Targets.RITM_API.poweroff — Method
poweroff(ritm)::Dict{String, Union{String, Int64, Bool, Nothing}}
关闭机器。
参数
-
ritm::Any: RITM目标平台对象。
示例
RITM_API.poweroff(ritm)
#
EngeeDeviceManager.Targets.RITM_API.readFile — Method
readFile(ritm, filename::String; path="/home/ritm/")::String
返回 RITM 机器上指定文件的内容。
参数
-
ritm::Any: RITM 目标平台对象。 -
file_name::String: 目标文件的名称。 -
path::String:RITM机器上目录的路径。该参数通过
以命名参数(path="..." )的形式传递。默认值为"/home/ritm/" 。
示例
# 输出文件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
reboot(ritm)::Dict{String, Union{String, Int64, Bool, Nothing}}
重启机器。
参数
-
ritm::Any:RITM目标平台对象。
示例
RITM_API.reboot(ritm)
#
EngeeDeviceManager.Targets.RITM_API.removeFile — Method
removeFile(ritm::Any, path::String)::String
删除RITM目标平台上指定路径下的文件。返回包含文件删除状态的消息。
参数
-
ritm::Any:目标 RITM 平台的对象。 -
path::String:要从 RITM 中删除的文件的路径。
示例
# 删除 RITM 上的文件newmodel_1 :
RITM_API.removeFile(ritm, "/home/ritm/newmodel_1.engee")
#
EngeeDeviceManager.Targets.RITM_API.removeMachine — Method
removeMachine(name::AbstractString)::Nothing
从机器存储库中删除 RITM 机器卡片。
如果存储库在并行操作中被修改,则会引发RitmMachinesStorageConflict 异常:请重新读取 机器列表并重新调用该方法。
删除成功时,日志中会记录一条确认消息。
参数
-
name::AbstractString:机器名称。
示例
RITM_API.removeMachine("RITM 2")
#
EngeeDeviceManager.Targets.RITM_API.resetPtpSettings — Method
resetPtpSettings(ritm)::Dict{String, Union{String, Int64, Bool, Nothing}}
重置 RITM 上保存的 PTP 配置。返回包含操作结果的字典:状态和错误消息(如有)。
重置后,在启动 PTP 之前,请通过setupEthPtp 重新配置接口。
参数
-
ritm::Any:目标 RITM 平台对象。
#
EngeeDeviceManager.Targets.RITM_API.runModel — Method
runModel(
ritm,
model,
is_interactive_mode::Bool=false;
simulation_uuid=string(uuid4()),
status_callback=nothing,
termination_callback=nothing,
)::Union{Channel{TargetSimulationStatus}, Nothing}
在RITM上运行先前构建的模型。
在独立模式下返回nothing 。在交互模式下返回用于传输 状态 模型运行状态的通道。
参数
-
ritm::Any:RITM目标平台对象。 -
model::Any:模型结构。 -
is_interactive_mode::Bool:指示模型执行模式的标志:true----模型在交互模式下执行;false(默认)----模型在独立模式下执行。 -
simulation_uuid::String:交互模式的启动标识符。 -
status_callback:该函数会在接收到每个执行状态时被调用。 -
termination_callback:该函数在交互式执行完成时被调用。
示例
RITM_API.runModel(ritm, model)
#
EngeeDeviceManager.Targets.RITM_API.setAutostart — Method
setAutostart(ritm, model_name::String)::Dict{String, Union{String, Int64, Bool, Nothing}}
将模型添加到自动启动列表中。
参数
-
ritm::Any:RITM目标平台对象。 -
model_name::String:模型名称。
示例
RITM_API.setAutostart(ritm, "my_model")
#
EngeeDeviceManager.Targets.RITM_API.setupEthPtp — Method
setupEthPtp(
ritm,
eth_number,
role;
delay_mech="E2E",
network_tr="UDPv4",
priority1=128,
priority2=128,
clock_class=248,
clock_accuracy=254,
)::Dict{String, String}
在选定的RITM以太网接口上配置PTP。返回包含操作结果的字典:状态和错误消息(如有)。
参数
-
ritm::Any:目标 RITM 平台的对象。 -
eth_number:RITM 的以太网接口编号,例如,1表示以太网 1。 -
role: 指定 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
setupEthernet(ritm, interface_id::Int64, ip::String, mask::Int64)::Dict{String, Union{String, Int64, Bool, Nothing}}
配置机器的以太网接口。
参数
-
ritm::Any: RITM目标平台对象。 -
interface_id::Int64: 以太网接口标识符。 -
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}}
在选定的RITM以太网接口上启动PTP。返回包含操作结果的字典:状态和错误消息(如有)。
在启动PTP之前,必须通过setupEthPtp 配置该接口。
参数
-
eth_number:以太网接口编号。可能的取值包括"HostTarget"或"1"--"max ethernet number"。
示例
RITM_API.startPtp(ritm, 1)
#
EngeeDeviceManager.Targets.RITM_API.stopModel — Method
stopModel(ritm)::Nothing
在 RITM 上停止模型。
参数
-
ritm::Any:RITM 目标平台对象。
示例
RITM_API.stopModel(ritm)
#
EngeeDeviceManager.Targets.RITM_API.stopPtp — Method
stopPtp(ritm, eth_number)::Dict{String, Union{String, Int64, Bool, Nothing}}
停止RITM上所选以太网接口的PTP服务。返回包含操作结果的字典:状态和错误消息(如有)。
参数
-
eth_number: 以太网接口编号。 可能的取值"HostTarget"或"1"--"max ethernet number"。
示例
RITM_API.stopPtp(ritm, 1)
#
EngeeDeviceManager.Targets.RITM_API.updateFirmware — Method
updateFirmware(
ritm,
firmware_path::String="",
checksum_path::String="";
reboot::Bool=true,
show_progress=false,
)::Nothing
更新RITM固件。
参数
-
ritm::Any:目标RITM平台的对象。 -
firmware_path::String:固件文件的本地路径。 -
checksum_path::String:校验和文件的本地路径。 -
reboot::Bool:更新成功后重启 RITM 设备。默认值为true。 -
show_progress::Bool:将更新进度信息写入日志。默认值为false
示例
RITM_API.updateFirmware(ritm; show_progress=true)
RITM_API.updateFirmware(ritm, "/user/firmware.raucb", "/user/firmware.raucb.checksum")
#
EngeeDeviceManager.Targets.RITM_API.updateSupportPackage — Method
updateSupportPackage(ritm, support_package_path::String=""; show_progress=false)::Nothing
更新 RITM 支持包。
如果未指定support_package_path 参数,则安装与当前 AnyMath 版本对应的包。 如果指定了support_package_path 参数,则从指定的本地文件安装包。
参数
-
ritm::Any:RITM目标平台对象。 -
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
uploadFile(ritm::Any, filename::AbstractString; from::AbstractString=pwd(), to::AbstractString="/home/ritm")::String
将文件从 AnyMath 下载到目标平台 RITM。
参数
-
ritm::Any: RITM 目标平台对象。 -
filename::AbstractString: 上传至RITM的文件名。 -
from::AbstractString = pwd(): AnyMath中包含待上传文件的目录路径(默认值为当前目录)。 -
to::AbstractString = "/home/ritm":文件将在RITM上上传到的路径(默认值为/home/ritm)。
示例
using EngeeDeviceManager.Targets
using EngeeDeviceManager.Targets.RITM_API
# 创建 RITM 机器对象并设置地址
ritm = Targets.RITM_API.Ritm("http://192.168.56.3:8000/")
# 将文件test.bin 从当前目录Engee (pwd()) 上传至 RITM 上的 /home/ritm
res = RITM_API.uploadFile(ritm, "test.bin")
# 将文件从指定目录Engee (/user/...) 上传至 RITM 上的指定目录
res = RITM_API.uploadFile(ritm, "install_manifest.txt"; from="/user/project/", to="/home/ritm/data/")
#
EngeeDeviceManager.Targets.RITM_API.version — Method
version(ritm)::Dict{String, String}
固件版本和RITM支持包版本。返回一个包含以下键的字典:
-
"firmware"— 固件版本。 -
"support_package"— 支持包(sysimage)版本。
参数
-
ritm::Any:RITM目标平台对象。
示例
RITM_API.version(ritm)