From 716332476966c151e6f2c4ed1d371b0d2a456967 Mon Sep 17 00:00:00 2001 From: cfif Date: Mon, 9 Dec 2024 16:21:53 +0300 Subject: [PATCH] Fix --- EgtsProcessing.c | 4 ++-- EgtsProcessing.h | 4 +++- EgtsTeledataPoint.c | 7 ++++++- Network.c | 36 ++++++++++++++++++++++++++++++++++-- 4 files changed, 45 insertions(+), 6 deletions(-) diff --git a/EgtsProcessing.c b/EgtsProcessing.c index f29e12e..0d55dde 100644 --- a/EgtsProcessing.c +++ b/EgtsProcessing.c @@ -175,7 +175,7 @@ void EgtsProcessing_Init( 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_ebu, "EgtsPrcEbu", osPriorityNormal); InitThreadBlock(env->T_processing_input_command, "EgtsPrcInputCom", osPriorityNormal); @@ -188,7 +188,7 @@ void EgtsProcessing_Init( void EgtsProcessing_Start(tEgtsProcessing *env) { - ThreadBlock_Start(env->T_processing_Network, env, EgtsProcessing_InfoTask); +// ThreadBlock_Start(env->T_processing_Network, env, EgtsProcessing_InfoTask); // ThreadBlock_Start(env->T_processing_ebu, env, EgtsProcessing_TransmitterTaskEbu); ThreadBlock_Start(env->T_processing_input_command, env, EgtsProcessing_TransmitterTaskInputCommand); diff --git a/EgtsProcessing.h b/EgtsProcessing.h index f6deb9f..9b09c3f 100644 --- a/EgtsProcessing.h +++ b/EgtsProcessing.h @@ -341,7 +341,7 @@ typedef struct { } carEventPosition; - tStaticThreadBlock(512) T_processing_Network; +// tStaticThreadBlock(512) T_processing_Network; // tStaticThreadBlock(1024) T_processing_ebu; tStaticThreadBlock(512) T_processing_input_command; tStaticThreadBlock(512) T_processing_event_teledata; @@ -420,6 +420,8 @@ typedef struct { uint32_t timeAccelUpdate; + uint32_t timeOutCheckNetworkStatus; + } tEgtsProcessing; diff --git a/EgtsTeledataPoint.c b/EgtsTeledataPoint.c index aa161fd..e9a0836 100644 --- a/EgtsTeledataPoint.c +++ b/EgtsTeledataPoint.c @@ -422,6 +422,8 @@ uint32_t getTotalDist(tEgtsProcessing *env) { } +void ProcessInfo(tEgtsProcessing *env); + _Noreturn void EgtsProcessing_EventTaskTeledata(tEgtsProcessing *env) { bool isTimestamp = true; @@ -509,6 +511,8 @@ _Noreturn void EgtsProcessing_EventTaskTeledata(tEgtsProcessing *env) { tNmeaRmc nmeaRmc; Gnss_GetFullNavData(env->gsm, &nmeaRmc); + ProcessInfo(env); + env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_NumberOfSatellites].value = (uint8_t)nmeaRmc.magnetic.nsat; //начало-----------------------------Отслеживание угла поворота и начала и окончания навигации------------------ @@ -542,7 +546,8 @@ _Noreturn void EgtsProcessing_EventTaskTeledata(tEgtsProcessing *env) { env->egtsPointEnv.beginAngle = moveAngle; - if (totalSpeed > env->deviceTeledataStorageData->telematica.EGTS_GNSS_COURSE_SPEED) { + if ((env->carEventPosition.carPosition == CAR_POSITION_MOVE) && + (totalSpeed > env->deviceTeledataStorageData->telematica.EGTS_GNSS_COURSE_SPEED)) { LoggerStrFormatInfo(LOGGER, LOG_SIGN, "Скорость транспортного средства: %d", totalSpeed); diff --git a/Network.c b/Network.c index e65cca6..4ec7115 100644 --- a/Network.c +++ b/Network.c @@ -13,7 +13,7 @@ uint8_t QuerySignalQuality(tGsmWithGnss *env) { uint8_t rssi = 0; - if (osMutexAcquire(env->gsmAt.access, defaultSocketTimeout) == osOK) { + if (osMutexAcquire(env->gsmAt.access, 2000) == osOK) { AtGsm_QuerySignalQuality( &env->gsmAt, @@ -28,6 +28,37 @@ uint8_t QuerySignalQuality(tGsmWithGnss *env) { return rssi; } + +void ProcessInfo(tEgtsProcessing *env) { + + env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_Uptime].value = + SystemGetMs() / 60000; // Uptime + + // По умолчанию в SLEEP, до этого было в TS_STATUS_STANDBY + eEgtsTsStatus SENSORS_AN_VehicleStatus_loc = TS_STATUS_SLEEP; + + // Поднят пин зажигания + if (GpioPinGet(env->ignition)) { + SENSORS_AN_VehicleStatus_loc = TS_STATUS_IGNITION; + } else { + } + + // Установка значения сенсора состояния + env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_VehicleStatus].value = SENSORS_AN_VehicleStatus_loc; + +/* + // Установка значения сенсора состояния + env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_VehicleStatus].value = SENSORS_AN_VehicleStatus_loc; + + if (env->timeOutCheckNetworkStatus < SystemGetMs()) { + env->timeOutCheckNetworkStatus = SystemGetMs() + AURUS_CHECK_NETWORK_STATUS; + uint8_t rssi = QuerySignalQuality(env->gsm); + env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_RSSI].value = rssi; + } +*/ + +} + void _Noreturn EgtsProcessing_InfoTask(tEgtsProcessing *env) { uint32_t timeOutCheckNetworkStatus = 0; @@ -64,8 +95,9 @@ void _Noreturn EgtsProcessing_InfoTask(tEgtsProcessing *env) { if (timeOutCheckNetworkStatus < SystemGetMs()) { -/* timeOutCheckNetworkStatus = SystemGetMs() + AURUS_CHECK_NETWORK_STATUS; + +/* uint8_t status = EpsNetworkRegistrationStatus(env->gsm); if (status == 0)