Compare commits

..

No commits in common. "b1503cf9c096279261f4b25ad7e5f64cc8df588c" and "ef32a096228c62e5980172116ee12d0ef8d94978" have entirely different histories.

3 changed files with 6 additions and 63 deletions

View File

@ -5,7 +5,6 @@
#ifndef MODEMMAIN_H #ifndef MODEMMAIN_H
#define MODEMMAIN_H #define MODEMMAIN_H
#include <CmsisRtosThreadUtils.h>
#include <SerialPortIO.h> #include <SerialPortIO.h>
#include <DeviceStorageIni.h> #include <DeviceStorageIni.h>
#include <Gnss.h> #include <Gnss.h>
@ -288,8 +287,8 @@ typedef struct {
md5a_context md5ctx_r; md5a_context md5ctx_r;
int32_t msgId; int32_t msgId;
char gsmIMEI[32]; char gsmIMEI[16];
char gsmSimId[32]; char gsmSimId[16];
tGonetsAlmanac alms[50]; tGonetsAlmanac alms[50];
int countAlmanac; int countAlmanac;
@ -297,11 +296,7 @@ typedef struct {
bool isModemCheck; bool isModemCheck;
uint32_t isEnableTracerTimeStamp; uint32_t isEnableTracerTimeStamp;
struct {
bool pbDone;
} urc;
tStaticThreadBlock(512) urcT;
} tModemMain; } tModemMain;
typedef struct __attribute__ ((packed)) { typedef struct __attribute__ ((packed)) {

View File

@ -77,33 +77,6 @@ void ModemMain_Urc(tModemMain *env, tAtBuffer *buff) {
// LoggerInfoRaw(LOGGER, LOG_SIGN, buff->data, buff->len); // LoggerInfoRaw(LOGGER, LOG_SIGN, buff->data, buff->len);
} }
void ModemMainGsm_Urc(tModemMain *env, tAtBuffer *buff) {
if (AtBufferBeginWithStatic(buff, "PB DONE")) {
env->urc.pbDone = true;
// LoggerInfoStatic(LOGGER, LOG_SIGN, "Получена URC, MSD доставлен.")
}
}
_Noreturn void GsmWithGnss_urcThread_body(tModemMain *env) {
for (;;) {
if (osMutexAcquire(env->modemAtGsm.access, 5000) == osOK) {
// LoggerInfoStatic(LOGGER, LOG_SIGN, "--URC processor мьютэкс RMC захвачен")
//AtCmdProcessUnresolvedLines(&env->gsmAt);
while (AtCmdReceiveNextLine(&env->modemAtGsm, 150) == AT_OK) {
AtCmdProcessUnresolvedLine(&env->modemAtGsm);
}
osMutexRelease(env->modemAtGsm.access);
// LoggerInfoStatic(LOGGER, LOG_SIGN, "--URC processor мьютэкс RMC освобождён")
} else {
asm("nop");
// LoggerInfoStatic(LOGGER, LOG_SIGN, "Ошибка доступа (GsmWithGnss_urcThread_body)")
}
SystemDelayMs(40);
}
}
void ModemMain_Init( void ModemMain_Init(
tModemMain *env, tModemMain *env,
tGpios *gpios, tGpios *gpios,
@ -259,11 +232,6 @@ void ModemMain_Init(
6000, 6000 6000, 6000
); );
AtCmdSetUrcProcessor(&env->modemAtGsm, env, ModemMainGsm_Urc);
InitThreadBlock(env->urcT, "gsm_urc", osPriorityNormal);
ThreadBlock_Start(env->urcT, env, GsmWithGnss_urcThread_body);
env->location.region = env->store->nvm.Settings_Frequency_Speed.RegionRegistr_v; env->location.region = env->store->nvm.Settings_Frequency_Speed.RegionRegistr_v;
env->stateRequest.stateReqReg = StateReqRegNoSendStatus; env->stateRequest.stateReqReg = StateReqRegNoSendStatus;
@ -884,20 +852,6 @@ bool sendI2c() {
return true; return true;
} }
AtCommandResult AtCmdWaitPbDone(tModemMain *env, uint32_t retryInterval, uint32_t timeout) {
uint32_t endMs = SystemGetMs() + timeout;
while (endMs > SystemGetMs()) {
if (env->urc.pbDone) {
return AT_OK;
} else {
SystemDelayMs(retryInterval);
}
}
return AT_TIMEOUT;
}
static _Noreturn void ModemMain_Thread(tModemMain *env) { static _Noreturn void ModemMain_Thread(tModemMain *env) {
bool result; bool result;
@ -1039,13 +993,9 @@ static _Noreturn void ModemMain_Thread(tModemMain *env) {
bool isGsmStart = false; bool isGsmStart = false;
if (AtCmdWaitOk(&env->modemAtGsm, 100, 10000) == AT_OK) {
if (AtCmdWaitPbDone(env, 100, 20000) == AT_OK) {
isGsmStart = true; isGsmStart = true;
} }
// if (AtCmdWaitOk(&env->modemAtGsm, 100, 10000) == AT_OK) {
// isGsmStart = true;
// }
memset(env->gsmIMEI, 0, sizeof(env->gsmIMEI)); memset(env->gsmIMEI, 0, sizeof(env->gsmIMEI));
memset(env->gsmSimId, 0, sizeof(env->gsmSimId)); memset(env->gsmSimId, 0, sizeof(env->gsmSimId));
@ -1057,16 +1007,14 @@ static _Noreturn void ModemMain_Thread(tModemMain *env) {
} }
if (GsmCCID(env, env->gsmSimId, &acpStringLen) != AT_OK) { if (GsmCCID(env, env->gsmSimId, &acpStringLen) != AT_OK) {
strcat(env->gsmSimId, "00000000000000000000"); strcat(env->gsmSimId, "0000000000");
} }
} else { } else {
strcat(env->gsmIMEI, "000000000000000"); strcat(env->gsmIMEI, "000000000000000");
strcat(env->gsmSimId, "00000000000000000000"); strcat(env->gsmSimId, "0000000000");
} }
LoggerStrFormatInfo(LOGGER, LOG_SIGN, "Идентификатор GSM модема: %s", env->gsmIMEI)
LoggerStrFormatInfo(LOGGER, LOG_SIGN, "Идентификатор SIM карты: %s", env->gsmSimId);
uint32_t timeStuckGetMs = 0; uint32_t timeStuckGetMs = 0;
bool startStuckGetMs = false; bool startStuckGetMs = false;

View File

@ -40,7 +40,7 @@ static _Noreturn void ModemTimer_Thread(tModemTimer *env) {
SystemDelayMs(6000); SystemDelayMs(6000);
timeModemStuckGetMs = SystemGetMs(); timeModemStuckGetMs = SystemGetMs();
// LoggerInfoStatic(LOGGER, LOG_SIGN, "Контроль задачи модема"); LoggerInfoStatic(LOGGER, LOG_SIGN, "Контроль задачи модема");
SerialPortTransmit(env->io, data, 4, 1000); SerialPortTransmit(env->io, data, 4, 1000);
} }