Init
This commit is contained in:
commit
9ae9cfef33
|
|
@ -0,0 +1,8 @@
|
||||||
|
//
|
||||||
|
// Created by zemon on 27.02.25.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef SMART_COMPONENTS_V2_INCREMAP_H
|
||||||
|
#define SMART_COMPONENTS_V2_INCREMAP_H
|
||||||
|
#include "ModemDataCollector.h"
|
||||||
|
#endif //SMART_COMPONENTS_V2_INCREMAP_H
|
||||||
|
|
@ -0,0 +1,111 @@
|
||||||
|
#include "SystemSelector.h"
|
||||||
|
#include "AtGsmSimcomSim7600_Gnss.h"
|
||||||
|
#include "LoggerInterface.h"
|
||||||
|
#include "PwmSim7600e.h"
|
||||||
|
#include "SystemDelayInterface.h"
|
||||||
|
#include "ModemDataCollector.h"
|
||||||
|
#include "TelematicaConnectStatus.h"
|
||||||
|
#include "ext_telematica.h"
|
||||||
|
|
||||||
|
#define LOG_SIGN "Селектор подсистем вторичный"
|
||||||
|
#define LOGGER env->logger
|
||||||
|
|
||||||
|
//
|
||||||
|
// Created by zemon on 29.08.24.
|
||||||
|
//
|
||||||
|
void SystemSelectorInit(
|
||||||
|
tSystemSelector *env,
|
||||||
|
tAtCmd *gsmAt,
|
||||||
|
tLoggerInterface *logger,
|
||||||
|
tSim7600ePower *sim7600ePower
|
||||||
|
){
|
||||||
|
env->gsmAt = gsmAt;
|
||||||
|
env->logger = logger;
|
||||||
|
env->sim7600ePower = sim7600ePower;
|
||||||
|
env->timeng = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ModemDataCollector_SetThisSubSystem(tSystemSelector *env, eSubSystems subSystems) {
|
||||||
|
env->thisSsubSystem = subSystems;
|
||||||
|
}
|
||||||
|
|
||||||
|
eSubSystems ModemDataCollector_GetThisSubSystem(tSystemSelector *env) {
|
||||||
|
return env->thisSsubSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ModemDataCollector_SelectionSimChipCoolBack(void *env, uint8_t thisSimChip) {
|
||||||
|
ModemDataCollector_SelectionSimChip(env, thisSimChip);
|
||||||
|
}
|
||||||
|
|
||||||
|
tThisSimChip ModemDataCollector_GetThisSimChip(tSystemSelector *env) {
|
||||||
|
return env->sim7600ePower->thisSimChip;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ModemDataCollector_SelectionSimChip(tSystemSelector *env, tThisSimChip thisSimChip) {
|
||||||
|
AtCommandResult res = AT_ERROR;
|
||||||
|
uint8_t count = 0;
|
||||||
|
if (osMutexAcquire(env->gsmAt->access, 10000) == osOK) {
|
||||||
|
while ((res != AT_OK)&&(count<=3)) {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN,
|
||||||
|
"Попытка переключения чипов");
|
||||||
|
if(count != 0){
|
||||||
|
SystemDelayMs(1000);
|
||||||
|
}
|
||||||
|
count ++;
|
||||||
|
|
||||||
|
AtGsm_OperatorSelectionDeregister(env->gsmAt);
|
||||||
|
SystemDelayMs(150);
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN,
|
||||||
|
"Переключение коммуникационного модуля в режим минимального функционирования по каналу GSM");
|
||||||
|
res = AtGsm_Gsnss_Simcom7600_SetWorkingState(env->gsmAt, SIMCOM_FUNC_MINIMAL);
|
||||||
|
SystemDelayMs(150);
|
||||||
|
if (res == AT_OK) {
|
||||||
|
if (thisSimChip == CHIP_ERA) {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Подключение SIM чипа ЭРА...");
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Подключение SIM чипа коммерческого...");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (thisSimChip == CHIP_ERA) {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN,
|
||||||
|
"ОШИБКА перевода коммуникационного модуля в режим минимального функционирования код 1");
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Переключение на SIM чипа ЭРА НЕ ВОЗМОЖЕНО");
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN,
|
||||||
|
"ОШИБКА перевода коммуникационного модуля в режим минимального функционирования код 2");
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Подключение SIM чипа коммерческого НЕ ВОЗМОЖЕНО");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PwmSim7600e_SimChipSelector(env->sim7600ePower, thisSimChip);
|
||||||
|
SystemDelayMs(150);
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN,
|
||||||
|
"Переключение коммуникационного модуля в режим полного функционирования по каналу GSM");
|
||||||
|
res = AtGsm_Gsnss_Simcom7600_SetWorkingState(env->gsmAt, SIMCOM_FUNC_MAXIMAL);
|
||||||
|
SystemDelayMs(700);
|
||||||
|
if (res == AT_OK) {
|
||||||
|
if (thisSimChip == CHIP_ERA) {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "SIM чипа ЭРА успешно подключён");
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "SIM чипа коммерческий успешно подключён");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (thisSimChip == CHIP_ERA) {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN,
|
||||||
|
"ОШИБКА перевода коммуникационного модуля в режим полного функционирования код 1");
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Переключение на SIM чипа ЭРА НЕ ВОЗМОЖЕНО");
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN,
|
||||||
|
"ОШИБКА перевода коммуникационного модуля в режим полного функционирования код 2");
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Подключение SIM чипа коммерческого НЕ ВОЗМОЖЕНО");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
osMutexRelease(env->gsmAt->access);
|
||||||
|
} else {
|
||||||
|
LoggerInfoStatic(LOGGER, LOG_SIGN, "Не возможен захват управления ModemDataCollector_SelectionSimChip")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
//
|
||||||
|
// Created by zemon on 29.08.24.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef SMART_COMPONENTS_V2_SYSTEMSELECTOR_H
|
||||||
|
#define SMART_COMPONENTS_V2_SYSTEMSELECTOR_H
|
||||||
|
|
||||||
|
#include "AtCmdBase.h"
|
||||||
|
#include "LoggerInterface.h"
|
||||||
|
#include "PwmSim7600e.h"
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
UNDEFANDET = 0,
|
||||||
|
TELEMATICA = 1,
|
||||||
|
UVEOS = 2,
|
||||||
|
}eSubSystems;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
eSubSystems thisSsubSystem;
|
||||||
|
tAtCmd *gsmAt;
|
||||||
|
tLoggerInterface *logger;
|
||||||
|
tSim7600ePower *sim7600ePower;
|
||||||
|
uint32_t timeng;
|
||||||
|
} tSystemSelector;
|
||||||
|
|
||||||
|
void SystemSelectorInit(
|
||||||
|
tSystemSelector *env,
|
||||||
|
tAtCmd *gsmAt,
|
||||||
|
tLoggerInterface *logger,
|
||||||
|
tSim7600ePower *sim7600ePower
|
||||||
|
);
|
||||||
|
void ModemDataCollector_SetThisSubSystem(tSystemSelector *env, eSubSystems subSystems);
|
||||||
|
void ModemDataCollector_SelectionSimChip(tSystemSelector *env, tThisSimChip thisSimChip);
|
||||||
|
void ModemDataCollector_SelectionSimChipCoolBack(void *env, uint8_t thisSimChip);
|
||||||
|
tThisSimChip ModemDataCollector_GetThisSimChip(tSystemSelector *env);
|
||||||
|
eSubSystems ModemDataCollector_GetThisSubSystem(tSystemSelector *env);
|
||||||
|
|
||||||
|
#endif //SMART_COMPONENTS_V2_SYSTEMSELECTOR_H
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"dep": [
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "GpioPinInterface"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "git",
|
||||||
|
"provider": "Smart_Components_Aurus",
|
||||||
|
"repo": "SystemDelayInterface"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cmake": {
|
||||||
|
"inc_dirs": [
|
||||||
|
"./"
|
||||||
|
],
|
||||||
|
"srcs": [
|
||||||
|
"./**.c"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue