95 lines
3.6 KiB
C
95 lines
3.6 KiB
C
//
|
|
// 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);
|
|
}
|
|
} |