IndusPhone — создание самого маленького программируемого смартфона (часть 2)
IndusPhone — создание самого маленького программируемого смартфона (часть 2)
Это вторая часть разработки самого маленького в мире телефона Indus Phone, пользовательский интерфейс которого интегрирован с основными функциями телефона.
Ранее был разработан пользовательский интерфейс Indusphone и протестирован модуль GSM, интегрировав его с монетой IndusBoard для улучшения дизайна.
Этот сегмент сочетает в себе пользовательский интерфейс с такими функциями, как контакты и калькулятор. Связи, установленные в части 1, опубликованной в октябрьском выпуске EFY, остаются неизменными.
Теперь основное внимание уделяется интеграции программного обеспечения и пользовательского интерфейса for телефона IndusBoard.
На начальном этапе необходимо интегрировать фундаментальные функции, такие как набор номера, совершение вызовов, проверка статуса вызова, обработка входящих вызовов и отображение экрана ожидания в ранее разработанном пользовательском интерфейсе. На рис. 1 показан телефон IndusBoard.
Рис. 1: IndusPhone
Интеграция системы звонков в IndusPhone
В коде библиотека вызовов GSM и библиотеки TFT_eSPI объединяются в единую базу кода. Экран ожидания создан для непрерывного мониторинга входящих вызовов, состояния батареи и уровня сигнала. При поступлении вызова в пользовательском интерфейсе отображаются кнопки «Принять участие» и «Завершить».
Функция присутствия на вызове активируется при нажатии кнопки присутствия в пользовательском интерфейсе. Код проверяет ввод пользовательского интерфейса; if ввод — «присутствовать» или «конец», он переходит к соответствующему экрану и выполняет соответствующую функцию с помощью call.answer(); и вызов.hangup(); команды.
Рис. 2 представлен фрагмент кода for TFT_eSPI, while На рис. 3 показан исходный код экрана ожидания, который проверяет for входящие вызовы, сетевое подключение и уровень заряда батареи.
Рис. 2: Фрагмент кода for TFT_eSPI
Рис. 3. Проверка кода начального экрана ожидания for входящих вызовов, уровня сети и заряда батареи
Рис. 4 представлен фрагмент кода for, проверяющий ввод пользовательского интерфейса и включающий функцию for учета присутствия и завершения вызова на основе сенсорного ввода. Аналогично, пользовательский интерфейс for для набора номеров и совершения вызовов легко интегрируется. На рис. 5 показан пользовательский интерфейс панели набора номера Indusphone.
Рис. 4. Фрагмент кода for Проверка пользовательского интерфейса
Рис. 5. Пользовательский интерфейс панели набора номера Indusphone
Рис. 6 показано подключение микрофона и динамика с помощью модуля GSM. После запуска функции for обслуживания или завершения вызова модуль GSM самостоятельно управляет получателем. Если набирается номер или принимается вызов, звук передается через небольшой динамик SMD, подключенный к модулю GSM, голосовой ввод while захватывается микрофоном SMD. Подробности см. на рис. 6 for.
Рис. 6. Подключение микрофона и динамика с помощью модуля GSM
Разработка приложения
Затем разрабатывается приложение, включающее в себя базовые функции, такие как контакты, телефонная книга, таймер, игры и калькулятор. Создается дополнительный экран пользовательского интерфейса с именем «Приложение» вместе с дополнительными пользовательскими интерфейсами for для каждой функции.
Они вызывают необходимые функции и выполняют соответствующие программы while, отслеживающие входящие вызовы в фоновом режиме с помощью многопоточных задач.
На главном экране приложения отображается список установленных приложений, что позволяет пользователям выбирать нужное приложение с помощью сенсорного ввода на сенсорной панели. Для контактов выбор соответствующего приложения запускает внутреннюю команду `AT+CPBR=1`, которая извлекает и отображает номера телефонов и имена на экране.
Аналогичным образом, выбрав калькулятор, вы перейдете на следующий экран, вызывая приложение калькулятора. На рис. 7 показан код пользовательского интерфейса главного экрана приложения, на рис. 8 – код сенсорного ввода, а на рис. 9 – код контакта.
Рис. 7. Код пользовательского интерфейса главного экрана приложения
Рис. 8. Коснитесь кода ввода
Рис. 9: Код контактов
Рис. 10: Отображение функций приложения на экране
Рис. 11: Код пользовательского интерфейса экрана калькулятора приложения
Разработка приложения-калькулятора
Для дизайна приложения калькулятора используется тот же метод, что и для отображения. Однако вместо использования функции call.make пользовательская функция выполняет вычисления на основе ввода пользователя и отображает результаты.
Интерфейс калькулятора содержит сенсорные кнопки for с цифровыми и арифметическими функциональными символами. В верхней части экрана зеленым цветом представлены входные данные и результаты расчетов. Код объединяет две функции: одна обрабатывает сенсорный ввод, а другая отображает пользовательский интерфейс.
Обработчик сенсорного ввода активирует действия пользовательского интерфейса в ответ на ввод пользователя. while отдельная функция под названием «вычислить» выполняет вычисления и отображает результаты на экране телефона. На рис. 11 представлен код пользовательского интерфейса экрана калькулятора приложения.
Примечание EFY: Дальнейшие части будут опубликованы в следующем выпуске, в которых будут подробно описаны обновления телефона с возможностями 4G LTE и дополнительными функциями.
Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов!
Подробно тут! Жалоба