>>> Let's run Python on Mobile

วันอาทิตย์, กรกฎาคม 31, 2548

ตัวอักษรบน Text Body (part1)

เราสามารถจัดการ หน้าจอของโปรแกรมบนPython ได้3แบบ คือ Text ,Listbox และCanvas
โดยกำหนดที่ appuifw.app.body
ลองมาดูตัวออย่างง่ายๆของ โปรแกรมที่มีหน้าจอแบบ Text
import appuifw ,e32
def stop_now():
     a.signal()
appuifw.app.title=u'test text04'
t=appuifw.Text()
appuifw.app.body=t
appuifw.app.exit_key_handler=stop_now
a=e32.Ao_lock()
a.wait()


เราใช้ตัวแปร t สั้นๆง่ายๆสะดวกในการเรียกใช้ กำหนดให้เป็น การแสดงหน้าจอแบบText

t=appuifw.Text()


แล้วกำหนด appuifw.app.body ให้เป็น แบบ t นี้

appuifw.app.body=t


โปรแกรมที่ได้ มี title อย่างที่เราsetไว้ เป็น test text04 มีการหยุดรอรับคำสั่งต่างๆ มี Exit
ส่วน Body เป็นแบบ Text
ซึ่งก็คล้ายๆEditor แสดงผลเป็นตัวอักษร ผู้ใช้งานกด เพิ่มตัวอักษรลงไปได้ บริเวณ cursor

Body เป็นแบบ Text


เราset ตัวอักษรบน Text-body ได้โดยใช้คำสั่ง set() เช่น
t.set(u'hello hello and hello')

ดังตัวอย่าง
import appuifw ,e32
def stop_now():
     a.signal()
appuifw.app.title=u'test text05'
t=appuifw.Text()
appuifw.app.body=t
t.set(u'hello hello and hello')
appuifw.app.exit_key_handler=stop_now
a=e32.Ao_lock()
a.wait()


set ตัวอักษรบน Text-body


Codeตัวอย่าง
test04.zip
test05.zip

หน้าถัดไป>>>
หน้าก่อน
กลับไปหน้าหลัก

รายละเอียดเกี่ยวกับ Python for Symbian s60
>>> Introduction to Python
>>> Let's run Python for Symbian s60
>>> สั่งงานในPython ด้วย InterActiveConsole
>>> Editor บน Symbian ที่เขียนด้วย Python
>>> เริ่มต้นเขียนโปรแกรม กับ Python
>>>การสร้าง Function สร้าง Menu และกำหนด Exit
>>>And More

วันศุกร์, กรกฎาคม 29, 2548

การสร้าง Function สร้าง Menu และกำหนด Exit

การสร้างFunction
ใช้ def กำหนดคำสั่งใหม่ ตามด้วย : และมีการขึ้นบรรทัดใหม่ย่อหน้า(ด้วยspaceสัก4ตัว) เช่น
import appuifw
def info_hello():
     appuifw.note(u'hello','info')
appuifw.app.title=u'hello'
info_hello()


ก็จะได้ผลเหมือนกับ
import appuifw
appuifw.app.title=u'hello'
appuifw.note(u'hello','info')



def สร้าง function

ได้ hello เหมือนเดิม

โปรแกรม.pyในPython เป็นScript ที่จะดำเนินงานตั้งแต่บรรทัดแรก ไปบรรทัดถัดๆไป เรื่อยๆจนกว่า จะออกจากโปรแกรม
ยกเว้นในบางกรณีเช่น ประโยคที่ตามหลังdef เป็นการกำหนดคำสั่ง จะยังไม่ทำงานจนกว่าจะมีการเรียกใช้ คำสั่งที่กำหนดไว้

โปรแกรม test01.py ที่อธิบายไปจะทำงานเพียงชั่วครู่ แล้วก็ไปถึงบรรทัดสุดท้ายจบโปรแกรมไป
ถ้าจะให้โปรแกรมเปิดค้างรอรับคำสั่งอยู่ และสามารถกด SoftKeyขวา เพื่อออกจากโปรแกรม
ต้องเพิ่มบรรทัดเหล่านี้ลงไป

import e32
def stop_now():
     a.signal()
...
appuifw.app.exit_key_handler=stop_now
a=e32.Ao_lock()
a.wait()


ลองทำโปรแกรมให้ครบถ้วนเลยละกัน
เพิ่ม Screen Body แบบ Text
เพิ่มบรรทัดเหล่านี้ลงไป

t=appuifw.Text()
appuifw.app.body=t


เพิ่มเมนูไปเลือกคำสั่ง info_hello()
ก็เพิ่มบรรทัดเหล่านี้ลงไป

appuifw.app.menu=[(u'hello menu',info_hello)]


ครบแล้วก็ได้เป็น test03.py แบบนี้
มีเมนู กดแล้วเรียก noteสั้นๆ แสดงข้อความ hello ออกมา
import appuifw ,e32
def info_hello():
     appuifw.note(u'hello','info')
def stop_now():
     a.signal()
appuifw.app.title=u'hello'
t=appuifw.Text()
appuifw.app.body=t
appuifw.app.menu=[(u'hello menu',info_hello)]
appuifw.app.exit_key_handler=stop_now
a=e32.Ao_lock()
a.wait()


กดSoftKeyซ้ายได้Menu

เลือกMenuแสดงnote

Code ตัวอย่าง
test02.zip
test03.zip

หน้าถัดไป>>>
หน้าก่อน
กลับไปหน้าหลัก

รายละเอียดเกี่ยวกับ Python for Symbian s60
>>> Introduction to Python
>>> Let's run Python for Symbian s60
>>> สั่งงานในPython ด้วย InterActiveConsole
>>> Editor บน Symbian ที่เขียนด้วย Python
>>> เริ่มต้นเขียนโปรแกรม กับ Python
>>>การสร้าง Function สร้าง Menu และกำหนด Exit
>>>And More

วันพฤหัสบดี, กรกฎาคม 28, 2548

เริ่มต้นเขียนโปรแกรม กับ Python

โปรแกรมในภาษาPython ก็เป็นเพียง Text-file ธรรมดาๆ ที่คุณสามารถเขียนขึ้นได้ด้วย Notepad บน PC
save เป็นไฟล์นามสกุล .py (save encoding เป็นแบบ ASCII หรือ ANSI)
ลองเปิด Notepad บน PC แล้วสร้าง ไฟล์ test01.py ที่มีเนื้อหา ดังนี้
import appuifw
appuifw.app.title=u'hello'
appuifw.note(u'hello','info')

ระวัง ต้อง saveเป็น .py ไม่ใช่ test01.PY , test01.Py , TEST01.PY ซึ่งจะไม่work
แล้วนำไปไว้ใน MMC ที่โฟลเดอร์
E:\SYSTEM\APPS\Python\my
ไฟล์โปรแกรมต่างๆ ที่เราเขียนขึ้น หรือ D/L มา จะต้องนำไปไว้ในโฟล์เดอร์นี้ Pythonจึงสามารถเรียกขึ้นมาใช้ได้

เขียนด้วย Notepad


save เป็นแบบ ANSI

เสร็จเรียบร้อยก็เรียก Python ขึ้นมา เลือกเมนู Run script
มองหาชื่อโปรแกรม ที่เราเขียนไว้ my\test01.py เจอแล้วก็คลิกเลือกเลย
ผลก็จะเป็น การเปิด Information Note ขึ้นมาช่วงสั้นๆมีข้อความ Hello ดังรูปข้างล่าง

เลือก my\test01.py

ผลของ test01.py


มาดูเนื้อหาของโปรแกรมกันดีกว่า
บรรทัดแรก import appuifw
เป็นการเรียกโมดูลชื่อ appuifw เป็น Series 60 User Interface Framework
การเขียน Graphic User Interface บน Symbian ต้องเรียกใช้โมดูลนี้ แทบทุกโปรแกรม ซึ่งผมคิดว่า เขาก็จัดเตรียมไว้ให้ เราเลือกใช้ได้ สะดวกดี

