diff options
Diffstat (limited to 'src/app.rs')
| -rw-r--r-- | src/app.rs | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -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<u8> = Vec::new(); + let mut file_size : Option<usize> = 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 }; } |
