Fix
This commit is contained in:
parent
4e439443f1
commit
6473040165
|
|
@ -6,10 +6,41 @@
|
|||
#include "Rtc.h"
|
||||
#include "string.h"
|
||||
#include "SystemDelayInterface.h"
|
||||
#include "n32g45x.h"
|
||||
|
||||
#define LOG_SIGN "EGTS_COM"
|
||||
#define LOGGER &env->slog->logger
|
||||
|
||||
egtsAurusCommandResult egtsAurusSetTimestamp(tEgtsProcessing *env) {
|
||||
|
||||
time_t timestamp = *((uint32_t *) env->egtsCommandSent.data);
|
||||
|
||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Получена временная метка (1681246800): %u", timestamp)
|
||||
|
||||
timestamp = timestamp + 1681246800 + 3600 * 3;
|
||||
|
||||
RtcSet(env->rtc, ×tamp);
|
||||
|
||||
//1681246800
|
||||
|
||||
if (env->egtsCommandSent.dataSize >= 5) {
|
||||
|
||||
uint8_t isRunTelematica = env->egtsCommandSent.data[4];
|
||||
|
||||
LoggerFormatInfo(LOGGER, LOG_SIGN, "Получен статус удаленного включения (не перманентного) телематики: %u", isRunTelematica)
|
||||
|
||||
if (isRunTelematica) {
|
||||
return EGTS_AURUS_COMMAND_RESULT_TIMESTAMP_TELE_RUN_OK;
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
env->store->runtime.telematicaWaitConnect = true;
|
||||
}
|
||||
|
||||
return EGTS_AURUS_COMMAND_RESULT_TIMESTAMP_TELE_STOP_OK;
|
||||
}
|
||||
|
||||
egtsAurusCommandResult egtsAurusGetReport(tEgtsProcessing *env) {
|
||||
|
||||
uint16_t command = *((uint16_t *) (env->egtsCommandSent.data + 2));
|
||||
|
|
@ -44,7 +75,7 @@ egtsAurusCommandResult egtsAurusSetRestart(tEgtsProcessing *env) {
|
|||
}
|
||||
|
||||
egtsAurusCommandResult egtsAurusAnalizCommands(tEgtsProcessing *env) {
|
||||
/*
|
||||
|
||||
env->egtsCommandSent.commandConfirmationType = CC_OK;
|
||||
|
||||
if (env->egtsCommandSent.cmd == EGTS_SET_TIME) {
|
||||
|
|
@ -54,14 +85,14 @@ egtsAurusCommandResult egtsAurusAnalizCommands(tEgtsProcessing *env) {
|
|||
if (env->egtsCommandSent.cmd == EGTS_SET_PERMANENT_TELEMATICA) {
|
||||
}
|
||||
|
||||
if (env->egtsCommandSent.cmd == EGTS_GET_REPORT) {
|
||||
return egtsAurusGetReport(env);
|
||||
}
|
||||
// if (env->egtsCommandSent.cmd == EGTS_GET_REPORT) {
|
||||
// return egtsAurusGetReport(env);
|
||||
// }
|
||||
|
||||
if (env->egtsCommandSent.cmd == EGTS_SET_RESTART) {
|
||||
return egtsAurusSetRestart(env);
|
||||
}
|
||||
*/
|
||||
|
||||
env->egtsCommandSent.commandConfirmationType = CC_ILL;
|
||||
|
||||
return EGTS_AURUS_COMMAND_RESULT_UNKNOWN;
|
||||
|
|
@ -138,16 +169,16 @@ _Noreturn void EgtsProcessing_TransmitterTaskInputCommand(tEgtsProcessing *env)
|
|||
env->egtsCommandSent.dataSize);
|
||||
|
||||
|
||||
// if (resultCom == EGTS_AURUS_COMMAND_RESULT_ERROR) {
|
||||
// env->egtsIdentityAdditionalData.isReceivedResultCode = false;
|
||||
// LoggerStrFormatInfo(LOGGER, LOG_SIGN, "Принудительный разрыв соединения с сервером, ИД: %d",
|
||||
// env->socketId);
|
||||
// EgtsProcessingCloseConnection(env);
|
||||
// }
|
||||
if (resultCom == EGTS_AURUS_COMMAND_RESULT_ERROR) {
|
||||
env->egtsIdentityAdditionalData.isReceivedResultCode = false;
|
||||
LoggerStrFormatInfo(LOGGER, LOG_SIGN, "Принудительный разрыв соединения с сервером, ИД: %d",
|
||||
env->socketId);
|
||||
EgtsProcessingCloseConnection(env);
|
||||
}
|
||||
|
||||
if (resultCom == EGTS_AURUS_COMMAND_RESULT_RESTART_OK) {
|
||||
SystemDelayMs(1000);
|
||||
// nvic_system_reset();
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -95,7 +95,6 @@ uint16_t vEgtsPackModuleData(uint8_t *out, tEgtsIdentityModuleDataArgs *args, ui
|
|||
//char auth[15] = "860384067388816";
|
||||
|
||||
bool EgtsProcessing_SendAuth(tEgtsProcessing *env) {
|
||||
|
||||
uint8_t egtsRaw[256];
|
||||
memset(egtsRaw, 0, sizeof(egtsRaw));
|
||||
|
||||
|
|
@ -213,8 +212,7 @@ void EgtsProcessing_Default_SendSensorsDig(tEgtsProcessing *env) {
|
|||
|
||||
|
||||
void EgtsProcessing_Default_SendSensorsAn(tEgtsProcessing *env) {
|
||||
env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[0].number = 99;
|
||||
/*
|
||||
|
||||
env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[0].number = 99;
|
||||
env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[1].number = 104;
|
||||
env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[2].number = 105;
|
||||
|
|
@ -243,7 +241,6 @@ void EgtsProcessing_Default_SendSensorsAn(tEgtsProcessing *env) {
|
|||
|
||||
env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[23].number = 150;
|
||||
env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[24].number = 151;
|
||||
*/
|
||||
|
||||
/*
|
||||
// 0
|
||||
|
|
@ -345,7 +342,7 @@ uint16_t vEgtsPackPositionData(uint8_t *out, tEgtsPositionDataArgs *args, uint16
|
|||
|
||||
bool EgtsProcessing_SendSensors(tEgtsProcessing *env, bool isStorage) {
|
||||
|
||||
uint8_t egtsRaw[512];
|
||||
uint8_t egtsRaw[256];
|
||||
memset(egtsRaw, 0, sizeof(egtsRaw));
|
||||
|
||||
time_t timestamp;
|
||||
|
|
|
|||
|
|
@ -7,10 +7,13 @@
|
|||
|
||||
#include "EgtsProcessing.h"
|
||||
|
||||
|
||||
|
||||
typedef enum {
|
||||
SENSORS_DIG_BodyCanBusStatus = 0 // Статус шины BodyCan
|
||||
} eSensorsDig;
|
||||
|
||||
|
||||
typedef enum {
|
||||
SENSORS_AN_Uptime = 0, // Время работы прибора в минутах, после последней перезагрузки/включения
|
||||
SENSORS_AN_ExternalTemperature = 1, // Внешняя температура, С
|
||||
|
|
@ -39,6 +42,7 @@ typedef enum {
|
|||
SENSORS_AN_EngineOilTemperature = 24 // Температура масла двигателя
|
||||
} eSensorsAn;
|
||||
|
||||
|
||||
/*
|
||||
typedef enum {
|
||||
SENSORS_DIG_VehicleAlarmSystemActivateSirenOnOff = 0, // Vehicle Alarm System activate siren
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ void EgtsProcessing_TransmitterTaskMain(tEgtsProcessing *env);
|
|||
void EgtsProcessing_ListenerTask(tEgtsProcessing *env);
|
||||
|
||||
char *sendLogHex(tEgtsProcessing *env, uint8_t *data, size_t size) {
|
||||
|
||||
memset(env->hexString, 0, sizeof(env->hexString));
|
||||
size_t len = 0;
|
||||
vAsciiStringAddBytesAsHex(env->hexString, &len, data, size);
|
||||
|
|
@ -67,6 +68,7 @@ char *sendLogHex(tEgtsProcessing *env, uint8_t *data, size_t size) {
|
|||
LoggerStrInfo(LOGGER, LOG_SIGN, env->hexString, strlen(env->hexString));
|
||||
|
||||
return env->hexString;
|
||||
|
||||
}
|
||||
|
||||
size_t EgtsProcessing_WorkerRead(tEgtsProcessing *env, uint8_t *data, size_t size) {
|
||||
|
|
@ -174,14 +176,13 @@ void EgtsProcessing_Init(
|
|||
env->gsm->socketGsm.loggerTaskName = (char *) LOG_TASK_GSM_SOCKET;
|
||||
|
||||
// InitThreadBlock(env->T_processing_Network, "Network", osPriorityNormal);
|
||||
InitThreadBlock(env->T_processing_input_command, "EgtsPrcInputCom", osPriorityNormal);
|
||||
// InitThreadBlock(env->T_processing_ebu, "EgtsPrcEbu", osPriorityNormal);
|
||||
|
||||
InitThreadBlock(env->T_processing_input_command, "EgtsPrcInputCom", osPriorityNormal);
|
||||
InitThreadBlock(env->T_processing_event_teledata, "EgtsPrcEventTel", osPriorityNormal);
|
||||
InitThreadBlock(env->T_processing_teledata, "EgtsPrcTeledata", osPriorityNormal);
|
||||
InitThreadBlock(env->T_processing_main, "EgtsPrcMain", osPriorityNormal);
|
||||
InitThreadBlock(env->T_listener, "EgtsListner", osPriorityNormal);
|
||||
|
||||
|
||||
InitThreadBlock(env->T_processing_urc, "Urc", osPriorityNormal);
|
||||
}
|
||||
|
||||
|
|
@ -191,10 +192,8 @@ void EgtsProcessing_Start(tEgtsProcessing *env) {
|
|||
// ThreadBlock_Start(env->T_processing_ebu, env, EgtsProcessing_TransmitterTaskEbu);
|
||||
|
||||
|
||||
|
||||
|
||||
// ThreadBlock_Start(env->T_processing_input_command, env, EgtsProcessing_TransmitterTaskInputCommand);
|
||||
// ThreadBlock_Start(env->T_processing_event_teledata, env, EgtsProcessing_EventTaskTeledata);
|
||||
ThreadBlock_Start(env->T_processing_input_command, env, EgtsProcessing_TransmitterTaskInputCommand);
|
||||
ThreadBlock_Start(env->T_processing_event_teledata, env, EgtsProcessing_EventTaskTeledata);
|
||||
ThreadBlock_Start(env->T_processing_teledata, env, EgtsProcessing_TransmitterTaskTeledata);
|
||||
ThreadBlock_Start(env->T_processing_main, env, EgtsProcessing_TransmitterTaskMain);
|
||||
ThreadBlock_Start(env->T_listener, env, EgtsProcessing_ListenerTask);
|
||||
|
|
@ -639,15 +638,15 @@ _Noreturn void EgtsProcessing_TransmitterTaskMain(tEgtsProcessing *env) {
|
|||
|
||||
stepAuth = 1;
|
||||
|
||||
if (env->gsm->codeResultOpen == 15) {
|
||||
LoggerStrInfoStatic(LOGGER, LOG_SIGN,
|
||||
"Ошибка рукопожатия, переход на альтернативный сервер");
|
||||
}
|
||||
|
||||
if (env->gsm->codeResultOpen == 10) {
|
||||
LoggerStrInfoStatic(LOGGER, LOG_SIGN,
|
||||
"Ошибка открытия сеанса, переход на альтернативный сервер");
|
||||
}
|
||||
// if (env->gsm->codeResultOpen == 15) {
|
||||
// LoggerStrInfoStatic(LOGGER, LOG_SIGN,
|
||||
// "Ошибка рукопожатия, переход на альтернативный сервер");
|
||||
// }
|
||||
//
|
||||
// if (env->gsm->codeResultOpen == 10) {
|
||||
// LoggerStrInfoStatic(LOGGER, LOG_SIGN,
|
||||
// "Ошибка открытия сеанса, переход на альтернативный сервер");
|
||||
// }
|
||||
|
||||
// if (env->gsm->codeResultOpen == 20) {
|
||||
// LoggerStrInfoStatic(LOGGER, LOG_SIGN,
|
||||
|
|
@ -660,17 +659,17 @@ _Noreturn void EgtsProcessing_TransmitterTaskMain(tEgtsProcessing *env) {
|
|||
|
||||
--stepAuth;
|
||||
|
||||
if (env->gsm->codeResultOpen == 15) {
|
||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
||||
"Ошибка рукопожатия, переход на альтернативный сервер через %u попыток",
|
||||
stepAuth);
|
||||
}
|
||||
|
||||
if (env->gsm->codeResultOpen == 10) {
|
||||
LoggerFormatInfo(LOGGER, LOG_SIGN,
|
||||
"Ошибка открытия сеанса, переход на альтернативный сервер через %u попыток",
|
||||
stepAuth);
|
||||
}
|
||||
// if (env->gsm->codeResultOpen == 15) {
|
||||
// LoggerFormatInfo(LOGGER, LOG_SIGN,
|
||||
// "Ошибка рукопожатия, переход на альтернативный сервер через %u попыток",
|
||||
// stepAuth);
|
||||
// }
|
||||
//
|
||||
// if (env->gsm->codeResultOpen == 10) {
|
||||
// LoggerFormatInfo(LOGGER, LOG_SIGN,
|
||||
// "Ошибка открытия сеанса, переход на альтернативный сервер через %u попыток",
|
||||
// stepAuth);
|
||||
// }
|
||||
|
||||
// if (env->gsm->codeResultOpen == 20) {
|
||||
// LoggerFormatInfo(LOGGER, LOG_SIGN,
|
||||
|
|
@ -879,6 +878,7 @@ void EgtsProcessing_Worker(tEgtsProcessing *env) {
|
|||
//начало ---------------------------------Сервис ПРОШИВКИ-----------------------------------------------
|
||||
//начало ---------------------------------Сервис ПРОШИВКИ-----------------------------------------------
|
||||
//начало ---------------------------------Сервис ПРОШИВКИ-----------------------------------------------
|
||||
/*
|
||||
if (env->egtsEnv.recSourceService == EGTS_FIRMWARE_SERVICE) {
|
||||
if (env->egtsEnv.subRecType == EGTS_SR_RECORD_RESPONSE) {
|
||||
|
||||
|
|
@ -907,6 +907,7 @@ void EgtsProcessing_Worker(tEgtsProcessing *env) {
|
|||
|
||||
}
|
||||
}
|
||||
*/
|
||||
//конец ---------------------------------Сервис ПРОШИВКИ------------------------------------------------
|
||||
//конец ---------------------------------Сервис ПРОШИВКИ------------------------------------------------
|
||||
//конец ---------------------------------Сервис ПРОШИВКИ------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ typedef struct {
|
|||
//начало ---------------------------------Команды-----------------------------------------------------------------------
|
||||
//начало ---------------------------------Команды-----------------------------------------------------------------------
|
||||
|
||||
#define COMMAND_QUEUE_SIZE 10
|
||||
#define COMMAND_QUEUE_SIZE 5
|
||||
|
||||
typedef struct {
|
||||
uint16_t ADR;
|
||||
|
|
@ -257,6 +257,14 @@ typedef struct {
|
|||
//конец ---------------------------------Команды------------------------------------------------------------------------
|
||||
//конец ---------------------------------Команды------------------------------------------------------------------------
|
||||
|
||||
typedef struct {
|
||||
int16_t x;
|
||||
int16_t y;
|
||||
int16_t z;
|
||||
uint16_t angle;
|
||||
} tRawAccel;
|
||||
|
||||
|
||||
typedef struct {
|
||||
bool isEbuData;
|
||||
uint16_t speed;
|
||||
|
|
@ -334,14 +342,13 @@ typedef struct {
|
|||
} carEventPosition;
|
||||
|
||||
// tStaticThreadBlock(1024) T_processing_Network;
|
||||
tStaticThreadBlock(512) T_processing_input_command;
|
||||
// tStaticThreadBlock(1024) T_processing_ebu;
|
||||
tStaticThreadBlock(512) T_processing_input_command;
|
||||
tStaticThreadBlock(512) T_processing_event_teledata;
|
||||
tStaticThreadBlock(512) T_processing_teledata;
|
||||
tStaticThreadBlock(512) T_processing_main;
|
||||
tStaticThreadBlock(512) T_listener;
|
||||
|
||||
tStaticThreadBlock(768) T_processing_urc;
|
||||
tStaticThreadBlock(1024) T_listener;
|
||||
tStaticThreadBlock(1024) T_processing_urc;
|
||||
|
||||
// uint8_t wb[1024 * 10];
|
||||
uint8_t wb[1024];
|
||||
|
|
@ -385,7 +392,7 @@ typedef struct {
|
|||
|
||||
uint16_t pPointsStorageSent;
|
||||
|
||||
bool isEnableTelematicaSendPoints;
|
||||
volatile bool isEnableTelematicaSendPoints;
|
||||
uint32_t firstStartTimeUpdateEBU;
|
||||
bool fl_firstStartTimeUpdateEBU;
|
||||
/*
|
||||
|
|
@ -399,7 +406,9 @@ typedef struct {
|
|||
|
||||
bool isOneEBU;
|
||||
|
||||
/*
|
||||
|
||||
// tRawAccel rawAccel;
|
||||
|
||||
int32_t x1;
|
||||
int32_t y1;
|
||||
int32_t z1;
|
||||
|
|
@ -409,11 +418,10 @@ typedef struct {
|
|||
uint8_t count_shot;
|
||||
uint8_t count_free;
|
||||
uint32_t timeAccelUpdate;
|
||||
*/
|
||||
|
||||
|
||||
} tEgtsProcessing;
|
||||
|
||||
extern tEgtsProcessing egtsProcessing;
|
||||
|
||||
bool Gsm_SetProfileERA(tEgtsProcessing *env);
|
||||
bool Gsm_SetProfileINTERNET(tEgtsProcessing *env);
|
||||
|
|
|
|||
|
|
@ -705,7 +705,7 @@ _Noreturn void EgtsProcessing_EventTaskTeledata(tEgtsProcessing *env) {
|
|||
0b0011111111111111; // скорость в км/ч с дискретностью 0,1 км/ч (используется 14 младших бит)
|
||||
|
||||
// int32_t alt = GnssGgaGetAlt(env->gsm);
|
||||
int32_t alt = 0;
|
||||
int32_t alt = (int32_t)nmeaRmc.location.altitude;
|
||||
|
||||
if (alt >= 0) {
|
||||
env->egtsTeledataEdit.egtsPosDataArgs.SPD.ALTS = 0;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
#include "CmsisRtosThreadUtils.h"
|
||||
#include "stdbool.h"
|
||||
|
||||
#define TELEDATA_QUEUE_SIZE 20
|
||||
#define TELEDATA_QUEUE_SIZE 10
|
||||
|
||||
typedef enum {
|
||||
CAR_POSITION_UNDEFINED = 0,
|
||||
|
|
@ -51,8 +51,7 @@ typedef struct {
|
|||
|
||||
|
||||
typedef struct {
|
||||
tEgtsSensorsAnState sensorsAnState[1];
|
||||
// tEgtsSensorsAnState sensorsAnState[25];
|
||||
tEgtsSensorsAnState sensorsAnState[25];
|
||||
// tEgtsSensorsAnState sensorsAnState[47];
|
||||
} tEgtsSensorsAnDataArgs;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue