revert
This commit is contained in:
parent
c4a8e0de1e
commit
d513a25258
3 changed files with 30 additions and 133 deletions
58
outside/Cargo.lock
generated
58
outside/Cargo.lock
generated
|
@ -126,12 +126,6 @@ version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
|
checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "base64"
|
|
||||||
version = "0.13.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "base64"
|
name = "base64"
|
||||||
version = "0.21.7"
|
version = "0.21.7"
|
||||||
|
@ -260,12 +254,6 @@ dependencies = [
|
||||||
"unicode-width",
|
"unicode-width",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "const-default"
|
|
||||||
version = "1.0.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0b396d1f76d455557e1218ec8066ae14bba60b4b36ecd55577ba979f5db7ecaa"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "const-oid"
|
name = "const-oid"
|
||||||
version = "0.9.6"
|
version = "0.9.6"
|
||||||
|
@ -813,18 +801,6 @@ dependencies = [
|
||||||
"log",
|
"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]]
|
[[package]]
|
||||||
name = "embedded-graphics"
|
name = "embedded-graphics"
|
||||||
version = "0.7.1"
|
version = "0.7.1"
|
||||||
|
@ -1443,12 +1419,6 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "linked_list_allocator"
|
|
||||||
version = "0.10.5"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "9afa463f5405ee81cdb9cc2baf37e08ec7e4c8209442b5d72c04cfb2cd6e6286"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "litrs"
|
name = "litrs"
|
||||||
version = "0.4.1"
|
version = "0.4.1"
|
||||||
|
@ -1591,7 +1561,6 @@ dependencies = [
|
||||||
"embassy-time",
|
"embassy-time",
|
||||||
"embassy-usb",
|
"embassy-usb",
|
||||||
"embassy-usb-logger",
|
"embassy-usb-logger",
|
||||||
"embedded-alloc",
|
|
||||||
"embedded-graphics",
|
"embedded-graphics",
|
||||||
"embedded-hal 1.0.0",
|
"embedded-hal 1.0.0",
|
||||||
"embedded-hal-async",
|
"embedded-hal-async",
|
||||||
|
@ -1911,7 +1880,7 @@ version = "0.12.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "66584b58c3b0cd8cfea750408a932fe86df79ee05ccc87ee745a8e6be4a1abe0"
|
checksum = "66584b58c3b0cd8cfea750408a932fe86df79ee05ccc87ee745a8e6be4a1abe0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.21.7",
|
"base64",
|
||||||
"buffered-io",
|
"buffered-io",
|
||||||
"defmt",
|
"defmt",
|
||||||
"embedded-io",
|
"embedded-io",
|
||||||
|
@ -1935,18 +1904,6 @@ dependencies = [
|
||||||
"bytemuck",
|
"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]]
|
[[package]]
|
||||||
name = "rp-pac"
|
name = "rp-pac"
|
||||||
version = "6.0.0"
|
version = "6.0.0"
|
||||||
|
@ -2198,19 +2155,6 @@ version = "2.6.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
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]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "1.0.109"
|
version = "1.0.109"
|
||||||
|
|
|
@ -25,7 +25,7 @@ fixed-macro = "1.2"
|
||||||
|
|
||||||
# for web request example
|
# for web request example
|
||||||
reqwless = { version = "0.12.0", features = ["defmt",]}
|
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"
|
serde-json-core = "0.5.1"
|
||||||
|
|
||||||
# for assign resources example
|
# for assign resources example
|
||||||
|
@ -60,7 +60,6 @@ embedded-sdmmc = "0.7.0"
|
||||||
|
|
||||||
bt-hci = { version = "0.1.0", default-features = false, features = ["defmt"] }
|
bt-hci = { version = "0.1.0", default-features = false, features = ["defmt"] }
|
||||||
hex = { version = "0.4.3", default-features=false}
|
hex = { version = "0.4.3", default-features=false}
|
||||||
embedded-alloc = "0.6.0"
|
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
debug = 2
|
debug = 2
|
||||||
|
|
|
@ -5,44 +5,48 @@
|
||||||
#![no_main]
|
#![no_main]
|
||||||
#![allow(async_fn_in_trait)]
|
#![allow(async_fn_in_trait)]
|
||||||
|
|
||||||
|
use core::array;
|
||||||
|
use core::borrow::BorrowMut;
|
||||||
use core::cell::RefCell;
|
use core::cell::RefCell;
|
||||||
|
use core::fmt::Formatter;
|
||||||
|
use core::marker::PhantomData;
|
||||||
use core::panic::PanicInfo;
|
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 critical_section::Mutex;
|
||||||
|
use cyw43::JoinOptions;
|
||||||
use cyw43_pio::PioSpi;
|
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::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::blocking_mutex::raw::CriticalSectionRawMutex;
|
||||||
use embassy_sync::channel::{Channel, Receiver};
|
use embassy_sync::channel::Channel;
|
||||||
|
use fixed::FixedU16;
|
||||||
use log::*;
|
use log::*;
|
||||||
|
//use embassy_rp::i2c::InterruptHandler;
|
||||||
use embassy_executor::{InterruptExecutor, Spawner};
|
use embassy_executor::{InterruptExecutor, Spawner};
|
||||||
use embassy_net::tcp::TcpSocket;
|
use embassy_net::tcp::TcpSocket;
|
||||||
use embassy_net::{Config, IpEndpoint, Ipv4Address, StackResources};
|
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::clocks::RoscRng;
|
||||||
use embassy_rp::gpio::{AnyPin, Input, InterruptTrigger, Level, Output};
|
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::pio::{InterruptHandler, Pio};
|
||||||
use embassy_rp::usb::Driver;
|
use embassy_rp::usb::Driver;
|
||||||
use embassy_time::{Duration, Timer};
|
use embassy_time::{Duration, Timer};
|
||||||
use embedded_io_async::{Read, ReadReady, Write};
|
use embedded_io_async::Write;
|
||||||
use rand::RngCore;
|
use rand::RngCore;
|
||||||
use reqwless::response;
|
use reqwless::response;
|
||||||
use static_cell::StaticCell;
|
use static_cell::StaticCell;
|
||||||
use defmt_rtt as _;
|
use defmt_rtt as _;
|
||||||
use embedded_alloc::LlffHeap as Heap;
|
|
||||||
extern crate alloc;
|
|
||||||
|
|
||||||
#[global_allocator]
|
|
||||||
static HEAP: Heap = Heap::empty();
|
|
||||||
|
|
||||||
bind_interrupts!(struct Irqs {
|
bind_interrupts!(struct Irqs {
|
||||||
PIO0_IRQ_0 => InterruptHandler<PIO0>;
|
PIO0_IRQ_0 => InterruptHandler<PIO0>;
|
||||||
USBCTRL_IRQ => embassy_rp::usb::InterruptHandler<USB>;
|
USBCTRL_IRQ => embassy_rp::usb::InterruptHandler<USB>;
|
||||||
UART1_IRQ => BufferedInterruptHandler<UART1>;
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -106,13 +110,6 @@ async fn main(spawner: Spawner) {
|
||||||
let driver = Driver::new(p.USB, Irqs);
|
let driver = Driver::new(p.USB, Irqs);
|
||||||
spawner.spawn(logger_task(driver)).unwrap();
|
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 fw = include_bytes!("../../cyw43-firmware/43439A0.bin");
|
||||||
let clm = include_bytes!("../../cyw43-firmware/43439A0_clm.bin");
|
let clm = include_bytes!("../../cyw43-firmware/43439A0_clm.bin");
|
||||||
|
@ -136,12 +133,12 @@ async fn main(spawner: Spawner) {
|
||||||
|
|
||||||
control.init(clm).await;
|
control.init(clm).await;
|
||||||
control
|
control
|
||||||
.set_power_management(cyw43::PowerManagementMode::None)
|
.set_power_management(cyw43::PowerManagementMode::PowerSave)
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
// Use a link-local address for communication without DHCP server
|
// Use a link-local address for communication without DHCP server
|
||||||
let config = Config::ipv4_static(embassy_net::StaticConfigV4 {
|
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(),
|
dns_servers: heapless::Vec::new(),
|
||||||
gateway: None,
|
gateway: None,
|
||||||
});
|
});
|
||||||
|
@ -150,14 +147,16 @@ async fn main(spawner: Spawner) {
|
||||||
let seed = rng.next_u64();
|
let seed = rng.next_u64();
|
||||||
|
|
||||||
// Init network stack
|
// Init network stack
|
||||||
static RESOURCES: StaticCell<StackResources<5>> = StaticCell::new();
|
static RESOURCES: StaticCell<StackResources<3>> = StaticCell::new();
|
||||||
let (stack, runner) = embassy_net::new(net_device, config, RESOURCES.init(StackResources::new()), seed);
|
let (stack, runner) = embassy_net::new(net_device, config, RESOURCES.init(StackResources::new()), seed);
|
||||||
|
|
||||||
defmt::unwrap!(spawner.spawn(net_task(runner)));
|
defmt::unwrap!(spawner.spawn(net_task(runner)));
|
||||||
|
|
||||||
control.start_ap_wpa2("🐟", "ilcougars1234", 5).await;
|
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();
|
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 {
|
loop {
|
||||||
if socket.read_ready().unwrap() {
|
let card = CHANNEL.receive().await;
|
||||||
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 mut socket = TcpSocket::new(stack, &mut rx_buffer, &mut tx_buffer);
|
let mut socket = TcpSocket::new(stack, &mut rx_buffer, &mut tx_buffer);
|
||||||
socket.set_timeout(Some(Duration::from_secs(10)));
|
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());
|
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[0] = b'B';
|
||||||
data[1] = b' ';
|
data[1] = b' ';
|
||||||
hex::encode_to_slice(&card.to_ne_bytes(), &mut data[2..]).unwrap();
|
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();
|
socket.write_all(&data).await.unwrap();
|
||||||
info!("wrote to {:?}", socket.remote_endpoint());
|
info!("wrote to {:?}", socket.remote_endpoint());
|
||||||
|
|
||||||
socket.close();
|
socket.close();
|
||||||
info!("disconnected");
|
control.gpio_set(0, false).await;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue