- Пишем программу на Python под Symbian в Ubuntu
- Документация
- Настройка Python Bluetooth Console
- Редактирование файлов на телефоне с помощью obexfs
- Эмулятор appuifw на wxWidgets
- Нечто работающее
- Что еще?
- Python for series 60, на что же он способен…
- SmartTouch
- XpressNote
- XpressAlarm
- XpressSketch
- XpressExif
- Python для смартфонов на базе S60: начало
- Для начала установим Python на наш смартфон(также существует возможность установить его и на эмуляторе S60)
- Сам Python встречает нас информацией об установленной версии.
- После нажатия на левую софт-клавишу, будет выведен список возможных операций. Тут можно вызвать предустановленные скрипты, или вызвать интерактивную консоль, что мы и сделаем. Здесь можно поиграть немного с выводом на экран.
- Интерактивная консоль позволяет писать и целые скрипты, если конечно вам удобно набирать их на клавиатуре телефона.
- Также интерактивная консоль успешно справляется и с математическими выражениями, что позволяет использовать ее как удобный калькулятор.
Пишем программу на Python под Symbian в Ubuntu
Качаем Python и PythonScriptShell. Второй пакет не подписан, подписать можно на Symbian Signed, после чего оба пакета благополучно устанавливаются в телефон. Первый никак себя не проявляет, зато второй добавляет консоль, работающую по блютусу или прямо с телефона, а также интерпретатор.
Документация
Документация по питону, в частности – документация по платформе S60. Она очень подробная, практически как учебник.
Настройка Python Bluetooth Console
Пробрасываем порт для Bluetooth (единоразово)
sudo apt-get install bluez-utils # если еще чего-то надо, отписывайтесь sdptool add-channel=2 SP
Открываем порт на прослушивание (перед соединением)
Теперь запускаем на телефоне консоль, просим подключиться к компьютеру. rfcomm на это должен заявить, что соединение установлено. Осталось открыть консоль (rfcomm не убиваем):
Пишем питоновский код, он выполняется на телефоне. По-моему, это удобно только для проверки возможностей телефона на лету, например, попробуй:
import audio audio.say("This is the phone talking")
Редактирование файлов на телефоне с помощью obexfs
Зачем вообще копировать скрипты на телефон? Давай писать их прямо там.
Товарищи питоновцы придумали ряд велосипедов для передачи файлов между телефоном и компьютером, и, так сказать, облегченной отладки. Не пойму, зачем, если есть старый добрый протокол OBEX. Однако GVFS-модуль (тот самый, который «Обзор файлов на устройстве» из gnome-bluetooth) не позволил мне редактировать файлы в vim. Зато obexfs позволил:
sudo apt-get install obexfs # узнаем MAC-адрес телефона hciconfig reset hcitool scan # монтируем mkdir ~/phone obexfs -b MA:CA:DD:RE:SS ~/phone # готово! cd ~/phone/E:/data/python vim helloworld.py
Напомню, что в питоновской консоли есть возможность запускать скрипты из папки E:\data\python . Невероятно удобно, никаких эмуляторов не нужно.
Кстати, obexfs работает и без блютуса, то есть по USB.
UPD 9.11.2009: увы, obexfs не хочет передавать дату изменения файлов. Поэтому я не рекомендую использовать его ни для чего, кроме отладки скриптов. А еще питон отказывается подключать модули без даты изменения, потому я написал скрипт, который ее проставляет автоматически.
Эмулятор appuifw на wxWidgets
А еще можно отлаживать GUI на Linux. Для этого добрые люди написали библиотечку PyS60-compat –
правда, она не на 100% совместима с телефонным API, так что использовать ее надо осторожно. Может, дело в каких-то тонкостях питона, которые я пока не знаю, но примитивная программа, запустившаяся у меня на компьютере, отказалась работать на телефоне, пока я не поменял кавычки на двойные.
Нечто работающее
А вот и кусок работающего кода. Это так, чтоб скопипастить и проверить, что все работает.
Да, русские символы, как и многие другие, вполне поддерживаются, поскольку API использует UTF-8.
# -*- coding: utf-8 -*- import appuifw, e32 # Событие на выбор элемента в списке def lbox_observe(): appuifw.note(items[lb.current()]) # Событие на кнопку выхода def quit() app_lock.signal() # Настройка приложения appuifw.app.title = u"Listbox" appuifw.app.screen = 'normal' appuifw.app.exit_key_handler = quit # Элементы списка items = [u"1",u"2",u"проверка",u"an item",u"foobar"] # Создаем список и показываем его lb = appuifw.Listbox(items, lbox_observe) appuifw.app.body = lb # Основной поток приложения окончен, ждем сигнала о завершении работы app_lock = e32.Ao_lock() app_lock.wait()
Что еще?
Еще хорошо бы разобраться с созданием SIS-пакетов в Ubuntu, но мне это в ближайшее время ни к чему.
Python for series 60, на что же он способен…
Доброго времени суток, %username%!
Почти год назад купил себе Nokia 5800, и был расстроен недостатком софта под новую платформу symbian 9.4. Вместо того, чтоб бродить по сайтам и оставлять гневные комментарии по этому поводу, решил исправить это положение самостоятельно.
Скачал свежий python for s60 и начал писать. Почему именно python, спросите вы. Кроме питона я ничего не знаю. «Кодирование со скоростью мысли», позволяет написать приложение буквально за один вечер.
Целью этого топика, является демонстрация возможностей python for s60 на примере того, что уже было написано мною. Позже, я расскажу, как «с нуля» и практически за 20 минут создать готовое sis приложение, которое будет радовать вас, и возможно остальных пользователей смартфонов Nokia.
Ниже представленные программы работают на смартфонах symbian 9.4 (nokia 5800, n97, 5530 и пр.). Для их работы необходим установленный python for s60 не ниже версии 1.9.7 (скачать можно по этой прямой ссылке). Python и программа необходимо ставить на один и тот же диск. После установки питона, желательно перезагрузить девайс.
Все программы абсолютно бесплатны и не требуют подписи. Я не привожу в описании всех моих программ. Полный список вы можете найти на моем небольшом оф. сайте.
Начнем…
SmartTouch
Это была одна из первых программ, написанных мною под тачскрин.
Предназначена она для управления компьютером по bluetooth.
Из возможностей: управление плеером, управление мышкой…
Более подробно на этой страничке, там же можно скачать саму программу и сервер для pc (написан тоже на питоне, но к сожалению стабильно работает только с дровами от microsoft)
XpressNote
Удобное приложения для создания быстрых рукописных заметок. Более живописно процесс работы вам опишет скриншот:
Более подробно почитать об этой программе, а так же скачать, можно на этой страничке.
XpressAlarm
Написано ради академического интереса, и демонстрирует необычное применение «датчика приближения морды» на symbian 9.4
Это «противоугонка», которая в некоторых случая поможет защитить телефон от кражи. Сейчас вам я это продемонстрирую на видео:
Более подробно почитать об этой программе, а так же скачать, можно на этой страничке.
XpressSketch
Вот одно из первых художеств, полученных с помощью этой программы
Более подробно почитать об этой программе, а так же скачать, можно на этой страничке.
XpressExif
Приложение, которое зарубежные сайты окрестили фото браузером с кинетическим скроллингом, хотя на самом деле, это программа для просмотра EXIF информации в фотографиях (не работает корректно на n97)
Более подробно почитать об этой программе, а так же скачать, можно на этой страничке.
Кроме этого в моей помойке на моем сайте лежат и другие программы. Например MagicM3U — программа которая создает плейлисты из папок с мызыкой и позволяет более удобно пользоваться стандартным проигрывателем музыки (работает на всем symbian 9.x). XpressChat — попытка создать сервис анонимных собеседников на смарте, но к моему сожалению идея не получила широкого распространения (сервер до сих пор работает в холостом режиме на специально арендованном для этого vds, и тоже написан на питоне). XpressBeer — симулятор пивного бокала, приложение которое я ненавижу, но однако оно пользуется самой большой популярностью. И что там еще 🙂
Писалось и пишется это в одиночку, в свободные минуты рабочего времени. Помогали мне лишь, рисуя дизайн для некоторых приложений.
Это получилось у меня, не программиста по образованию, думаю и получится и у вас, было бы желание и чуточку фантазии.
P.S. По традиции я должен сообщить, что это мой первый топик на хабре, благодаря которому меня из песочницы подобрало НЛО.
Python для смартфонов на базе S60: начало
Решил написать серию статей про написание программ на Python для смартфонов Nokia на базе Symbian S60.
Python для S60 (или сокращенно PyS60) является open source проектом компании Nokia по портированию языка Python на смартфоны, работающие на платформе S60. Он предоставляет все возможности языка Python а также доступ к специфичным для телефонов функциям, таким как: работа с камерой, календарем, телефонной книгой, GPS, запись и воспроизведение аудио и видео, передача данных через Bluetooth, WiFi и GPRS.
PyS60 является open source проектом и распространяется под лицензиями Apache 2 и Python. На момент написания статьи последняя версия 1.9.1
Итак, начнем!
Для начала установим Python на наш смартфон(также существует возможность установить его и на эмуляторе S60)
- сам PyS60 (для версий 3rd Edition и новее качаем с maemo garage, для 2nd Edition качаем с SourceForge). Внимание! Качайте только версию для своей операционной системы (к примеру для «S60 3rd Edition, Feature Pack 2» мне понадобился файл Python_1.9.1_3rdEdFP2.sis)
- PythonScriptShell (аналогично, для версий 3rd Edition и новее качаем с maemo garage, для 2nd Edition качаем с SourceForge). Внимание! Качайте только версию для своей операционной системы (к примеру для «S60 3rd Edition, Feature Pack 2» мне понадобился файл PythonScriptShell_1.9.1_3rdEdFP2.sis)
После этого закидываем оба файла на телефон любым удобным для вас способом и устанавливаем вначале PythonForS60, а затем PythonScriptShell
После установки на карте памяти телефона будет создана папка Python(если по каким то причинам она не была создана, вы можете создать ее сами), в которой и будут храниться все наши .py файлы.
Если появляется ошибка об утсутвствии Python Runtime and PIPS Library, смотрите решение в конце топика
После успешной установки в меню телефона появляется значок Python
Сам Python встречает нас информацией об установленной версии.
После нажатия на левую софт-клавишу, будет выведен список возможных операций. Тут можно вызвать предустановленные скрипты, или вызвать интерактивную консоль, что мы и сделаем. Здесь можно поиграть немного с выводом на экран.
Интерактивная консоль позволяет писать и целые скрипты, если конечно вам удобно набирать их на клавиатуре телефона.
Также интерактивная консоль успешно справляется и с математическими выражениями, что позволяет использовать ее как удобный калькулятор.
- ball.py — при помощи стрелок мы управляем шариком, который подчиняется некоторым законам физики
- snake.py – всеми любимая змейка
- simplecube.py – простой вращающийся куб – показывает возможности PyS60 в 3D
- gles_demo.py – еще одна демонстрация возможностей 3D
upd: так как на сайте есть блоги посвященные Symbian или Python не смог выбрать в какой из них перенести топик и решил создать новый блог «Python для S60»
- установите PIPS(P.I.P.S. Is POSIX on Symbian OS) отсюда: http://developer.symbian.com/wiki/display/pub/P.I.P.S. (спасибо nik_the_spirit)
- либо(если есть эмулятор Symbian на помпьютере) необходимо поставить к нему плагин Open C/C++ отсюда и затем установить на телефоне следующие файлы:
(они находятся в папке \nokia_plugin\openc\s60opencsis)
1)pips_nokia_1_3_SS.sis
2)glib.sis
3)ssl.sis
4)stdioserver_s60_1_3_SS.SIS