Демонстрационная прошивка отладочного комплекта МТС 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. Подробнее... | |
#define AT_RESP_BUFFER_LENGTH 1024 |
Максимальная длина буфера (в байтах), в который будет осуществляться прием ответов от радиомодуля. Согласно документации, максимальная длина команды для SARA-R410-02B ограничена значением 1024 символа. По этой причине размер приемного буфера целесообразно ограничить этим же значением.
См. определение в файле at_cmd_support.h строка 24
#define USE_ADVANCED_URC_SEARCH 1 |
1 - использовать продвинутый поиск URC в потоке символов от радиомодуля. Опция необходима для поддержки обратного канала NIDD. Если опция отключена, будет использован старый способ, поддерживающий только работу с URC, относящимися к UDP.
См. определение в файле at_cmd_support.h строка 55
enum at_udp_error_t |
См. определение в файле at_cmd_support.h строка 40
uint16_t AT_CheckNIDDReceived | ( | uint8_t * | data_out | ) |
Проверка наличия NIDD-данных и, при их наличии, чтение принятой строки
[out] | data_out | Указатель на буфер, в который будут записаны данные |
См. определение в файле at_cmd_support.c строка 498
uint8_t AT_CheckUDPReceived | ( | uint8_t * | socket_id, |
uint16_t * | packet_length | ||
) |
Позволяет проверить, есть ли в буфере радиомодуля входящий UDP-пакет.
[out] | socket_id | Указатель на переменную, в которую будет записан идентификатор сокета, принявшего данные; если значение не требуется, можно передать NULL |
[out] | packet_length | Указатель на переменную, в которую будет записан размер принятых данных в байтах; если значение не требуется, можно передать NULL |
См. определение в файле at_cmd_support.c строка 441
uint8_t AT_CloseUDPSocket | ( | uint8_t | socket_id, |
uint32_t | max_wait_time | ||
) |
Закрывает ранее созданный сокет UDP.
[in] | socket_id | Идентификатор сокета |
[in] | max_wait_time | Предельное время ожидания ответа от радиомодуля |
См. определение в файле at_cmd_support.c строка 365
uint8_t AT_CreateUDPSocket | ( | uint32_t | max_wait_time | ) |
Создает UDP-сокет средствами радиомодуля.
[in] | max_wait_time | Предельное время ожидания ответа модуля, в тактах. |
См. определение в файле at_cmd_support.c строка 324
int16_t AT_GetRSSI | ( | uint32_t | timeout | ) |
Получение мощности принимаемого сигнала в dBm.
[in] | timeout | Предельное время ожидания ответа модуля |
См. определение в файле at_cmd_support.c строка 623
uint8_t AT_IsRegistered | ( | uint32_t | timeout | ) |
Проверка регистрации модуля в сети LTE.
[in] | timeout | Предельное время ожидания ответа радиомодуля |
См. определение в файле at_cmd_support.c строка 797
uint8_t AT_ReadICCID | ( | uint8_t * | ICCID, |
uint32_t | timeout | ||
) |
Чтение ICCID SIM-карты/чипа
[in] | ICCID | Буфер, в который будет скопирован ICCID в виде строки. Должен иметь размер не менее 50 символов. |
[in] | timeout | Предельное время ожидания ответа от модуля, в тактах |
См. определение в файле at_cmd_support.c строка 683
uint8_t AT_ReadIMEI | ( | uint8_t * | IMEI, |
uint32_t | timeout | ||
) |
Чтение IMEI радиомодуля
[in] | IMEI | Буфер, в который будет скопирован IMEI в виде строки. Должен иметь размер не менее 50 символов. |
См. определение в файле at_cmd_support.c строка 726
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_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_cmd_support.c строка 555
void AT_SendCommand | ( | const uint8_t * | cmd | ) |
Посылает AT-команду в модуль.
См. определение в файле at_cmd_support.c строка 318
uint8_t AT_SendStringUsingNIDD | ( | uint8_t * | str, |
uint32_t | timeout | ||
) |
Пересылает данные с помощью технологии NIDD.
[in] | str | Строка, которая будет отправлена |
[in] | timeout | Предельное время ожидания ответа радиомодуля |
См. определение в файле at_cmd_support.c строка 763
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_string | IP-адрес целевого сервера в виде строки, например "127.0.0.1" |
[in] | target_port | Порт сервера, на который требуется отправить данные |
[in] | data | Указатель на массив байт данных |
[in] | data_length | Длина массива данных |
[in] | max_wait_time | Предельное время ожидания ответа модуля |
См. определение в файле at_cmd_support.c строка 390