Fix
This commit is contained in:
parent
d0d4685518
commit
c26d6e52c8
|
|
@ -9,6 +9,7 @@
|
|||
#include <egtsWorker.h>
|
||||
#include <AsciiStringAssmeblingUtils.h>
|
||||
#include <Rtc.h>
|
||||
#include <stdlib.h>
|
||||
#include "EgtsProcessing.h"
|
||||
#include "stddef.h"
|
||||
#include "AtGsm_GetTime.h"
|
||||
|
|
@ -111,6 +112,8 @@ _Noreturn void Processing_URC(tEgtsProcessing *env) {
|
|||
|
||||
}
|
||||
|
||||
const char LOG_TASK_GSM_SOCKET[] = "GSM SOCKET";
|
||||
|
||||
void EgtsProcessing_Init(
|
||||
tEgtsProcessing *env,
|
||||
tDeviceStorage *deviceStorage,
|
||||
|
|
@ -153,6 +156,22 @@ void EgtsProcessing_Init(
|
|||
env->egtsCommandConfirmationAdditionalData.queue = osMessageQueueNew(COMMAND_QUEUE_SIZE, sizeof(tEgtsCommand),
|
||||
NULL);
|
||||
|
||||
env->deviceTeledataStorageData->telematica.EGTS_SERVER_ADDRESS.data[env->deviceTeledataStorageData->telematica.EGTS_SERVER_ADDRESS.length] = '\0';
|
||||
uint8_t pos = findDelimiter(&env->deviceTeledataStorageData->telematica.EGTS_SERVER_ADDRESS, ':');
|
||||
String32Copy(&env->srvAddr,
|
||||
env->deviceTeledataStorageData->telematica.EGTS_SERVER_ADDRESS.data,
|
||||
pos);
|
||||
env->srvPort = atoi(&env->deviceTeledataStorageData->telematica.EGTS_SERVER_ADDRESS.data[pos + 1]);
|
||||
|
||||
LoggerStrFormatInfo(LOGGER, LOG_SIGN, "Установка сервера: %s",
|
||||
env->deviceTeledataStorageData->telematica.EGTS_SERVER_ADDRESS.data);
|
||||
|
||||
SocketSocketGsm_Init(&env->gsm->socketGsm, &env->gsm->gsmAt,
|
||||
&env->srvAddr, env->srvPort,
|
||||
env->gsm->gsmAt.access);
|
||||
|
||||
env->gsm->socketGsm.logger = &slog->logger;
|
||||
env->gsm->socketGsm.loggerTaskName = (char *) LOG_TASK_GSM_SOCKET;
|
||||
|
||||
// InitThreadBlock(env->T_processing_Network, "Network", osPriorityNormal);
|
||||
InitThreadBlock(env->T_processing_input_command, "EgtsPrcInputCom", osPriorityNormal);
|
||||
|
|
@ -184,7 +203,6 @@ void EgtsProcessing_Start(tEgtsProcessing *env) {
|
|||
|
||||
void EgtsProcessingCloseConnection(tEgtsProcessing *env) {
|
||||
SocketInterface_close(&env->gsm->socketGsm.socketIO, env->socketId);
|
||||
env->gsm->slots[0].addr.length = 0;
|
||||
}
|
||||
|
||||
bool EgtsProcessingSend(tEgtsProcessing *env, uint8_t *egtsRaw, uint16_t egtsRawLength,
|
||||
|
|
@ -426,6 +444,43 @@ bool Gsm_ActivateApn(tEgtsProcessing *env) {
|
|||
return res == AT_OK;
|
||||
}
|
||||
|
||||
bool Gsm_SetProfileERA(tEgtsProcessing *env) {
|
||||
AtCommandResult res = AT_ERROR;
|
||||
if (osMutexAcquire(env->gsm->gsmAt.access, 1000) == osOK) {
|
||||
|
||||
AtGsmTelitLe910_SimProfileSelect(&env->gsm->gsmAt,
|
||||
&env->store->nvm.deviceTeledataStorageData.telematica.EGTS_PROFILE_SIM_ERA);
|
||||
|
||||
AtGsmTelitLe910_SIMCardNoDetect(&env->gsm->gsmAt);
|
||||
AtGsmTelitLe910_SIMCardDetect(&env->gsm->gsmAt);
|
||||
SystemDelayMs(1000);
|
||||
|
||||
osMutexRelease(env->gsm->gsmAt.access);
|
||||
} else {
|
||||
LoggerInfoStatic(LOGGER, LOG_SIGN, "Ошибка доступа (Gsm_SetProfileERA)")
|
||||
}
|
||||
|
||||
return res == AT_OK;
|
||||
}
|
||||
|
||||
bool Gsm_SetProfileINTERNET(tEgtsProcessing *env) {
|
||||
AtCommandResult res = AT_ERROR;
|
||||
if (osMutexAcquire(env->gsm->gsmAt.access, 1000) == osOK) {
|
||||
|
||||
AtGsmTelitLe910_SimProfileSelect(&env->gsm->gsmAt,
|
||||
&env->store->nvm.deviceTeledataStorageData.telematica.EGTS_PROFILE_SIM_INTERNET);
|
||||
|
||||
AtGsmTelitLe910_SIMCardNoDetect(&env->gsm->gsmAt);
|
||||
AtGsmTelitLe910_SIMCardDetect(&env->gsm->gsmAt);
|
||||
SystemDelayMs(1000);
|
||||
|
||||
osMutexRelease(env->gsm->gsmAt.access);
|
||||
} else {
|
||||
LoggerInfoStatic(LOGGER, LOG_SIGN, "Ошибка доступа (Gsm_SetProfileINTERNET)")
|
||||
}
|
||||
|
||||
return res == AT_OK;
|
||||
}
|
||||
|
||||
_Noreturn void EgtsProcessing_TransmitterTaskMain(tEgtsProcessing *env) {
|
||||
|
||||
|
|
@ -458,23 +513,6 @@ _Noreturn void EgtsProcessing_TransmitterTaskMain(tEgtsProcessing *env) {
|
|||
uint8_t socketId = SOCKET_WRONG_CONTEXT;
|
||||
eSocketStatus socketStatus = eSocketStatus_Disconnected;
|
||||
|
||||
eEgtsCertsStatus isLoad;
|
||||
|
||||
while (1) {
|
||||
|
||||
if (env->store->runtime.EGTS_FLEET_ON) {
|
||||
|
||||
Gsm_ActivatePdp(env);
|
||||
Gsm_ActivateApn(env);
|
||||
|
||||
break;
|
||||
|
||||
} else {
|
||||
SystemDelayMs(1000);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
uint32_t timeOutCheckConnect = 0;
|
||||
uint32_t timeIsNetworkRegistration = 0;
|
||||
uint32_t timeOutCheckNav = AURUS_CHECK_NAV;
|
||||
|
|
@ -489,8 +527,18 @@ _Noreturn void EgtsProcessing_TransmitterTaskMain(tEgtsProcessing *env) {
|
|||
|
||||
env->store->runtime.telematicaCloseConnect = false;
|
||||
|
||||
if (!isFirstStart) {
|
||||
isFirstStart = true;
|
||||
|
||||
LoggerInfoStatic(LOGGER, LOG_SIGN, "Настройка телематики")
|
||||
|
||||
Gsm_SetProfileINTERNET(env);
|
||||
|
||||
Gsm_ActivateApn(env);
|
||||
Gsm_ActivatePdp(env);
|
||||
|
||||
}
|
||||
|
||||
if (env->deviceTeledataStorageData->telematica.telematicaIsActive) {
|
||||
env->isEnableTelematicaSendPoints = true;
|
||||
} else {
|
||||
|
|
@ -503,6 +551,8 @@ _Noreturn void EgtsProcessing_TransmitterTaskMain(tEgtsProcessing *env) {
|
|||
isFirstStart = false;
|
||||
EgtsProcessingCloseConnection(env);
|
||||
LoggerStrFormatInfo(LOGGER, LOG_SIGN, "Соединение с сервером разорвано, ИД: %d", socketId);
|
||||
|
||||
Gsm_SetProfileERA(env);
|
||||
}
|
||||
|
||||
env->egtsIdentityAdditionalData.isReceivedResultCode = false;
|
||||
|
|
|
|||
|
|
@ -414,6 +414,9 @@ typedef struct {
|
|||
|
||||
extern tEgtsProcessing egtsProcessing;
|
||||
|
||||
bool Gsm_SetProfileERA(tEgtsProcessing *env);
|
||||
bool Gsm_SetProfileINTERNET(tEgtsProcessing *env);
|
||||
|
||||
void EgtsProcessing_Init(
|
||||
tEgtsProcessing *env,
|
||||
tDeviceStorage *deviceStorage,
|
||||
|
|
|
|||
Loading…
Reference in New Issue