From a5517363332879e3b01794f1c895a51e8f0383b9 Mon Sep 17 00:00:00 2001 From: cfif Date: Mon, 9 Dec 2024 13:40:18 +0300 Subject: [PATCH] Fix --- GsmSocketTimeouts.h | 6 +++--- GsmWithGnss_GnssOps.c | 43 ++++++++++++++++++------------------------- 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/GsmSocketTimeouts.h b/GsmSocketTimeouts.h index 54c7e1d..8951954 100644 --- a/GsmSocketTimeouts.h +++ b/GsmSocketTimeouts.h @@ -5,9 +5,9 @@ #ifndef SMART_COMPONENTS_TELEMATICA_GSMSOCKETTIMEOUTS_H #define SMART_COMPONENTS_TELEMATICA_GSMSOCKETTIMEOUTS_H -#define defaultSocketTimeout 2000 -#define defaultSocketOpenTimeout 4000 -#define defaultSocketTransmiteTimeout 4000 +#define defaultSocketTimeout 5000 +#define defaultSocketOpenTimeout 5000 +#define defaultSocketTransmiteTimeout 5000 #endif //SMART_COMPONENTS_TELEMATICA_GSMSOCKETTIMEOUTS_H diff --git a/GsmWithGnss_GnssOps.c b/GsmWithGnss_GnssOps.c index bd29aff..1bda8a7 100644 --- a/GsmWithGnss_GnssOps.c +++ b/GsmWithGnss_GnssOps.c @@ -61,7 +61,6 @@ void AtGsm_Gsnss_NavData_Processing(tGsmWithGnss *env) { if (bNmea0183IsRmcString(env->gsmAt.rxBuffer.data, env->gsmAt.rxBuffer.len)) { if (bNmea0183IsValidString(env->gsmAt.rxBuffer.data, env->gsmAt.rxBuffer.len)) { bNmea0183ParseRMC(env->gsmAt.rxBuffer.data + 7, env->gsmAt.rxBuffer.len - 7, &env->gnss.currentRmc); - bNmea0183ParseRMC(env->gsmAt.rxBuffer.data + 7, env->gsmAt.rxBuffer.len - 7, &env->gnssRmcGga.currentRmc); env->gnss.success = true; } @@ -84,32 +83,23 @@ void Gnss_GetFullNavData(tGsmWithGnss *env, tNmeaRmc *nmeaRmc) { void GsmWithGnss_GetNevData(tGsmWithGnss *env, uint32_t timeout) { -/* - if (osMutexAcquire(env->gsmAt.access, 1000) == osOK) { - GsmWithGnss_StartRMCThread(&env->gsmAt); + 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); + 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; } - GsmWithGnss_StopRMCThread(&env->gsmAt); - - - osMutexRelease(env->gsmAt.access); - } else { - LoggerInfoStatic(LOGGER, LOG_SIGN, "Ошибка захвата доступа GsmWithGnss_GetNevData") + SystemDelayMs(2); } - */ -} + GsmWithGnss_StopRMCThread(&env->gsmAt); +} void AtGsm_Gsnss_GetNMEA_Pack(tGsmWithGnss *env, uint32_t timeout) { @@ -121,6 +111,9 @@ void AtGsm_Gsnss_GetNMEA_Pack(tGsmWithGnss *env, uint32_t timeout) { if (bNmeaACPString(acpString, aspStringLen, &env->gnss.currentAcp)) { if (bNmeaACPParse(acpString, aspStringLen, &env->gnss.currentAcp) && aspStringLen > 24) { + + memcpy(&env->gnssRmcGga.currentRmc, &env->gnss.currentAcp, sizeof(env->gnss.currentAcp)); + env->gnss.success = true; } } @@ -168,13 +161,13 @@ void GnssSetRTC(tGsmWithGnss *env) { } void AtGsm_Gsnss_GetLastActualNavData(tGsmWithGnss *env, EraGlonassUveosNavData *location, bool locSourse) { - if(locSourse == 1) { + if (locSourse == 1) { if (env->gnss.currentRmc.status == 'A') { env->gnss.prevRmc = env->gnss.currentRmc; location->valid = 2; } else { if (env->gnss.prevRmc.status == 'A') { - env->gnss.currentRmc = env->gnss.prevRmc; + env->gnss.currentRmc = env->gnss.prevRmc; env->gnss.currentRmc.status = 'V'; location->valid = 1; } else if (env->gnss.prevRmc.location.latitude < 1) { @@ -197,7 +190,7 @@ void GnssGetNavData(tGsmWithGnss *env, EraGlonassUveosNavData *location, bool lo AtGsm_Gsnss_GetLastActualNavData(env, location, locSourse); - if(locSourse == 1) { + if (locSourse == 1) { NmeaRMCLocationToLocationRMC(&env->gnss.currentRmc.location, location); location->direction = (uint16_t) env->gnss.currentRmc.headingAngle; } else {