Expand description
§no_std ESP-AT network layer
Network layer implementation/client for ESP-AT implementing embedded-nal based on ATAT.
Currently this crates offers the following features
- Joining an WIFI access point, s. wifi module
- TCP client stack (multi socket), s. stack module
§Setup
This crates is based on ATAT and requires a AtClient instance. s. examples.
§Example
use core::str::FromStr;
use core::net::SocketAddr;
use atat::urc_channel;
use embedded_nal::{TcpClientStack};
use esp_at_nal::example::ExampleTimer;
use esp_at_nal::wifi::{Adapter, WifiAdapter};
use crate::esp_at_nal::example::ExampleAtClient as AtClient;
let urc_channel = AtClient::urc_channel();
let client = AtClient::init(&urc_channel);
// Creating adapter with 1024 bytes TX and 128 RX block size
let mut adapter: Adapter<_, _, 1_000_000, 1024, 128, 8> = Adapter::new(client, urc_channel.subscriber().unwrap(), ExampleTimer::default());
// Joining WIFI access point
let state = adapter.join("test_wifi", "secret").unwrap();
assert!(state.connected);
// Creating a TCP connection
let mut socket = adapter.socket().unwrap();
adapter.connect(&mut socket, SocketAddr::from_str("10.0.0.1:21").unwrap()).unwrap();
// Sending some data
adapter.send(&mut socket, b"hallo!").unwrap();