Демонстрационная прошивка отладочного комплекта МТС NB-IoT
Файлы | Структуры данных | Макросы | Перечисления | Функции

Файлы

файл  at_cmd_support.h
 

Структуры данных

struct  expected_URC_entry_t
 Структура, описывающая URC-сообщение, поиск которого будет производиться во входном потоке символов от радиомодуля Подробнее...
 

Макросы

#define AT_RESP_BUFFER_LENGTH   1024
 
#define NULL   ((void *)0)
 
#define INVALID_SOCKET_ID   255
 См. AT_CreateUDPSocket()
 
#define USE_ADVANCED_URC_SEARCH   1
 
#define NUM_URC_SUPPORTED   2
 Количество URC, поиск которых будет производиться
 
#define URC_NAME_LENGTH   16
 Максимальная длина имени URC.
 

Перечисления

enum  at_udp_error_t {
  AT_NO_RESPONSE, AT_ERROR, AT_FORMAT_ERROR, AT_LENGTH_DOES_NOT_MATCH,
  AT_NO_ERROR
}
 

Функции

uint16_t AT_ReadReponseBuffer (uint8_t *buffer_out, uint16_t buffer_length, uint8_t *is_overflowed, uint8_t *overrun_detected, uint8_t *error_status, uint32_t max_wait_time)
 Чтение ответа модуля. Подробнее...
 
void AT_SendCommand (const uint8_t *cmd)
 Посылает AT-команду в модуль. Подробнее...
 
uint8_t AT_CreateUDPSocket (uint32_t max_wait_time)
 Создает UDP-сокет средствами радиомодуля. Подробнее...
 
uint8_t AT_CloseUDPSocket (uint8_t socket_id, uint32_t max_wait_time)
 Закрывает ранее созданный сокет UDP. Подробнее...
 
at_udp_error_t AT_SendUDPData (uint8_t socket_id, uint8_t *target_IP_string, uint16_t target_port, uint8_t *data, uint16_t data_length, uint32_t max_wait_time)
 Посылает пакет UDP по указанному адресу. Подробнее...
 
int16_t AT_GetRSSI (uint32_t timeout)
 Получение мощности принимаемого сигнала в dBm. Подробнее...
 
uint8_t AT_CheckUDPReceived (uint8_t *socket_id, uint16_t *packet_length)
 Позволяет проверить, есть ли в буфере радиомодуля входящий UDP-пакет. Подробнее...
 
at_udp_error_t AT_ReadUDPData (uint8_t socket_id, uint16_t read_length, uint8_t *source_IP, uint16_t *source_port, uint8_t *data_out, uint32_t max_wait_time)
 Чтение данных из указанного UDP-сокета Подробнее...
 
uint16_t AT_CheckNIDDReceived (uint8_t *data_out)
 Проверка наличия NIDD-данных и, при их наличии, чтение принятой строки Подробнее...
 
uint8_t AT_ReadICCID (uint8_t *ICCID, uint32_t timeout)
 Чтение ICCID SIM-карты/чипа Подробнее...
 
uint8_t AT_ReadIMEI (uint8_t *IMEI, uint32_t timeout)
 Чтение IMEI радиомодуля Подробнее...
 
uint8_t AT_SendStringUsingNIDD (uint8_t *str, uint32_t timeout)
 Пересылает данные с помощью технологии NIDD. Подробнее...
 
uint8_t AT_IsRegistered (uint32_t timeout)
 Проверка регистрации модуля в сети LTE. Подробнее...
 

Подробное описание

Макросы

◆ AT_RESP_BUFFER_LENGTH

#define AT_RESP_BUFFER_LENGTH   1024

Максимальная длина буфера (в байтах), в который будет осуществляться прием ответов от радиомодуля. Согласно документации, максимальная длина команды для SARA-R410-02B ограничена значением 1024 символа. По этой причине размер приемного буфера целесообразно ограничить этим же значением.

См. определение в файле at_cmd_support.h строка 24

◆ USE_ADVANCED_URC_SEARCH

#define USE_ADVANCED_URC_SEARCH   1

1 - использовать продвинутый поиск URC в потоке символов от радиомодуля. Опция необходима для поддержки обратного канала NIDD. Если опция отключена, будет использован старый способ, поддерживающий только работу с URC, относящимися к UDP.

См. определение в файле at_cmd_support.h строка 55

Перечисления

◆ at_udp_error_t

Элементы перечислений
AT_NO_RESPONSE 

Модуль не ответил на запрос

AT_ERROR 

Запрос к модулю завершился с ошибкой

AT_FORMAT_ERROR 

Произошла ошибка в процессе разбора строки-ответа; скорее всего, строка повреждена

AT_LENGTH_DOES_NOT_MATCH 

