From d513a252586bc72c16736caf2f968399ffb66275 Mon Sep 17 00:00:00 2001 From: Andy Killorin <37423245+Speedy6451@users.noreply.github.com> Date: Wed, 4 Dec 2024 21:14:32 -0500 Subject: [PATCH] revert --- outside/Cargo.lock | 58 +------------------------ outside/Cargo.toml | 3 +- outside/src/main.rs | 102 ++++++++++++-------------------------------- 3 files changed, 30 insertions(+), 133 deletions(-) diff --git a/outside/Cargo.lock b/outside/Cargo.lock index 1e4f0e4..e0cbe6a 100644 --- a/outside/Cargo.lock +++ b/outside/Cargo.lock @@ -126,12 +126,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -260,12 +254,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "const-default" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa" - [[package]] name = "const-oid" version = "0.9.6" @@ -813,18 +801,6 @@ dependencies = [ "log", ] -[[package]] -name = "embedded-alloc" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f2de9133f68db0d4627ad69db767726c99ff8585272716708227008d3f1bddd" -dependencies = [ - "const-default", - "critical-section", - "linked_list_allocator", - "rlsf", -] - [[package]] name = "embedded-graphics" version = "0.7.1" @@ -1443,12 +1419,6 @@ dependencies = [ "libc", ] -[[package]] -name = "linked_list_allocator" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afa463f5405ee81cdb9cc2baf37e08ec7e4c8209442b5d72c04cfb2cd6e6286" - [[package]] name = "litrs" version = "0.4.1" @@ -1591,7 +1561,6 @@ dependencies = [ "embassy-time", "embassy-usb", "embassy-usb-logger", - "embedded-alloc", "embedded-graphics", "embedded-hal 1.0.0", "embedded-hal-async", @@ -1911,7 +1880,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66584b58c3b0cd8cfea750408a932fe86df79ee05ccc87ee745a8e6be4a1abe0" dependencies = [ - "base64 0.21.7", + "base64", "buffered-io", "defmt", "embedded-io", @@ -1935,18 +1904,6 @@ dependencies = [ "bytemuck", ] -[[package]] -name = "rlsf" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222fb240c3286247ecdee6fa5341e7cdad0ffdf8e7e401d9937f2d58482a20bf" -dependencies = [ - "cfg-if", - "const-default", - "libc", - "svgbobdoc", -] - [[package]] name = "rp-pac" version = "6.0.0" @@ -2198,19 +2155,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "svgbobdoc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c04b93fc15d79b39c63218f15e3fdffaa4c227830686e3b7c5f41244eb3e50" -dependencies = [ - "base64 0.13.1", - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-width", -] - [[package]] name = "syn" version = "1.0.109" diff --git a/outside/Cargo.toml b/outside/Cargo.toml index 4388b20..80849da 100644 --- a/outside/Cargo.toml +++ b/outside/Cargo.toml @@ -25,7 +25,7 @@ fixed-macro = "1.2" # for web request example reqwless = { version = "0.12.0", features = ["defmt",]} -serde = { version = "1.0.203", default-features = false, features = ["derive", "alloc"] } +serde = { version = "1.0.203", default-features = false, features = ["derive"] } serde-json-core = "0.5.1" # for assign resources example @@ -60,7 +60,6 @@ embedded-sdmmc = "0.7.0" bt-hci = { version = "0.1.0", default-features = false, features = ["defmt"] } hex = { version = "0.4.3", default-features=false} -embedded-alloc = "0.6.0" [profile.release] debug = 2 diff --git a/outside/src/main.rs b/outside/src/main.rs index e52a7e3..1e73086 100644 --- a/outside/src/main.rs +++ b/outside/src/main.rs @@ -5,44 +5,48 @@ #![no_main] #![allow(async_fn_in_trait)] +use core::array; +use core::borrow::BorrowMut; use core::cell::RefCell; +use core::fmt::Formatter; +use core::marker::PhantomData; use core::panic::PanicInfo; -use core::sync::atomic::AtomicU8; +use core::str::from_utf8; +use core::sync::atomic::{AtomicU8}; -use alloc::string::String; +use bt_hci::cmd::info; use critical_section::Mutex; +use cyw43::JoinOptions; use cyw43_pio::PioSpi; -use defmt::println; +use embassy_futures::join::join; +use embassy_futures::yield_now; +use embassy_rp::interrupt::typelevel::{Handler, Interrupt, IO_IRQ_BANK0}; use embassy_rp::multicore::{spawn_core1, Stack}; -use embassy_rp::uart::{BufferedInterruptHandler, BufferedUart}; +use embassy_rp::pwm::{self, Pwm}; use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex; -use embassy_sync::channel::{Channel, Receiver}; +use embassy_sync::channel::Channel; +use fixed::FixedU16; use log::*; +//use embassy_rp::i2c::InterruptHandler; use embassy_executor::{InterruptExecutor, Spawner}; use embassy_net::tcp::TcpSocket; use embassy_net::{Config, IpEndpoint, Ipv4Address, StackResources}; -use embassy_rp::{bind_interrupts, interrupt, uart}; +use embassy_rp::{bind_interrupts, interrupt}; use embassy_rp::clocks::RoscRng; use embassy_rp::gpio::{AnyPin, Input, InterruptTrigger, Level, Output}; -use embassy_rp::peripherals::{DMA_CH0, PIN_21, PIO0, UART1, USB}; +use embassy_rp::peripherals::{DMA_CH0, PIN_21, PIO0, USB}; use embassy_rp::pio::{InterruptHandler, Pio}; use embassy_rp::usb::Driver; use embassy_time::{Duration, Timer}; -use embedded_io_async::{Read, ReadReady, Write}; +use embedded_io_async::Write; use rand::RngCore; use reqwless::response; use static_cell::StaticCell; use defmt_rtt as _; -use embedded_alloc::LlffHeap as Heap; -extern crate alloc; - -#[global_allocator] -static HEAP: Heap = Heap::empty(); bind_interrupts!(struct Irqs { PIO0_IRQ_0 => InterruptHandler; USBCTRL_IRQ => embassy_rp::usb::InterruptHandler; - UART1_IRQ => BufferedInterruptHandler; }); @@ -106,13 +110,6 @@ async fn main(spawner: Spawner) { let driver = Driver::new(p.USB, Irqs); spawner.spawn(logger_task(driver)).unwrap(); - let mut config = uart::Config::default(); - config.baudrate = 115200; - let mut rx = [0; 2048]; - let mut tx = [0; 2048]; - let mut uart = BufferedUart::new(p.UART1, Irqs, p.PIN_20, p.PIN_21, &mut tx, &mut rx, config); - uart.read_ready().unwrap(); - let fw = include_bytes!("../../cyw43-firmware/43439A0.bin"); let clm = include_bytes!("../../cyw43-firmware/43439A0_clm.bin"); @@ -136,12 +133,12 @@ async fn main(spawner: Spawner) { control.init(clm).await; control - .set_power_management(cyw43::PowerManagementMode::None) + .set_power_management(cyw43::PowerManagementMode::PowerSave) .await; // Use a link-local address for communication without DHCP server let config = Config::ipv4_static(embassy_net::StaticConfigV4 { - address: embassy_net::Ipv4Cidr::new(embassy_net::Ipv4Address::new(169, 254, 8, 1), 16), + address: embassy_net::Ipv4Cidr::new(embassy_net::Ipv4Address::new(169, 254, 2, 1), 16), dns_servers: heapless::Vec::new(), gateway: None, }); @@ -150,14 +147,16 @@ async fn main(spawner: Spawner) { let seed = rng.next_u64(); // Init network stack - static RESOURCES: StaticCell> = StaticCell::new(); + static RESOURCES: StaticCell> = StaticCell::new(); let (stack, runner) = embassy_net::new(net_device, config, RESOURCES.init(StackResources::new()), seed); defmt::unwrap!(spawner.spawn(net_task(runner))); control.start_ap_wpa2("🐟", "ilcougars1234", 5).await; - let mut uart_buf = [0; 4096]; + let mut rx_buffer = [0; 4096]; + let mut tx_buffer = [0; 4096]; + let mut buf = [0; 4096]; spawner.spawn(data_extractor()).unwrap(); @@ -195,51 +194,9 @@ async fn main(spawner: Spawner) { } }); - defmt::unwrap!(spawner.spawn(send_badge(CHANNEL.receiver(),stack))); - - let mut rx_buffer = [0; 4096]; - let mut tx_buffer = [0; 4096]; - let mut to_send_buffer = [0; 512]; - let mut socket = TcpSocket::new(stack, &mut rx_buffer, &mut tx_buffer); - socket.set_timeout(Some(Duration::from_secs(10))); - control.gpio_set(0, false).await; - info!("recv on 2223"); - while let Err(_) = socket.accept(1234).await { - error!("socket failure"); - - } - info!("connected"); - info!("epick"); - //control.gpio_set(0, true).await; - Timer::after_millis(20).await; - info!("connected 2"); - //info!("Received connection from {:?}", socket.remote_endpoint()); - info!("connected 3"); loop { - if socket.read_ready().unwrap() { - info!("attempting read"); - let n = socket.read(&mut to_send_buffer).await.unwrap(); - info!("recv: {}", String::from_utf8_lossy(&to_send_buffer[..n])); - - uart.write_all(&to_send_buffer[..n]).await.unwrap(); - } - - if uart.read_ready().unwrap() { - let n = uart.read(&mut uart_buf).await.unwrap(); - info!("read: {}", String::from_utf8_lossy(&uart_buf[..n])); - socket.write_all(&uart_buf[..n]).await.unwrap(); - } - - } -} - -#[embassy_executor::task] -async fn send_badge(channel: Receiver<'static,CriticalSectionRawMutex,u64,1>,stack: embassy_net::Stack<'static>) -> ! { - let mut rx_buffer = [0; 4096]; - let mut tx_buffer = [0; 4096]; - loop { - let card = channel.receive().await; + let card = CHANNEL.receive().await; let mut socket = TcpSocket::new(stack, &mut rx_buffer, &mut tx_buffer); socket.set_timeout(Some(Duration::from_secs(10))); @@ -250,20 +207,17 @@ async fn send_badge(channel: Receiver<'static,CriticalSectionRawMutex,u64,1>,sta } info!("Connected to {:?}", socket.remote_endpoint()); + control.gpio_set(0, true).await; - let mut data: [u8;18] = [b'0';18]; + let mut data: [u8;18] = [b' ';18]; data[0] = b'B'; data[1] = b' '; hex::encode_to_slice(&card.to_ne_bytes(), &mut data[2..]).unwrap(); - info!("data: {:?}", data); - - //socket.write_all(b"O \r\n").await.unwrap(); - socket.write_all(&data).await.unwrap(); info!("wrote to {:?}", socket.remote_endpoint()); socket.close(); - info!("disconnected"); + control.gpio_set(0, false).await; } }