Unifying improv packet names
This commit is contained in:
parent
8bb40c7462
commit
e189d1b37f
@ -236,9 +236,9 @@ impl RawPacket {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub enum ImprovPacket {
|
pub enum ImprovPacket {
|
||||||
CurrentStateResponse(CurrentStateResponse),
|
CurrentState(CurrentStatePacket),
|
||||||
ErrorState(ErrorStatePacket),
|
ErrorState(ErrorStatePacket),
|
||||||
RequestCurrentStateCommand(RequestCurrentStateCommand),
|
RequestCurrentState(RequestCurrentStatePacket),
|
||||||
RequestDeviceInformation(RequestDeviceInformationPacket),
|
RequestDeviceInformation(RequestDeviceInformationPacket),
|
||||||
RPCResult(RPCResultPacket),
|
RPCResult(RPCResultPacket),
|
||||||
}
|
}
|
||||||
@ -246,7 +246,7 @@ pub enum ImprovPacket {
|
|||||||
impl ImprovPacket {
|
impl ImprovPacket {
|
||||||
pub fn try_from_raw_packet(raw_packet: &RawPacket) -> Result<Self> {
|
pub fn try_from_raw_packet(raw_packet: &RawPacket) -> Result<Self> {
|
||||||
match raw_packet.r#type {
|
match raw_packet.r#type {
|
||||||
PacketType::CurrentState => Ok(ImprovPacket::CurrentStateResponse(CurrentStateResponse::try_from_raw_packet(raw_packet)?)),
|
PacketType::CurrentState => Ok(ImprovPacket::CurrentState(CurrentStatePacket::try_from_raw_packet(raw_packet)?)),
|
||||||
PacketType::ErrorState => Ok(ImprovPacket::ErrorState(ErrorStatePacket::try_from_raw_packet(raw_packet)?)),
|
PacketType::ErrorState => Ok(ImprovPacket::ErrorState(ErrorStatePacket::try_from_raw_packet(raw_packet)?)),
|
||||||
//PacketType::RPCCommand => _,
|
//PacketType::RPCCommand => _,
|
||||||
PacketType::RPCResult => Ok(ImprovPacket::RPCResult(RPCResultPacket::try_from_raw_packet(raw_packet)?)),
|
PacketType::RPCResult => Ok(ImprovPacket::RPCResult(RPCResultPacket::try_from_raw_packet(raw_packet)?)),
|
||||||
@ -255,15 +255,15 @@ impl ImprovPacket {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct CurrentStateResponse {
|
pub struct CurrentStatePacket {
|
||||||
pub current_state: CurrentState,
|
pub current_state: CurrentState,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ImprovDataPacketType for CurrentStateResponse {
|
impl ImprovDataPacketType for CurrentStatePacket {
|
||||||
const packet_type: PacketType = PacketType::CurrentState;
|
const packet_type: PacketType = PacketType::CurrentState;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ImprovDataToPacket for CurrentStateResponse {
|
impl ImprovDataToPacket for CurrentStatePacket {
|
||||||
fn to_bytes(self: &Self) -> Vec<u8> {
|
fn to_bytes(self: &Self) -> Vec<u8> {
|
||||||
let mut out = Vec::new();
|
let mut out = Vec::new();
|
||||||
out.push(self.current_state.clone() as u8);
|
out.push(self.current_state.clone() as u8);
|
||||||
@ -271,12 +271,12 @@ impl ImprovDataToPacket for CurrentStateResponse {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ImprovDataFromPacket for CurrentStateResponse {
|
impl ImprovDataFromPacket for CurrentStatePacket {
|
||||||
type Error = Error;
|
type Error = Error;
|
||||||
|
|
||||||
fn try_from_raw_packet(raw_packet: &RawPacket) -> Result<Self, Self::Error>{
|
fn try_from_raw_packet(raw_packet: &RawPacket) -> Result<Self, Self::Error>{
|
||||||
if raw_packet.r#type != Self::packet_type {
|
if raw_packet.r#type != Self::packet_type {
|
||||||
return Err(anyhow!("Packet is not CurrentStateResponse"));
|
return Err(anyhow!("Packet is not CurrentStatePacket"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return Ok(Self {
|
return Ok(Self {
|
||||||
@ -307,14 +307,14 @@ impl ImprovDataFromPacket for ErrorStatePacket {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct RequestCurrentStateCommand {
|
pub struct RequestCurrentStatePacket {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ImprovDataPacketType for RequestCurrentStateCommand {
|
impl ImprovDataPacketType for RequestCurrentStatePacket {
|
||||||
const packet_type: PacketType = PacketType::RPCCommand;
|
const packet_type: PacketType = PacketType::RPCCommand;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ImprovDataToPacket for RequestCurrentStateCommand {
|
impl ImprovDataToPacket for RequestCurrentStatePacket {
|
||||||
fn to_bytes(self: &Self) -> Vec<u8> {
|
fn to_bytes(self: &Self) -> Vec<u8> {
|
||||||
let mut out = Vec::new();
|
let mut out = Vec::new();
|
||||||
out.push(RPCCommand::RequestCurrentState as u8);
|
out.push(RPCCommand::RequestCurrentState as u8);
|
||||||
|
@ -11,7 +11,7 @@ use hex;
|
|||||||
use improv_setup::improv::{
|
use improv_setup::improv::{
|
||||||
RawPacket,
|
RawPacket,
|
||||||
ImprovPacket,
|
ImprovPacket,
|
||||||
RequestCurrentStateCommand,
|
RequestCurrentStatePacket,
|
||||||
RequestDeviceInformationPacket,
|
RequestDeviceInformationPacket,
|
||||||
};
|
};
|
||||||
use improv_setup::serial;
|
use improv_setup::serial;
|
||||||
@ -120,7 +120,7 @@ async fn main() -> Result<()>{
|
|||||||
Commands::Device {path, baud_rate, device_command} => {
|
Commands::Device {path, baud_rate, device_command} => {
|
||||||
match &device_command.clone().unwrap_or_default() {
|
match &device_command.clone().unwrap_or_default() {
|
||||||
DeviceCommands::State => {
|
DeviceCommands::State => {
|
||||||
let request_current_state_packet = RequestCurrentStateCommand {};
|
let request_current_state_packet = RequestCurrentStatePacket {};
|
||||||
|
|
||||||
let mut serial_interface = serial::SerialInterface::new(path, *baud_rate).context("Couldn't init serial interface")?;
|
let mut serial_interface = serial::SerialInterface::new(path, *baud_rate).context("Couldn't init serial interface")?;
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ async fn main() -> Result<()>{
|
|||||||
let result_bytes = serial_interface.recv_bytes().context("Couldn't receive any improv packet")?;
|
let result_bytes = serial_interface.recv_bytes().context("Couldn't receive any improv packet")?;
|
||||||
let raw_packet = RawPacket::try_from_bytes(&result_bytes).context("Failed to deserialize packet")?;
|
let raw_packet = RawPacket::try_from_bytes(&result_bytes).context("Failed to deserialize packet")?;
|
||||||
|
|
||||||
if let ImprovPacket::CurrentStateResponse(current_state_response) = ImprovPacket::try_from_raw_packet(&raw_packet).context("Failed to read packet")? {
|
if let ImprovPacket::CurrentState(current_state_response) = ImprovPacket::try_from_raw_packet(&raw_packet).context("Failed to read packet")? {
|
||||||
println!("Current state: {}", ¤t_state_response.current_state);
|
println!("Current state: {}", ¤t_state_response.current_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user