#mini #temperature-humidity #co2 #airco2ntrol #tfa #dostmann #coach

bin+lib aircontrol

此Rust模块提供了与Dostmann TFA AIRCO2NTROL Mini和Coach设备交互的高级接口,专注于监测环境参数,如CO2浓度、温度和湿度。它利用hidapi库进行跨平台HID通信,确保数据采集和事件处理的结构化和多线程方法。

1个稳定版本

1.0.0 2024年2月4日

#10#co2

MIT 许可证

120KB
114

AirControl:用于Dostmann TFA AIRCO2NTROL设备的Rust库

AirControl Logo

此Rust模块提供了与Dostmann TFA AIRCO2NTROL Mini和Coach设备交互的高级接口,专注于监测环境参数,如CO2浓度、温度和湿度。它利用hidapi库进行跨平台HID通信,确保数据采集和事件处理的结构化和多线程方法。

功能

  • 实时监控:实时跟踪CO2浓度、温度和湿度。
  • 跨平台:基于hidapi库构建,确保在不同操作系统间的兼容性。
  • 事件驱动:使用回调处理新数据,便于与其他系统或UI集成。
  • 多线程设计:确保非阻塞的数据采集和处理。

安装

要在项目中添加此模块,请使用以下命令

cargo add aircontrol

用法

以下是一个使用此接口监控环境参数的简单示例

use aircontrol::AirControl;

fn main() {
    let mut air_control = AirControl::new().expect("Failed to initialize the AirControl interface");

    // The new result will be printed with every update.
    air_control.register_callback(Box::new(|time, co2, temperature, humidity| {
        println!("{} - CO2: {} ppm, Temp: {}°C, Humidity: {}%", time, co2, temperature, humidity);
    }));

    // The monitoring runs on a separate thread and will invoke the callback with new data.
    air_control.start_monitoring();
    

    // Remember to gracefully stop the monitoring when your application is closing or when you need to stop it.
    air_control.stop_monitoring();
}

贡献

欢迎对此项目做出贡献。请遵守以下指南

  • 从仓库分叉并创建一个新分支以添加功能或修复错误。
  • 编写干净且文档齐全的代码。
  • 确保您的更改不会破坏现有功能。
  • 提交一个包含更改描述的pull请求。

许可证

本项目采用MIT许可证 - 请参阅LICENSE文件以获取详细信息。

致谢

此库由@DJE98开发。感谢hidapi库的开发者和贡献者提供了健壮的跨平台HID通信解决方案。

依赖

~1–12MB
~86K SLoC