Crate esp_at_nal

Source
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

§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();

Modules§

example
Mocks for doc examples
stack
TCP client stack
urc
URC parser implementation
wifi
WIFI access point client