From 6dd29bb2533e6b04be60fdf404bb70b4582eb096 Mon Sep 17 00:00:00 2001 From: cfif Date: Wed, 18 Jun 2025 13:56:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BD=D0=B0=20=D0=BD=D0=BE=D0=B2=D1=8B=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ModemGsm.c | 3 +++ ModemGsmFunc.c | 21 +++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/ModemGsm.c b/ModemGsm.c index 74926fe..94abb35 100644 --- a/ModemGsm.c +++ b/ModemGsm.c @@ -7,7 +7,9 @@ // начало-------------------------- Служебные ---------------------------------------------------------------------- // начало-------------------------- Служебные ---------------------------------------------------------------------- bool Gsm_GET_CGSN(tAtCmd *env, char *acpString, size_t *acpStringLen) { + AtCommandResult result = AtGsm_Simcom_A76xx_GET_CGSN(env, acpString, acpStringLen); + osMutexRelease(env->access); if (result != AT_OK) return false; @@ -16,6 +18,7 @@ bool Gsm_GET_CGSN(tAtCmd *env, char *acpString, size_t *acpStringLen) { } bool Gsm_CCID(tAtCmd *env, char *acpString, size_t *acpStringLen) { + AtCommandResult result = AtGsm_Simcom_A76xx_CCID(env, acpString, acpStringLen); if (result != AT_OK) diff --git a/ModemGsmFunc.c b/ModemGsmFunc.c index aaf1344..87146d5 100644 --- a/ModemGsmFunc.c +++ b/ModemGsmFunc.c @@ -21,7 +21,15 @@ // начало-------------------------- Служебные ---------------------------------------------------------------------- bool GsmGET_CGSN(tModemMain *env, char *acpString, size_t *acpStringLen) { - bool result = Gsm_GET_CGSN(&env->modemAtGsm, acpString, acpStringLen); + bool result = AT_ERROR; + + if (osMutexAcquire(env->modemAtGsm.access, 1000) == osOK) { + result = Gsm_GET_CGSN(&env->modemAtGsm, acpString, acpStringLen); + osMutexRelease(env->modemAtGsm.access); + } else { + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Получение IMEI (AT+CGSN) Ошибка захвата"); + } if (!result) { LoggerInfoStatic(LOGGER, LOG_SIGN, @@ -32,7 +40,16 @@ bool GsmGET_CGSN(tModemMain *env, char *acpString, size_t *acpStringLen) { } bool GsmCCID(tModemMain *env, char *acpString, size_t *acpStringLen) { - AtCommandResult result = Gsm_CCID(&env->modemAtGsm, acpString, acpStringLen); + + bool result = AT_ERROR; + + if (osMutexAcquire(env->modemAtGsm.access, 1000) == osOK) { + result = Gsm_CCID(&env->modemAtGsm, acpString, acpStringLen); + osMutexRelease(env->modemAtGsm.access); + } else { + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Получение Msisdn (AT+CCID) Ошибка захвата"); + } if (!result) { LoggerInfoStatic(LOGGER, LOG_SIGN,