#fmu #models #automatic #up #setting #macro #version

fmu_from_struct

A derive宏,用于在Rust中自动设置FMU模型

2个版本

0.1.1 2024年4月12日
0.1.0 2024年2月26日

#673 in Rust模式

Download history 1/week @ 2024-05-17

100 每月下载量

MIT 许可证

29KB
716

fmu_from_struct

A derive宏,用于在Rust中自动设置FMU模型

开发状态

警告:此包正在积极开发中。当前版本可能存在错误,并且未来版本可能存在破坏性更改。公开发布的主要原因是为了允许对包的目的感兴趣的人参与开发和评论。

目前仅实现了FMI标准的最低级功能。然而,这对于简单模型通常已经足够。因此,该库用于在涉及海事研究的独立(封闭源代码)项目中从Rust代码实现FMU。基本功能似乎按预期工作。

目的

自动化Rust编写的模型的函数模拟接口的实现。

协同仿真被视为此宏的主要用途,并且目前是唯一支持的实施类型。如果用户有需要或兴趣,将来可能会添加模型交换。

仅支持FMI标准的第2版和第3版,没有计划添加对第1版的支持。由于开发者在其他项目中使用此代码的方式,第2版比第3版测试得更多,可能被认为是更安全的选择。

需要第2版,因为第3版尚未得到广泛使用。例如,该包的开发者经常使用开源仿真平台来运行仿真,该平台仍然基于第2版。预计第3版将成为未来的主要版本(尤其是当开源仿真平台更改其版本时)

入门

检查examples文件夹中的代码示例,了解如何使用此宏。

文件夹结构

  • fmu_from_struct包含宏的高级Rust代码(主要是预定义和特性)
  • fmu_from_struct_derive包含derive宏
  • examples包含如何使用宏的简单示例
  • fmu_build_utils 包含一个 Python 脚本,用于从 Cargo 构建 的结果中提取信息并将其打包成 FMU 压缩文件。虽然也可以手动完成这项任务,但这个脚本旨在自动化这个过程。注意:这个功能将来可能会发生变化。可能最好是用 Rust 编写的可执行文件,可以通过 Cargo 进行安装。目前,它仅适用于 Windows。应该很容易为其他平台修复,但尚未完成。

贡献

如果您想做出贡献,那太好了!请与仓库所有者联系,进行非正式讨论,了解如何以及做什么。

如果您只想提出问题,请随意在本仓库中创建一个问题。但是,不能保证何时会修复...

许可协议

此宏受 MIT 许可协议的许可。有关详细信息,请参阅 LICENSEhttps://opensource.org/license/MIT

依赖项

~0.4–1MB
~20K SLoC