use whole AP config as input arg

This commit is contained in:
Vladan Popovic 2023-02-12 17:55:54 +01:00
parent ff779d0dc3
commit 47b333d354
2 changed files with 14 additions and 11 deletions

View file

@ -4,8 +4,14 @@ pub struct GprsAp<'a> {
pub password: &'a str, pub password: &'a str,
} }
pub const A1_GPRS_AP: GprsAp = GprsAp { pub const A1: GprsAp = GprsAp {
apn: "internet", apn: "internet",
username: "internet", username: "internet",
password: "internet", password: "internet",
}; };
pub const MTS: GprsAp = GprsAp {
apn: "gprswap",
username: "mts",
password: "064",
};

View file

@ -197,15 +197,15 @@ impl<UART: serial::Uart> Modem<UART> {
self.send_command(Command::gprs_bearer_status()) self.send_command(Command::gprs_bearer_status())
} }
pub fn gprs_attach_ap(&mut self, apn: &str, username: &str, password: &str)-> Result<()> { pub fn gprs_attach_ap(&mut self, config: crate::config::GprsAp)-> Result<()> {
println!("init gprs ..."); println!("init gprs ...");
let _ = self.send_command(Command::gprs_init())?; let _ = self.send_command(Command::gprs_init())?;
println!("setting up gprs credentials for apn {}, {}:{})", apn, username, password); println!("setting up gprs credentials for apn {}, {}:{})", config.apn, config.username, config.password);
let _ = self.send_command(Command::gprs_set_apn(apn))?; let _ = self.send_command(Command::gprs_set_apn(config.apn))?;
let _ = self.send_command(Command::gprs_set_user(username))?; let _ = self.send_command(Command::gprs_set_user(config.username))?;
let _ = self.send_command(Command::gprs_set_pwd(password))?; let _ = self.send_command(Command::gprs_set_pwd(config.password))?;
Ok(()) Ok(())
} }
@ -223,6 +223,7 @@ impl<UART: serial::Uart> Modem<UART> {
fn try_connect_gprs(&mut self) -> Result<()> { fn try_connect_gprs(&mut self) -> Result<()> {
let mut retries = 0; let mut retries = 0;
println!("TRYING TO CONNECT TO GPRS");
loop { loop {
if self.is_gprs_attached()? { if self.is_gprs_attached()? {
let _ = self.gprs_connect()?; let _ = self.gprs_connect()?;
@ -551,11 +552,7 @@ where
loop { loop {
if !mdm.is_gprs_attached()? { if !mdm.is_gprs_attached()? {
let _ = mdm.gprs_attach_ap( let _ = mdm.gprs_attach_ap(crate::config::A1)?;
crate::config::A1_GPRS_AP.apn,
crate::config::A1_GPRS_AP.username,
crate::config::A1_GPRS_AP.password,
)?;
} }
if let Ok(()) = mdm.try_connect_gprs() { if let Ok(()) = mdm.try_connect_gprs() {
// When command AT+CIPQSEND=0, it is in normal sending mode. In this mode, after user // When command AT+CIPQSEND=0, it is in normal sending mode. In this mode, after user