9 个不稳定版本 (4 个重大变更)
0.5.0+1.4.9.2 | 2023年2月12日 |
---|---|
0.4.1 | 2023年2月12日 |
0.3.1 | 2021年11月9日 |
0.3.0 | 2021年5月15日 |
0.1.2 | 2021年5月4日 |
在嵌入式开发中排名 450
每月下载 63 次
64KB
1K SLoC
bsec crate
Rust API 对 Bosch BSEC 库 的访问。
此说明将使用 bsec 来指代此crate,而 Bosch BSEC 用于指代由Bosch提供的原始BSEC库。
重要许可信息
《Bosch BSEC》库是专有软件。因此,《Bosch BSEC》库及其文档不能包含在《bsec》Rust crate中,需要单独获取。
尽管此crate中的Rust API在宽松许可下发布,但您仍需遵守《Bosch BSEC》许可条款。
您有责任确保您的产品遵守《Bosch BSEC》许可条款。
功能
- 对《Bosch BSEC》库的安全Rust API绑定。
- 实现,可用于与BME680 传感器一起使用。
- 可扩展到其他传感器。
- 基本的假传感器实现,用于单元测试。
文档
入门指南
使用示例
use bsec::{Bsec, Input, InputKind, OutputKind, clock::Clock, SampleRate, SubscriptionRequest};
use nb::block;
use std::time::Duration;
// Acquire handle to the BSEC library.
// Only one such handle can be acquired at any time.
let mut bsec: Bsec<_, TimePassed, _> = Bsec::init(sensor, &clock)?;
// Configure the outputs you want to subscribe to.
bsec.update_subscription(&[
SubscriptionRequest {
sample_rate: SampleRate::Lp,
sensor: OutputKind::Iaq,
},
])?;
// We need to feed BSEC regularly with new measurements.
loop {
// Wait for when the next measurement is due.
sleep_for(Duration::from_nanos((bsec.next_measurement() - clock.timestamp_ns()) as u64));
// Start the measurement.
let wait_duration = block!(bsec.start_next_measurement())?;
sleep_for(wait_duration);
# clock.advance_by(wait_duration);
// Process the measurement when ready and print the BSEC outputs.
let outputs = block!(bsec.process_last_measurement())?;
for output in &outputs {
println!("{:?}: {}", output.sensor, output.signal);
}
}
依赖关系
~0.1–2MB
~40K SLoC