3 个不稳定版本

0.2.0 2023年9月30日
0.1.1 2023年6月6日
0.1.0 2023年6月6日

#18 in #star

MIT/Apache

335KB
1.5K SLoC

phd2

本crate提供对EventMonitoring api的支持,用于控制和监控phd2。有关phd2的更多详细信息,请参阅https://openphdguiding.org/

有关文档,请参阅:https://docs.rs/phd2/

贡献

欢迎贡献。

一般情况下,我们遵循“分支-拉取”Git工作流程。

  1. 在GitHub上Fork仓库
  2. 将项目克隆到您的计算机上
  3. 将更改提交到您的分支
  4. 将工作推送到您的Fork
  5. 提交一个 拉取请求 以便我们可以审查您的更改

注意:在提交拉取请求之前,请确保合并来自“上游”的最新更改!


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