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