From 8c61dbeaead8616cf2c477462c1f94d109f5316b Mon Sep 17 00:00:00 2001 From: Jaroslaw Konik Date: Tue, 9 Apr 2024 20:25:59 +0200 Subject: [PATCH] ring --- Cargo.lock | 27 +++++++++++++++++++++++++++ Cargo.toml | 1 + src/main.rs | 19 ++++++++++++++----- 3 files changed, 42 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 67e7141..c5c8a82 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -119,6 +119,26 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "const_format" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "core-isa-parser" version = "0.2.0" @@ -1077,6 +1097,7 @@ checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" name = "rusty-bell" version = "0.1.0" dependencies = [ + "const_format", "embassy-executor", "embassy-net", "embassy-net-driver", @@ -1301,6 +1322,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "vcell" version = "0.1.3" diff --git a/Cargo.toml b/Cargo.toml index 94f14b2..dd22f0e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,6 +21,7 @@ static_cell = { version = "2.0.0", features = ["nightly"] } embassy-net = { version = "0.4.0", features = ["dhcpv4", "proto-ipv4", "tcp"] } embedded-io-async = "0.6.1" embassy-net-driver = "0.2.0" +const_format = "0.2.32" [profile.dev] # Rust debug is too slow. diff --git a/src/main.rs b/src/main.rs index 8fd9b3d..1a67aea 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,6 +7,7 @@ use embassy_net::tcp::TcpSocket; use embassy_net::{Config, Ipv4Address, Stack, StackResources}; use esp_hal; +use const_format::formatcp; use embassy_time::{Duration, Timer}; use esp_backtrace as _; use esp_hal::clock::ClockControl; @@ -92,20 +93,28 @@ async fn main(spawner: Spawner) -> ! { socket.set_timeout(Some(embassy_time::Duration::from_secs(10))); - let remote_endpoint = (Ipv4Address::new(142, 250, 185, 115), 80); + let remote_endpoint = (Ipv4Address::new(104, 20, 43, 236), 80); println!("connecting..."); let r = socket.connect(remote_endpoint).await; if let Err(e) = r { println!("connect error: {:?}", e); continue; } + + const json: &'static str = "{ + \"token\": \"ahgvt9acdx5sowxfobadt9cmpqhrzp\", + \"user\": \"ud2btptjwvy92xi8y77tfurfew6z7a\", + \"message\": \"DOOR BELL!!!\" + }"; + const json_len: usize = json.len(); + println!("connected!"); let mut buf = [0; 1024]; loop { use embedded_io_async::Write; - let r = socket - .write_all(b"GET / HTTP/1.0\r\nHost: www.mobile-j.de\r\n\r\n") - .await; + let req = formatcp!("POST /1/messages.json HTTP/1.0\r\nHost: api.pushover.net\r\nContent-Type: application/json\r\nContent-Length: {}\r\n\r\n{}\r\n\r\n", json_len, json); + println!("{}", req); + let r = socket.write_all(req.as_bytes()).await; if let Err(e) = r { println!("write error: {:?}", e); break; @@ -123,7 +132,7 @@ async fn main(spawner: Spawner) -> ! { }; println!("{}", core::str::from_utf8(&buf[..n]).unwrap()); } - Timer::after(Duration::from_millis(3000)).await; + Timer::after(Duration::from_millis(5000)).await; } }