AT-команда (V2)
Краткое описание
AT command(V2) — это интерактивный компонент для управления коммуникацией с помощью AT-команд. Он подходит для модемов, модулей Wi-Fi, Bluetooth и других сценариев, в которых используются AT-команды или ASCII-команды для обмена данными по линиям связи. Компонент охватывает большинство форм AT-коммуникации, таких как настройка параметров, запросы, отправка двоичных данных и т. д. Также он поддерживает интерактивное управление пользовательскими командами. Поскольку каждый запрос на команду является асинхронным, компонент также поддерживается в средах без операционной системы. По сравнению с версией V1 новая версия имеет множество оптимизаций в сопоставлении приёма команд, захвате данных переменной длины URC и безопасности памяти, что позволяет ей обрабатывать более сложные приложения продукта.
Особенности
Системные требования
Чтобы AT-команды могли корректно обмениваться данными, целевая система должна соответствовать следующим требованиям:
Отличия новой версии от версии V1
Версия V1 разделена на два модуля: модуль «at» подходит только для работы в среде ОС, а модуль «at_chat» подходит для работы в среде без операционной системы. В нём используется способ предварительного выделения памяти для управления запросами AT, и ему не требуется поддержка динамической памяти, что также ограничивает область его применения. Версия V2 в основном оптимизирует модуль «at_chat», поддерживает функцию URC, а также усиливает поддержку среды ОС. Поскольку она использует динамическую память для управления запросами на AT-команды, у неё более высокие требования к ресурсам оперативной памяти, но она более удобна в использовании.
Как выбрать Если используемые ресурсы оперативной памяти платформы (например, 8-битные микроконтроллеры) ограничены и используются только для простого AT-обмена данными, то подойдёт версия V1, а если ресурсов достаточно, рекомендуется версия V2.
Начало работы
Ниже приводится краткое введение в использование, состоящее из 4 шагов:
/**
* @brief AT adapter
*/
static const at_adapter_t at_adapter = {
.lock = at_mutex_lock, //Multi-task lock (NULL for non-OS)
.unlock = at_mutex_unlock, //Multi-task unlock (NULL for non-OS)
.write = at_device_write, //Data write interface (non-blocking)
.read = at_device_read, //Data read interface (non-blocking)
.debug = at_debug, //Debug print interface (NULL if not needed)
.recv_bufsize = 256 //Receive buffer size (as required)
};
at_obj_t *at_obj;
//....
at_obj = at_obj_create(&at_adapter);
if (at_obj == NULL) {
printf("at object create failed\r\n");
}
//...
/**
* @brief Polling handler
*/
void at_device_process(void)
{
static unsigned int
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )