#camera-control #camera #bluetooth-le #bluetooth #control #blackmagic #cinema

blackmagic-camera-control

通过蓝牙低功耗在 Rust 中与您的 Blackmagic 摄像机接口

5 个版本

0.2.2 2022 年 11 月 7 日
0.2.1 2021 年 9 月 13 日
0.2.0 2021 年 9 月 11 日
0.1.1 2021 年 9 月 6 日
0.1.0 2021 年 8 月 28 日

#168 in 视频

每月 29 次下载

MIT 和可能 GPL-2.0

39KB
889

通过蓝牙在 Rust 中与您的 Blackmagic 摄像机接口!

此库允许您轻松通过蓝牙与您的 Blackmagic 摄像机通信。

  • 实现了完整的摄像机规范,通过静态类型检查轻松访问命令(请参阅 Command::Video(Video::Iso(640)))
  • 使用 btleplug 以跨平台方式工作。
  • 消耗 PROTOCOL.json 用于代码生成,因此很容易向库添加更多功能

用法

您可以通过打开 examples/control.rs,将 CAMERA_NAME 常量替换为您的摄像机的蓝牙名称,然后运行 cargo run --example control 来轻松测试库

//Create a new camera with the device name
let mut camera = BluetoothCamera::new(CAMERA_NAME).await.unwrap();

//Connect with a set timeout
camera.connect(Duration::from_secs(10)).await.unwrap();

//Change the ISO to 320
camera.write(255, Operation::AssignValue, Command::Video(Video::Iso(640))).await.unwrap();

它是如何工作的?

库消耗 PROTOCOL.json 文件,该文件以机器可读格式记录了摄像机协议。从那里,它将在构建阶段生成 rust 枚举形式的命令(请参阅 /build)。这使得我们可以通过不手动编写代码来具有对摄像机功能的静态类型寻址,而是依赖于从摄像机协议手册的转换。库负责将命令打包到摄像机协议中。

贡献

只需打开一个 PR LUL

许可

全部受 MIT 保护

依赖项

~4–37MB
~517K SLoC