Lớp xử lý tiếng Việ t

Một phần của tài liệu TÌM HIỂU và NGHIÊN cứu kỹ THUẬTPHÁT TRIỂN ỨNG DỤNG TRÊN MÔITRƯỜNG SYMBIAN OS (Trang 170)

2 Hướng nghiên cứu và giới hạn đề tài

8.2.2.2Lớp xử lý tiếng Việ t

Phần xử lý tiếng Việt sẽ do lớp CTransVietChar đảm nhận. Các ký tự nhập từ khung nhập sẽ lần lượt được chuyển cho hàm TransChar(TUint16& aChar, TInt8& aIndex) của lớp này. Hàm này sẽ xác định ký tự nhập là ký tự dấu trăng (w

đối với Telex hoặc 7 hay 8 đối với Vni), ký tự dấu (s, f, r, x, j, và z đối với Telex hoặc 1, 2, 3, 4, 5, 0 đối với Vni), ký tựđôi (a, e, o, d cho Telex hoặc 6, 9 cho Vni) hay các ký tự thông thường khác qua hàm CharType(TUint16 aChar) rồi phân bố

cho hàm xử lý các loại ký tự này: PutBreveMark(TUint16 aChar), PutToneMark(TUint16 aChar) và DoubleChar(TUint16 aChar). Kết quả trả về ký tự

chuyển đổi (nếu có) và vị trí sẽđổi trên từ trong khung nhập dựa trên giá trị trả về. Nếu giá trị trả về là 0, ký tự thông thường, chỉ cần thêm vào. Nếu là 1, ký tự tại vị

trí aIndex sẽđược thay bằng ký tự aChar mới. Nếu giá trị trả về là –1, ký tự tại vị trí aIndex sẽ được trả về nguyên dạng và ký tự vừa nhập sẽ được thêm vào khung nhập. Ví dụ hiện tại trên khung nhập là chữ “Từ” nếu tiếp tục nhập ký tự “w” khi

đang ở chếđộ gõ Telex thì kết quả sẽ là “Tùw”. 8.2.2.3 Lớp phát âm

Phần phát âm với các từ trong từđiển Anh-Việt do lớp Cspeaker đảm nhận.

Đối tượng lớp này được khai báo trong lớp CDicAppView theo mối quan hệ has-a. Khi từ có thể phát âm, nút nhân loa sẽ bỏ phần gạch chéo. Khi người dùng nhấn vào nút này đối tượng lớp CSpeaker sẽ gọi hàm PlayL() với tham số vào là tên file .wav tương ứng với từ cần đọc. Hàm này sẽ kết nối media server để thực thi file .wav này.

KHOA CNTT –

ĐH KHTN

8.2.3 File cơ sở dữ liệu từđiển và cách truy xuất

• Cơ sở dữ liệu được lưu trữ trong 2 file: evdict.dat và vedict.dat. Cấu trúc của file này như sau: @từ *nghĩa. Để tiện truy xuất, 2 file chỉ mục evindex.dat và veindex.dat được tạo ra theo cấu trúc: @Từ:vị trí (byte) lưu trữ.

• Thông qua file chỉ mục, việc truy xuất sẽ thực hiện dễ dàng nhờ hàm seek trên lớp đọc file Rfile.

• Khi người dùng nhập ký tựđầu tiên của từ cần tra, toàn bộ các từ trong mục từ đó sẽ được nạp vào listbox chứa danh sách từ. Người dùng có thể tra cứu trực tiếp bằng cách nhấn Enter trên bàn phím ảo hay chọn từ danh sách này. Kết quả trả

