From 4713c3e1db2c8b18e5ed6ca7bbc96bff741280b0 Mon Sep 17 00:00:00 2001 From: cfif Date: Mon, 9 Dec 2024 15:46:51 +0300 Subject: [PATCH] Fix --- EgtsOutputCommands.c | 6 ++- EgtsProcessing.c | 7 ++-- EgtsProcessing.h | 2 +- EgtsTeledataPoint.c | 1 + Network.c | 95 ++++++++++++++++++++++++++++++++++++++++++++ Network.h | 11 +++++ 6 files changed, 115 insertions(+), 7 deletions(-) create mode 100644 Network.c create mode 100644 Network.h diff --git a/EgtsOutputCommands.c b/EgtsOutputCommands.c index a1195f5..759faae 100644 --- a/EgtsOutputCommands.c +++ b/EgtsOutputCommands.c @@ -27,7 +27,7 @@ char imei[] = "860384060946040"; uint16_t vEgtsPackAuth(uint8_t *out, tEgtsIdentityDataArgs *args, uint16_t step) { uint16_t offset = 0; - uint16_t TermIdentityBS = 1400; + uint16_t TermIdentityBS = 512; uint8_t TermIdentityFlags = 0b01000010; ADD_TO_RESULT(args->TerminalID, 4); @@ -77,6 +77,7 @@ uint16_t vEgtsPackModuleData(uint8_t *out, tEgtsIdentityModuleDataArgs *args, ui ADD_TO_RESULT(SWV, 2); ADD_TO_RESULT(MD, 1); ADD_TO_RESULT(ST, 1); + /* ADD_TO_RESULT(args->deviceStorage->nvm.device.serialNumber.value.data, args->deviceStorage->nvm.device.serialNumber.value.length); ADD_TO_RESULT(Delimiter, 1); ADD_TO_RESULT(TAG_VIN, sizeof(TAG_VIN) - 1); @@ -88,7 +89,8 @@ uint16_t vEgtsPackModuleData(uint8_t *out, tEgtsIdentityModuleDataArgs *args, ui ADD_TO_RESULT(TAG_EICCID, sizeof(TAG_EICCID) - 1); ADD_TO_RESULT(args->deviceStorage->nvm.device.ccid.data, args->deviceStorage->nvm.device.ccid.length); ADD_TO_RESULT(Delimiter, 1); - +*/ + ADD_TO_RESULT(Delimiter, 1); return offset; } diff --git a/EgtsProcessing.c b/EgtsProcessing.c index c238dc5..f29e12e 100644 --- a/EgtsProcessing.c +++ b/EgtsProcessing.c @@ -20,7 +20,7 @@ #include "string.h" #include "EgtsTeledataPoint.h" //#include "GsmWithGnss_Info.h" -//#include "Network.h" +#include "Network.h" #include "AtGsm_NetworkRegistrationStatus.h" #include "egts.h" #include "AtGsmOperatorSelection.h" @@ -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,10 +188,9 @@ 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); ThreadBlock_Start(env->T_processing_event_teledata, env, EgtsProcessing_EventTaskTeledata); ThreadBlock_Start(env->T_processing_teledata, env, EgtsProcessing_TransmitterTaskTeledata); diff --git a/EgtsProcessing.h b/EgtsProcessing.h index acf74e8..10d8cb4 100644 --- a/EgtsProcessing.h +++ b/EgtsProcessing.h @@ -341,7 +341,7 @@ typedef struct { } carEventPosition; -// tStaticThreadBlock(1024) 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; diff --git a/EgtsTeledataPoint.c b/EgtsTeledataPoint.c index ee8285d..aa161fd 100644 --- a/EgtsTeledataPoint.c +++ b/EgtsTeledataPoint.c @@ -509,6 +509,7 @@ _Noreturn void EgtsProcessing_EventTaskTeledata(tEgtsProcessing *env) { tNmeaRmc nmeaRmc; Gnss_GetFullNavData(env->gsm, &nmeaRmc); + env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_NumberOfSatellites].value = (uint8_t)nmeaRmc.magnetic.nsat; //начало-----------------------------Отслеживание угла поворота и начала и окончания навигации------------------ //начало-----------------------------Отслеживание угла поворота и начала и окончания навигации------------------ diff --git a/Network.c b/Network.c new file mode 100644 index 0000000..e65cca6 --- /dev/null +++ b/Network.c @@ -0,0 +1,95 @@ +// +// Created by cfif on 05.06.2024. +// +#include "Network.h" +#include "EgtsOutputCommands.h" +#include "SystemDelayInterface.h" +#include "AtGsmQuerySignalQuality.h" + +#define LOG_SIGN "EGTS_INFO" +#define LOGGER &env->slog->logger + +uint8_t QuerySignalQuality(tGsmWithGnss *env) { + + uint8_t rssi = 0; + + if (osMutexAcquire(env->gsmAt.access, defaultSocketTimeout) == osOK) { + + AtGsm_QuerySignalQuality( + &env->gsmAt, + &rssi + ); + + osMutexRelease(&env->gsmAt.access); + } else { + LoggerInfoStatic(LOGGER, LOG_SIGN, "Ошибка доступа (QuerySignalQuality)") + } + + return rssi; +} + +void _Noreturn EgtsProcessing_InfoTask(tEgtsProcessing *env) { + + uint32_t timeOutCheckNetworkStatus = 0; + + bool oneOn = true; + bool oneOff = true; + + while (1) { + + if (onOffTelematica(env, &oneOn, &oneOff, "Задача информации")) + continue; + +// env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_Voltage12Volts].value = *EXT_ENV_TELE.vBoardVoltage; + + //начало ---------------------------------Обновление RSSI NETWORK SAT------------------------------------------- + //начало ---------------------------------Обновление RSSI NETWORK SAT------------------------------------------- + //начало ---------------------------------Обновление RSSI NETWORK SAT------------------------------------------- + + 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; + + + if (timeOutCheckNetworkStatus < SystemGetMs()) { +/* + timeOutCheckNetworkStatus = SystemGetMs() + AURUS_CHECK_NETWORK_STATUS; + uint8_t status = EpsNetworkRegistrationStatus(env->gsm); + + if (status == 0) + env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_NetworkType].value = 0; + + if ((status > 0) && (status <= 3)) { + env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_NetworkType].value = 44; // 2G + } + + if ((status >= 4) && (status <= 7)) { + env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_NetworkType].value = 60; // 3G + } + + if (status >= 8) { + env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_NetworkType].value = 76; // LTE + } +*/ + uint8_t rssi = QuerySignalQuality(env->gsm); + env->egtsTeledataEdit.egtsSensorsAnArgs.sensorsAnState[SENSORS_AN_RSSI].value = rssi; + } + //конец ---------------------------------Обновление RSSI NETWORK SAT-------------------------------------------- + //конец ---------------------------------Обновление RSSI NETWORK SAT-------------------------------------------- + //конец ---------------------------------Обновление RSSI NETWORK SAT-------------------------------------------- + + SystemDelayMs(1000); + } +} \ No newline at end of file diff --git a/Network.h b/Network.h new file mode 100644 index 0000000..6e5491c --- /dev/null +++ b/Network.h @@ -0,0 +1,11 @@ +// +// Created by cfif on 05.06.2024. +// + +#ifndef SMART_COMPONENTS_NETWORK_H +#define SMART_COMPONENTS_NETWORK_H +#include "EgtsProcessing.h" + +void _Noreturn EgtsProcessing_InfoTask(tEgtsProcessing *env); + +#endif //SMART_COMPONENTS_NETWORK_H