方案化目标管理
本页介绍了程序化目标管理的功能 AnyMath .
|
与目标管理软件功能一起工作 AnyMath ,按照指定的方式安装硬件支持包 文章. 之后,执行:
|
功能说明
#
工程师。目标。build_deploy_start-函数
build_deploy_start(
target::Target,
model;
is_external_mode::Bool=false,
simulation_uuid::String=string(uuid4()),
status_callback::Function=((args...) -> nothing),
termination_callback::Function=((args...) -> nothing),
)::Union{Channel{TargetSimulationStatus},Nothing}
一个功能,旨在生成模型代码,构建它,将其上传到目标,并在目标上运行模型。
论点
-
目标::目标:目标实例。 -
模型:型号 AnyMath . -
is_external_mode::Bool=false:启动模式。 -
simulation_uuid::字符串:模拟的UUID。 -
status_callback::函数:接收到仿真状态消息时调用的函数。 -
termination_callback::函数:完成回调。
#
工程师。目标。compile_model的-函数
compile_model(target::Target, model)::TargetResponse
用于构建模型的函数。
论点
-
目标::目标:目标实例。 -
模型:*Engee*模型。
#
工程师。目标。generate_executable_code-函数
generate_executable_code(target::Target, model, is_ext_mode::Bool, verbose::Bool=false)::TargetResponse
用于生成模型的源代码以供后续组装的函数。
论点
-
目标::目标:目标实例。 -
模型:*Engee*模型(例如,通过恩吉。gcm()). -
is_ext_mode::Bool:启动模式(外部模式-交互模式,或独立模式)。 -
详细::Bool=错误:在生成过程中打印附加信息。
#
工程师。目标。start_model的-函数
start_model(
target::Target,
model,
is_ext_mode::Bool;
simulation_uuid::String=string(uuid4()),
status_callback::Function=((args...) -> nothing),
termination_callback::Function=((args...) -> nothing),
)::Union{Channel{TargetSimulationStatus},Nothing}
旨在启动目标模型的功能。
论点
-
目标::目标:目标实例。 -
模型:型号 AnyMath . -
is_ext_mode::Bool:启动模式(外部模式-交互模式,或独立模式)。 -
simulation_uuid::字符串:模拟的UUID。 -
status_callback::函数:对每个状态消息调用的回调。 -
termination_callback::函数:读取周期结束时调用的回调。
#
工程师。目标。upload_model-函数
upload_model(target::Target, model)::TargetResponse
旨在将编译后的模型上传到目标的函数。
论点
-
目标::目标:目标实例。 -
模型:型号 AnyMath .
#
工程师。目标。wait_model_to_complete-函数
wait_model_to_complete(
channel::Channel{TargetSimulationStatus},
timeout_seconds::Real = 60,
)::Tuple{Bool,Float64}
交互模式下等待模型完成的功能。
论点
-
频道::频道{TargetSimulationStatus}:状态通道返回start_model的或build_deploy_start在交互模式下。 -
timeout_seconds::Real=60:超时以秒为单位。
#
工程师。目标。更改_param-函数
change_param(target::Target, block_path::String, value_name::String, data::Union{Int64, Float64, Bool, Vector{Int64}, Vector{Float64}, Vector{Bool}})::TargetResponse
用于更改交互式运行的模型块的参数的函数。 它必须在模型运行期间调用。
论点
-
目标::目标:目标实例。 -
block_path:通往街区的路径 AnyMath . -
value_name::字符串:要更改的块参数的名称。 -
数据::联合{Int64, Float64, Bool, Vector{Int64},向量{Float64},向量{Bool}}:要写入参数的数据。
例子
change_param(target, engee.gcb(), "Value", 4)
更改参数 价值 当前块设置为 4.
在调用之前,您必须将光标悬停在要更改其参数值的块上,或者代替 恩吉。gcb() 指定特定块的路径。
is_ext_mode
旗帜 is_ext_mode 设置执行模式:
-
错误-独立模式;start_model(。..)它只运行模型并返回什么都没有; -
真的-互动模式;start_model(。..)/build_deploy_start(。..)他们回来了频道{TargetSimulationStatus}用于监控状态。
完成模型执行
对于交互模式,请使用由 start_model的 或 build_deploy_start:
channel = Targets.build_deploy_start(target, model, is_external_mode=true)
success, elapsed = Targets.wait_model_to_complete(channel, 120)
-
成功==真-模型已结束(通道已关闭); -
成功==错误-我们超时出去了.
回调 start_model的 / build_deploy_start
您可以发送:
-
status_callback(状态::TargetSimulationStatus)-在每个状态消息中调用; -
终止_回退()-在状态/数据读取周期结束时调用一次。
状况 在回调中,它具有类型 目标;目标 和领域:
-
状态::字符串-模型的状态(通常跑步,决赛 —完成了或错误;完成由从跑步到不同的状态); -
model_时间::Float64-模型时间在目标; -
进度::Float64-进展(通常在0–1); -
细节::字符串-附加文本信息。
例子::
function status_cb(status)
println("status=$(status.status), progress=$(status.progress)")
end
function done_cb()
println("simulation finished")
end
channel = Targets.start_model(
target, model, true;
status_callback=status_cb,
termination_callback=done_cb,
)
如果回调抛出异常,则模型的执行不会中断:回调错误记录为警告。
在独立模式下在STM32上运行模型的示例
using Main.EngeeDeviceManager.Targets
using Main.EngeeDeviceManager.Targets.STM32
model = engee.gcm()
target = STM32.Stm32()
is_external_mode = false
# 程序化目标管理的功能:
Targets.generate_executable_code(target, model, is_external_mode)
Targets.compile_model(target, model)
Targets.upload_model(target, model)
Targets.start_model(target, model, is_external_mode)
Targets.stop_model(target)
或者,您可以使用一个函数(而不是呈现的四个函数)来生成代码,构建,将编译的代码上传到目标并在其上运行模型。:
目标。build_deploy_start(目标,模型,is_external_mode=is_external_mode)