10 个版本
0.1.9 | 2024年3月15日 |
---|---|
0.1.8 | 2024年2月14日 |
0.1.7 | 2024年1月28日 |
0.1.6 | 2023年12月10日 |
0.1.3 | 2023年11月30日 |
#303 在 开发工具
383 次每月下载
在 osdpctl 中使用
96KB
2K SLoC
LibOSDP for Rust
此包提供对 C 库 LibOSDP 的安全封装。LibOSDP 是创建开放式监控设备协议 (OSDP) 设备最受欢迎的开源库。有关库或 OSDP 的一般信息,请参阅 libosdp.sidcha.dev。
此包的文档可在 此处 找到。
功能
- 具有活跃用户和贡献者的生产就绪实现
- 支持安全通道通信(AES-128)
- 可用于设置 PD 或 CP 操作模式
- 支持大多数 OSDP 规范的命令和响应(请参阅 文档)
用法
要将 libosdp 添加到您的 Rust 项目中,请执行以下操作
cargo add libosdp
控制面板
简化的 CP 实现
let pd_info = vec! [ PdInfo::new(...), ... ];
let mut cp = ControlPanel::new(&mut pd_info)?;
cp.set_event_callback(|pd, event| {
println!("Received event from {pd}: {:?}", event);
});
loop {
cp.refresh();
cp.send_command(0, OsdpCommand::new(...));
}
请参阅 示例 了解工作实现。
外围设备
简化的 PD 实现
let pd_info = PdInfo::new(...);
let mut pd = PeripheralDevice::new(&mut pd_info)?;
pd.set_command_callback(|cmd| {
println!("Received command {:?}", cmd);
});
loop {
pd.refresh();
cp.notify_event(OsdpEvent::new(...));
}
请参阅 示例 了解工作实现。
依赖项
~2.7–5.5MB
~79K SLoC