diff options
| author | XaviDCR92 <xavi.dcr@gmail.com> | 2019-01-14 23:44:01 +0100 |
|---|---|---|
| committer | XaviDCR92 <xavi.dcr@gmail.com> | 2019-01-14 23:44:01 +0100 |
| commit | 136d9f5a37d5dfd72e6c1486065de4d96611c523 (patch) | |
| tree | e6ca710c8d9b94346f22ad182c16a2af2cf0c77a /src/app.rs | |
| parent | 4d0f0e6021778b2917960bef978fe69c0fe1b327 (diff) | |
Files are finally being sent from a PC.
However, file transmission often gets stucked.
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 }; } |
