В эмуляторе WebOS есть возможность программно симулировать аппаратные события, например входящий телефонный звонок, входящее SMS или изменение GPS-координат. Такая возможность может быть полезна, например, при отладке приложений, использующих GPS.

Для симуляции аппаратных событий в Palm Mojo SDK используется утилита luna-send, которая отправляет сообщения сервису pmradiosimulator в эмуляторе. Об использовании утилиты luna-send и пойдет речь в этот раз.

Синтаксис вызова luna-send
luna-send -n 1 URL JSON_object

Параметр URL позволяет указать аппаратное событие, которое должно быть симулировано. Параметр JSON_object позволяет указать параметры вызова сервиса pmradiosimulator.

Примеры использования

Симуляция входящего телефонного звонка:

luna-send -n 1 luna://com.palm.pmradiosimulator/set_incomingcall {\"number\":\"14086177431\"}
Симуляция входящего SMS:
luna-send -n 1 luna://com.palm.pmradiosimulator/set_incomingsms {\"number\":\"4086177431\",\"
message\":\"'Hello World! Incoming SMS.'\"}
Изменение GPS-координат
luna-send -n 1 luna://com.palm.pmradiosimulator/set_position {\"lat\":\"37.3\",\"long\":\"-122\"}
Изменение оператора сотовой связи (применяется после перезагрузки)
luna-send -n 1 luna://com.palm.pmradiosimulator/set_operator {\"operator\":\"Sprint\"}

GPS AutoDrive

Фyкция GPS AutoDrive в эмуляторе позволяет использовать CSV-файл с записанным GPS-треком при запросе координат приложениями, использующими GPS. Таким образом можно симулировать передвижение по заданному маршруту.

Запуск функции AutoDrive
luna-send -n 1 luna://com.palm.pmradiosimulator/autodrive/start {}

Если имя CSV-файла с запиью трека не указано, то будет использоваться файл /var/lib/til/AutoDrive_DefaultRoute.csv.

Остановка режима AutoDrive
luna-send -n 1 luna://com.palm.pmradiosimulator/autodrive/stop {}

После остановки AutoDrive координаты GPS будут установлены в значения по умолчанию (Palm Sunnyvale).

Установить AutoDrive в реверсный режим
luna-send -n 1 luna://com.palm.pmradiosimulator/autodrive/reverse {}
Приостановить AutoDrive
luna-send -n 1 luna://com.palm.pmradiosimulator/autodrive/pause {}
Восстановить режим AutoDrive после паузы
luna-send -n 1 luna://com.palm.pmradiosimulator/autodrive/resume {}
Ускорить режим AutoDrive
luna-send -n 1 luna://com.palm.pmradiosimulator/autodrive/speedup {}
Замедлить режим AutoDrive
luna-send -n 1 luna://com.palm.pmradiosimulator/autodrive/slowdown {}

CSV-файл трека

По умолчанию для задания GPS-трека используется файл AutoDrive_DefaultRoute.csv. Для того, чтобы указать другой файл трека, необходимо вызвать функцию set_route сервиса pmradiosimulator:

luna-send -n 1 luna://com.palm.pmradiosimulator/autodrive/set_route \{\"route\":\"/var/lib/MyGpsRoute.csv\"}

Формат CSV-файла трека описан здесь.

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

Leave a Reply

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

P.

Plug-In Development Kit (PDK) для Palm WebOS доступно для скачивания

Инструментарий для разработки native-приложений для Palm WebOS – Plug-In Development Kit (PDK) доступен для загрузки. PDK позволяет писать приложения для WebOS, используя C++ и OpenGL ES, а также разрабатывать компоненты WebOS-приложений на С++.
С выходом этого инструментария для разработчиков открывается ну просто немерянное поле для творчества. Ведь на C++ можно сделать кучу всего полезного, чего [еще] нельзя сделать средствами JavaScript. 3D-игры, например. И вобще игры с хорошей графикой. Я уже думаю над чем-то подобным.

В общем, Качаем PDK для Palm WebOS и знакомимся с официальной документацией.

Н.

Новые инструменты в Palm Mojo SDK 1.2

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

Новые утилиты это:

  • palm-log – позволяет выполнять просмотр журнала событий приложения
  • webOS Resource Manager (WORM) – позволяет отследить потребляемые ресурсы

palm-log

Эта утилита позволяет выводить сообщения, которые приложение пишет в журнал с помощью Logging API. Использование утилиты намного удобнее чем попытки прочитать сообщения из /var/log/messages вручную.

Синтаксис вызова
palm-log [опции] [идентификатор-приложения]
Доступные опции
-d, –device=device Указывает используемое устройство:

  • –device=tcp — эмулятор
    Внимание: Эмулятор в этом случая должен быть уже запущен.
  • –device=usb — устройство, подсоединенное с помощью USB
-l, –list Выводит список установленных приложений. Очень удобно если вы не помните идентификатор нужного приложения.
-f, –follow Продолжать выводить сообщения. При указании этой опции palm-log будет выводить сообщения до тех пор, пока вы не нажмете Ctrl+C для остановки.
–version Выводит версию palm-log.
–help Выводит справочную информацию.
Примеры использования

Вывести журнал сообщений для приложения:

palm-log com.example.app

Вывести список приложений:

palm-log -l

Вывести список приложений на устройстве:

palm-log -d usb -l
Пример вывода, который можно получить при использовании palm-log
$ palm-log -f com.palm.app.maps

connecting to device emulator

(96C3BC9CC41E8A2A440C265DEDB8FB048F35B30E:tcp:64640)

following logs for application com.palm.app.maps

[20090813-07:51:06.138630] info: loadRealPage: 452
[20090813-07:51:06.144874] info: palm system: true
[20090813-07:51:06.145419] info: prepare transition
[20090813-07:51:06.270742] info: =========> looking for palmInitFramework191_15

WebOS Resource Manager (WORM)

Эта чудесная утилита позволяет отследить количество HTML-объектов (DOM nodes) в вашем приложении. Это может быть очень удобным при поиске утечек памяти. Если после закрытия сцены или приложения у вас остались неудаленные DOM объекты, значит в приложении имеет место утечка памяти. Очень часто, например, утечки памяти могу возникнуть если не отключать обработчики событий при закрытии сцены.

WebOS Resource Manager GUI

Пример использования
palm-worm [идентификатор-приложения]
  • При закрытии сцен или уведомлений в приложении, количество используемой памяти должно возвратиться на уровень, который оно имело до открытия сцены или уведомления.
  • При закрытии приложения, объем выделенной приложением памяти должен вернуться в ноль.