บรรทัดถัดมา appuifw.app.title=u'hello'
เป็นการกำหนด ตัวอักษรที่แสดงไว้ด้านบน ของแต่ละโปรแกรม จะเห็นว่า มีอักษร u อยู่ข้างหน้าString เพื่อกำหนดว่า Stringนี้เป็นUnicode อักษรอะไรก็ตามที่จะไป ปรากฏบนจอภาพของ Smartphone ต้องเป็น Unicode

ส่วนบรรทัดสุดท้ายที่สำคัญ
appuifw.note(u'hello','info')

เป็นการเรียกใช้ คำสั่งเปิด Information Note ขึ้นมาเพื่อแสดงข้อความเป็น Unicode ว่า hello
และแสดงไอคอนเป็นแบบ 'info' (เลือกได้หนึ่งในสาม 'info' , 'conf' หรือ 'error')
ไม่ยากเลยใช่มั้ยครับ

หรือคุณอาจจะหา Editor ที่สามารถ save file เป็น ASCII สักอันมาลงใน Smartphone ก็จะเขียนโปรแกรม Python ได้โดยไม่ต้องใช้ PC เลย
แนะนำเรื่อง Editor ไว้บ้างในหน้าก่อนครับ

Code ตัวอย่าง
test01.zip

หน้าถัดไป>>>
หน้าก่อน
กลับไปหน้าหลัก

รายละเอียดเกี่ยวกับ Python for Symbian s60
>>> Introduction to Python
>>> Let's run Python for Symbian s60
>>> สั่งงานในPython ด้วย InterActiveConsole
>>> Editor บน Symbian ที่เขียนด้วย Python
>>> เริ่มต้นเขียนโปรแกรม กับ Python
>>>การสร้าง Function สร้าง Menu และกำหนด Exit

วันพุธ, กรกฎาคม 27, 2548

Editor บน Symbian ที่เขียนด้วย Python

myeditor_mod.py เป็น File Explorer ที่มี Editor ในตัว ปรับปรุงจากโปรแกรม filebrowser.py ที่มีมาพร้อมๆกับ การตั้ง Python
ทำให้มีความสามารถในการ เปิดดูรายชื่อไฟล์ในแต่ละDrive ของSymbian Smartphone และถ้าไฟล์ไหนเป็น Text File ก็สามารถเปิดขึ้นมาEdit และ saveไฟล์ ได้อีกด้วย

เปิดไฟล์มา Edit

save File

วิธีใช้ myeditor_mod.py ก็เริ่มจาก ติดตั้ง Pythonให้เรียบร้อย
(ดูรายละเอียดการติดตั้ง Python ได้ที่นี่ )
แล้ว D/L myeditor_mod.py จาก
http://www.mathematik.uni-mainz.de/~stefan/python/
myeditor_mod.py
...by mueller-stach
http://www.geocities.com/mayank2cool/ScribblePad/ScribblePad-0.2.tar.gz
...by makuchaku
copyไปไว้ใน E:\SYSTEM\APPS\Python\my
หลังจากนั้นจะสามารถ เรียกใช้ myeditor_mod.py ได้จากเมนู run script ใน Python

เมนู Run script
ใน Python

ส่วน File Browser
ใน myeditor_mod.py

ข้อด้อยของ myeditor_mod.py ก็คือไม่สามารถสร้างไฟล์ใหม่ (คือmyeditor_mod.py สามารถEdit และ saveไฟล์ที่มีอยู่เดิมใน Drive ของSymbian Smartphone เท่านั้น) และ saveได้เฉพาะไฟล์ แบบASCII ไม่สามารถsaveไฟล์ที่เป็นภาษาไทยแบบ Unicode

