commit a9e413600395b5917684d89521b5493936690005 Author: cfif Date: Fri Jan 24 13:22:32 2025 +0300 Перенос на новую организацию GONEC diff --git a/ModemGsm.c b/ModemGsm.c new file mode 100644 index 0000000..8b1b116 --- /dev/null +++ b/ModemGsm.c @@ -0,0 +1,240 @@ +// +// Created by cfif on 26.04.23. +// +#include "ModemGsm.h" + +// начало-------------------------- Служебные ---------------------------------------------------------------------- +// начало-------------------------- Служебные ---------------------------------------------------------------------- +// начало-------------------------- Служебные ---------------------------------------------------------------------- +bool Gsm_GET_CGSN(tAtCmd *env, char *acpString, size_t *acpStringLen) { + AtCommandResult result = AtGsm_Simcom800f_GET_CGSN(env, acpString, acpStringLen); + + if (result != AT_OK) + return false; + + return true; +} + +bool Gsm_CCID(tAtCmd *env, char *acpString, size_t *acpStringLen) { + AtCommandResult result = AtGsm_Simcom800f_CCID(env, acpString, acpStringLen); + + if (result != AT_OK) + return false; + + return true; +} + +// конец-------------------------- Служебные ---------------------------------------------------------------------- +// конец-------------------------- Служебные ---------------------------------------------------------------------- +// конец-------------------------- Служебные ---------------------------------------------------------------------- + + +// начало-------------------------- Инициализация ---------------------------------------------------------------------- +// начало-------------------------- Инициализация ---------------------------------------------------------------------- +// начало-------------------------- Инициализация ---------------------------------------------------------------------- + +// Проверка готовности SIM-карты +bool Gsm_PINStatus(tAtCmd *env, tAtGsm_PINStatus *state) { + AtCommandResult result = AtGsm_Simcom800f_PINStatus(env, state); + + if (result != AT_OK) + return false; + + return true; +} + +// Уровень сигнала +bool Gsm_SignalQualityReport(tAtCmd *env, uint32_t *rssi, int *error) { + AtCommandResult result = AtGsm_Simcom800f_SignalQualityReport(env, rssi, error); + + if (result != AT_OK) + return false; + + return true; +} + +// Проверка наличия регистрации в сети GSM. +bool Gsm_NetworkRegistrationStatusGSM(tAtCmd *env, + tAtGsm_NetworkRegistrationReportMode *mode, + tAtGsm_NetworkRegistrationState *state, + int *error) { + AtCommandResult result = AtGsm_Simcom800f_NetworkRegistrationStatusGSM(env, mode, state, error); + + if (result != AT_OK) + return false; + + return true; +} + +// Проверка получения доступа к услугам пакетной передачи данных. +bool Gsm_AttachOrDetachFromGPRSService( + tAtCmd *env, + tAtGsm_AttachOrDetachFromGPRSService *state, + int *error +) { + AtCommandResult result = AtGsm_Simcom800f_AttachOrDetachFromGPRSService(env, state, error); + + if (result != AT_OK) + return false; + + return true; +} + +// Установка количества соединений с сокетом - 0 +bool Gsm_StartUpMultiIPConnection(tAtCmd *env, uint8_t count) { + AtCommandResult result = AtGsm_Simcom800f_StartUpMultiIPConnection(env, count); + + if (result != AT_OK) + return false; + + return true; +} + +// Режим передачи данных 0 - Ручной +bool Gsm_SelectTCPIPApplicationMode(tAtCmd *env, uint8_t mode) { + AtCommandResult result = AtGsm_Simcom800f_SelectTCPIPApplicationMode(env, mode); + + if (result != AT_OK) + return false; + + return true; +} + +// Режим передачи данных 0 - Ручной +bool Gsm_SelectDataTransmittingMode(tAtCmd *env, uint8_t mode) { + AtCommandResult result = AtGsm_Simcom800f_SelectDataTransmittingMode(env, mode); + + if (result != AT_OK) + return false; + + return true; +} + +// Режим приема данных 1 - Ручной +bool Gsm_GetDataFromNetworkManuallySet(tAtCmd *env, uint8_t mode) { + AtCommandResult result = AtGsm_Simcom800f_GetDataFromNetworkManuallySet(env, mode); + + if (result != AT_OK) + return false; + + return true; +} +// конец----------------------------------- Инициализация -------------------------------------------------------------- +// конец----------------------------------- Инициализация -------------------------------------------------------------- +// конец----------------------------------- Инициализация -------------------------------------------------------------- + + +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- + +// Деактивация контекста +bool Gsm_DeactivateGPRSPDPContext(tAtCmd *env) { + AtCommandResult result = AtGsm_Simcom800f_DeactivateGPRSPDPContext(env); + + if (result != AT_OK) + return false; + + return true; +} + +// Настройка точки доступа APN +bool Gsm_StartTaskAndSetAPN(tAtCmd *env, char *apn, int apnLen) { + AtCommandResult result = AtGsm_Simcom800f_StartTaskAndSetAPN(env, apn, apnLen); + + if (result != AT_OK) + return false; + + return true; +} + +// Запрос текущего статуса соединения +bool Gsm_QueryCurrentConnectionStatus(tAtCmd *env, tAtGsm_QueryCurrentConnectionStatus *state) { + AtCommandResult result = AtGsm_Simcom800f_QueryCurrentConnectionStatus(env, state); + + if (result != AT_OK) + return false; + + return true; +} + +// Активация контекста +bool Gsm_BringUpWirelessConnectionWithGPRS(tAtCmd *env) { + AtCommandResult result = AtGsm_Simcom800f_BringUpWirelessConnectionWithGPRS(env); + + if (result != AT_OK) + return false; + + return true; +} + +// Установление TCP соединения +bool Gsm_StartUpTCPOrUDPConnection(tAtCmd *env, char *url, int urlLen, uint16_t port) { + AtCommandResult result = AtGsm_Simcom800f_StartUpTCPOrUDPConnection(env, url, urlLen, port); + + if (result != AT_OK) + return false; + + return true; +} + +// Закрытие соединения +bool Gsm_CloseTCPorUDPConnection(tAtCmd *env) { + AtCommandResult result = AtGsm_Simcom800f_CloseTCPorUDPConnection(env); + + if (result != AT_OK) + return false; + + return true; +} + +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- + + +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- + +// Начать отправку данных на сервер +bool Gsm_SendDataThroughTCPOrUDPConnection(tAtCmd *env, uint8_t *pBuf, uint16_t size) { + AtCommandResult result = AtGsm_Simcom800f_SendDataThroughTCPOrUDPConnection(env, pBuf, size); + + if (result != AT_OK) + return false; + + return true; +} + +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- + + +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- + +// Получить количества данных готовых для чтения +bool Gsm_GetDataFromNetworkManuallyGetSize(tAtCmd *env, uint16_t *size) { + AtCommandResult result = AtGsm_Simcom800f_GetDataFromNetworkManuallyGetSize(env, size); + + if (result != AT_OK) + return false; + + return true; +} + +// Получить данные готовые для чтения из сокета +bool Gsm_GetDataFromNetworkManuallyGet(tAtCmd *env, uint8_t *pBuf, uint16_t sizeRead, uint16_t *sizeRealRead) { + AtCommandResult result = AtGsm_Simcom800f_GetDataFromNetworkManuallyGet(env, pBuf, sizeRead, sizeRealRead); + + if (result != AT_OK) + return false; + + return true; +} +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- diff --git a/ModemGsm.h b/ModemGsm.h new file mode 100644 index 0000000..b6a0b1b --- /dev/null +++ b/ModemGsm.h @@ -0,0 +1,121 @@ +// +// Created by cfif on 26.04.23. +// + +#ifndef GONEC_FULL_MODEMGSM_H +#define GONEC_FULL_MODEMGSM_H + +#include "SerialPortIO.h" +#include "LoggerInterface.h" +#include "BaseTypes.h" +#include "AtCmdCommonProtected.h" +#include "AtModemGonec.h" +#include "ModemMain.h" +#include "AtGsmSim800f.h" + + +// начало-------------------------- Служебные ---------------------------------------------------------------------- +// начало-------------------------- Служебные ---------------------------------------------------------------------- +// начало-------------------------- Служебные ---------------------------------------------------------------------- + +bool Gsm_GET_CGSN(tAtCmd *env, char *acpString, size_t *acpStringLen); + +bool Gsm_CCID(tAtCmd *env, char *acpString, size_t *acpStringLen); + +// конец-------------------------- Служебные ---------------------------------------------------------------------- +// конец-------------------------- Служебные ---------------------------------------------------------------------- +// конец-------------------------- Служебные ---------------------------------------------------------------------- + +// начало-------------------------- Инициализация ---------------------------------------------------------------------- +// начало-------------------------- Инициализация ---------------------------------------------------------------------- +// начало-------------------------- Инициализация ---------------------------------------------------------------------- + +// Проверка готовности SIM-карты +bool Gsm_PINStatus(tAtCmd *env, tAtGsm_PINStatus *state); + +// Уровень сигнала +bool Gsm_SignalQualityReport(tAtCmd *env, uint32_t *rssi, int *error); + +// Проверка наличия регистрации в сети GSM. +bool Gsm_NetworkRegistrationStatusGSM(tAtCmd *env, + tAtGsm_NetworkRegistrationReportMode *mode, + tAtGsm_NetworkRegistrationState *state, + int *error); + +// Проверка получения доступа к услугам пакетной передачи данных. +bool Gsm_AttachOrDetachFromGPRSService( + tAtCmd *env, + tAtGsm_AttachOrDetachFromGPRSService *state, + int *error +); + +// Установка количества соединений с сокетом - 0 +bool Gsm_StartUpMultiIPConnection(tAtCmd *env, uint8_t count); + +// Режим передачи данных 0 - Ручной +bool Gsm_SelectTCPIPApplicationMode(tAtCmd *env, uint8_t mode); + +// Режим передачи данных 0 - Ручной +bool Gsm_SelectDataTransmittingMode(tAtCmd *env, uint8_t mode); + +// Режим приема данных 1 - Ручной +bool Gsm_GetDataFromNetworkManuallySet(tAtCmd *env, uint8_t mode); +// конец----------------------------------- Инициализация -------------------------------------------------------------- +// конец----------------------------------- Инициализация -------------------------------------------------------------- +// конец----------------------------------- Инициализация -------------------------------------------------------------- + + +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- + +// Деактивация контекста +bool Gsm_DeactivateGPRSPDPContext(tAtCmd *env); + +// Настройка точки доступа APN +bool Gsm_StartTaskAndSetAPN(tAtCmd *env, char *apn, int apnLen); + +// Запрос текущего статуса соединения +bool Gsm_QueryCurrentConnectionStatus(tAtCmd *env, tAtGsm_QueryCurrentConnectionStatus *state); + +// Активация контекста +bool Gsm_BringUpWirelessConnectionWithGPRS(tAtCmd *env); + +// Установление TCP соединения +bool Gsm_StartUpTCPOrUDPConnection(tAtCmd *env, char *url, int urlLen, uint16_t port); + +// Закрытие соединения +bool Gsm_CloseTCPorUDPConnection(tAtCmd *env); + +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- + + +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- + +// Начать отправку данных на сервер +bool Gsm_SendDataThroughTCPOrUDPConnection(tAtCmd *env, uint8_t *pBuf, uint16_t size); + +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- + + +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- + +// Получить количества данных готовых для чтения +bool Gsm_GetDataFromNetworkManuallyGetSize(tAtCmd *env, uint16_t *size); +// Получить данные готовые для чтения из сокета +bool Gsm_GetDataFromNetworkManuallyGet(tAtCmd *env, uint8_t *pBuf, uint16_t sizeRead, uint16_t *sizeRealRead); +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- + + + +#endif //GONEC_FULL_MODEMGSM_H diff --git a/ModemGsmFunc.c b/ModemGsmFunc.c new file mode 100644 index 0000000..bf79539 --- /dev/null +++ b/ModemGsmFunc.c @@ -0,0 +1,263 @@ +// +// Created by cfif on 26.04.23. +// +// +// Created by cfif on 26.04.23. +// +#include "ModemGsm.h" +#include "AtGsmSim800f.h" + +#define LOGGER env->logger +#define LOG_SIGN "GONEC" + +// +// Created by cfif on 26.04.23. +// +#include "ModemMain.h" + + +// начало-------------------------- Служебные ---------------------------------------------------------------------- +// начало-------------------------- Служебные ---------------------------------------------------------------------- +// начало-------------------------- Служебные ---------------------------------------------------------------------- +bool GsmGET_CGSN(tModemMain *env, char *acpString, size_t *acpStringLen) { + + bool result = Gsm_GET_CGSN(&env->modemAtGsm, acpString, acpStringLen); + + if (!result) { + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Получение IMEI (AT+CGSN)"); + } + + return result; +} + +bool GsmCCID(tModemMain *env, char *acpString, size_t *acpStringLen) { + AtCommandResult result = Gsm_CCID(&env->modemAtGsm, acpString, acpStringLen); + + if (!result) { + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Получение Msisdn (AT+CCID)"); + } + + return result; +} + +// конец-------------------------- Служебные ---------------------------------------------------------------------- +// конец-------------------------- Служебные ---------------------------------------------------------------------- +// конец-------------------------- Служебные ---------------------------------------------------------------------- + + +// начало-------------------------- Инициализация ---------------------------------------------------------------------- +// начало-------------------------- Инициализация ---------------------------------------------------------------------- +// начало-------------------------- Инициализация ---------------------------------------------------------------------- + +// Проверка готовности SIM-карты +bool GsmPINStatus(tModemMain *env, tAtGsm_PINStatus *state) { + bool result = Gsm_PINStatus(&env->modemAtGsm, state); + + if (!result) { + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Проверка готовности SIM-карты (AT+CPIN?)"); + } + + return result; +} + +// Уровень сигнала +bool GsmSignalQualityReport(tModemMain *env, uint32_t *rssi, int *error) { + bool result = Gsm_SignalQualityReport(&env->modemAtGsm, rssi, error); + + if (!result) { + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Получение уровня сигнала (AT+CSQ)"); + } + + + return result; +} + +// Проверка наличия регистрации в сети GSM. +bool GsmNetworkRegistrationStatusGSM(tModemMain *env, + tAtGsm_NetworkRegistrationReportMode *mode, + tAtGsm_NetworkRegistrationState *state, + int *error) { + bool result = Gsm_NetworkRegistrationStatusGSM(&env->modemAtGsm, mode, state, error); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Проверка наличия регистрации в сети GSM (AT+CREG?)"); + + return result; +} + +// Проверка получения доступа к услугам пакетной передачи данных. +bool GsmAttachOrDetachFromGPRSService( + tModemMain *env, + tAtGsm_AttachOrDetachFromGPRSService *state, + int *error +) { + bool result = Gsm_AttachOrDetachFromGPRSService(&env->modemAtGsm, state, error); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Проверка получения доступа к услугам пакетной передачи данных (AT+CGATT?)"); + + return result; +} + +// Установка количества соединений с сокетом - 0 +bool GsmStartUpMultiIPConnection(tModemMain *env, uint8_t count) { + bool result = Gsm_StartUpMultiIPConnection(&env->modemAtGsm, count); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Установка количества соединений с сокетом (AT+CIPMUX)"); + + return result; +} + +// Режим передачи данных 0 - Ручной +bool GsmSelectTCPIPApplicationMode(tModemMain *env, uint8_t mode) { + bool result = Gsm_SelectTCPIPApplicationMode(&env->modemAtGsm, mode); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Установка режима передачи данных (AT+CIPMODE)"); + + return result; +} + +// Режим передачи данных 0 - Ручной +bool GsmSelectDataTransmittingMode(tModemMain *env, uint8_t mode) { + bool result = Gsm_SelectDataTransmittingMode(&env->modemAtGsm, mode); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Установка режима передачи данных (AT+CIPQSEND)"); + + return result; +} + +// Режим приема данных 1 - Ручной +bool GsmGetDataFromNetworkManuallySet(tModemMain *env, uint8_t mode) { + bool result = Gsm_GetDataFromNetworkManuallySet(&env->modemAtGsm, mode); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Установка режима приема данных (AT+CIPRXGET)"); + + return result; +} +// конец----------------------------------- Инициализация -------------------------------------------------------------- +// конец----------------------------------- Инициализация -------------------------------------------------------------- +// конец----------------------------------- Инициализация -------------------------------------------------------------- + + +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- + +// Деактивация контекста +bool GsmDeactivateGPRSPDPContext(tModemMain *env) { + bool result = Gsm_DeactivateGPRSPDPContext(&env->modemAtGsm); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Деактивация контекста (AT+CIPSHUT)"); + + return result; +} + +// Настройка точки доступа APN +bool GsmStartTaskAndSetAPN(tModemMain *env, char *apn, int apnLen) { + bool result = Gsm_StartTaskAndSetAPN(&env->modemAtGsm, apn, apnLen); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Настройка точки доступа APN (AT+CSTT)"); + + return result; +} + +// Запрос текущего статуса соединения +bool GsmQueryCurrentConnectionStatus(tModemMain *env, tAtGsm_QueryCurrentConnectionStatus *state) { + bool result = Gsm_QueryCurrentConnectionStatus(&env->modemAtGsm, state); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Запрос текущего статуса соединения (AT+CIPSTATUS)"); + + return result; +} + +// Активация контекста +bool GsmBringUpWirelessConnectionWithGPRS(tModemMain *env) { + bool result = Gsm_BringUpWirelessConnectionWithGPRS(&env->modemAtGsm); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Активация контекста (AT+CIICR)"); + + return result; +} + +// Установление TCP соединения +bool GsmStartUpTCPOrUDPConnection(tModemMain *env, char *url, int urlLen, uint16_t port) { + bool result = Gsm_StartUpTCPOrUDPConnection(&env->modemAtGsm, url, urlLen, port); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Установка соединения (AT+CIPSTART)"); + + return result; +} + +// Закрытие соединения +bool GsmCloseTCPorUDPConnection(tModemMain *env) { + bool result = Gsm_CloseTCPorUDPConnection(&env->modemAtGsm); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Закрытие соединения (AT+CIPCLOSE)"); + + return result; +} + +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- + + +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- + +// Начать отправку данных на сервер +bool GsmSendDataThroughTCPOrUDPConnection(tModemMain *env, uint8_t *pBuf, uint16_t size) { + bool result = Gsm_SendDataThroughTCPOrUDPConnection(&env->modemAtGsm, pBuf, size); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Начать отправку данных на сервер (AT+CIPSEND)"); + + return result; +} + +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- + + +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- + +// Получить количества данных готовых для чтения +bool GsmGetDataFromNetworkManuallyGetSize(tModemMain *env, uint16_t *size) { + bool result = Gsm_GetDataFromNetworkManuallyGetSize(&env->modemAtGsm, size); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Получение количества данных готовых для чтения (AT+CIPRXGET)"); + + return result; +} + +// Получить данные готовые для чтения из сокета +bool GsmGetDataFromNetworkManuallyGet(tModemMain *env, uint8_t *pBuf, uint16_t sizeRead, uint16_t *sizeRealRead) { + bool result = Gsm_GetDataFromNetworkManuallyGet(&env->modemAtGsm, pBuf, sizeRead, sizeRealRead); + + LoggerInfoStatic(LOGGER, LOG_SIGN, + "Ошибка выполнения команды записи в модем (GSM): Получение данные готовых для чтения (AT+CIPRXGET)"); + + return result; +} +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- diff --git a/ModemGsmFunc.h b/ModemGsmFunc.h new file mode 100644 index 0000000..bc118cf --- /dev/null +++ b/ModemGsmFunc.h @@ -0,0 +1,112 @@ +// +// Created by cfif on 26.04.23. +// + +#ifndef GONEC_FULL_MODEMGSMFUNC_H +#define GONEC_FULL_MODEMGSMFUNC_H + +#include "ModemGsm.h" + + +// начало-------------------------- Служебные ---------------------------------------------------------------------- +// начало-------------------------- Служебные ---------------------------------------------------------------------- +// начало-------------------------- Служебные ---------------------------------------------------------------------- +bool GsmGET_CGSN(tModemMain *env, char *acpString, size_t *acpStringLen); + +bool GsmCCID(tModemMain *env, char *acpString, size_t *acpStringLen); + +// конец-------------------------- Служебные ---------------------------------------------------------------------- +// конец-------------------------- Служебные ---------------------------------------------------------------------- +// конец-------------------------- Служебные ---------------------------------------------------------------------- + +// начало-------------------------- Инициализация ---------------------------------------------------------------------- +// начало-------------------------- Инициализация ---------------------------------------------------------------------- +// начало-------------------------- Инициализация ---------------------------------------------------------------------- + +// Проверка готовности SIM-карты +bool GsmPINStatus(tModemMain *env, tAtGsm_PINStatus *state); + +// Уровень сигнала +bool GsmSignalQualityReport(tModemMain *env, uint32_t *rssi, int *error); + +// Проверка наличия регистрации в сети GSM. +bool GsmNetworkRegistrationStatusGSM(tModemMain *env, + tAtGsm_NetworkRegistrationReportMode *mode, + tAtGsm_NetworkRegistrationState *state, + int *error); + +// Проверка получения доступа к услугам пакетной передачи данных. +bool GsmAttachOrDetachFromGPRSService( + tModemMain *env, + tAtGsm_AttachOrDetachFromGPRSService *state, + int *error +); + +// Установка количества соединений с сокетом - 0 +bool GsmStartUpMultiIPConnection(tModemMain *env, uint8_t count); + +// Режим передачи данных 0 - Ручной +bool GsmSelectTCPIPApplicationMode(tModemMain *env, uint8_t mode); + +// Режим передачи данных 0 - Ручной +bool GsmSelectDataTransmittingMode(tModemMain *env, uint8_t mode); + +// Режим приема данных 1 - Ручной +bool GsmGetDataFromNetworkManuallySet(tModemMain *env, uint8_t mode); +// конец----------------------------------- Инициализация -------------------------------------------------------------- +// конец----------------------------------- Инициализация -------------------------------------------------------------- +// конец----------------------------------- Инициализация -------------------------------------------------------------- + + +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- +// начало---------------------- Настройка контекста и открытие соединения ----------------------------------- + +// Деактивация контекста +bool GsmDeactivateGPRSPDPContext(tAtCmd *env); + +// Настройка точки доступа APN +bool GsmStartTaskAndSetAPN(tModemMain *env, char *apn, int apnLen); + +// Запрос текущего статуса соединения +bool GsmQueryCurrentConnectionStatus(tModemMain *env, tAtGsm_QueryCurrentConnectionStatus *state); + +// Активация контекста +bool GsmBringUpWirelessConnectionWithGPRS(tAtCmd *env); + +// Установление TCP соединения +bool GsmStartUpTCPOrUDPConnection(tModemMain *env, char *url, int urlLen, uint16_t port); + +// Закрытие соединения +bool GsmCloseTCPorUDPConnection(tAtCmd *env); +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- +// конец---------------------------- Настройка контекста и открытие соединения ----------------------------------------- + + +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// начало----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- + +// Начать отправку данных на сервер +bool GsmSendDataThroughTCPOrUDPConnection(tModemMain *env, uint8_t *pBuf, uint16_t size); + +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- +// конец----------------------- Передача данных с подтверждением в командном режиме ----------------------------------- + + +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// начало----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- + +// Получить количества данных готовых для чтения +bool GsmGetDataFromNetworkManuallyGetSize(tModemMain *env, uint16_t *size); +// Получить данные готовые для чтения из сокета +bool GsmGetDataFromNetworkManuallyGet(tModemMain *env, uint8_t *pBuf, uint16_t sizeRead, uint16_t *sizeRealRead); +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- +// конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- + + +#endif //GONEC_FULL_MODEMGSMFUNC_H diff --git a/modular.json b/modular.json new file mode 100644 index 0000000..1861022 --- /dev/null +++ b/modular.json @@ -0,0 +1,22 @@ +{ + "dep": [ + { + "type": "git", + "provider": "GONEC", + "repo": "SystemDelayInterface" + }, + { + "type": "git", + "provider": "GONEC", + "repo": "AtGsmSim800F" + } + ], + "cmake": { + "inc_dirs": [ + "./" + ], + "srcs": [ + "*.c" + ] + } +} \ No newline at end of file