summaryrefslogtreecommitdiff
path: root/src/app.rs
diff options
context:
space:
mode:
authorXaviDCR92 <xavi.dcr@gmail.com>2019-01-14 23:44:01 +0100
committerXaviDCR92 <xavi.dcr@gmail.com>2019-01-14 23:44:01 +0100
commit136d9f5a37d5dfd72e6c1486065de4d96611c523 (patch)
treee6ca710c8d9b94346f22ad182c16a2af2cf0c77a /src/app.rs
parent4d0f0e6021778b2917960bef978fe69c0fe1b327 (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.rs15
1 files changed, 13 insertions, 2 deletions
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<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
};
}