3 个不稳定版本
0.2.0 | 2023年9月30日 |
---|---|
0.1.1 | 2023年6月6日 |
0.1.0 | 2023年6月6日 |
#18 in #star
335KB
1.5K SLoC
phd2
本crate提供对EventMonitoring api的支持,用于控制和监控phd2。有关phd2的更多详细信息,请参阅https://openphdguiding.org/。
有关文档,请参阅:https://docs.rs/phd2/
贡献
欢迎贡献。
一般情况下,我们遵循“分支-拉取”Git工作流程。
- 在GitHub上Fork仓库
- 将项目克隆到您的计算机上
- 将更改提交到您的分支
- 将工作推送到您的Fork
- 提交一个 拉取请求 以便我们可以审查您的更改
注意:在提交拉取请求之前,请确保合并来自“上游”的最新更改!
lib.rs
:
一个用于与phd2交互的通用库。
PHD2是望远镜导星软件,简化了跟踪导星的过程,让您可以专注于深空成像或光谱学的其他方面。有关phd2的更多信息,请参阅项目的网站这里。
本crate的目的是提供一种方便的方式,使用EventMonitoring协议与phd2交互。有关协议的详细信息,请参阅这里。
简单使用
使用此crate最简单的方法是将TcpStream转换为Phd2Connection以发送命令和接收事件。
示例
use phd2::{serialization::Event, Phd2Connection};
#[tokio::main]
async fn main() {
let mut phd2: Phd2Connection<_>= tokio::net::TcpStream::connect("localhost:4400")
.await
.expect("Connecting to phd2")
.into();
let mut pixel_scale = phd2.get_pixel_scale().await.expect("Getting pixel scale.");
let mut sub = phd2.subscribe().await;
while let Ok(event) = sub.recv().await {
if let Event::GuideStep(guide) = &event.event {
let delta = pixel_scale * (guide.dx.powi(2) + guide.dy.powi(2)).sqrt();
println!("guide event: {} arcsec.", delta);
}
if let Event::ConfigurationChange(_) = &event.event {
pixel_scale = phd2.get_pixel_scale().await.expect("Getting pixel scale.");
}
}
}
依赖关系
~5–12MB
~126K SLoC