1 个不稳定版本
0.0.1 | 2024年5月2日 |
---|
#4 在 #knx
82KB
2K SLoC
knx-rust
knx-rust是一个使用Rust编写的库,实现了KNXNet/Ip协议,通过KNX Ip网关或路由器与KNX设备进行通信。库的实现不包含任何io调用(https://sans-io.readthedocs.io/how-to-sans-io.html),以具有最小的运行时要求,使其仅能在嵌入式环境中与tokio、async-std或mio一起使用。
用法
在Cargo.toml
中将knx-rust
作为依赖项添加
[dependencies]
knx-rust = "0.0.1"
您需要确保以下函数定期调用(例如,在您的事件循环中)
knx.get_outbound_data()
并发送返回的数据到UDP(如果有)。在初始化后或调用knx.send
、knx.handle_inbound_message
或knx.handle_time_events
后可能会有新数据。- 当从UDP接收到数据时,需要调用
knx.handle_inbound_message(buf)
。如果数据包含组通信消息,则该函数将返回并可以进一步处理 - 需要调用
knx.handle_time_events()
,下一次在knx.get_next_time_event()
定义的时间点。需要在将数据发送到UDP(在knx.get_outbound_data()
之后)后更新时间。
除此之外,您可以使用knx.send(group_event)
在任何时间将消息发送到总线上。
如何在mio或tokio中使用该库的示例可以在examples文件夹中找到。
可以使用以下命令执行这些示例
cargo run --example group_tunnel_mio
或
cargo run --example group_tunnel_tokio
依赖项
~0.4–1MB
~21K SLoC