1个不稳定版本
0.1.3 | 2022年6月20日 |
---|
#39 在 #scada
在 3 个crate中使用(直接使用2个)
38KB
544 行
secop-rs
用于硬件服务器与SECoP协议通信的Rust框架和演示设备。
构建/运行
安装Rust工具链,当前需要使用nightly频道。
调试模式(编译更快):cargo run -- test.cfg
。
发布模式(优化速度):cargo run --release -- test.cfg
。
组织结构
代码目前分为四个crate
secop-core
提供框架的主体和服务器实现secop-derive
(因为需要作为独立的proc-macro crate)通过自动生成接口模板来帮助框架secop-modules
包含具体模块secop
只包含主可执行文件
lib.rs
:
为secop模块提供衍生支持
这里实现了两个自动衍生的特质
-
ModuleBase
是模块核心功能的完整实现。它提供了一个简单的DSL来添加参数和命令,并将其转换为实现基本SECoP动作(如change
和do
)的方法中的相应处理。它还提供了参数和参数类型之间的JSON有效负载和Rust数据之间的自动转换和验证。
-
TypeDesc
可以用于枚举和结构体,并提供了一种类型安全的方式来声明具有枚举和结构体数据类型的参数和命令。
依赖关系
~2MB
~45K SLoC