Fix
This commit is contained in:
parent
d0d4685518
commit
c26d6e52c8
|
|
@ -9,6 +9,7 @@
|
||||||
#include <egtsWorker.h>
|
#include <egtsWorker.h>
|
||||||
#include <AsciiStringAssmeblingUtils.h>
|
#include <AsciiStringAssmeblingUtils.h>
|
||||||
#include <Rtc.h>
|
#include <Rtc.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include "EgtsProcessing.h"
|
#include "EgtsProcessing.h"
|
||||||
#include "stddef.h"
|
#include "stddef.h"
|
||||||
#include "AtGsm_GetTime.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(
|
void EgtsProcessing_Init(
|
||||||
tEgtsProcessing *env,
|
tEgtsProcessing *env,
|
||||||
tDeviceStorage *deviceStorage,
|
tDeviceStorage *deviceStorage,
|
||||||
|
|
@ -153,6 +156,22 @@ void EgtsProcessing_Init(
|
||||||
env->egtsCommandConfirmationAdditionalData.queue = osMessageQueueNew(COMMAND_QUEUE_SIZE, sizeof(tEgtsCommand),
|
env->egtsCommandConfirmationAdditionalData.queue = osMessageQueueNew(COMMAND_QUEUE_SIZE, sizeof(tEgtsCommand),
|
||||||
NULL);
|
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_Network, "Network", osPriorityNormal);
|
||||||
InitThreadBlock(env->T_processing_input_command, "EgtsPrcInputCom", osPriorityNormal);
|
InitThreadBlock(env->T_processing_input_command, "EgtsPrcInputCom", osPriorityNormal);
|
||||||
|
|
@ -184,7 +203,6 @@ void EgtsProcessing_Start(tEgtsProcessing *env) {
|
||||||
|
|
||||||
void EgtsProcessingCloseConnection(tEgtsProcessing *env) {
|
void EgtsProcessingCloseConnection(tEgtsProcessing *env) {
|
||||||
SocketInterface_close(&env->gsm->socketGsm.socketIO, env->socketId);
|
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,
|
bool EgtsProcessingSend(tEgtsProcessing *env, uint8_t *egtsRaw, uint16_t egtsRawLength,
|
||||||
|
|
@ -426,6 +444,43 @@ bool Gsm_ActivateApn(tEgtsProcessing *env) {
|
||||||
return res == AT_OK;
|
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) {
|
_Noreturn void EgtsProcessing_TransmitterTaskMain(tEgtsProcessing *env) {
|
||||||
|
|
||||||
|
|
@ -458,23 +513,6 @@ _Noreturn void EgtsProcessing_TransmitterTaskMain(tEgtsProcessing *env) {
|
||||||
uint8_t socketId = SOCKET_WRONG_CONTEXT;
|
uint8_t socketId = SOCKET_WRONG_CONTEXT;
|
||||||
eSocketStatus socketStatus = eSocketStatus_Disconnected;
|
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 timeOutCheckConnect = 0;
|
||||||
uint32_t timeIsNetworkRegistration = 0;
|
uint32_t timeIsNetworkRegistration = 0;
|
||||||
uint32_t timeOutCheckNav = AURUS_CHECK_NAV;
|
uint32_t timeOutCheckNav = AURUS_CHECK_NAV;
|
||||||
|
|
@ -489,7 +527,17 @@ _Noreturn void EgtsProcessing_TransmitterTaskMain(tEgtsProcessing *env) {
|
||||||
|
|
||||||
env->store->runtime.telematicaCloseConnect = false;
|
env->store->runtime.telematicaCloseConnect = false;
|
||||||
|
|
||||||
isFirstStart = true;
|
if (!isFirstStart) {
|
||||||
|
isFirstStart = true;
|
||||||
|
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Настройка телематики")
|
||||||
|
|
||||||
|
Gsm_SetProfileINTERNET(env);
|
||||||
|
|
||||||
|
Gsm_ActivateApn(env);
|
||||||
|
Gsm_ActivatePdp(env);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (env->deviceTeledataStorageData->telematica.telematicaIsActive) {
|
if (env->deviceTeledataStorageData->telematica.telematicaIsActive) {
|
||||||
env->isEnableTelematicaSendPoints = true;
|
env->isEnableTelematicaSendPoints = true;
|
||||||
|
|
@ -503,6 +551,8 @@ _Noreturn void EgtsProcessing_TransmitterTaskMain(tEgtsProcessing *env) {
|
||||||
isFirstStart = false;
|
isFirstStart = false;
|
||||||
EgtsProcessingCloseConnection(env);
|
EgtsProcessingCloseConnection(env);
|
||||||
LoggerStrFormatInfo(LOGGER, LOG_SIGN, "Соединение с сервером разорвано, ИД: %d", socketId);
|
LoggerStrFormatInfo(LOGGER, LOG_SIGN, "Соединение с сервером разорвано, ИД: %d", socketId);
|
||||||
|
|
||||||
|
Gsm_SetProfileERA(env);
|
||||||
}
|
}
|
||||||
|
|
||||||
env->egtsIdentityAdditionalData.isReceivedResultCode = false;
|
env->egtsIdentityAdditionalData.isReceivedResultCode = false;
|
||||||
|
|
|
||||||
|
|
@ -414,6 +414,9 @@ typedef struct {
|
||||||
|
|
||||||
extern tEgtsProcessing egtsProcessing;
|
extern tEgtsProcessing egtsProcessing;
|
||||||
|
|
||||||
|
bool Gsm_SetProfileERA(tEgtsProcessing *env);
|
||||||
|
bool Gsm_SetProfileINTERNET(tEgtsProcessing *env);
|
||||||
|
|
||||||
void EgtsProcessing_Init(
|
void EgtsProcessing_Init(
|
||||||
tEgtsProcessing *env,
|
tEgtsProcessing *env,
|
||||||
tDeviceStorage *deviceStorage,
|
tDeviceStorage *deviceStorage,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue