This commit is contained in:
cfif 2025-05-26 14:41:45 +03:00
commit 2b30609d4d
5 changed files with 2843 additions and 0 deletions

1185
ModemGonec.c Normal file

File diff suppressed because it is too large Load Diff

204
ModemGonec.h Normal file
View File

@ -0,0 +1,204 @@
//
// Created by cfif on 25.01.23.
//
#ifndef MODEM_GONEC_H
#define MODEM_GONEC_H
#include "SerialPortIO.h"
#include "LoggerInterface.h"
#include "BaseTypes.h"
#include "AtCmdCommonProtected.h"
#include "AtModemGonec.h"
#include "ModemMain.h"
bool Modem_TestAFU(tAtCmd *env);
bool Modem_TestAPO(tAtCmd *env);
// Периодичность запроса на съем, МС
bool Modem_PerDown(tAtCmd *env, bool *isWriteMem, uint32_t value);
// Периодичность запроса на съем, МС
bool Modem_Get_PerDown(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
bool Modem_Reg(tAtCmd *env, bool *isWriteMem, char *value);
bool Modem_Get_SelectPWR(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
bool Modem_SelectPWR(tAtCmd *env, bool *isWriteMem, uint32_t value);
// Коррекция передатчика PWR
bool
Modem_TransmitterPWR(tAtCmd *env, bool *isWriteMem, uint32_t value1, uint32_t value2, uint32_t value3, uint32_t value4);
// Коррекция передатчика
bool Modem_Get_TransmitterPWR(tAtCmd *env, bool *isWriteMem, uint32_t value1, uint32_t value2, uint32_t value3,
uint32_t value4,
uint32_t *oldValue1, uint32_t *oldValue2, uint32_t *oldValue3, uint32_t *oldValue4);
bool Modem_LogEnable(tAtCmd *env, bool *isWriteMem, uint32_t value);
bool Modem_Get_LogEnable(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
bool Modem_LogExtended(tAtCmd *env, bool *isWriteMem, uint32_t value);
bool Modem_Get_LogExtended(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
/*
// Коррекция передатчика 1
bool Modem_Get_TransmitterPWR1(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
// Коррекция передатчика 2
bool Modem_Get_TransmitterPWR2(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
// Коррекция передатчика 3
bool Modem_Get_TransmitterPWR3(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
// Коррекция передатчика 4
bool Modem_Get_TransmitterPWR4(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
// Коррекция передатчика PWR1
bool Modem_TransmitterPWR1(tAtCmd *env, bool *isWriteMem, uint32_t value);
// Коррекция передатчика PWR2
bool Modem_TransmitterPWR2(tAtCmd *env, bool *isWriteMem, uint32_t value);
// Коррекция передатчика PWR3
bool Modem_TransmitterPWR3(tAtCmd *env, bool *isWriteMem, uint32_t value);
// Коррекция передатчика PWR4
bool Modem_TransmitterPWR4(tAtCmd *env, bool *isWriteMem, uint32_t value);
*/
// Запись прошивки крипто-платы
bool Modem_CryptoSend(tAtCmd *env, uint8_t *pBuf, uint32_t crc, uint32_t offset, uint32_t size);
// Запуск прошивкиы
bool Modem_RunModemOrCrypto(tAtCmd *env);
bool Modem_DelTasi(tAtCmd *env, bool *isWriteMem, uint32_t param);
// Останов ожидания маркерного сигнала
bool Modem_Stop(tAtCmd *env);
// Запуск ожидания маркерного сигнала
bool Modem_Start(tAtCmd *env);
// Ввод сетевого адреса модема
bool Modem_NetAddress(tAtCmd *env, bool *isWriteMem, uint32_t adr);
// Ввод каналов ожидания маркерного сигнала
bool Modem_MarkerCh(tAtCmd *env, bool *isWriteMem, uint32_t mc1, uint32_t mc2);
// Ввод тип адреса 1 - почта; 2 - гонец
bool Modem_AddressType(tAtCmd *env, bool *isWriteMem, uint32_t type);
//
bool Modem_Region(tAtCmd *env, bool *isWriteMem, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4, uint32_t p5,
uint32_t p6, uint32_t p7, uint32_t p8);
// Установка скоростей
bool Modem_RxTxBitrate(tAtCmd *env, bool *isWriteMem, uint32_t s1, uint32_t s2, uint32_t s3, uint32_t s4);
// Установка приоритета
bool Modem_Priority(tAtCmd *env, bool *isWriteMem, uint32_t prior);
//
bool Modem_RestrictSc(tAtCmd *env, bool *isWriteMem, char *banned);
// Установка региона
bool Modem_RegRegion(tAtCmd *env, bool *isWriteMem, uint32_t region);
//
bool Modem_RegTime(tAtCmd *env, bool *isWriteMem, uint32_t time);
//
bool Modem_DateTime(tAtCmd *env, time_t *timestamp);
// Запись во флеш модема
bool Modem_WriteMem(tAtCmd *env);
// Загрузка ключей с проверкой
bool Modem_LoadKey(tAtCmd *env, uint32_t key_num, char *buf, size_t buf_len);
// Запрос состояния регистрации
bool Modem_RegStatus(tAtCmd *env, uint8_t *status);
// Останов регистрации
bool Modem_StopRegTask(tAtCmd *env);
// Останов задачи передачи
bool Modem_StopSendTask(tAtCmd *env);
// Запуск задачи передачи
bool Modem_StartSendTask(tAtCmd *env);
// Запрос слотов
bool Modem_Get_Slot(tAtCmd *env, uint8_t id[], uint8_t status[], uint8_t count);
// Запись данных в слот
bool Modem_Write_Slot(tAtCmd *env, uint32_t id, uint32_t addressAT, uint32_t addressEND, uint32_t urgency,
uint32_t confirmation, uint32_t size, uint8_t *pBuf);
// Чтение данных из слота
bool Modem_Read_Recv_Slot(tAtCmd *env, uint8_t id, uint32_t *size, uint8_t *pBuf);
// Запрос слотов приема
bool Modem_Get_Recv_Slot(tAtCmd *env, uint8_t id[], uint8_t status[], uint8_t count);
// Очистка слота приема
bool Modem_Clear_Recv_Slot(tAtCmd *env, char *id);
// Останов задачи приема
bool Modem_StopRecvTask(tAtCmd *env);
// Запуск задачи приема
bool Modem_StartRecvTask(tAtCmd *env);
// Очистка слота
bool Modem_Clear_Slot(tAtCmd *env, char *id);
// Запуск регистрации
bool Modem_StartRegTask(tAtCmd *env);
// Координаты
bool Modem_Coord(tAtCmd *env, int latitude, int longitude);
// Запуск получения альманаха
bool Modem_AlmaRun(tAtCmd *env);
// Останов получения альманаха
bool Modem_AlmaStop(tAtCmd *env);
// Чтения состояния получения альманаха
bool Modem_Get_AlmaRun(tAtCmd *env, uint8_t *run);
// Запрос состояния получения альманаха
bool Modem_AlmaStatus(tAtCmd *env, uint8_t *status);
// Чтение пакета альманаха
bool Modem_Read_Alma(tAtCmd *env, uint32_t *size, uint8_t *pBuf);
// Очистка пакета альманаха
bool Modem_Clear_Alma(tAtCmd *env);
// Получение логов
bool Modem_Get_Log(tAtCmd *env, int32_t *rssi, int32_t *temp, uint32_t *pwramp, uint32_t *state, uint32_t *wasreboot, uint32_t *size,
uint8_t *pBuf);
//
bool Modem_Get_DelTasi(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
// Ввод сетевого адреса модема
bool Modem_Get_NetAddress(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
// Ввод каналов ожидания маркерного сигнала
bool Modem_Get_MarkerCh(tAtCmd *env, bool *isWriteMem, uint32_t mc1, uint32_t mc2, uint32_t *oldMc1, uint32_t *oldMc2);
// Ввод тип адреса 1 - почта; 2 - гонец
bool Modem_Get_AddressType(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
// Установка скоростей
bool Modem_Get_RxTxBitrate(tAtCmd *env, bool *isWriteMem, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4,
uint32_t *oldP1, uint32_t *oldP2, uint32_t *oldP3, uint32_t *oldP4);
// Установка приоритета
bool Modem_Get_Priority(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
//
bool Modem_Get_RestrictSc(tAtCmd *env, bool *isWriteMem, char *value, char oldValue[255]);
bool Modem_Get_BanReg(tAtCmd *env, bool *isWriteMem, char *value, char oldValue[255]);
// Установка региона
bool Modem_Get_RegRegion(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
// Время жизни регистрации
bool Modem_Get_RegTime(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
// Чтение версии
bool Modem_Get_Version(tAtCmd *env, char *versionModem, uint8_t *sizeModem, char *versionCrypto, uint8_t *sizeCrypto);
bool Modem_Get_MaxDist(tAtCmd *env, bool *isWriteMem, uint32_t value, uint32_t *oldValue);
bool Modem_Get_Reg(tAtCmd *env, bool *isWriteMem, char *value, char oldValue[255]);
bool Modem_Ban(tAtCmd *env, bool *isWriteMem, char *value);
bool Modem_MaxDist(tAtCmd *env, bool *isWriteMem, uint32_t value);
#endif //MODEM_GONEC_H

1336
ModemGonecFunc.c Normal file

File diff suppressed because it is too large Load Diff

96
ModemGonecFunc.h Normal file
View File

@ -0,0 +1,96 @@
//
// Created by cfif on 20.03.23.
//
#ifndef GONEC_GSM_MODEMGONECFUNC_H
#define GONEC_GSM_MODEMGONECFUNC_H
#include "SerialPortIO.h"
#include "LoggerInterface.h"
#include "BaseTypes.h"
#include "AtCmdCommonProtected.h"
#include "AtModemGonec.h"
#include "ModemMain.h"
bool SlotClearNoStartTask(tModemMain *env, char *id);
bool SlotClearNoStopTask(tModemMain *env, char *id);
bool SetRoutingRestrictSc(tModemMain *env, char *banned);
// Загрузка ключей с проверкой
idPostResult_t ModemLoadKey(tModemMain *env, uint32_t key_num, char *buf, size_t buf_len);
// Прошивка криптоплаты
idPostResult_t ModemCryptoWrite(tModemMain *env, uint8_t *pBuf, uint32_t crc, uint32_t offset, uint32_t size);
idPostResult_t ModemGetInitAt(tModemMain *env, bool *isWriteMem, bool grp1, bool grp2, bool grp3, bool grp25);
idPostResult_t ModemInitAt(tModemMain *env, bool grp1, bool grp2, bool grp3, bool grp25);
// Переход в основной режим работы
idPostResult_t ModemStartAt(tModemMain *env);
// Запрос состояния получения альманаха
bool AlmaStatus(tModemMain *env, uint8_t *status);
// Чтение альманаха
bool AlmaRead(tModemMain *env);
// Очистка данных пакета альманаха
bool AlmaClear(tModemMain *env);
// Останов регистрации
bool StopRegTask(tModemMain *env);
// Запуск прошивки
bool RunModemOrCrypto(tModemMain *env);
bool ModemGetLog(tModemMain *env, int32_t *rssi, int32_t *temp, uint32_t *pwramp, uint32_t *state, uint32_t *wasreboot, uint32_t *size,
uint8_t *pBuf);
bool ModemGetSlot(tModemMain *env, uint8_t id[], uint8_t status[], uint8_t count);
bool ModemDateTime(tModemMain *env, time_t *timestamp);
// Чтение данных из пакета
bool SlotRecvRead(tModemMain *env, uint8_t id);
// Очистка данных из пакета приема
bool SlotRecvClear(tModemMain *env, char *id);
// Получение состояния слотов приема
bool ModemGetRecvSlot(tModemMain *env, uint8_t id[], uint8_t status[], uint8_t count);
// Запуск получения альманаха
bool AlmaRun(tModemMain *env);
// Останов получения альманаха
bool AlmaStop(tModemMain *env);
// Запрос чтения состояния получения альманаха
bool AlmaGetRun(tModemMain *env, uint8_t *status);
// Запись данных в пакет
bool SlotWrite(tModemMain *env, uint8_t id, uint32_t addressAT, uint32_t addressEND, uint32_t urgency,
uint32_t confirmation, uint32_t lenTransPaket);
// Очистка данных из пакета
bool SlotClear(tModemMain *env, char *id);
bool ModemStopSend(tModemMain *env);
bool ModemStartSend(tModemMain *env);
// Запрос версий
bool Modem_Get_Version_Modem(tModemMain *env, char *versionModem, uint8_t *sizeModem, char *versionCrypto,
uint8_t *sizeCrypto);
// Запуск регистрации
bool StartRegTask(tModemMain *env);
// Запрос статуса регистрации
bool ModemGetRegStatus(tModemMain *env, uint8_t *status);
// Установка координат
bool ModemSet_Coord(tModemMain *env, int latitude, int longitude);
bool TestAFU(tModemMain *env);
bool TestAPO(tModemMain *env);
#endif //GONEC_GSM_MODEMGONECFUNC_H

22
modular.json Normal file
View File

@ -0,0 +1,22 @@
{
"dep": [
{
"type": "git",
"provider": "GONEC_NEW",
"repo": "SystemDelayInterface"
},
{
"type": "git",
"provider": "GONEC_NEW",
"repo": "AtModemGonec"
}
],
"cmake": {
"inc_dirs": [
"./"
],
"srcs": [
"*.c"
]
}
}