Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lte/alt1250: Force change modem parameter #2287

Merged
merged 1 commit into from
Feb 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions lte/alt1250/alt1250_atcmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,33 @@ int ltenwop_send_setnwoptp(FAR struct alt1250_s *dev,
return send_internal_at_command(dev, container, -1, NULL, 0, &dummy);
}

/****************************************************************************
* name: ltesp_send_getscanplan
****************************************************************************/

int ltesp_send_getscanplan(FAR struct alt1250_s *dev,
FAR struct alt_container_s *container)
{
int32_t dummy;
snprintf((FAR char *)dev->tx_buff, _TX_BUFF_SIZE,
"AT%%GETCFG=\"SCAN_PLAN_EN\"\r");
return send_internal_at_command(dev, container, -1, NULL, 0, &dummy);
}

/****************************************************************************
* name: ltesp_send_setscanplan
****************************************************************************/

int ltesp_send_setscanplan(FAR struct alt1250_s *dev,
FAR struct alt_container_s *container,
bool enable)
{
int32_t dummy;
snprintf((FAR char *)dev->tx_buff, _TX_BUFF_SIZE,
"AT%%SETCFG=\"SCAN_PLAN_EN\",\"%s\"\r", (enable ? "1" : "0"));
return send_internal_at_command(dev, container, -1, NULL, 0, &dummy);
}

/****************************************************************************
* name: lwm2mstub_send_getqueuemode
****************************************************************************/
Expand Down
7 changes: 7 additions & 0 deletions lte/alt1250/alt1250_atcmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,13 @@ int ltenwop_send_getnwop(FAR struct alt1250_s *dev,
int ltenwop_send_setnwoptp(FAR struct alt1250_s *dev,
FAR struct alt_container_s *container);

int ltesp_send_getscanplan(FAR struct alt1250_s *dev,
FAR struct alt_container_s *container);

int ltesp_send_setscanplan(FAR struct alt1250_s *dev,
FAR struct alt_container_s *container,
bool enable);

int lwm2mstub_send_getqueuemode(FAR struct alt1250_s *dev,
FAR struct alt_container_s *container,
int16_t usockid, FAR int32_t *ures);
Expand Down
39 changes: 39 additions & 0 deletions lte/alt1250/alt1250_reset_seq.c
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,37 @@ static int recv_atreply_onreset(atreply_parser_t parse,
return ret;
}

/****************************************************************************
* name: alt1250_disable_scanplan
****************************************************************************/

static int alt1250_disable_scanplan(FAR struct alt1250_s *dev,
FAR struct alt_container_s *container)
{
int recv_ret;
struct atreply_truefalse_s t_or_f;

t_or_f.target_str = "0";
ltesp_send_getscanplan(dev, container);
recv_ret = recv_atreply_onreset(check_atreply_truefalse, dev, &t_or_f);
if (recv_ret == REP_MODEM_RESET)
{
return recv_ret;
}

if (!t_or_f.result)
{
ltesp_send_setscanplan(dev, container, false);
recv_ret = recv_atreply_onreset(check_atreply_ok, dev, NULL);
if (recv_ret == REP_MODEM_RESET)
{
return recv_ret;
}
}

return recv_ret;
}

/****************************************************************************
* name: alt1250_lwm2m_ponreset
****************************************************************************/
Expand Down Expand Up @@ -319,6 +350,14 @@ static int alt1250_lwm2m_ponreset(FAR struct alt1250_s *dev,
ret = REP_SEND_ACK;
}

/* Make sure SCAN_PALAN_EN is 0 */

recv_ret = alt1250_disable_scanplan(dev, container);
if (recv_ret == REP_MODEM_RESET)
{
return recv_ret;
}

if (ret == REP_SEND_ACK)
{
/* Force Reset is needed. */
Expand Down
Loading