Какая связь между AT-командами и C API поставщика устройств?

Сейчас я занимаюсь проектом встраиваемой системы. На мой взгляд, AT-команды могут быть отправлены на устройство для получения информации 4G, набора номера и так далее. С другой стороны, мы также можем сделать это, вызвав API-интерфейсы, предоставляемые поставщиком 4G.

У меня вопрос, какие отношения между ними? Является ли API оболочкой для AT-команд?

# embedded at-command 4g
Источник
Codelisting
за 3 против
Лучший ответ

TL; DR

API поставщика (не только C, но также C ++, Java или Python в зависимости от поставщика и модели модема) может быть как оболочкой для AT-команд, так и более широким, более мощным набором API, где пользователь может переносить сложные приложения.

Это зависит от производителя и от модели.


Джунгли модемов разных производителей

Невозможно определить общее «правило» об API, предоставляемом модулем сотовой связи (не обязательно модулем 4G).

Прежде всего, каждый производитель обычно реализует стандартные AT-команды (как команды Hayes, так и расширенные стандартные команды для сотовых устройств). Точно так же у каждого поставщика есть собственная реализация области пользовательского приложения, где клиенты могут хранить свое собственное приложение для управления функциями модема и использования их в соответствии с требованиями своих приложений.

AT-команды остаются интерфейсом, который будет использоваться, когда модем должен быть подключен (и управляться) внешним хостом . Когда используется область пользовательского приложения, вместо этого обычно предоставляется более широкий набор API. Они могут включать:

  • Библиотека, экспортирующая подмножество возможностей ОС (управление потоками, события, семафоры, мьютексы, таймеры SW, доступ к FS и т. Д.)
  • Библиотека, предлагающая возможность управлять определенным аппаратным обеспечением устройства (GPIO, SPI, I2C, ADC, DAC и т. Д.)
  • Библиотека, предлагающая программный способ выполнения действий, связанных с подключением, которые обычно выполняются с помощью AT-команд (проверка статуса регистрации, вставка PIN-кода, активация контекста PDP, управление SMS, сокеты TCP / UDP / TLS)

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


Отправка AT-команд ... из API поставщика?

Конечно, часто бывает, что упомянутая выше библиотека предоставляет только подмножество функций, обычно экспортируемых с набором AT-команд, поэтому, чтобы «заполнить пробел» , обычно также экспортируется следующий набор API:

  • Набор функций, позволяющих моделировать AT-команды, отправляемые на последовательный порт модема. Их отправка и анализ ответов, которые они отправляют во внутреннем последовательном / USB-интерфейсе, позволяют пользователю переносить во внутреннюю область пользовательского приложения приложение, которое они ранее запускали на внешнем хост-процессоре (с очевидными преимуществами спецификации) .

В качестве примера, пожалуйста, проверьте Telit Appzone здесь и здесь . Это было вдохновением для моего ответа, потому что я его очень хорошо знаю.

за 1 против

My question is what's the relationship between them? Is the API a wrapper for the AT commands?

Невозможно быть уверенным, не имея каких-либо подробностей об устройстве, но, вероятно, любой API-интерфейс C для него обертывает набор AT-команд, либо связываясь с устройством напрямую через внутренний последовательный интерфейс, либо через драйвер устройства, который использует AT-команды. общаться с ним.

Однако, по крайней мере, возможно, хотя и маловероятно, что устройство 4G предлагает альтернативный путь управления, который использует C API (в данном случае определенно через драйвер).

Однако я не совсем понимаю, в чем суть вопроса. Если вы программируете устройство и его компонент 4G на C, а производитель предоставил C API, используйте его! Если вы программируете на каком-то другом языке, то, по крайней мере, подумайте об использовании C API, к которому вы должны иметь доступ из большинства других языков каким-либо языково-зависимым способом. Вы не должны тратить усилия на создание собственного без веских причин для отказа от уже предоставленного вам API.

за 1 против

Я не знаю, почему вы называете заголовок, что существует связь между AT-командой и Linux-C API.

Что касается AT-команды, вы можете ознакомиться с общей информацией в этой вики-статье.

Каждый модуль имеет определенные наборы AT-команд. Обычно производитель модуля просто предлагает набор AT-команд и возвращаемые значения.

Is API a wrapper of AT command?

Если вы можете использовать API, предоставленный производителем, то да, это оболочка обработчика AT-команд.

Codelisting
Популярные категории
На заметку программисту