From 08c825a2eda6be097613113af617a84b41111109 Mon Sep 17 00:00:00 2001 From: cfif Date: Wed, 4 Dec 2024 14:13:29 +0300 Subject: [PATCH] Fix --- Src/AtGsmTelitLe910_DefinePdpContext.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Src/AtGsmTelitLe910_DefinePdpContext.c b/Src/AtGsmTelitLe910_DefinePdpContext.c index 4d18426..c859cf3 100755 --- a/Src/AtGsmTelitLe910_DefinePdpContext.c +++ b/Src/AtGsmTelitLe910_DefinePdpContext.c @@ -62,7 +62,20 @@ AtCommandResult AtGsmTelitLe910_PdpActivate(tAtCmd *env, uint8_t cid) { AtCmdTxSendLn(env); - return AtCmdOkErrAnswer(env, env->stdRxTimeout*10); + uint32_t leftMs; + uint32_t endMs = SystemGetMs() + env->stdRxTimeout * 2; + + while (endMs > SystemGetMs()) { + leftMs = endMs - SystemGetMs(); + if ((AtCmdReceiveNextLine(env, leftMs) == AT_OK) && (SystemGetMs() < endMs)) { + if (AtCmdRxBeginWithStatic(env, "OK"))return AT_OK; + if (AtCmdRxBeginWithStatic(env, "ERROR"))return AT_ERROR; + if (AtCmdRxBeginWithStatic(env, "+CME ERROR"))return AT_ERROR; + AtCmdProcessUnresolvedLine(env); + } + } + + return AT_TIMEOUT; } AtCommandResult AtGsmTelitLe910_PdpDeactivate(tAtCmd *env, uint8_t cid) {