This is an automated email from the ASF dual-hosted git repository. jerpelea pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
The following commit(s) were added to refs/heads/master by this push: new 90c9364b3 lte/alt1250: Force change modem parameter 90c9364b3 is described below commit 90c9364b3b48f04a00697316ef916e2bf23ebcde Author: SPRESENSE <41312067+sprese...@users.noreply.github.com> AuthorDate: Thu Jan 25 11:40:29 2024 +0900 lte/alt1250: Force change modem parameter In some conditions, LTE connection has issue. To fix it, need to change a modem parameter. --- lte/alt1250/alt1250_atcmd.c | 27 +++++++++++++++++++++++++++ lte/alt1250/alt1250_atcmd.h | 7 +++++++ lte/alt1250/alt1250_reset_seq.c | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) diff --git a/lte/alt1250/alt1250_atcmd.c b/lte/alt1250/alt1250_atcmd.c index 5eba45d6a..bdd7e2853 100644 --- a/lte/alt1250/alt1250_atcmd.c +++ b/lte/alt1250/alt1250_atcmd.c @@ -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 ****************************************************************************/ diff --git a/lte/alt1250/alt1250_atcmd.h b/lte/alt1250/alt1250_atcmd.h index 62cc56d1e..d732a3313 100644 --- a/lte/alt1250/alt1250_atcmd.h +++ b/lte/alt1250/alt1250_atcmd.h @@ -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); diff --git a/lte/alt1250/alt1250_reset_seq.c b/lte/alt1250/alt1250_reset_seq.c index 31192edaf..3dc836803 100644 --- a/lte/alt1250/alt1250_reset_seq.c +++ b/lte/alt1250/alt1250_reset_seq.c @@ -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 ****************************************************************************/ @@ -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. */