Add config option for setting SIM pin

This commit is contained in:
Ulf Lilleengen 2024-09-26 15:41:21 +02:00
parent 8a5d1454a4
commit f19718b4f0
2 changed files with 13 additions and 0 deletions

View File

@ -21,6 +21,8 @@ pub struct Config<'a> {
pub auth_prot: AuthProt,
/// Credentials.
pub auth: Option<(&'a [u8], &'a [u8])>,
/// SIM pin
pub pin: Option<&'a [u8]>,
}
/// Authentication protocol.
@ -133,6 +135,16 @@ impl<'a> Control<'a> {
// info!("RES2: {}", unsafe { core::str::from_utf8_unchecked(&buf[..n]) });
CommandParser::parse(&buf[..n]).expect_identifier(b"OK").finish()?;
if let Some(pin) = config.pin {
let op = CommandBuilder::create_set(&mut cmd, true)
.named("+CPIN")
.with_string_parameter(pin)
.finish()
.map_err(|_| Error::BufferTooSmall)?;
let _ = self.control.at_command(op, &mut buf).await;
// Ignore ERROR which means no pin required
}
Ok(())
}

View File

@ -163,6 +163,7 @@ async fn main(spawner: Spawner) {
apn: b"iot.nat.es",
auth_prot: context::AuthProt::Pap,
auth: Some((b"orange", b"orange")),
pin: None,
},
stack
)));