From 136d9f5a37d5dfd72e6c1486065de4d96611c523 Mon Sep 17 00:00:00 2001 From: XaviDCR92 Date: Mon, 14 Jan 2019 23:44:01 +0100 Subject: Files are finally being sent from a PC. However, file transmission often gets stucked. --- src/app.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/app.rs') diff --git a/src/app.rs b/src/app.rs index 4447df2..3cea4ce 100644 --- a/src/app.rs +++ b/src/app.rs @@ -71,6 +71,8 @@ fn serial_comm(addr : Option<&String>, port_name : &String, baud_rate : Option<& let mut sent_bytes = 0 as usize; let mut requested_file = String::new(); let exe_data = transfer::get_exe_data(&folder).unwrap(); + let mut file_data : Vec = Vec::new(); + let mut file_size : Option = None; loop { state = match state { @@ -84,8 +86,17 @@ fn serial_comm(addr : Option<&String>, port_name : &String, baud_rate : Option<& TransferState::SendExeSize => transfer::send_exe_size(&mut port, &exe_data), TransferState::CleaningRAM => transfer::wait_ack_default(&mut port, prev_state), TransferState::SendExeData => transfer::send_exe_data(&mut port, &mut sent_bytes, &exe_data), - TransferState::WaitFileRequest => transfer::wait_file_request(&mut port, &mut requested_file), - TransferState::SendFile => transfer::send_file(&mut port, &mut sent_bytes, &requested_file), + TransferState::WaitFileRequest => { + state = transfer::wait_file_request(&mut port, &mut requested_file); + prev_state = state; + state + }, + TransferState::SendFile => transfer::send_file(&mut port, + &folder, + &mut sent_bytes, + &requested_file, + &mut file_data, + &mut file_size), TransferState::Finished => break }; } -- cgit v1.2.3