ผมจึงลองเขียน Editor ขึ้นมาใหม่ด้วยภาษา Python ให้สามารถ สร้างไฟล์ใหม่ อ่าน และsaveไฟล์ ได้ทั้งที่เป็น ASCII และที่เป็นภาษาไทยแบบ Unicode
Knotepad ใครสนใจนำไปลองใช้ กับ Python บนSymbian Smartphone ก็ D/L ได้ที่นี่
knotepad.zip
วิธีใช้คล้ายๆที่กล่าวไปแล้ว คือ copyไปไว้ใน
E:\SYSTEM\APPS\Python\my
แล้วจะสามารถ เรียกใช้ Knotepad.py ได้จากเมนู run script ใน Python
มีหลักการที่สำคัญก็คือ ไฟล์ที่มีอักษรภาษาไทย ต้องอ่านและsave แบบ Unicode
ส่วนไฟล์ .py ต้องอ่านและsave แบบ ASCII
ไฟล์ต้องนามสกุล .txt ถ้าจะให้สามารถเปิดอ่าน ด้วย Explorer (เรียก Note ขึ้นมาเปิดอ่าน)
Knotepad.py ไม่มีFileBrowserในตัว ดังนั้นคุณต้องจำชื่อไฟล์ได้ จึงจะสามารถเปิดอ่าน หรือsaveได้ และไฟล์ต้องอยู่ใน E:

เรียกใช้ Knotepad.py
ได้จากเมนู run script

อ่านเขียนได้ทั้ง
ASCII Unicode

รองรับอักษรไทย

save เป็น Unicode

save file

ไฟล์ save เรียบร้อย

จาก File manager

เปิดอ่านด้วย Note


หน้าถัดไป>>>
หน้าก่อน
หน้าหลัก

รายละเอียดเกี่ยวกับ Python for Symbian s60
>>> Introduction to Python
>>> Let's run Python for Symbian s60
>>> สั่งงานในPython ด้วย InterActiveConsole
>>> Editor บน Symbian ที่เขียนด้วย Python
>>> เริ่มต้นเขียนโปรแกรม กับ Python
>>>การสร้าง Function สร้าง Menu และกำหนด Exit
>>>And More...

วันอาทิตย์, กรกฎาคม 24, 2548

สั่งงานในPython ด้วย InterActiveConsole

Python มีInterActive Console ที่สามารถโต้ตอบกับผู้ใช้งาน เพื่อrunคำสั่งสั้นๆ และยังใช้เป็นเครื่องคิดเลขได้อีกด้วย
วิธีเข้าสู่ InterActive Console
จาก หน้าแรกของ python กด SoftKeyซ้าย แล้วเลือกเป็น Interactive console จะพบกับเครื่องหมาย >>> พร้อมที่จะรับคำสั่ง จากผู้ใช้

ที่หน้าแรกเลือกเป็น
Interactive console

Interactive console
พร้อมเครื่องหมาย>>>


สามารถใช้เป็นเครื่องคิดเลข ลองกด + - * / ดูครับเช่น
>>> 1.2+1.4
จะตอบกลับมาเป็น
2.6

>>> 4.0/2.0
2.0

>>> 2.0*4.0
8.0

ลองยกกำลังดูบ้าง สองยกกำลังห้า
>>> 2.0**5.0
32.0

ลองหาพื้นที่สามเหลี่ยม ใส่คำสั่งเป็นชุดเลย 1/2 * ฐาน * สูง
>>> width=4.0
>>> height=5.0
>>> 0.5*width*height
10.0
เวลาใช้ Python InterActive Console เป็นเครื่องคิดเลข ต้องพยายามเติมจุดทศนิยมไว้เสมอ โดยเฉพาะเวลาหาร เนื่องจาก Python จะมองเลขที่ไม่มีจุดทศนิม เป็นเลขจำนวนเต็ม ผลลัพธ์ก็เป็นเลขจำนวนเต็ม จึงอาจได้คำตอบที่คลาดเคลื่อนไปได้

ใช้เป็นเครื่องคิดเลข
ก็ได้

ลองบวกลบคูณหาร
หรือใส่สูตรสั้นๆ


คราวนี้สั่งคำสั่งสั้นๆ ให้พิมพ์ hello
>>> print 'hello'
ตอบกลับมาว่า
hello

คำสั่งให้พิมพ์ชื่อ platform
>>> import sys
>>> print sys.plateform
ตอบกลับมาเป็น
symbian_s60

