Read improv packet bytes into struct
This commit is contained in:
22
src/main.rs
22
src/main.rs
@@ -15,6 +15,7 @@ use improv_setup::improv::{
|
||||
RPCCommand,
|
||||
CurrentState,
|
||||
calculate_checksum,
|
||||
ImprovPacket,
|
||||
};
|
||||
use log::{
|
||||
debug,
|
||||
@@ -149,27 +150,18 @@ async fn main() -> Result<()>{
|
||||
let improv_packet_offset = find_begin_of_improv_packet(&buffer).unwrap();
|
||||
println!("{}", improv_packet_offset);
|
||||
|
||||
let mut packet_index = improv_packet_offset;
|
||||
|
||||
// skip header
|
||||
packet_index += 6;
|
||||
let improv_packet_end = improv_packet_offset + 10 + <u8 as Into<usize>>::into(buffer[improv_packet_offset+8]);
|
||||
let improv_packet = ImprovPacket::try_from_bytes(&buffer[improv_packet_offset..improv_packet_end].to_vec()).unwrap();
|
||||
|
||||
// version
|
||||
println!("Version: {}", &buffer[packet_index]);
|
||||
packet_index += 1;
|
||||
println!("Version: {}", &improv_packet.version);
|
||||
|
||||
// type
|
||||
let packet_type = PacketType::try_from(&buffer[packet_index]).unwrap();
|
||||
println!("Type: {}", &packet_type);
|
||||
packet_index += 1;
|
||||
println!("Type: {}", &improv_packet.r#type);
|
||||
|
||||
if packet_type == PacketType::CurrentState {
|
||||
// skip length
|
||||
packet_index +=1;
|
||||
|
||||
let current_state = CurrentState::try_from(&buffer[packet_index]).unwrap();
|
||||
if improv_packet.r#type == PacketType::CurrentState {
|
||||
let current_state = CurrentState::try_from(&improv_packet.data[0]).unwrap();
|
||||
println!("Current state: {}", ¤t_state);
|
||||
packet_index += 1;
|
||||
}
|
||||
|
||||
},
|
||||
|
Reference in New Issue
Block a user