pub struct Client { /* private fields */ }Expand description
A client for sending commands to a specific LaserCube device.
Implementations§
Source§impl Client
impl Client
Sourcepub async fn new(
bind_ip: IpAddr,
target_ip: Ipv4Addr,
) -> Result<Self, CommandError>
pub async fn new( bind_ip: IpAddr, target_ip: Ipv4Addr, ) -> Result<Self, CommandError>
Create a new Client from a single target device IP (non-broadcast).
Returns a new Client or an error if the socket couldn’t be created.
§Example
use futures::StreamExt;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// First discover devices
let bind_ip = [0, 0, 0, 0].into();
let target_ip = [255, 255, 255, 255].into();
let mut devices = lasercube::discover::devices(bind_ip, target_ip).await?;
// Connect to the first device found
if let Some(device_info) = devices.next().await {
let client = lasercube::Client::new(bind_ip, device_info.header.ip_addr).await?;
// Now you can send commands to the device
let buffer_free = client.get_buffer_free().await?;
println!("Buffer free: {buffer_free}");
// Enable output
client.set_output(true).await?;
}
Ok(())
}Sourcepub async fn send_command(
&self,
command: Command,
) -> Result<Response, CommandError>
pub async fn send_command( &self, command: Command, ) -> Result<Response, CommandError>
Send a command to the LaserCube and wait for a response.
This method will await until a response is received.
Returns the parsed response, or an error in the case that an I/O issue occurred or an unexpected response was received.
Sourcepub async fn get_buffer_free(&self) -> Result<u16, CommandError>
pub async fn get_buffer_free(&self) -> Result<u16, CommandError>
Get the amount of free space in the device’s buffer.
Returns the number of free points in the buffer, or an error.
Sourcepub async fn set_output(&self, enable: bool) -> Result<(), CommandError>
pub async fn set_output(&self, enable: bool) -> Result<(), CommandError>
Enable or disable laser output.
Sourcepub async fn enable_buffer_size_response(
&self,
enable: bool,
) -> Result<(), CommandError>
pub async fn enable_buffer_size_response( &self, enable: bool, ) -> Result<(), CommandError>
Enable or disable buffer size responses on data packets.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Client
impl RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnwindSafe for Client
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more