6个版本
0.3.0-alpha.1 | 2021年12月9日 |
---|---|
0.2.1 | 2021年7月30日 |
0.1.2 | 2021年7月21日 |
0.1.0 | 2020年11月29日 |
#12 在 #gatt
用于 gatt
75KB
2K SLoC
蓝牙低功耗属性协议库。
参考 BLUETOOTH 核心规范 第5.1版 | 第3卷,第F部分 属性协议 (ATT)
示例
use att::packet as pkt;
use att::server::*;
/// GAP / GATT Service only (with no Characteristics)
#[derive(Debug)]
struct MyHandler;
impl Handler for MyHandler {
fn handle_read_by_group_type_request(
&mut self,
item: &pkt::ReadByGroupTypeRequest,
) -> Result<pkt::ReadByGroupTypeResponse, ErrorResponse> {
match (
item.starting_handle().clone().into(),
item.ending_handle().clone().into(),
) {
(0x0001, 0xFFFF) => {
Ok(vec![
(0x0001.into(), 0x000B.into(), vec![0x00, 0x18].into()), // Generic Access
(0x000C.into(), 0x000F.into(), vec![0x01, 0x18].into()), // Generic Attribute
]
.into_iter()
.collect())
}
(x, _) => Err(ErrorResponse::new(
x.clone().into(),
pkt::ErrorCode::AttributeNotFound,
)),
}
}
}
#[tokio::main(flavor = "current_thread")]
async fn main() -> anyhow::Result<()> {
let server = Server::new()?;
// let connection = server.accept().await?;
// connection.run(MyHandler).await?;
Ok(())
}
支持的目标
- x86_64-unknown-linux-gnu
在Linux 5.9 (Arch Linux)上测试
许可证
许可方式为以下之一
- Apache License,版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT),由您选择。
贡献
除非您明确说明,否则您提交的任何贡献,根据Apache-2.0许可证定义,均应双许可,如上所述,不附加任何额外条款或条件!
依赖项
~4–16MB
~152K SLoC