Как настроить часы pebble time

Программируем под Pebble. Урок первый: Глупые часы

Когда мне привезли часы Pebble, я думал это просто умные часы. Ну, там смс на экранчике показать, время в двух поясах, поставить вместо цифровых — хипстерские аналоговые. И так далее.

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

Итак, что у нас есть? Три кнопки справа, одна кнопка слева, экран разрешением 144х168 пикселей.
Два типа программ — watchface, скины для часов и watchapp — приложения для часов. Первые не могут реагировать на кнопки, вторые могут. Первые перелистываются кнопками вверх и вниз в режиме отображения часов, вторые — показываются в конце меню после нажатия средней кнопки. У приложений по умолчанию есть верхний бар, в котором при запуске отображается название приложения, а во время работы — часы, но его можно отключить. Все внутренности полностью одинаковы, можно поменять тип приложения пересборкой, не внося изменений в код.

Начинаем


Заходим на cloudpebble.net, создаем аккаунт, нажимаем Create Project, выбираем SDK 2.

Сбоку видим:
Settings — настройки проекта
Compilation — сборка проекта
main.c — наш единственный файл проекта

Заходим в Settings.

App kind — это как раз тип, скин для часов или приложение.
Short Name отображается в меню часов, Long name — в приложении на телефоне(менюшка, из которой можно удалять приложения)
Menu image — картинка в меню часов.
UUID — идентификатор часов. Используется, например, при обновлении приложения. Если у загружаемого приложения такой же номер, как у одного из старых, оно будет заменено на новое.

Читайте также:  Электронная подпись не работает налоговая

В разделе Compilation можно собрать программу(кнопка Run build), после чего вам дадут ссылку на бинарник и QR-код для скачивания оного. Его можно сосканировать телефоном, и сразу же установить на часы. Делать это придется часто…

Теперь открываем main.c, и копируем вместо того, что там есть, вот такой код:
После описания — ссылки на страницы API по той или иной функции. Сынок, это наша библия… Нет батя, это наша камасутра.
Приведенная выше программа не делает ничего полезного, просто показывает пустой экран. Не реагирует на кнопки, при нажатии кнопки назад — завершается.

Выведем какую-нибудь надпись. Для начала, установим фоновый цвет окна программы:
Второй параметр может принимать значения: GColorBlack — черный цвет, GColorWhite — белый цвет, GColorClearпрозрачная краска прозрачный фон, через который будет виден предыдущий слой(если бы он был). По умолчанию он равен White, вот почему у первой программы был белый фон. Само-собой, это надо делать уже после функции window_create.
Для того, чтобы вывести текст, нам потребуется текстовый слой.
Создаем слой:
Инициализируем и задаем координаты:
GRect — функция создания прямоугольника. Координаты она получает в следующем порядке — первые два числа это координаты верхнего левого угла треугольника — x, y. Вторые два числа — это ширина и высота нашего прямоугольника. Для удобства сделал вот такую картинку:

Помните, что координаты отсчитываются от физического начала экрана, но в режиме приложения первые 16 пикселей закроет верхний бар, если его не убрать.
Вот картинка в размере 1:1:

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

По-умолчанию, цвет шрифта — черный, цвет фона — белый, выравнивание по левому краю, шрифт — Raster Gothic 14.
Меняем все это. Фон у нас черный, значит цвет букв должен быть белым:
Фон(текстового слоя) делаем прозрачным:
Выравнивание — по центру:
А шрифт делаем чуть больше:

Читайте также:  Настроить радиостанцию частота дальнобойщиков

Делаем ребенка Добавляем созданный нами слой к слою главного экрана в качестве дочернего:
И наконец записываем в слой наш текст:
А при выходе — не забываем освобождать память:
Наша программа уже выглядить вот так:

Наконец, можно добавить в наши часы отображение времени.
Создаем переменную нужного типа(время в секундах) и кладем в нее текущее время в формате POSIXСоздаем структуру, которая будет хранить значение текущего времени в более читабельном формате — год, месяц, день, час, минута, секунда, а так же день в недели, день в году, и AM/PM: А после этого записываем в нее время, конвертированное функцией localtime из POSIX в читабельный вид.

Так как нам нужно только время, а в переменной у нас валяется вся информация до кучи, надо выделить нужные нам части. Делается это функцией strftime. В качестве аргументов она принимает следующие переменные: переменная записи результата, ее размер, формат записи, переменная в которой находится время. Так как функции нужна переменная(она не может писать в текстовый слой), и ее размер, надо сначала создать такую переменную.

Конечно, не обязательно писать при инициализации 00:00:00, можно и «ХХХХХХХХ», а можно и ничего не писать, а просто задать размер во втором аргументе функции числом, но это будет не очень понятно.
Если в current_time у нас всегда актуальное время, то начиная с этого момента, в переменной time остается форматированое значение времени на момент выполнения strftime. То, как оно форматируется — зависит от третьего аргумента — %T. Документация на формат легко гуглится по названию функции, например вот. В данном случае %T — это тоже самое что и «%H:%M:%S». Часы, минуты и секунды, разделенные двоеточиями.

Теперь можно записать это значение в текстовый слой:
Вроде как у нас получились часы. И при запуске они покажут правильное время. Вот только проблема — они не обновляются, и показывают правильное время только один раз в сутки.
Нам надо как-то каждую секунду пересчитывать время и выводить его на экран. Делается это вот как.
Создаем функцию, которая будет это делать, и переносим туда все, что касается пересчета и вывода времени:

Подписываемся на сервис таймера:

Первый аргумент означает, что функция во втором аргументе будет вызываться каждую секунду. Если в часах не будет секунд, то можно экономить энергию, и будить процессор в 60 раз меньше, вызывая функцию каждую минуту: MINUTE_UNIT
Или каждый час: HOUR_UNIT
Или каждый день: DAY_UNIT
Ну, вы поняли логику: MONTH_UNIT, YEAR_UNIT

После этого желательно вызвать эту функцию принудительно, не дожидаясь очередного тика таймера — ну просто для красоты, чтобы секунду не смотреть на пустой экран. Это хорошо если секунду. А если таймер каждую минуту тикает?

В итоге наши часы выглядят вот так:

Ссылки:

Httpeble: библиотека, реализующая http-запросы внутри программ
[EN]Проект по-настоящему умных часов(календарь, погода, напоминания, поиск телефона, HTTP-запросы для управления умным домом, управление музыкой, управление камерой, GPS, биржевые сводки)
PapaBubaDiop пишет о разработке игры под Pebble.
Огромная коллекция различных приложений для pebble, большинство — с исходниками.

Источник

ПЕРИФЕРИЯ

Обзор смарт-часов Pebble Time

Обзор смарт-часов Pebble Time | Управление уведомлениями

Управление уведомлениями в Pebble Time реализовано намного лучше, чем в Android Wear, но функции электронной почты еще нужно доработать. С помощью приложения Pebble на Android-смартфоне (есть также приложение для iPhone), можно просмотреть список всех установленных на телефоне приложений и отметить те, уведомления от которых будут отображаться на часах, например, Facebook, Gmail и любые другие.

При поступлении нового электронного сообщения или оповещения Facebook на смартфон, Pebble Time вибрируют и показывают уведомление на экране. Входящие звонки и текстовые сообщения также сопровождаются уведомлениями. В отличие от часов Android Wear, которые возвращаются к циферблату и входят в режим сна всего через несколько секунд бездействия, Pebble Time сохраняют последнее уведомление на экране, пока вы не воспользуетесь часами, либо не придет новое уведомление. Это огромный плюс для пользователей, которые занимаются каким-то делом, например, вождением автомобиля и не могут посмотреть на часы сразу. Архив всех полученных уведомлений доступен в приложении «Уведомления» на часах, так что вы можете вернуться к ним позже.

К сожалению, многие уведомления показывают не достаточно информации, чтобы решить, стоит просмотреть их сразу или же проигнорировать. Хотя оповещения о текстовых сообщениях содержат все его содержимое, а уведомления Gmail – несколько абзацев текста, оповещения о других электронных письмах из другого приложения, как правило, отображают только мешанину из нескольких строчек или отправителей, наложенных один на другого. Эта проблема может быть частично связана с email-приложением на самом телефоне, поскольку оно показывает мало текста в уведомлениях. У Android Wear есть подобные ограничения с почтовыми клиентами, отличными от Gmail, хотя разработчики некоторых сторонних приложений обещают это исправить.

