#osdp #sia #acs #weigand

no-std libosdp

IEC 60839-11-5 OSDP (开放式监控设备协议) 库实现

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开发工具

Download history 108/week @ 2024-03-09 53/week @ 2024-03-16 8/week @ 2024-03-23 39/week @ 2024-03-30 10/week @ 2024-04-06

383 次每月下载
osdpctl 中使用

Apache-2.0

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