realman 0.2.1

realman robot Rust SDK
Documentation
use std::io::{Read, Write};

use serde::Serialize;

use crate::{
    traits::{IOData, IOTrait, IOVoltageQueryData},
    Result, Transport, VoltageType,
};

impl IOTrait for Transport {
    fn set_tool_voltage(&mut self, voltage_type: VoltageType) -> Result<IOData> {
        let mut buf = [0; 256];

        #[derive(Serialize)]
        struct Command {
            command: &'static str,
            voltage_type: u8,
        }

        let cmd = Command {
            command: "set_tool_voltage",
            voltage_type: voltage_type.into(),
        };

        let data = serde_json::to_vec(&cmd)?;

        self.write_all(&data)?;

        let n = self.read(&mut buf)?;

        let cmd_resp = serde_json::from_str::<IOData>(&String::from_utf8_lossy(&buf[0..n]))?;

        Ok(cmd_resp)
    }

    fn get_tool_voltage(&mut self) -> Result<IOVoltageQueryData> {
        todo!()
    }
}