ใส่คำสั่งสั้นๆ


ลองให้ส่งSMS ก็พิมพ์แค่
>>> import messaging
>>> messaging.sms_send('019999999',u'hello from python on symbian s60')
เท่านี้ก็ส่งSMSได้แล้ว ไม่ยากเลยใช่มั้ยครับ

ลองส่ง SMS

ง่ายๆแค่นี้เอง


หน้าถัดไป>>>
หน้าก่อน
กลับไปหน้าหลัก


รายละเอียดเกี่ยวกับ Python for Symbian s60
>>> Introduction to Python
>>> Let's run Python for Symbian s60
>>> สั่งงานในPython ด้วย InterActiveConsole
>>> Editor บน Symbian ที่เขียนด้วย Python
>>> เริ่มต้นเขียนโปรแกรม กับ Python
>>>การสร้าง Function สร้าง Menu และกำหนด Exit

Let's run Python for Symbian s60

การเริ่มต้นใช้งาน Pythonทำได้ง่ายๆ โดยเริ่มจาก D/L Python for Symbian s60 จาก
http://www.forum.nokia.com/main/0,6566,034-821,00.html
(Website ของ Nokia ซึ่งต้องสมัครสมาชิกก่อน จึงจะ D/L ได้)

D/L Python for Symbian s60

โดย version ธรรมดา (เช่น PythonForSeries60.SIS หรือ PythonForSeries60_1_1_5.SIS)
ใช้สำหรับติดตั้งลงใน Nokia6600,6630,6670,7610
ส่วน N-Gage หรือ SX1 ให้ติดตั้ง 1st Edition
(PythonForSeries60_1_1_5_1stEd.SIS หรือ PythonForSeries60_pre_sdk_20.SIS)

ภายในไฟล์.zipที่D/Lมา

โดยสามารถติดตั้งลงใน MMC ได้ โดยจะไปอยู่ที่
E:\SYSTEM\APPS\Python
และหากคุณจะนำไฟล์ .py มาติดตั้งเพิ่มเติมก็ลงไว้ที่
E:\SYSTEM\APPS\Python\my

ติดตั้ง Python ลงใน MMC

ไอคอนรูปงู ในหน้าMenu

เมื่อติดตั้งเรียบร้อย ก็ลองคลิกไอคอนรูปงู บนหน้า Menu เพื่อเรียก Pythonขึ้นมา

หน้าแรกของ Python

ก็จะพบกับหน้าจอของ Python มีเมนูให้เลือก
เมนู Run Script ใช้เรียกโปรแกรม .py ที่อยู่ในโฟลเดอร์
E:\SYSTEM\APPS\Python หรือ E:\SYSTEM\APPS\Python\my

Menu ต่างๆของ Pyhton

มีโปรแกรม .py ให้เลือก

มีหลายโปรแกรมที่ติดตั้งมาด้วย เช่น filebrowser.py ใช้เปิดดูไฟล์ หรือลบไฟล์ ได้คล้ายๆกับ โปรแกรมExplorer มีเกมให้ลองเล่น ลองศึกษาโค้ด หรือ คุณอาจจะหา D/L โปรแกรม .py จากอินเตอร์เนต ลองดูที่ website นี้มีหลายๆโปรแกรมน่าสนใจ
http://www.mathematik.uni-mainz.de/~stefan/python/
เช่น โปรแกรมทางคณิตศาสตร์ต่างๆ 3D-Model และยังมี Editor ที่เขียนขึ้นด้วย ภาษาPython โดยปรับปรุงจาก filebrowser.py
เมื่อติดตั้ง FileBrowsre&Editor(myeditor.py,myeditor_mod.py) นี้แล้วคุณจะสามารถ เขียนโปรแกรม.py บน SmartPhone ได้เลย
(เขียนโปรแกรม ตั้งแต่เริ่มต้น จนเสร็จเรียบร้อย โดยไม่ต้องใช้เครื่องPCเลย ก็ยังได้!! )

หน้าถัดไป>>>
หน้าก่อน
กลับไปหน้าหลัก