Как и в Android Wear, поток уведомлений может раздражать, поскольку Pebble Time не предоставляет возможность фильтровать уведомления по теме или источнику. Среди них могут быть как срочные сообщения от начальника, так и надоедливый спам. Как вариант, можно использовать почтовый клиент Nine Exchange Mail, который будет отправлять уведомления, только если сообщения получены от отмеченных «VIP-контактов».

При просмотре уведомления можно нажать кнопку «Выбрать», чтобы посмотреть список доступных действий в зависимости от типа полученного уведомления. Все уведомления позволяют их отклонять, но оповещения Gmail и SMS позволяют ответить прямо с Pebble Time , либо с помощью готового шаблона ответа, либо с помощью функции распознавания голоса через встроенный микрофон. К сожалению, оповещения электронной почты из других почтовых приложений такой функции не имеют, а пользователям iOS придется и вовсе дождаться будущего обновления прошивки, чтобы использовать ее. Кроме того, нельзя отвечать на сообщения из архива. Если вы не ответили сразу, то потом уже придется доставать смартфон.

После получения сообщения Gmail, вы можете продиктовать ответ и нажать кнопку «Выбора», чтобы подтвердить и отправить получившийся текст. На текстовые сообщения тоже можно отвечать заготовленными шаблонами или голосом, а также отправлять смайлики. Android Wear имеет аналогичную функцию, но начинает отправку сразу после того, как вы закончите диктовать (хотя можно нажать «Отмену», если успеете). Учитывая, что все программы распознавания голоса делают ошибки, хочется проверить ответ перед отправкой, потому алгоритм работы Time тут оказывается более предпочтительным.

Обзор смарт-часов Pebble Time | Микрофон

Pebble Time – первые часы Pebble со встроенным микрофоном. Однако с ним пока мало что можно делать, а пользователи iOS сейчас не могут использовать микрофон вообще. На Android вы можете отвечать на сообщения Gmail или SMS сообщения, надиктовывая ответы. Хотя программа работает не идеально, она точно распознала большинство произнесенных слов, при этом обработка выполняется быстро и без обращения к облаку.

Pebble утверждает, что в будущих обновлениях программного обеспечения пользователи iOS смогут отправлять голосовые ответы на сообщения, а сторонние приложения получат права на использование микрофона. Однако мы нашли одно стороннее приложение, которое использует микрофон уже сегодня. Оно называет OK Pebble и позволяет отправлять запросы в Google с помощью голоса. Эти сообщения отправляются на телефон и переводятся в текст, то есть телефон с вами не говорит. Когда мы спросили «Кто президент Соединенных Штатов?» смартфон вывел список результатов поиска, а также карточку с ответом на вопрос. Если вслух задать этот же вопрос смартфону, он ответит голосом.

Обзор смарт-часов Pebble Time | Музыка

Pebble Time оснащаются простым музыкальным приложением, которое позволяет переключать музыкальные композиции вперед-назад и ставить на паузу/запускать аудиоприложения на вашем смартфоне. Приложение Pebble для телефона позволяет выбрать, каким проигрывателем вы хотите управлять, но не более того. Мы использовали приложение Pebble Music при прослушивании некоторых песен на Rhapsody. Это удобно когда телефон лежит в кармане. Тем не менее, хотелось бы иметь возможность выбирать отдельные песни и плейлисты, а не просто переключать треки назад и вперед. В магазине Pebble есть несколько сторонних проигрывателей, которые позволяют использовать плейлист Spotify и голосовать за песни в Pandora.

Обзор смарт-часов Pebble Time | Отслеживание физической активности

Pebble Time имеют встроенный акселерометр, который умеет отслеживать количество пройденных шагов. Однако в часах нет предустановленных фитнесс-приложений. Мы установили LetsMuv – простое приложение, которое считает шаги и напоминает вам несколько раз в день о том, что пора немного пройтись, а также оно отслеживает ваш сон. Разумеется, в магазине Pebble есть множество альтернативных приложений, в том числе PlexFit, которое синхронизируется с Google Fitness. К сожалению, одновременно может работать только одно фитнес-приложение. Также в меню настроек необходимо указать, какое из них получит доступ к акселерометру.

Обзор смарт-часов Pebble Time | Сторонние приложения

