Введение в разработку приложений на платформе Atom/MeeGo. Граничин О.Н - 76 стр.

UptoLike

76
В предыдущих лекциях упоминалась, что фреймворк Qt рекомендуется в качестве основного
средства разработки для ОС MeeGo. В настоящей лекции мы рассмотрим интеграцию упомянутых
выше подсистем с Qt, а также изучим возможности модуля Qt Mobility для разработки приложений,
использующих функции связи.
7.3. Обзор реализаций сотовой связи в смартфонах
Прежде чем мы начнем говорить о стеке телефонии oFono, хочется в общих чертах понять, как
устроен смартфон, и каким образом программное обеспечение, которое на нём выполняется, способно
использовать функционал сотовой связи (например, GSM или 3G).
Может показаться, что операционная система смартфона получает данные непосредственно из
радиоэфира и непосредственно с ними и работает. В действительности это не так. Вся логика работы
со стандартами связи вынесена в отдельный аппаратный модуль. Во всех пользовательских
устройствах существует процессор общего назначения, на котором исполняются ядро ОС смартфона,
служебные и пользовательские приложения. Существующий отдельно модуль сотовой связи
фактически полностью реализует протокол сотовой связи, отвечает за кодирование и декодирование
сигнала, за работу с SIM-картой и т. д. Обмен данными между ним и процессором общего назначения
происходит при помощи команд AT (стандарт 3GPP 27.007). AT представляет из себя старый
текстовый протокол управляющих команд. Он является стандартом де-факто для управления
модемами и, в частности, сотовыми модемами. Фактически все операции сотовой связи, такие как
совершение звонков, установка GPRS / 3G соединений, прием и отправка текстовых сообщений,
регистрация в сети, чтение контактов с SIM-карты, осуществляются посредством отправки
соответствующих AT команд. Когда мы совершаем вызов, приложение-наборщик (dialer) всего лишь
отправляет AT команду сотовому модулю и настраивает звуковую подсистему устройства, соединяя
её с входами и выходами сотового модуля. Все дальнейшие действия по установлению соединения,
кодированию и декодированию звукового сигнала, по модуляции радиосигнала выполняется модулем
сотовой связи, в то время как процессор общего назначения находится практически в бездействии.
Набор команд AT несколько устарел и вызывает ряд определенных проблем. Различные
производители модемов всячески расширяют его для того, чтобы обеспечить необходимую
функциональность, что отрицательно сказывается на совместимости протоколов. Кроме того, модули
сотовой связи, выпускаемые компанией Nokia, используют вовсе иной протокол управления — ISI.
7.4. Стек телефонии oFono
Когда мы говорим о стеке телефонии, то подразумеваем какое-то программное обеспечение,
которое будет запускаться в операционной системе смартфона, и будет обеспечивать
пользовательским приложениям доступ к функционалу сотовой телефонии и возможность
взаимодействия с некоторыми подсистемами телефона. Необходимость такого программного слоя как
oFono обусловлена тем, что в его отсутствие взаимодействие пользовательских приложений с
функциями телефонии существенно усложняется. Приложения вынуждены использовать сложный и
неуклюжий протокол AT команд для управления сотовым модулем, при этом учитывая, что
используемое аппаратное обеспечение может использовать какую-то модификацию протокола или его
устаревшую версию; это делает такие приложения плохо переносимыми и сложными для понимания.
oFono решает эти проблемы, предоставляя единый высокоуровневый интерфейс к функциям сотовой
телефонии.
oFono это уже не первая попытка реализации стека телефонии в ОС Linux. В рамках таких
проектов, как Maemo и Android, создавших операционные системы для смартфонов на базе Linux, был
создан в том числе и стек сотовой телефонии. Можно выделить три основные попытки, кроме oFono,
создать стек телефонииэто проекты Qtopia, freesmartphone и стек телефонии Android. Эти проекты
по различным причинам не подходили для использования в MeeGo, в свете чего было принято
решение развивать проект oFono и интегрировать его в качестве стека телефонии.