8 个版本
0.4.3 | 2024 年 8 月 8 日 |
---|---|
0.4.2 | 2024 年 7 月 15 日 |
0.4.1 | 2024 年 3 月 6 日 |
0.4.0 | 2023 年 10 月 18 日 |
0.1.1 | 2023 年 10 月 10 日 |
#73 在 模拟
992 每月下载量
93KB
2.5K SLoC
Rust FMU 运行器库
遵循 FMI 2.0 标准的 FMU 执行的高层 Rust 包装器。
此库包含对 fmi-standard 的绑定,并提供了解包、解析、加载和执行 FMU 的高层、安全的 API。
示例
use std::{collections::HashMap, path::Path};
use fmu_runner::{Fmu, FmuInstance, fmi2Type};
let fmu = Fmu::unpack(Path::new("./tests/fmu/bouncing_ball.fmu"))?
.load(fmi2Type::fmi2CoSimulation)?;
let fmu_cs = FmuInstance::instantiate(&fmu, true)?;
let signals = fmu_cs.lib.variables();
fmu_cs.setup_experiment(0.0, None, None)?;
// Set initial height to 10m.
fmu_cs.set_reals(&HashMap::from([(&signals["h_start"], 10.0)]))?;
// Initialize model.
fmu_cs.enter_initialization_mode()?;
fmu_cs.exit_initialization_mode()?;
// Step model 1 second.
fmu_cs.do_step(0.0, 1.0, true)?;
// Get the current height.
let outputs = fmu_cs.get_reals(&[&signals["h_m"]])?;
println!("{}", fmu_runner::outputs_to_string(&outputs));
依赖项
~8–19MB
~254K SLoC