From b15c2080978331e181c509f42a4f5e51999e2bb4 Mon Sep 17 00:00:00 2001 From: cfif Date: Thu, 5 Dec 2024 15:05:36 +0300 Subject: [PATCH] Fix --- GsmWithGnss.c | 12 ++++-------- GsmWithGnss_GnssOps.c | 32 +++++++++++++++++++++----------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/GsmWithGnss.c b/GsmWithGnss.c index 6f2ab22..933ef01 100644 --- a/GsmWithGnss.c +++ b/GsmWithGnss.c @@ -18,21 +18,14 @@ bool isRtc = false; void GsmWithGnss_Urc(tGsmWithGnss *env, tAtBuffer *buff) { if (AtBufferBeginWithStatic(buff, "SRING: ")) { - - if (osMutexAcquire(env->gsmAt.access, 2000) == osOK) { SocketSocketGsm_UrcProcessor_SRING(&env->socketGsm, buff); - osMutexRelease(env->gsmAt.access); - } return; } if (AtBufferBeginWithStatic(buff, "NO CARRIER")) { - if (osMutexAcquire(env->gsmAt.access, 2000) == osOK) { SocketSocketGsm_UrcProcessor_NO_CARRIER(&env->socketGsm, buff); - osMutexRelease(env->gsmAt.access); - } return; } @@ -50,7 +43,10 @@ void GsmWithGnss_Urc(tGsmWithGnss *env, tAtBuffer *buff) { if (env->gnss.currentRmc.time.second != 0) { if (isRtc == false) { isRtc = true; - RtcSet(env->Rtc, (time_t *) &time); + time_t timestamp; + GnssTaskGetTime(env, ×tamp); + RtcSet(env->Rtc, ×tamp); + //RtcSet(env->Rtc, (time_t *) &time); } } diff --git a/GsmWithGnss_GnssOps.c b/GsmWithGnss_GnssOps.c index 051ab2c..bd29aff 100644 --- a/GsmWithGnss_GnssOps.c +++ b/GsmWithGnss_GnssOps.c @@ -84,20 +84,30 @@ void Gnss_GetFullNavData(tGsmWithGnss *env, tNmeaRmc *nmeaRmc) { void GsmWithGnss_GetNevData(tGsmWithGnss *env, uint32_t timeout) { - GsmWithGnss_StartRMCThread(&env->gsmAt); +/* + if (osMutexAcquire(env->gsmAt.access, 1000) == osOK) { - uint32_t endTimeout = SystemGetMs() + timeout; - env->gnss.currentRmc.time.second = 0; - while (endTimeout > SystemGetMs()) { - AtCmdProcessUnresolvedLines(&env->gsmAt); - if(env->gnss.currentRmc.time.second != 0){ - GsmWithGnss_StopRMCThread(&env->gsmAt); - return; + GsmWithGnss_StartRMCThread(&env->gsmAt); + + uint32_t endTimeout = SystemGetMs() + timeout; + env->gnss.currentRmc.time.second = 0; + while (endTimeout > SystemGetMs()) { + AtCmdProcessUnresolvedLines(&env->gsmAt); + if (env->gnss.currentRmc.time.second != 0) { + GsmWithGnss_StopRMCThread(&env->gsmAt); + osMutexRelease(env->gsmAt.access); + return; + } + SystemDelayMs(2); } - SystemDelayMs(2); - } - GsmWithGnss_StopRMCThread(&env->gsmAt); + GsmWithGnss_StopRMCThread(&env->gsmAt); + + osMutexRelease(env->gsmAt.access); + } else { + LoggerInfoStatic(LOGGER, LOG_SIGN, "Ошибка захвата доступа GsmWithGnss_GetNevData") + } + */ }