PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : برنامه نویسی تحت Python برای کلیه گوشی های سری 60



TAHA
09-21-2009, 10:55 PM
در این تاپیک قطعه کد های مختلف و ترفند های مختلف با استفاده از python برای کلیه ی گوشی های سری 60 قرار می گیرد. ( ورژن 1 و ورژن 3 )

شما باید ابتدا py60 یا python for symbian 60 را از آدرس زیر دانلود کنید:

كد:
http://sourceforge.net/project/showf...roup_id=154155
بسته به مدل Symbian نگارش مناسب را دانلود کنید.

مثال گوشی مورد نظر N73 است
پس سیستم عامل آن:

Symbian OS 9.1, S60 3rd edition

حال دو فایل : PythonForS60_1_4_2_3rdEd.SIS و PythonScriptShell_1_4_2_3rdEd.SIS را دانلود می کنیم و ابتدا فایل اول را در گوشی نصب می کنیم و سپس فایل دوم را .
-----------------------------------------------------------------------------------
v3 FP1
Nokia N76, N95, 6290, LG JoY, Samsung SGH-i520
v3 MR ----
Nokia E50, E60, E61, E62, E70, N71, N73, N75, N80, N91, N92, N93, N93i, 3250, 5500...
DP v2 FP3
----
Nokia N70, N72, N90
DP v2 FP2
---
Nokia 6630, Nokia 6680, 6681, 6682
DP v2 FP1
---
Nokia 7610, 6670, 6260, 3230, Lenovo P930, Samsung D720, Samsung D730, Panasonic X700, Panasonic X800
v2.0
---
Nokia 6600
-----------------------------------------------------------------------------------

باید این دو فایل را نصب کنید در لیست برنامه ها یک شکل مانند لوگوی پیتون اضافه خواهد شد:

http://www.python.org/images/python-logo.gif

پس از نصب در Stick memory یک شاخه با نام python ایجاد کنید کسانی که Stick memory ندارند هم در phone memory یک شاخه به اسم python با نصب این برنامه ساخته می شود. بعدا طرفند لازم را خواهم گفت.

پس از اجرای برنامه دکمه option وجود دارد. :

run script هر اسکریپتی که در مسیرهای c:\python,e:\python باشد را نمایش می دهد و هر کدام را انتخاب کنید اجرا می کند.

interactive console هم مانند پنجره دستورات پیتون در ویندوز و لینوکس است که دستورات حین تایپ را بلافصل اجرا می کند. کسانی که stick momory ندارند این دستورات را در کنسول تایپ کنند و کلید وسط joystick بعنوان اینتر است را بزنند. دقت کنید python به بزرگی و کوچکی حروف حساس است.

كد:
import e32

e32.file_copy(u'c:\data\python\*.*', u'c:\python\*.*')
چون عملا شما به درایو C از طریق file manger دسترسی ندارید.
این قطعه کد هر فایلی داخل شاخه python باشد که شما در phone memory با file manger ساخته اید را به درون c:\pyhton کپی می کند. (دقت کنیدفقط شاخه c:\data\ در file manger به صورت phone memory نمایش داده می شود.)
درایو d همان رم است (رم واقعی مانند کامپیوتر که بصورت رم درایو است.)
درایو z هم جایی است که در آن سیستم عامل قرار دارد.

TAHA
09-21-2009, 10:56 PM
این کد میزان باطری مقدا حافظه رم و میزان حاظه درایو ها را نشان می دهد.
یک فایل در کامپیوتر بسازید که پسوند آن py باشد محتویات آن هم عبارات زیر آنرا به شاخه c:\python یا e:\python کپی کنید و اجرا کنید:

كد:

import sysinfo
print sysinfo.battery()
print sysinfo.free_ram()
print sysinfo.free_drivespace()

__________________

TAHA
09-21-2009, 11:03 PM
ریختن کل sms ها در یک فایل:

كد:

from time import ctime

import codecs
import inbox

box = inbox.Inbox()
msg = box.sms_messages()

