[][src]Crate arduino_cli_client

Example

Make sure to run the following before:

arduino-cli daemon

Code

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("http://localhost: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(())
}

Re-exports

pub use crate::commands::arduino_core_client::ArduinoCoreClient;
pub use crate::debug::debug_client::DebugClient;
pub use crate::monitor::monitor_client::MonitorClient;
pub use crate::settings::settings_client::SettingsClient;

Modules

commands

Main Arduino Platform service

debug

Service that abstract a debug Session usage

monitor

Service that abstracts a Monitor usage

settings

The Settings service provides an interface to Arduino CLI's configuration options