Сейчас я занимаюсь проектом встраиваемой системы. На мой взгляд, AT-команды могут быть отправлены на устройство для получения информации 4G, набора номера и так далее. С другой стороны, мы также можем сделать это, вызвав API-интерфейсы, предоставляемые поставщиком 4G.
У меня вопрос, какие отношения между ними? Является ли API оболочкой для AT-команд?
API поставщика (не только C, но также C ++, Java или Python в зависимости от поставщика и модели модема) может быть как оболочкой для AT-команд, так и более широким, более мощным набором API, где пользователь может переносить сложные приложения.
Это зависит от производителя и от модели.
Невозможно определить общее «правило» об API, предоставляемом модулем сотовой связи (не обязательно модулем 4G).
Прежде всего, каждый производитель обычно реализует стандартные AT-команды (как команды Hayes, так и расширенные стандартные команды для сотовых устройств). Точно так же у каждого поставщика есть собственная реализация области пользовательского приложения, где клиенты могут хранить свое собственное приложение для управления функциями модема и использования их в соответствии с требованиями своих приложений.
AT-команды остаются интерфейсом, который будет использоваться, когда модем должен быть подключен (и управляться) внешним хостом . Когда используется область пользовательского приложения, вместо этого обычно предоставляется более широкий набор API. Они могут включать:
Последние обычно получают доступ к базовому уровню, включающему все функции, предоставляемые модемом. Обычно это тот же уровень, который вызывается AT-командами, отправляемыми через последовательный интерфейс модема.
Конечно, часто бывает, что упомянутая выше библиотека предоставляет только подмножество функций, обычно экспортируемых с набором AT-команд, поэтому, чтобы «заполнить пробел» , обычно также экспортируется следующий набор API:
В качестве примера, пожалуйста, проверьте Telit Appzone здесь и здесь . Это было вдохновением для моего ответа, потому что я его очень хорошо знаю.
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.
Я не знаю, почему вы называете заголовок, что существует связь между AT-командой и Linux-C API.
Что касается AT-команды, вы можете ознакомиться с общей информацией в этой вики-статье.
Каждый модуль имеет определенные наборы AT-команд. Обычно производитель модуля просто предлагает набор AT-команд и возвращаемые значения.
Is API a wrapper of AT command?
Если вы можете использовать API, предоставленный производителем, то да, это оболочка обработчика AT-команд.