Сегодня у нас статья Хабрапользователя DimaRad об использовании акселерометра в iPhone-симуляторе.

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

Такая необходимость может возникнуть по нескольким причинам: нет iPhone, либо вы еще не присоединились к iPhone Developer Program, поэтому нет возможности запустить его на реальном устройстве.
Для использования акселерометра в симуляторе нам понадобятся:

  1. Mac cо встроенным акселерометром (MacBook, MacBook Pro, MacBook Air), показания которого и будем передавать в симулятор
  2. Unimotion — программа, снимающая показания со встроенного в Mac акселерометра
  3. Accelerometer Simulator — приложения, которое посылает показания с настоящего акселерометра iPhone на Mac. (Состоит из 2х частей: приложения, устанавливающегося на iPhone; и класса, подключаемого к тестируемому приложению.)
  4. Скрипта sendaccsim.py, который конвертирует показания от Unimotion для использования в Accelerometer Simulator:
import sys, socket, time, traceback

kCFAbsoluteTimeIntervalSince1970 = 978307200.0 #from CFDate.c

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('',0))
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

while 1:
 try:
  line = sys.stdin.readline()[:-1] # read line and strip EOL
  fields = line.split() # split around space character
  floatfields = map(float, fields) # convert to floats
  # transform coordinate system, from Sudden Motion Sensor to UIAcceleration format
  x, y, z = map(lambda x: -1 * x, floatfields)

  # change epoch to be compatible with CFAbsoluteTimeGetCurrent()
  currentTime = time.time() - kCFAbsoluteTimeIntervalSince1970

  accdata = ','.join(map(str,('ACC: 0',currentTime,x,y,z)))

  sock.sendto(accdata, ('<broadcast>', 10552))

 except (ValueError, KeyboardInterrupt):
  sock.close()
  sys.exit(-1)
 except:
  traceback.print_exc()

Для начала, необходимо собрать Unimotion. C sourceforge.net скачиваем и распаковываем архив с программой. Переходим в распакованую папку и выполняем make, после чего у нас появляется папка bin, содержащая motion и libUniMotion.dylib. Туда же копируем sendaccsim.py и запустим его:

$ ./motion -f 17 | python sendaccsim.py

Из Accelerometer Simulator берем AccelerometerSimulation.h и AccelerometerSimulation.m и подключем к нашему проекту в AppDelegate.h:

#import "AccelerometerSimulation.h"

Запускаем приложение в симуляторе, и эмулируем акселеромер iPhone, наклоняя Mac влево-вправо :).


Вольный перевод Use the Mac’s accelerometer in the iPhone Simulator.

Оригинал статьи на Хабре

Previous ArticleNext Article
Технический директор IT-Dimension, компании-разработчика кросс-платформенного программного обеспечения

This post has 3 Comments

3
  1. Я не понял, надо Mac поворачивать вправо-влево или настоящий iPhone?

  2. Mac cо встроенным акселерометром (MacBook, MacBook Pro, MacBook Air)

    и

    нет возможности запустить его на реальном устройстве.

  3. А зачем тогда пункт 3?

    Я думал, что данные с акселерометра на настоящем айфоне через AccelerometerSimulator попадают на мак и «вращают» симулатор айфона

Leave a Reply

Your email address will not be published. Required fields are marked *

У.

Уиии! iPhone OS 3.0 Released!!!

iPhone OS 3.0 Preview Event

Обновление ПО iPhone 3.0

Ссылки для скачивания прошивок
iPhone 2G | iPhone 3G

Это обновление содержит около 100 новых функций, включая перечисленные ниже:

  • Команды «Вырезать», «Копировать» и «Вставить» с функцией отмены путем встряхивания
  • Клавиатура в горизонтальном положении в ключевых программах
  • Улучшена программа «SMS/MMS»
    • Отправка и получение фотографий, контактов, аудиофайлов и ссылок на местоположение по MMS*
    • Переадресация и удаление одного или нескольких сообщений
  • Добавлена функция поиска в программах Mail, «Календарь», «Заметки» и iPod
  • Поиск Spotlight по всему iPhone
  • Поддержка CalDAV и подписок в программе «Календарь»
  • Улучшения в работе Safari
    • Производительность
    • Поддержка HTML 5
    • HTTP-стриминг аудио и видео
    • Автозаполнение имен и паролей
  • Новая программа «Диктофон»
  • Синхронизация заметок на Mac или ПК с Windows через iTunes
  • Доступ к Интернету в режиме модема через USB и Bluetooth*
  • Поиск и загрузка фильмов, телешоу и аудиокниг из iTunes Store**
  • Стерео Bluetooth***
  • Автоматический вход в сети Wi-Fi
  • Улучшена программа «Акции»
  • Дополнительные параметры функции «Родительский контроль» для программ, музыки, фильмов и телешоу
  • Создание и вход в учетную запись iTunes**
  • Вход в учетную запись YouTube и доступ к подпискам, рейтингам и Избранному**
  • Функция перемешивания элементов плейлистов встряхиванием
  • Добавлены языки, словари и клавиатуры
  • Функции «Найти мой iPhone» и «Удаленное стирание» (Remote Wipe) через MobileMe (необходима подписка)**
  • Поддержка еще большего количества политик Exchange
  • Создание и отправка приглашений на совещания и встречи Exchange
  • Поиск сообщений электронной почты на сервере (Exchange Server 2007 и поддерживаемые серверы IMAP)
  • Поиск в корпоративном каталоге LDAP
  • VPN по требованию и поддержка прокси VPN
  • Шифрование профилей конфигурации
  • Шифрование резервных копий iTunes
  • 1000 новых интерфейсов прикладного программирования (API) для разработчиков, включая:
    • Встроенные покупки
    • Служба Push-уведомлений Apple
    • Поддержка аксессуаров
    • Одноранговое подключение Peer to Peer
    • Встроенные карты
    • Доступ к медиатеке iPod
  • Исправления ошибок

Продукты, совместимые с этим обновлением ПО:

  • iPhone
  • iPhone 3G
  • iPhone 3G S
  1. P2P-соединение для многопользовательских игр требует установки соответствующих приложений.
  2. С момента появления в App Store, они доступны для загрузки.
    MMS не поддерживается iPhone первого поколения. Отправка видео не поддерживается iPhone 3G.
  3. Для загрузки файлов объёмом свыше 10 МБ необходимо подключение к Wi–Fi.
  4. Использование телефона в качестве модема в настоящее время не доступно в США и некоторых других странах. Обратитесь к своему мобильному оператору за подробностями.

Обсуждение на Хабре.

Д.

Доступна видеозапись презентации iPhone OS 3.0

iPhone OS 3.0 Video
Apple опубликовала видеозапись презентации iPhone OS 3.0.

Кстати iPhone SDK 3.0 доступно для загрузки участникам программы iPhone Developer Program.

К сожалению участие в этой программе не бесплатное, на все вкусности прийдется раскошелиться минимум на $99. Жду вот когда SDK появится в “неофициальных источниках”.