// // 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; } // конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- // конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных ------------------------- // конец----------------------- Прием данных в командном режиме, ручной вывод принятых данных -------------------------