Какая связь между AT-командами и C API поставщика устройства? - PullRequest
1 голос
/ 20 апреля 2020

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

Мой вопрос: какова связь между ними? Является ли API оболочкой для AT-команд?

Ответы [ 3 ]

2 голосов
/ 20 апреля 2020

TL; DR

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

Это зависит от поставщика и модели.


Джунгли модемов, выпускаемых разными поставщиками

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

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

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

  • Библиотека, экспортирующая подмножество возможностей ОС (управление потоками, событиями, семафорами, мьютексами, SW-таймерами, доступом к FS и т. Д.)
  • Предложение библиотеки возможность управления указанными c HW устройства (GP IOs, SPI, I2 C, AD C, DA C и т. д.)
  • Библиотека, предлагающая программно способ выполнения действий, связанных с подключением, которые обычно выполняются с помощью AT-команд (проверка состояния регистрации, вставка PIN-кода, активация контекста PDP, управление SMS, сокеты TCP / UDP / TLS)

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


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

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

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

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

1 голос
/ 20 апреля 2020

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

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

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

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

1 голос
/ 20 апреля 2020

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

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

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

Является ли API оболочкой AT-команды?

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

...