f = codecs.open('E:/Others/listSMS.txt', 'w', 'utf8') # Apre il file in codifica UTF8
for i in msg:
f.write(box.address(i))
f.write('\n')
f.write(ctime(box.time(i))) # Converte i secondi in una stringa rappresentante il tempo
f.write('\n')
f.write(box.content(i))
f.write('\n')
f.close()

print 'Fine'

f = codecs.open('E:/Others/listSMS.txt', 'r', 'utf8')
print f.read()
f.close()

__________________

TAHA
09-21-2009, 11:15 PM
براي نمايش عناصر رابط کاربري UI از کلاس appuifw استفاده مي شود، مثلا براي نمايش يک text box :

كد:
import appuifw
data = appuifw.query(u"Type a word:", "text")
و براي نمايش چيزي مانند MessageBox در موبايل:

كد:

import appuifw

appuifw.note(u"Hello World!", "info")

TAHA
09-21-2009, 11:16 PM
برای ارسال SMS از کلاس messaging استفاده می شود:

كد:

import messaging
messaging.sms_send(telNumber, txtMessage)

TAHA
09-21-2009, 11:16 PM
یک طرفند جالب
دیده اید که موبایل نام کسی که تماس گرفته را می گوید؟
دوست دارید هر مطلبی را تایپ می کنید موبایل بخواند؟
یعنی Text to speech
خب برای اینکار :

كد:

import audio
audio.say(u'Hello')
هر چیزی هم به جای Hello باشد خوانده می شود.

TAHA
09-21-2009, 11:16 PM
کلاس os در پیتون استاندارد برای کار با فایلها و سیستم عامل طراحی شده است :

كد:

16.1. os — Miscellaneous operating system interfaces — Python v2.6.2 documentation (http://docs.python.org/lib/module-os.html)
مثال :

كد:
import os
print os.listdir("c:/")
از کلاس فوق برای ساختن یک شاخه :

كد:

import os
os.mkdir("c:/Myfolder")

__________________

TAHA
09-21-2009, 11:17 PM
یک طرفند بسیار جالب

فرستادن یک فایل از طریق BlueTooth
ابتدا دستگاههای اطراف سرچ شود :

كد:
device=socket.bt_obex_discover()
سپس حالا کل دستگاهها در device است که یک آرایه است. برای در آوردن آدرس اولین دستگاه

كد:
address=device[0]
برای ارسال :

كد:
channel=device[1][u'OBEX Object Push']
socket.bt_obex_send_file(address,channel,file)
باید file از نوع file باشد و مثلا می توانید این طور تعریف کنید :

كد:
file=(u'e:\\Images\\picture1.jpg')
خب حتما متوجه شده اید که باید ماژول socket هم بارگذاری شود.

مثال کامل دستورات بالا
نوشته شده به وسیله Jurgen Scheible
برنامه کامل که از دوربین عکس گرفته ارسال می کند :

كد:


# Copyright (c) 2007 Jurgen Scheible

import camera,e32,socket,appuifw

def start():
image= camera.take_photo()
appuifw.app.body=c=appuifw.Canvas()
c.blit(image,scale=1)
file=(u'e:\\Images\\picture1.jpg')
image.save(file)
device=socket.bt_obex_discover()
address=device[0]
channel=device[1][u'OBEX Object Push']
socket.bt_obex_send_file(address,channel,file)
appuifw.note(u"Picture sent","info")

def quit():
app_lock.signal()
appuifw.app.set_exit()

app_lock = e32.Ao_lock()
appuifw.app.title = u"Bluetooth photo"
appuifw.app.menu = [(u"Start", start),(u"Exit",quit)]
app_lock.wait()

__________________

TAHA
09-21-2009, 11:17 PM
چگونگی نمایش کل شماره های ذخیره شده :

كد:

import contacts
db=contacts.open()
for id in db:
Print 'contact:%s'%db[id]
print 'number of entries:%i'%len(db)

__________________

TAHA
09-21-2009, 11:18 PM
منابع Tutorial ها :

كد:

http://sourceforge.net/project/showf...roup_id=154155
كد:

PyS60 Tutorial Menu (http://www.mobilenin.com/pys60/menu.htm)
كد:

http://wiki.opensource.nokia.com/pro...Python_for_S60