รายละเอียดเกี่ยวกับ Python for Symbian s60
>>> Introduction to Python
>>> Let's run Python for Symbian s60
>>> สั่งงานในPython ด้วย InterActiveConsole
>>> Editor บน Symbian ที่เขียนด้วย Python
>>> เริ่มต้นเขียนโปรแกรม กับ Python
>>>การสร้าง Function สร้าง Menu และกำหนด Exit

Introduction to Python

ถ้าคุณคิดจะเขียนโปรแกรมดีๆไว้ใช้กับระบบปฏิบัติการ Symbian สักโปรแกรมหนึ่ง แต่ไม่อยากยุ่งยาก กับภาษาC++ ละก็ Python เป็นอีกภาษาหนึ่ง ที่น่าสนใจทีเดียว ภาษาPythonนั้นเรียบง่าย จนคุณสามารถที่จะเขียน โปรแกรม Hello แบบGUI บนSymbianได้โดยใช้โค้ดแค่ 3บรรทัด ตัวScriptโปรแกรมภาษาPython (.py) ก็เป็นแค่ Text-fileธรรมดา ที่สามารถเขียนขึ้นมาได้ ด้วยEditorทั่วๆไปอย่าง Notepad

Hello แบบGUI

ใช้โค้ดแค่ 3บรรทัด

และถึงแม้คุณ จะยังใช้ภาษาPythonไม่เป็น คุณก็สามารถ หา คัดลอก Scriptโปรแกรม Python (แบบ.py) มาลงเพื่อใช้งานได้ง่ายๆ หรือจะนำมาเปิดอ่านดู เพื่อศึกษาก็สะดวกง่ายดาย Python ยังมี Interactive Console ที่สามารถนำมาใช้งาน แทนเครื่องคิดเลข หรือสามารถพิมพ์คำสั่งทีละบรรทัด

Interactive Console
ใช้แทนเครื่องคิดเลขได้

ตัวโปรแกรมภาษาPython มีแจกฟรี ให้ D/Lที่webของ Nokia และมีการพัฒนา ออกversionใหม่ๆอยู่เรื่อยๆ เพียงแค่มี TextEditorดีๆสักตัว ลงในSymbian SmartPhone ที่ติดตั้งตัวโปรแกรมภาษาPythonไว้ บวกกับความรู้เรื่อง ภาษาPython อีกเล็กน้อย แค่นี้ก็สามารถ เขียนโปรแกรมใช้กับระบบปฏิบัติการ Symbian ได้แล้ว

หน้าถัดไป>>>
กลับไปหน้าหลัก

รายละเอียดเกี่ยวกับ Python for Symbian s60
>>> Introduction to Python
>>> Let's run Python for Symbian s60
>>> สั่งงานในPython ด้วย InterActiveConsole
>>> Editor บน Symbian ที่เขียนด้วย Python
>>> เริ่มต้นเขียนโปรแกรม กับ Python
>>>การสร้าง Function สร้าง Menu และกำหนด Exit
>>>And More...

วันพฤหัสบดี, กรกฎาคม 21, 2548

Python for Symbian s60



รายละเอียดเกี่ยวกับ Python for Symbian s60
>>> Introduction to Python
>>> Let's run Python for Symbian s60
>>> สั่งงานในPython ด้วย InterActiveConsole
>>> Editor บน Symbian ที่เขียนด้วย Python
>>> เริ่มต้นเขียนโปรแกรม กับ Python
>>> การสร้าง Function สร้าง Menu และกำหนด Exit
>>> ตัวอักษรบน Text Body (part1)
>>> กำหนด Softkey สร้างMenu และ Set text on Screen(2)
>>> String
>>> def กำหนดคำสั่ง และการ return
>>> Input ด้วย query
>>> popup_menu กับ list
>>> selection_list
>>> for-in ใน Python
>>> muti_selection_list
>>> เปลี่ยน Screen body ให้เป็น Listbox
>>> ลองใช้คำสั่งใน sys Module
>>> คำสั่งอื่นๆใน e32 และ sysinfo Module


>>>Python Links