về sẽ là nghĩa từ cần tra (chọn trên danh sách) hay nghĩa từ gần nhất (khi dùng phím Enter nhưng trong cơ sở dữ liệu không có từ khớp.

8.3 Biên dịch và cài đặt ứng dụng

8.3.1 Biên dịch chương trình ứng dụng

Sau khi biên dịch chương trình nhờ IDE CodeWarrior với loại biên dịch là ARMI và kiểu biên dịch UREL chúng ta thu được 4 file chương trình đã biên dịch dưới dạng mã nhị phân được lưu trữ như sau:

• File ứng dụng: File ứng dụng (thư viện đa hình) từđiển là TNDic.app được lưu trữ tại thư mục: <%Symbian-UIQ2.1%>\epoc32\release\armi\urel\

• File tài nguyên TNDic.rsc, file thông tin ứng dụng TNDic.aif và file ảnh TNDic.mbm được lưu trữ tại thư mục:

<%Symbian-UIQ2.1%>\epoc32\data\z\system\apps\TNDic\ 8.3.2 Cài đặt ứng dụng

8.3.2.1 File cấu hình font Unicode

Để hiện thị tiếng Việt chương trình sử dụng font Unicode Tahoma. Tuy nhiên font mặc định được dùng trên điện thoại Sony Ericsson P900 không phải là font Unicode. Để thực hiện việc chuyển đổi font hệ thống thành font Unicode nói chung và cho Tahoma nói riêng, chúng ta không thể sử dụng các hàm API sẵn có mà phải tạo một file cấu hình .ini và sử dụng thư viện freetype.dll. Thư viện

KHOA CNTT –

ĐH KHTN

freetype.dll là thư viện được cung cấp để cấu hình font Unicode cho các nền hệ

thống sử dụng hệ điều hành Symbian 7.0 trở về sau. Freetype.dll có thể lấy về từ

trang web: http://www.freetype.org.

Do đó trong file cài đặt chương trình sẽ có thêm 3 file: thư viện freetype.dll, font tahoma.ttf và file cấu hình sysfnt.ini dùng để cấu hình font Tahoma .

8.3.2.2 Đóng gói ứng dụng

Với 4 file chương trình, 2 file dữ liệu từ điển và các file cấu hình font, file thông tin đóng gói TNDic.pkg được xây dựng như sau: (adsbygoogle = window.adsbygoogle || []).push({});

; TNDic Installation script. ;Languages

&EN

; The installation name and header data #{"TNDic"},(0x10202239),1,0,0

(0x101F61CE), 0, 0, 0, {"UIQ21ProductID"} ;

; The files to install

"C:\Symbian\UIQ_21\Epoc32\release\armi\urel\TNDic.app"- "!:\System\Apps\TNDic\TNDic.app" "C:\Symbian\UIQ_21\Epoc32\data\z\system\apps\TNDic\TNDic.rsc"- "!:\System\Apps\TNDic\TNDic.rsc" "C:\Symbian\UIQ_21\Epoc32\data\z\system\apps\TNDic\TNDic.aif"- "!:\System\Apps\TNDic\TNDic.aif" “..\Data\evdict.dat”-“!:\System\Apps\TNDic\evdict.dat” “..\Data\vedict.dat”-“!:\System\Apps\TNDic\vedict.dat” “..\Data\evdictindex.dat”-“!:\System\Apps\TNDic\evindex.dat” “..\Data\evdictindex.dat”-“!:\System\Apps\TNDic\evtindex.dat” "..\Font\freetype.dll"-"C:\System\fonts" "..\Font\tahoma.ttf"-"C:\System\Fonts" "..\Font\sysfnt"-"C:\System\Data"

KHOA CNTT –

ĐH KHTN

- Đầu tiên là phần ngôn ngữ dùng trong quá trình cài đặt: EN: English. - Tiếp theo là tên file ứng dụng: TNDic, định danh UID: 0x10202239 và phiên bản là 1.0.

- Tiếp theo là phần khai báo nền hệ thống tương thích: chương trình tương thích cho UIQ 2.1 với định danh 0x101F61CE nhưng với phiên bản UIQ 2.0, chương trình vẫn hoạt động tốt.

- Tiếp theo các file chương trình, dữ liệu cần cài đặt. Lưu ý dấu “!” thể hiện

đĩa cài đặt (C hay D) sẽ do người dùng chọn trong quá trình cài đặt.

- Cuối cùng là các cấu hình cho font Unicode được chỉ định đến thư mục cụ

thể trên đĩa C để đáp ứng việc cấu hình font Unicode Tahoma. 8.3.2.3 Cài đặt ứng dụng

Với công cụ makesis chúng ta có file cài đặt TNDic.sis: makesis TNDic.pkg TNDic.sis

Với file TNDic.sis vừa tạo, ta có thể cài đặt chương trình lên điện thoại bằng cách chép file này lên điện thoại rồi cài đặt trực tiếp nhờ tiện ích Installer hặc cài đặt thông qua đồng bộ từ xa qua cáp nối máy tính, hồng ngoại, bluetooth hay qua Internet.

Sau đây là quá trình cài đặt qua cáp nối giữa máy tính và điện thoại SE P900 qua cổng USB.

• Sau khi đã có tín hiệu kết nối giữa máy tính và điện thoại, kích đúp vào file TNDic.sis, một hộp thoại hiện ra:

KHOA CNTT –

ĐH KHTN

• Chọn nút “Yes”, chương trình cài đặt hoạt động và bắt đầu kiểm tra chữ

ký điện tử, chứng thực cho chương trình. Từđiển TNDic không có phần chứng thực nên hộp thoại sau hiện ra để cảnh báo người dùng vềđộ an toàn khi cài đặt nó:

H8.4 Hộp thoại cảnh báo về rủi ro khi cài đặt thiếu chứng thực

• Chọn “Install anyway”, chương trình cài đặt bắt đầu cài đặt:

H8.5 Thông tin ứng dụng sẽ cài đặt H8.6 Ngôn ngữ dùng trong cài đặt

KHOA CNTT –

ĐH KHTN

H8.8 Quá trình cài đặt

H89 Kết thúc cài đặt (adsbygoogle = window.adsbygoogle || []).push({});

• Với ứng dụng đồ họa thông thường, sau khi cài đặt là có thể sử dụng ngay nhưng trong TNDic có cài đặt thêm phần cấu hình font hệ thống nên cần khởi

động lại điện thoại trước khi sử dụng. Sau khởi động, toàn bộ font đều được chuyển thành Tahoma và lúc này ứng dụng từ điển Anh Việt, Việt Anh đã sẵn sàng sử

KHOA CNTT –

ĐH KHTN

TNG KT

Với mong muốn tìm hiểu những công nghệ kỹ thuật mới, tinh tế và được sự phân công, hướng dẫn của Thầy Đỗ Hoàng Cường, chúng tôi đã hoàn thành luận văn cử

nhân tin học với đề tài: “"Tìm hiểu và nghiên cứu kỹ thuật phát triển ứng dụng trên môi trường Symbian OS ".

Với luận văn này, chúng tôi đã xây dựng một quy trình hoàn chỉnh để phát triển chương trình nói chung và cho ứng dụng đồ họa nói riêng cho môi trường Symbian. Với quy trình này, một người mới bắt đầu lập trình hoặc mới chuyển sang lập trình

ứng dụng cho hệđiều hành Symbian từ các môi trường khác sẽ dễ dàng có một kế

hoạch phát triển ứng dụng và bước đầu hiểu rõ những vấn đề then chốt nhất trong lập trình cho Symbian.

Và để làm rõ hơn, minh họa cho quy trình này, chúng tôi đã xây dựng một ứng dụng đồ họa nhỏ: Từ điển Anh Việt, Việt Anh. Ứng dụng từ điển này được phát triển cho điện thoại dòng Quartz, dòng điện thoại phù hợp cho tiêu chí tra cứu và

được cài đặt cụ thể trên điện thoại Sony Ericsson P900.

Tuy nhiên, do chỉ phục vụ minh họa cho luận văn nên ứng dụng từđiển khá đơn giản. Từđiển chỉ phục vụ cho mục đích tra từ, còn khả năng thêm từ và xây dựng từ điển riêng cho người dùng vẫn còn bỏ ngõ. Cơ sở dữ liệu cho chương trình vẫn khá lớn khó phù hợp cho điện thoại ít bộ nhớ. Vấn đề cơ sở dữ liệu sẽ được chúng tôi cải tiến với cách lưu trữ có hỗ trợ nén của Symbian.

KHOA CNTT –

ĐH KHTN

TÀI LIU THAM KHO

[1] Diễn đàn All About Symbian: http://www.allaboutsymbian.com [2] Diễn đàn My Symbian: http://www.my-symbian.com [3] Diễn đàn NewLC: http://www.newlc.com [4] Hệđiều hành Symbian: http://www.symbian.com [5] Hệđiều hành Palm: http://www.palmsource.com/ [6] Hệđiều hành WindowCE: http://msdn.microsoft.com/embedded/prevver/ [7] Hệđiều hành Linux nhúng: http://www.embedded-linux.org [8] Java nhúng: http://java.sun.com/j2me/ [9] Thư viện lập trình Symbian: http://www.symbian.com/developer/ [10] Thư viện lập trình UIQ: http://developer.sonyericsson.com/ http://www.uiq.com

[11] Thư viện lập trình Series 60, Series 80, Series 90: http://www.forum.nokia.com/main.html

[12] IDE Metrowerks CodeWarrior cho Symbian: http://www.Metrowerks.com/ [13] IDE Borland CBuilderX: http://www.borland.com/cbuilderx/

[14] Heikki Pora, Application Size Optimisation in Mobile Environment, Master’s Thesis, Lappeenranta University of Technology, 2002.

[15] Jukka Ahonen, PDA OS Security: Application Execution, Seminar on Network Security 2001, Helsinki Univesity of Technology.

[16] Maria Holmström, End-to-end monitoring of mobile services, Master’s thesis, Linköping University, 2003.

[17] Jonathan Allin, Wireless Java for Symbian Devices, Wiley, 8- 2001.

[18] Martin Tasker, Jonathan Allin, Professional Symbian Programming: Mobile solutions on the EPOC platform, Wrox Press, 2-2000.

[19] Michael Jipping, Symbian OS Communications Programming, Wiley, 2002 [20] Richard Harrison, Symbian OS C++ for Mobile Phones, Wiley, 4- 2003.

KHOA CNTT –

ĐH KHTN

PHỤ LỤC A

CÁC THUT NG DÙNG TRONG LUNVĂN

API (Application Programming Interface): API là tập các chức năng được cung cấp bởi một hệ thống và tập hợp các API này thể hiện chức năng của hệ thống đó. (adsbygoogle = window.adsbygoogle || []).push({});

ABI (Application Binary Interface): Các định dạng nhị phân của ứng dụng. Trên Symbian có 3 định dạng là ARM4, THUMB và ARMI.

Bluetooth: Một đặc tả cho truyền thông dữ liệu và âm thanh vô tuyến sóng ngắn giữa các thiết bị di động hay cố định như điện thoại di động, PDA và máy tính. Bluetooth truyền thông ở băng tầng 2,4 GHz và có ảnh hưởng trong tầm khoảng 10 mét.

CLDC (J2ME Connected Limited Device Configuration): Một kiến trúc J2ME

được cấu hình phục vụ cho các thiết bị cá nhân. CLDC bao gồm một số lớp mới

được thiết kếđặc biệt phù hợp cho các thiết bị bộ nhớ thấp.

Cleanup stack: Một ngăn xếp đặc biệt lưu giữ các biến tựđộng (biến cục bộ) là các con trỏ trỏđến vùng nhớ heap để có thể giải phóng các vùng nhớ này khi hàm chứa biến tựđộng bị thoát do lỗi môi trường.

Communicator: Tên gọi chung cho một nhóm thiết bị thông tin vô tuyến. Nhóm thiết bị này là những máy trợ giúp cá nhân PDA có tích hợp thêm các chức năng liên lạc của điện thoại di động.

Crystal: Tên một dòng thiết bị theo mô hình thiết kế tham khảo của Symbian có màn hình 1/2 chuẩn VGA và dùng bàn phím đầy đủ QWERTY.

DFRD (Device Family Reference Design) Mô hình thiết kế tham khảo cho các dòng máy Symbian. Khái niệm này đã được bỏ từ phiên bản Symbian v7.0.

Digitizer: Màn hình cảm ứng dược thiết kế với một lưới điểm bên trong sẽ tạo các điểm ảnh trên màn hình khi có sự tiếp xúc với màn hình bởi bút stylus chuyên dụng hay các dụng cụ khác.

KHOA CNTT –

ĐH KHTN

EPOC: Thế hệ cũ của hệ điều hành Symbian. Epoc vẫn còn được sử dụng trong một số phần trên hệđiều hành Symbian như trên Emulator hay cấu trúc thư mục.

IrDA: Tập hợp các giao thức cho trao đổi dữ liệu qua sóng hồng ngoại giữa hai thiết bị. Truyền thông qua hồng ngoại có thể đạt thông lượng 115,2 Kbps hoặc 4Mbps. IrDA được cài đặt trên điện thoại Symbian, các PDA, máy in và laptop.

J2ME (Java 2 Platform, Mirco Edition): Bản phân phối của nền hệ thống Java nhắm đến các thiết bị gia dụng, thiết bị truyền thông nhỏ. Công nghệ J2ME gồm máy ảo Java và tập các API được thiết kế cho môi trường trên các thiết bị này.

JavaPhone Đặc tả Java API điều khiển, quản lý danh bạ, cuộc gọi và các đòi hỏi khác cho lập trình xây dựng các chức năng trên điện thoại di động.

Leave: Khả năng ngắt hoạt động tại hàm nơi đó xảy ra lỗi môi trường và chuyển

đến phần xử lý lỗi. Các hàm có thể leave có tên hàm kết thúc bằng chữ cái L.

MIDP (Mobile Information Device Profile): tập các Java API được cài đặt trên CLDC. Nó cung cấp một môi trường cơ bản thực thi ứng dụng J2ME cho các thiết bị thông tin di dộng. MIDP đặc tả giao diện người dùng, lưu trữ, nối mạng và mô hình ứng dụng.

MMS (Multimedia Message Service): Dịch vụ nhắn tin đa phương tiện ngoài văn bản, bao gồm âm thanh, hình ảnh, v.v...

Nền hệ thống (Platform): Một tập công nghệđược xem như là nền tảng cho các

ứng dụng thế giới thực hoặc cho các nền hệ thống cao hơn. Hệđiều hành Symbian là nền hệ thống cho hệ thống giao diện như Series 60 hay UIQ và sự kết hợp Symbian và hệ thống giao diện tạo nền hệ thống cho ứng dụng Symbian: UIQ là nền hệ thống bao gồm Symbian bên dưới và hệ thống giao diện UIQ bên trên.

OPL: Một ngôn ngữ lập trình tựa BASIS, được dùng trên hệđiều hành Symbian.

PDA (Personal Digital Assistant): Một loại máy cầm tay nhỏ có khả năng nhập liệu thông tin người dùng. Nó được thiết kế để cung cấp các công cụ mà cá nhân cần như lịch hẹn, sổđịa chỉ, các thông tin khác và một modem dùng để chuyển fax.

Pearl: Tên một dòng thiết bị theo mô hình thiết kế tham khảo của Symbian có kiểu dáng của điện thoại di động truyền thống.

KHOA CNTT –

ĐH KHTN

PersonalJava: Một nền hệ thống Java được xây dựng cho điện thoại di động bằng cách loại bỏ các phần không cần của nền Java trên máy tính để phù hợp với giới hạn bộ nhớ trên điện thoại di dộng.

Quartz: Tên một dòng thiết bị theo mô hình thiết kế tham khảo của Symbian có màn hình 1/4 chuẩn VGA và dùng bút giao tiếp qua màn hình cảm ứng.

Smartphone: Một tên gọi chung cho một nhóm thiết bị thông tin vô tuyến. Nhóm thiết bị này là những điện thoại di động có tích hợp thêm khả năng của máy trợ giúp cá nhân PDA. (adsbygoogle = window.adsbygoogle || []).push({});

SMS (Short Message Service): Dịch vụ tin nhắn trong mạng GSM dưới dạng văn bản với tối đa 160 ký tự. Tin nhắn sẽ lưu ở dịch vụ mạng nếu máy nhận tạm thời không vào mạng GSM.

Stylus: Một loại bút đặt biệt dùng để nhập liệu cho các thiết bị bằng cách chạm bút vào màn hình cảm ứng.

SyncML (Synchronization Markup Language): Một ngôn ngữ đánh dấu để tạo giao thức đồng bộ dữ liệu chung cho mạng không dây. SyncML dùng XML để cấu trúc cho tầng dữ liệu của mình.

UID (Unique Identifier) - Định danh: số xác định duy nhất cho một loại chương trình hay phân biệt gữa các ứng dụng trong hệ điều hành Symbian. Các giá trị định danh này là duy nhất trên toàn thiết bị dùng hệđiều hành SYmbian.

Unicode: Bảng mã hóa ký tự dùng 16 bit, hỗ trợ tất cả các ngôn ngữ chính trên thế giới, trong đó có Việt Nam. Symbian hỗ trợđầy đủ Unicode.

VGA (Video Graphics Aray): chuẩn phân giải màn hình 640x480 pixel.

WAP (Wireless Application Protocol): tập giao thức truyền thông chuẩn để truy cập các dịch vụ trực tuyến từ các thiết bị thông tin di dộng .

WID (Wireless Information Device): Tên một loại thiết bị kết hợp giữa PDA và

điện thoại di động. Trên Symbian, WID được phân chia thành hai nhóm dựa trên tỉ

KHOA CNTT – ĐH KHTN PHỤ LỤC B LP, ĐỐI TƯỢNG VÀ SƠ ĐỒ UML TRONG LP TRÌNH SYMBIAN B.1 Mối quan hệ giữa các lớp

Là lập trình hướng đối tượng, các lớp trong lập trình C++ trên Symbian là đại diện cho các đối tượng, lớp ảo (abstraction) hay các interface. Do đó mối quan hệ

giữa các lớp thể hiện mối quan hệ giữa các đối tượng hay các lớp ảo (abstraction). Trong lập trình Symbian có 4 mối quan hệ quan trọng:

• uses-a: nếu lớp A uses-a lớp B thì A có một thuộc tính là một đối tượng B.

Một phần của tài liệu TÌM HIỂU và NGHIÊN cứu kỹ THUẬTPHÁT TRIỂN ỨNG DỤNG TRÊN MÔITRƯỜNG SYMBIAN OS (Trang 170)