При чтении из UDP-сокета: длина строки, сообщенная командой чтения, не совпадает с запрошенной длиной; вероятно, произошла ошибка разбора строки

AT_NO_ERROR 

Ошибок не произошло, данные корректны

См. определение в файле at_cmd_support.h строка 40

Функции

◆ AT_CheckNIDDReceived()

uint16_t AT_CheckNIDDReceived ( uint8_t *  data_out)

Проверка наличия NIDD-данных и, при их наличии, чтение принятой строки

Аргументы
[out]data_outУказатель на буфер, в который будут записаны данные
Предупреждения
Буфер должен иметь размер не менее чем 513 байт (максимум 512 байт данных и завершающий строку нулевой байт)
Возвращает
Количество принятых байт данных без учета завершающего строку нулевого байта
Заметки
Чтобы эта функция была доступна, код должен быть скомпилирован с поддержкой улучшенного метода поиска URC во входном потоке,
см. USE_ADVANCED_URC_SEARCH. В противном случае тело функции заменяется заглушкой, всегда возвращающей ноль.

См. определение в файле at_cmd_support.c строка 498

◆ AT_CheckUDPReceived()

uint8_t AT_CheckUDPReceived ( uint8_t *  socket_id,
uint16_t *  packet_length 
)

Позволяет проверить, есть ли в буфере радиомодуля входящий UDP-пакет.

Аргументы
[out]socket_idУказатель на переменную, в которую будет записан идентификатор сокета, принявшего данные; если значение не требуется, можно передать NULL
[out]packet_lengthУказатель на переменную, в которую будет записан размер принятых данных в байтах; если значение не требуется, можно передать NULL
Возвращает
Если в буфере радиомодуля нет данных, либо если проверка завершилась с ошибкой, функция возвращает 0; если данные есть - 1

См. определение в файле at_cmd_support.c строка 441

◆ AT_CloseUDPSocket()

uint8_t AT_CloseUDPSocket ( uint8_t  socket_id,
uint32_t  max_wait_time 
)

Закрывает ранее созданный сокет UDP.

Аргументы
[in]socket_idИдентификатор сокета
[in]max_wait_timeПредельное время ожидания ответа от радиомодуля
Возвращает
В случае успеха - 1, в случае ошибки или таймаута - 0

См. определение в файле at_cmd_support.c строка 365

◆ AT_CreateUDPSocket()

uint8_t AT_CreateUDPSocket ( uint32_t  max_wait_time)

Создает UDP-сокет средствами радиомодуля.

Аргументы
[in]max_wait_timeПредельное время ожидания ответа модуля, в тактах.
Возвращает
Идентификатор созданного сокета. Если сокет создать не удалось, возвращаемый идентификатор будет установлен в значение INVALID_SOCKET_ID.

См. определение в файле at_cmd_support.c строка 324

◆ AT_GetRSSI()

int16_t AT_GetRSSI ( uint32_t  timeout)

Получение мощности принимаемого сигнала в dBm.

Аргументы
[in]timeoutПредельное время ожидания ответа модуля
Возвращает
Мощность принимаемого сигнала в dBm.
Предупреждения
Смысл имеют только значения от -111 dBm до -51 dBm. Значение, выходящее за этот диапазон, свидетельствует об ошибке определения. Граничные значения возвращаются также для значений, лежащих за пределами диапазона. То есть, -51 dBm означает "-51 dBm или более", -111 dBm означает "-111 dBm или менее".

См. определение в файле at_cmd_support.c строка 623

◆ AT_IsRegistered()

uint8_t AT_IsRegistered ( uint32_t  timeout)

Проверка регистрации модуля в сети LTE.

Аргументы
[in]timeoutПредельное время ожидания ответа радиомодуля
Возвращает
Если модуль зарегистрирован в сети - 1, если не зарегистрирован либо в ходе запроса произошла ошибка - 0

См. определение в файле at_cmd_support.c строка 797

◆ AT_ReadICCID()

uint8_t AT_ReadICCID ( uint8_t *  ICCID,
uint32_t  timeout 
)

Чтение ICCID SIM-карты/чипа

Аргументы
[in]ICCIDБуфер, в который будет скопирован ICCID в виде строки. Должен иметь размер не менее 50 символов.
[in]timeoutПредельное время ожидания ответа от модуля, в тактах
Возвращает
При успехе - 1, при ошибке запроса - 0

См. определение в файле at_cmd_support.c строка 683

◆ AT_ReadIMEI()

uint8_t AT_ReadIMEI ( uint8_t *  IMEI,
uint32_t  timeout 
)

Чтение IMEI радиомодуля

Аргументы
[in]IMEIБуфер, в который будет скопирован IMEI в виде строки. Должен иметь размер не менее 50 символов.
Возвращает
При успехе - 1, при ошибке запроса - 0

