eculocate

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 35e0aeb88b7de4ed258927b4a71742236e99454c
parent 7a852dd7061a93dc01c39282836228bffd7b448b
Author: filipton <filipton12@gmail.com>
Date:   Thu,  4 Jul 2024 21:25:36 +0200

feat: send flash size through tcp socket

Diffstat:
Mexamples/src/main.rs | 10++++++++--
Msimple-ota-server/firmware.bin | 0
Msimple-ota-server/src/main.rs | 10++++++++--
3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/examples/src/main.rs b/examples/src/main.rs @@ -92,11 +92,17 @@ async fn main(spawner: Spawner) { let ip = embassy_net::IpEndpoint::from_str(OTA_SERVER_IP).expect("Wrong ip addr"); socket.connect(ip).await.expect("Cannot connect!"); + let mut ota_buff = [0; 4096]; + socket + .read(&mut ota_buff[..4]) + .await + .expect("Cannot read firmware size!"); + let flash_size = u32::from_le_bytes(ota_buff[..4].try_into().unwrap()); + log::info!("flash_size: {flash_size}"); let mut ota = Ota::new(FlashStorage::new()).with_next_partition_offset(); - ota.set_flash_size(535008); + ota.set_flash_size(flash_size); - let mut ota_buff = [0; 1024]; loop { let res = socket.read(&mut ota_buff).await; if let Ok(n) = res { diff --git a/simple-ota-server/firmware.bin b/simple-ota-server/firmware.bin Binary files differ. diff --git a/simple-ota-server/src/main.rs b/simple-ota-server/src/main.rs @@ -1,4 +1,7 @@ -use std::{io::{Read, Write}, net::TcpListener}; +use std::{ + io::{Read, Write}, + net::TcpListener, +}; const BINARY: &[u8] = include_bytes!("../firmware.bin"); fn main() { @@ -9,7 +12,10 @@ fn main() { println!("Connection"); let mut stream = stream.unwrap(); - let chunks = BINARY.chunks(512); + let buf = (BINARY.len() as u32).to_le_bytes(); + _ = stream.write_all(&buf); + + let chunks = BINARY.chunks(1024); let mut buf = [0; 1]; for chunk in chunks { println!("Writing: {}", chunk.len());