В магазине Pebble уже представлено более 7000 сторонних приложений и циферблатов. Доступ к нему осуществляется через приложение на телефоне. Хотя модель Time начала поставляться совсем недавно, в магазине есть уже более сотни приложений и цветных циферблатов, многие из которых интегрируются с интерфейсом «Таймлайн». Некоторые программы требуют установки сопутствующих приложений на смартфоне Android, но остальные работают исключительно на Pebble Time .

Через приложение ESPN мы смогли добавить любимую спортивную команду в «Таймлайн», после чего расписание всех игр с ее участием появилось в его списках. Хотя игры были распределены по сессиям, счет постоянно обновлялся. Также можно было настроить уведомления о каждом изменении счета, хотя несколько раз эта функция не сработала.

Есть много игр, в которые можно играть с помощью кнопок. Нам понравилась игра Sky Attack, похожая на 3D-версию Space Invaders, где вы управляете танком и стреляете по вражеским кораблям. Имеются новостные приложения, выводящие заголовки в ленту и работающие с RSS-подписками, но мы нашли только одно приложение, где кроме заголовков присутствовали цветные иллюстрации. Оно называется News Headlines.

В дополнение к нескольким музыкальным проигрывателям, управляющим музыкой на телефоне, в магазине Pebble есть десятки других приложений, которые удаленно контролируют разнообразные сервисы, в том числе Netflix, Nest, подсветку Philips Hue и телевизоры LG. В часах нет ИК-порта, так что все команды проходят через ваш телефон. Есть даже пара приложений, которые управляют камерой вашего смартфона и позволяют делать снимки дистанционно.

К сожалению, тут нет родных приложений Facebook, Twitter или просмотра почтовых ящиков, хотя вы можете просматривать уведомления от этих сервисов. Утилита Pebble Rocker обещает выводить на экран часов новостную ленту Facebook, но мы так и не смогли подключить его к одному из наших аккаунтов.

Обзор смарт-часов Pebble Time | Время автономной работы

Pebble утверждает, что на одной зарядке Pebble Time могут продержаться до семи дней. Хотя это не подтвердилось в процессе тестирования, они все же проработали три полных дня, а это весьма достойный результат. Тестирование началось со 100 процентов заряда в полдень понедельника и закончилось на 10 процентах в четверг утром. Это намного больше, чем у часов с Android Wear, которые держатся около суток. У пользователей iPhone Pebble Time могут проработать дольше, чем с нашим тестовым Samsung Galaxy Note 3, поскольку с устройствами Apple они используют малозатратное, в плане энергопотребления, соединение Bluetooth Low Energy, а с Android-смартфонами стандартный протокол Bluetooth.

Обзор смарт-часов Pebble Time | Подводим итоги

Pebble Time – не идеальные смарт-часы, но благодаря долгой автономной работе, постоянно включенному дисплею, простому UI и широкому выбору приложений – это наиболее практичный вариант для пользователей смартфонов Android, которые любят жить по расписанию. Мы бы хотели, чтобы уведомления на часах были более подробными и предоставляли больше вариантов ответа, хотя тут в них легче ориентироваться, и они лучше читаются, чем уведомления на часах Google. Пользовательский интерфейс «Таймлайн» подойдет людям с напряженным графиком, но будет не столь актуальным для тех, кто имеет по одной-две задачи в сутки. Но самое главное, смарт-часы Pebble Time лучше других протестированных нами моделей выполняют роль часов. Время всегда отображается на экране, вдобавок на ваш выбор доступно множество разнообразных циферблатов.

Если в смарт-часах вам нужна более широкая функциональность, лучше рассматривать решения на базе Android Wear, например, LG Urbane и Asus ZenWatch. Они оснащаются более качественными дисплеями и множеством дополнительных функций, включая Google Now и GPS, но при этом имеют такие недостатки, как малое время работы от аккумулятора, постоянно отключающийся или затеняющийся дисплей и пользовательский интерфейс, в котором неудобно просматривать оповещения. Пользователи iPhone, соблазнившись на Apple Watch, смогут получить проработанный пользовательский интерфейс, множество приложений, голосовой ввод и Siri, но их цена стартует с отметки $350. Тем не менее, если вам нужны часы, которые помогут не пропустить важное сообщение или звонок на телефоне, то Pebble Time должны быть первыми в списке.

Преимущества:

  • Всегда активный дисплей;
  • Длительное время автономной работы;
  • Удобный ремешок;
  • Привлекательный и простой пользовательский интерфейс.

Источник

Оцените статью