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 здесь и здесь . Это было вдохновением моего ответа, потому что я его очень хорошо знаю.