3个版本

0.1.2 2020年11月17日
0.1.1 2020年11月16日
0.1.0 2020年11月16日

#1023 in 硬件支持

GPL-3.0 许可证

7MB
45K SLoC

Go 38K SLoC // 0.2% comments C++ 3.5K SLoC // 0.2% comments Python 2K SLoC // 0.3% comments Arduino C++ 1K SLoC // 0.2% comments Shell 246 SLoC // 0.1% comments JavaScript 39 SLoC // 0.0% comments Rust 36 SLoC HCL 8 SLoC // 0.2% comments Processing 8 SLoC INI 8 SLoC // 0.5% comments

arduino-cli-client

arduino-cli提供的gRPC绑定。绑定基于此处定义的protobuf定义生成。

示例

此示例演示了检索连接的板子列表。在运行此示例之前,请确保运行arduino-cli daemon

您可以通过cargo run --example list_boards运行此示例。

use arduino_cli_client::commands::arduino_core_client::ArduinoCoreClient;
use arduino_cli_client::commands::{BoardListReq, InitReq};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut client = ArduinoCoreClient::connect("https://127.0.0.1:50051").await?;

    // Start a new instance of the Arduino Core Service
    let mut init_stream = client
        .init(InitReq {
            library_manager_only: false,
        })
        .await?
        .into_inner();

    let resp_instance = init_stream.message().await?.expect("Failed to init");

    // List the boards currently connected to the computer.
    let resp_boards = client
        .board_list(BoardListReq {
            instance: resp_instance.instance,
        })
        .await?
        .into_inner();

    print!("Boards: {:?}", resp_boards.ports);

    Ok(())
}

示例 - 客户端

examples/ 文件夹包含一个客户端示例,与 arduino-cli/client-example 类似。

依赖项

~8.5MB
~146K SLoC