См. определение в файле at_cmd_support.c строка 726

◆ AT_ReadReponseBuffer()

uint16_t AT_ReadReponseBuffer ( uint8_t *  buffer_out,
uint16_t  buffer_length,
uint8_t *  is_overflowed,
uint8_t *  overrun_detected,
uint8_t *  error_status,
uint32_t  max_wait_time 
)

Чтение ответа модуля.

Прием ответа от модуля производится асинхронно, в прерывании. Принятые данные сохраняются в буфер. Функция выполняет безопасное чтение этого буфера методом, исключающим повреждение данных в результате конфликта записи-чтения. Опционально можно задать время ожидания ответа модуля.

Аргументы
[out]buffer_outуказатель на буфер, в который будет произведено копирование принятых данных.
[in]buffer_lengthДлина буфера, в который будет производиться копирование
Предупреждения
Если размер ответа превосходит размер буфера, лишние данные будут отброшены
Аргументы
[out]is_overflowedненулевое значение свидетельствует о том, что размер принятых данных превышал RESP_BUFFER_LENGTH и данные были повреждены. Если информация об этом не требуется, вместо этого параметра можно передать NULL.
[out]overrun_detectedненулевое значение свидетельствует о том, что в процессе копирования данных из буфера было зарегистрировано поступление новых данных, которые были отброшены в целях сохранения целостности копируемых данных. Если информация об этом не требуется, вместо этого параметра можно передать NULL.
[out]error_statusУстанавливается в 1, если ответ модуля указывает на ошибку; если команда выполнена успешно - 0. Если информация не требуется, вместо этого параметра можно передать NULL.
[in]max_wait_timeпредельное время ожидания ответа от модуля (в тактах). Если ответ не был получен за это время, функция завершается, возвращая ноль.
Возвращает
количество байт данных.

См. определение в файле at_cmd_support.c строка 243

◆ AT_ReadUDPData()

at_udp_error_t AT_ReadUDPData ( uint8_t  socket_id,
uint16_t  read_length,
uint8_t *  source_IP,
uint16_t *  source_port,
uint8_t *  data_out,
uint32_t  max_wait_time 
)

Чтение данных из указанного UDP-сокета

Аргументы
[in]socket_idИдентификатор сокета, из которого требуется прочесть данные
[in]read_lengthКоличество данных, которое требуется прочесть
[out]source_IPУказатель на строку, в которую будет записан адрес сервера-источника данных; если эта информация не требуется, может быть передан NULL
[out]source_portУказатель на переменную, в которую будет записан номер порта, с которого пришли данные; если информация не требуется, может быть передан NULL
[out]data_outУказатель на массив, в который будут записаны данные; размер массива должен составлять не менее read_length байт. Если данные не требуются, может быть передан NULL
[in]max_wait_timeПредельное время ожидания ответа модуля в тактах
Возвращает
Код ошибки, определенный в at_udp_error_t

См. определение в файле at_cmd_support.c строка 555

◆ AT_SendCommand()

void AT_SendCommand ( const uint8_t *  cmd)

Посылает AT-команду в модуль.

Предупреждения
AT-команда должна представлять собой NULL-терминированную строку (соглашение C).

См. определение в файле at_cmd_support.c строка 318

◆ AT_SendStringUsingNIDD()

uint8_t AT_SendStringUsingNIDD ( uint8_t *  str,
uint32_t  timeout 
)

Пересылает данные с помощью технологии NIDD.

Предупреждения
Профиль радиомодуля должен быть настроен соответствующим образом
Аргументы
[in]strСтрока, которая будет отправлена
Предупреждения
Максимальный размер строки - 450 символов
Аргументы
[in]timeoutПредельное время ожидания ответа радиомодуля
Возвращает
В случае успеха - 1, в случае ошибки передачи - 0.

См. определение в файле at_cmd_support.c строка 763

◆ AT_SendUDPData()

at_udp_error_t AT_SendUDPData ( uint8_t  socket_id,
uint8_t *  target_IP_string,
uint16_t  target_port,
uint8_t *  data,
uint16_t  data_length,
uint32_t  max_wait_time 
)

Посылает пакет UDP по указанному адресу.

Аргументы
[in]socket_idИдентификатор сокета, который будет использоваться для отсылки данных
[in]target_IP_stringIP-адрес целевого сервера в виде строки, например "127.0.0.1"
[in]target_portПорт сервера, на который требуется отправить данные
[in]dataУказатель на массив байт данных
[in]data_lengthДлина массива данных
[in]max_wait_timeПредельное время ожидания ответа модуля
Возвращает
Информация об ошибке, определенная в at_udp_error_t

См. определение в файле at_cmd_support.c строка 390