rustfmt
This commit is contained in:
parent
b4221d75b8
commit
49881f6fd1
@ -1,8 +1,10 @@
|
|||||||
//! Helper utility to configure a specific modem context.
|
//! Helper utility to configure a specific modem context.
|
||||||
use core::net::IpAddr;
|
use core::net::IpAddr;
|
||||||
use core::str::FromStr;
|
use core::str::FromStr;
|
||||||
|
|
||||||
|
use at_commands::builder::CommandBuilder;
|
||||||
|
use at_commands::parser::CommandParser;
|
||||||
use heapless::Vec;
|
use heapless::Vec;
|
||||||
use at_commands::{builder::CommandBuilder, parser::CommandParser};
|
|
||||||
|
|
||||||
/// Provides a higher level API for controlling a given context.
|
/// Provides a higher level API for controlling a given context.
|
||||||
pub struct Control<'a> {
|
pub struct Control<'a> {
|
||||||
@ -91,7 +93,8 @@ impl<'a> Control<'a> {
|
|||||||
.with_int_parameter(self.cid)
|
.with_int_parameter(self.cid)
|
||||||
.with_string_parameter("IP")
|
.with_string_parameter("IP")
|
||||||
.with_string_parameter(config.apn)
|
.with_string_parameter(config.apn)
|
||||||
.finish().map_err(|_| Error::BufferTooSmall)?;
|
.finish()
|
||||||
|
.map_err(|_| Error::BufferTooSmall)?;
|
||||||
let n = self.control.at_command(op, &mut buf).await;
|
let n = self.control.at_command(op, &mut buf).await;
|
||||||
CommandParser::parse(&buf[..n]).expect_identifier(b"OK").finish()?;
|
CommandParser::parse(&buf[..n]).expect_identifier(b"OK").finish()?;
|
||||||
|
|
||||||
@ -110,7 +113,8 @@ impl<'a> Control<'a> {
|
|||||||
let op = CommandBuilder::create_set(&mut cmd, true)
|
let op = CommandBuilder::create_set(&mut cmd, true)
|
||||||
.named("+CFUN")
|
.named("+CFUN")
|
||||||
.with_int_parameter(1)
|
.with_int_parameter(1)
|
||||||
.finish().map_err(|_| Error::BufferTooSmall)?;
|
.finish()
|
||||||
|
.map_err(|_| Error::BufferTooSmall)?;
|
||||||
let n = self.control.at_command(op, &mut buf).await;
|
let n = self.control.at_command(op, &mut buf).await;
|
||||||
CommandParser::parse(&buf[..n]).expect_identifier(b"OK").finish()?;
|
CommandParser::parse(&buf[..n]).expect_identifier(b"OK").finish()?;
|
||||||
|
|
||||||
@ -124,28 +128,37 @@ impl<'a> Control<'a> {
|
|||||||
|
|
||||||
let op = CommandBuilder::create_query(&mut cmd, true)
|
let op = CommandBuilder::create_query(&mut cmd, true)
|
||||||
.named("+CGATT")
|
.named("+CGATT")
|
||||||
.finish().map_err(|_| Error::BufferTooSmall)?;
|
.finish()
|
||||||
|
.map_err(|_| Error::BufferTooSmall)?;
|
||||||
let n = self.control.at_command(op, &mut buf).await;
|
let n = self.control.at_command(op, &mut buf).await;
|
||||||
let (res,) = CommandParser::parse(&buf[..n])
|
let (res,) = CommandParser::parse(&buf[..n])
|
||||||
.expect_identifier(b"+CGATT: ")
|
.expect_identifier(b"+CGATT: ")
|
||||||
.expect_int_parameter()
|
.expect_int_parameter()
|
||||||
.expect_identifier(b"\r\nOK").finish()?;
|
.expect_identifier(b"\r\nOK")
|
||||||
|
.finish()?;
|
||||||
let attached = res == 1;
|
let attached = res == 1;
|
||||||
if !attached {
|
if !attached {
|
||||||
return Ok(Status { attached, ip: None, gateway: None, dns: Vec::new() })
|
return Ok(Status {
|
||||||
|
attached,
|
||||||
|
ip: None,
|
||||||
|
gateway: None,
|
||||||
|
dns: Vec::new(),
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
let op = CommandBuilder::create_set(&mut cmd, true)
|
let op = CommandBuilder::create_set(&mut cmd, true)
|
||||||
.named("+CGPADDR")
|
.named("+CGPADDR")
|
||||||
.with_int_parameter(self.cid)
|
.with_int_parameter(self.cid)
|
||||||
.finish().map_err(|_| Error::BufferTooSmall)?;
|
.finish()
|
||||||
|
.map_err(|_| Error::BufferTooSmall)?;
|
||||||
let n = self.control.at_command(op, &mut buf).await;
|
let n = self.control.at_command(op, &mut buf).await;
|
||||||
let (_, ip1, _ip2, ) = CommandParser::parse(&buf[..n])
|
let (_, ip1, _ip2) = CommandParser::parse(&buf[..n])
|
||||||
.expect_identifier(b"+CGPADDR: ")
|
.expect_identifier(b"+CGPADDR: ")
|
||||||
.expect_int_parameter()
|
.expect_int_parameter()
|
||||||
.expect_optional_string_parameter()
|
.expect_optional_string_parameter()
|
||||||
.expect_optional_string_parameter()
|
.expect_optional_string_parameter()
|
||||||
.expect_identifier(b"\r\nOK").finish()?;
|
.expect_identifier(b"\r\nOK")
|
||||||
|
.finish()?;
|
||||||
|
|
||||||
let ip = if let Some(ip) = ip1 {
|
let ip = if let Some(ip) = ip1 {
|
||||||
let ip = IpAddr::from_str(ip).map_err(|_| Error::AddrParseError)?;
|
let ip = IpAddr::from_str(ip).map_err(|_| Error::AddrParseError)?;
|
||||||
@ -158,7 +171,8 @@ impl<'a> Control<'a> {
|
|||||||
let op = CommandBuilder::create_set(&mut cmd, true)
|
let op = CommandBuilder::create_set(&mut cmd, true)
|
||||||
.named("+CGCONTRDP")
|
.named("+CGCONTRDP")
|
||||||
.with_int_parameter(self.cid)
|
.with_int_parameter(self.cid)
|
||||||
.finish().map_err(|_| Error::BufferTooSmall)?;
|
.finish()
|
||||||
|
.map_err(|_| Error::BufferTooSmall)?;
|
||||||
let n = self.control.at_command(op, &mut buf).await;
|
let n = self.control.at_command(op, &mut buf).await;
|
||||||
let (_cid, _bid, _apn, _mask, gateway, dns1, dns2, _, _, _, _, _mtu) = CommandParser::parse(&buf[..n])
|
let (_cid, _bid, _apn, _mask, gateway, dns1, dns2, _, _, _, _, _mtu) = CommandParser::parse(&buf[..n])
|
||||||
.expect_identifier(b"+CGCONTRDP: ")
|
.expect_identifier(b"+CGCONTRDP: ")
|
||||||
@ -174,7 +188,8 @@ impl<'a> Control<'a> {
|
|||||||
.expect_optional_int_parameter()
|
.expect_optional_int_parameter()
|
||||||
.expect_optional_int_parameter()
|
.expect_optional_int_parameter()
|
||||||
.expect_optional_int_parameter()
|
.expect_optional_int_parameter()
|
||||||
.expect_identifier(b"\r\nOK").finish()?;
|
.expect_identifier(b"\r\nOK")
|
||||||
|
.finish()?;
|
||||||
|
|
||||||
let gateway = if let Some(ip) = gateway {
|
let gateway = if let Some(ip) = gateway {
|
||||||
if ip.is_empty() {
|
if ip.is_empty() {
|
||||||
@ -188,11 +203,13 @@ impl<'a> Control<'a> {
|
|||||||
|
|
||||||
let mut dns = Vec::new();
|
let mut dns = Vec::new();
|
||||||
if let Some(ip) = dns1 {
|
if let Some(ip) = dns1 {
|
||||||
dns.push(IpAddr::from_str(ip).map_err(|_| Error::AddrParseError)?).unwrap();
|
dns.push(IpAddr::from_str(ip).map_err(|_| Error::AddrParseError)?)
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(ip) = dns2 {
|
if let Some(ip) = dns2 {
|
||||||
dns.push(IpAddr::from_str(ip).map_err(|_| Error::AddrParseError)?).unwrap();
|
dns.push(IpAddr::from_str(ip).map_err(|_| Error::AddrParseError)?)
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(Status {
|
Ok(Status {
|
||||||
|
|||||||
@ -17,13 +17,12 @@ use core::slice;
|
|||||||
use core::sync::atomic::{compiler_fence, fence, Ordering};
|
use core::sync::atomic::{compiler_fence, fence, Ordering};
|
||||||
use core::task::{Poll, Waker};
|
use core::task::{Poll, Waker};
|
||||||
|
|
||||||
use embassy_net_driver_channel as ch;
|
|
||||||
use embassy_sync::waitqueue::{AtomicWaker, WakerRegistration};
|
|
||||||
use embassy_sync::blocking_mutex::raw::NoopRawMutex;
|
use embassy_sync::blocking_mutex::raw::NoopRawMutex;
|
||||||
use heapless::Vec;
|
|
||||||
use nrf9160_pac as pac;
|
|
||||||
use pac::NVIC;
|
|
||||||
use embassy_sync::pipe;
|
use embassy_sync::pipe;
|
||||||
|
use embassy_sync::waitqueue::{AtomicWaker, WakerRegistration};
|
||||||
|
use heapless::Vec;
|
||||||
|
use pac::NVIC;
|
||||||
|
use {embassy_net_driver_channel as ch, nrf9160_pac as pac};
|
||||||
|
|
||||||
const RX_SIZE: usize = 8 * 1024;
|
const RX_SIZE: usize = 8 * 1024;
|
||||||
const TRACE_SIZE: usize = 16 * 1024;
|
const TRACE_SIZE: usize = 16 * 1024;
|
||||||
@ -269,7 +268,6 @@ pub struct State {
|
|||||||
inner: MaybeUninit<RefCell<StateInner>>,
|
inner: MaybeUninit<RefCell<StateInner>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
impl State {
|
impl State {
|
||||||
/// Create a new State.
|
/// Create a new State.
|
||||||
pub const fn new() -> Self {
|
pub const fn new() -> Self {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user