MỤC LỤC DANH MỤC HÌNH VẼ ........................................................................4 LỜI NÓI ĐẦU .......................................................................................5 1. PHÂN TÍCH ĐỀ TÀI ....................................................................7 1.1. Yêu cầu ....................................................................................7 1.2. Lựa chọn giải pháp và nội dung thực hiện ..............................7 2. THỰC HIỆN ĐỀ TÀI ...................................................................8 2.1. Phân công công việc cho các thành viên .................................8 2.2. Các công cụ thực hiện .............................................................8 3. LÀM QUEN VỚI BADA SDK ....................................................9 3.1. Download và cài đặt ................................................................9 3.2. Application lifecyclebada .....................................................9 3.3. Tạo Bada Project ...................................................................10 3.4. Các thành phần chính trong Project ......................................11 3.5. Chạy thử bada ........................................................................12 4. CƠ SỞ DỮ LIỆU SỬ DỤNG XML ...........................................13 4.1. Định nghĩa .............................................................................13 4.2. Cú pháp ..................................................................................13 4.3.1. Hàm biến đổi từ string sang char ................................13 4.3.2. Hàm tạo node mới .........................................................13 4.3.3. Hàm lấy ID, tên và tọa độ landmark .............................14 5. CHƯƠNG TRÌNH ĐỊNH VỊ DÙNG GPS .................................14 5.1. Mục đích ................................................................................14 5.2. Tìm hiểu ý nghĩa các hàm .....................................................14 5.3. Tiến hành mô phỏng: .............................................................15 6. LOAD BẢN ĐỒ SỐ ...................................................................17 6.1. Mục đích ................................................................................17 6.2. Tìm hiểu ý nghĩa các hàm .....................................................17 6.2.1. Các lớ đ c ế hừa ...................................................17 6.2.2. Các hàm callback ..........................................................17 6.2.3. Các hàm tự tạo ...............................................................18 6.2.4. Các nam ac cần ử dụng ..........................................18 6.2.5. Giải hích đoạn cod .............................................18 6.3. Tiến hành mô phỏng ..............................................................19 7. PLAY AN AUDIO FILE ............................................................21 7.1. Nhiệm vụ ...............................................................................21 7.2. Các b ớc thực hiện nh au .................................................21 7.3. Giải thích các hàm thực hiện .................................................22 8. KẾT QUẢ ....................................................................................28 9. HƯỚNG PHÁT TRIỂN ĐỀ TÀI ................................................28 TÀI LIỆU THAM KHẢO ...................................................................29
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ-VIỄN THÔNG
-***** -
BÁO CÁO BÀI TẬP DÀI HỆ ĐIỀU HÀNH
Đề tài 5: XÂY DỰNG CHƯƠNG TRÌNH ĐÁNH DẤU VÙNG NGUY HIỂM VÀ CẢNH BÁO KHI ĐI VÀO VÙNG ĐÓ TRÊN HỆ ĐIỀU HÀNH SAMSUNG-BADA
BÙI THỊ THẾ HÀ
VÕ VĂN HÒA ĐẶNG THỊ XUÂN
Hà Nội,10/2011
Trang 2MỤC LỤC
DANH MỤC HÌNH VẼ 4
LỜI NÓI ĐẦU 5
1 PHÂN TÍCH ĐỀ TÀI 7
1.1 Yêu cầu 7
1.2 Lựa chọn giải pháp và nội dung thực hiện 7
2 THỰC HIỆN ĐỀ TÀI 8
2.1 Phân công công việc cho các thành viên 8
2.2 Các công cụ thực hiện 8
3 LÀM QUEN VỚI BADA SDK 9
3.1 Download và cài đặt 9
3.2 Application life-cycle-bada 9
3.3 Tạo Bada Project 10
3.4 Các thành phần chính trong Project 11
3.5 Chạy thử bada 12
4 CƠ SỞ DỮ LIỆU SỬ DỤNG XML 13
4.1 Định nghĩa 13
4.2 Cú pháp 13
4.3.1 Hàm biến đổi từ string sang char* 13
4.3.2 Hàm tạo node mới 13
4.3.3 Hàm lấy ID, tên và tọa độ landmark 14
5 CHƯƠNG TRÌNH ĐỊNH VỊ DÙNG GPS 14
5.1 Mục đích 14
5.2 Tìm hiểu ý nghĩa các hàm 14
5.3 Tiến hành mô phỏng: 15
6 LOAD BẢN ĐỒ SỐ 17
6.1 Mục đích 17
Trang 36.2 Tìm hiểu ý nghĩa các hàm 17
6.2.1 Các lớ đ c ế hừa .17
6.2.2 Các hàm callback 17
6.2.3 Các hàm tự tạo 18
6.2.4 Các nam ac cần ử dụng 18
6.2.5 Giải hích đoạn cod .18
6.3 Tiến hành mô phỏng 19
7 PLAY AN AUDIO FILE 21
7.1 Nhiệm vụ 21
7.2 Các b ớc thực hiện nh au .21
7.3 Giải thích các hàm thực hiện 22
8 KẾT QUẢ 28
9 HƯỚNG PHÁT TRIỂN ĐỀ TÀI 28
TÀI LIỆU THAM KHẢO 29
Trang 4DANH MỤC HÌNH VẼ
Hình 1 Bada là gì? 5
Hình 2 Chu trình phát triển ứng dụng trên nền tảng bada 6
Hình 3 Chu trình s ng của một ứng dụng 10
Hình 4 Tạo Project mới 11
Hình 5 Kết thúc khởi tạo Project 11
Hình 6 Kích hoạt GPS 16
Hình 7 Thiết lập vị trí hiện thời 16
Hình 8 Location update 17
Hình 9 My Position của ch ơng rình 17
Hình 10 Tải ảnh và hiển thị 19
Hình 11 Chuyển sang chế độ ima để đánh dấu vùng nguy hiểm 20
Hình 2 Đánh dấu vùng nguy hiểm 20
Hình 3 Ng ời dùng ch a vào vùng nguy hiểm 21
Hình 4 Khi ng ời dùng vào vùng nguy hiểm 21
Trang 5LỜI NÓI ĐẦU
Hình 1 Bada là gì?
Định nghĩa Bada
Bada đ c đặt tên theo cụm từ tiếng Triều Tiên 바다, mang nghĩa là đại
d ơng hoặc biển
Samsung bada là một nền tảng hoàn chỉnh(hệ điều hành?) rên điện thoại di động thông minh cho phép việc tạo ra một loạt các ứng dụng rên điện thoại di động Samsung
Mục đích của bada
Ngày càng có nhiều ng ời mu n trải nghiệm những ứng dụng kết n i phong phú, hiện chỉ có ở những điện thoại sớm áp dụng công nghệ, những khách hàng giàu có ở những n ớc phát triển hay chỉ dành cho phong cách s ng cụ thể nào đó Sam ung đã cam ết phát triển bada để đ a ỷ nguyên điện thoại thông minh đến cho tất cả mọi ng ời, tạo nên một nền dân chủ thật sự cho hàng tỷ ng ời ở các châu lục trên toàn thế giới
Những đặc điểm chính của bada
- Đáng in cậy
Sam ung đã có 20 năm inh nghiệm ứng dụng các công nghệ đỉnh cao và thiết
bị di động tới mọi khách hàng trên toàn cầu Sam ung bada là đỉnh cao của kinh nghiệm và chuyên môn của Sam ung rong lĩnh vực điện thoại di động, kế thừa và phát triển trên những dòng điện thoại nổi tiếng nh S ar, J và Corby
- Tiềm năng
Samsung bada nhắm đến là một nền tảng hoàn chỉnh rên điện thoại thông minh
áp dụng cho phần lớn hách hàng Trong năm 20 0, bada ẽ đ c áp dụng cho phần lớn các dòng điện thoại cảm ứng của Sam ung Sam ung đã bán đ c gần 40 triệu điện thoại cảm ứng rong năm 2009 và nhắm đến mục tiêu 100 triệu trong
Trang 6năm 20 0 Tiềm năng hị r ờng là rất lớn và có nhiều cơ hội hơn cho các nhà há triển
Giá trị của bada
Với sự ph i h p chặt chẽ giữa bada, các công ty phát triển bada và Samsung
A , ng ời dùng có thể sở hữu vô s ứng dụng cũng nh dịch vụ n i kết giữa
w b và điện thoại di động Samsung bada nâng cao phong cách s ng và mang đến giá trị mới cho bất kỳ ai chấp nhận lời mời vào cuộc hiêu l u của chúng tôi
Hình 2 Chu trình phát triển ứng dụng trên nền tảng bada
Trang 71 PHÂN TÍCH ĐỀ TÀI
1.1 Yêu cầu
Bài tập 5:
Cài đặt, cấu hình và chạy thử hệ điều hành Bada (của Samsung) trên thiết bị
di động hoặc trình phỏng tạo ( mula or) Sau đó
1 Cho hé đánh dấu một vùng trên bản đồ s là nguy hiểm
2 Khi ng ời cầm thiết bịđi vào vùng đó, có một bản tin âm thanh phát ra nhắc nhở ng ời đó đang đi vào vùng nguy hiểm nói trên
1.2 Lựa chọn giải pháp và nội dung thực hiện
Do giới hạn về thời gian thực hiện đề tài, về s l ng thành viên và hạn chế
v n hiểu biết của các thành viên nên nhóm th ng nhất hoàn thành bài tập thực hiện các chức năng au
- Cài đặt, cấu hình, chạy thử hệ điều hành Bada trên trình phỏng tạo bada SDK(Software Development Kit)
- Viế ch ơng rình chạy trên Bada thực hiện các yêu cầu:
o Kiểm tra vị trí có trong vùng nguy hiểm nào không
o Thông báo nếu thiết bị đi vào vùng nguy hiểm bằng cách mở 1 file media
- Báo cáo
o Nhóm
o Mỗi cá nhân
Trang 82 THỰC HIỆN ĐỀ TÀI
2.1 Phân công công việc cho các thành viên
1 Vũ Văn Bình -Tìm hiểu, lập
trình trên badaSDK
-Hiểu cấu trúc của bada và 1 ứng dụng trên bada
-Đề xuất giải pháp
-Kiểm thử và báo cáo
-Xác định vị trí thiết bị bằng GPS -Kiểm tra thiết bị
có vào vùng nguy hiểm không
-Viết báo cáo nhóm
Trang 93 LÀM QUEN VỚI BADA SDK
hệ điều hành Window, do đó máy hải cài WindowXP trở lên nếu
mu n cài đặt và chạy bada SDK và IDE Yêu cầu về cấu hình máy:
• Hệ điều hành Microsoft Windows® XP, Windows® Vista hoặc Windows® 7
• Í nhất 1.4 GB bộ nhớ RAM
• Í nhất còn tr ng 8 GB đĩa cứng
• Quyền admin trên máy
• Kích h ớc màn hình của bada Simulator là 480 * 800 Nếu độ phân giải màn hình của máy bạn d ới 800, thì bada Simulator sẽ không hiển thị đ c những ứng dụng có sử dụng OpenGL®
- L u ý Trong lần đầu tiên khởi chạy bada IDE, thì một cửa sổ thông báo sẽ hiện lên, yêu cầu lựa chọn đ ờng dẫn đến workspace mặc định
Đ ờng dẫn đ c chỉ định hông đ c phép chứa kí tự trắng( ơng ự
nh đ ờng dẫn đến các project), vì nó sẽ khiến cho ch ơng rình hông d bug đ c Nguyên nhân là do bada sử dụng trình gỡ r i gdb Trình này hông cho hé đ ờng dẫn đến tập tin dự án có chứa
kí tự trắng
3.2 Application life-cycle-bada
Trang 10Khôi phục xử lý đồ họa (3D or animation)
Khôi phục các operations mà bị dừng lại khi ứng dụng lần cu i chuyển sang background
Trang 11Hình 4 Tạo Project mới
Đặt tên Project name :binhvu,và orm name mặc định: binhvuForm>> fini h để khởi tạo Project
Hình 5 Kết thúc khởi tạo Project
3.4 Các thành phần chính trong Project
Trang 12Khi tạo mới một ứng dụng bada, trong workspace bao gồm các folder mà ta đặt cho mỗi ứng dụng sẽ viết
Bên trong nó bạn sẽ thấy vài fold r con, ý nghĩa của mỗi fold r nh au
- old r /inc là nơi chứa mã c++ của project Nó chứa các file *.h old r / rc cũng là nơi chứa mã c++ của project, nó chứa file cpp, bao gồm cả mộ fil En ry cái mà định nghĩa ứng dụng entry point đến Framework Nó sẽ tự tạo ra và không cần sửa đổi Folder /Home
là file hệ th ng g c cho bất kỳ file dữ liệu nào hoặc những folders
mà ứng dụng của bạn đọc hoặc ghi Folder này sẽ rỗng cho đến khi một ứng dụng mới đ c tạo và l u fil dữ liệu, nh ng nó luôn tồn tại, thậm chí nếu không sử dụng bởi ứng dụng
- old r /Icon là nơi l u rữ những Icon đ c sử dụng cho ứng dụng,
và nó là nơi để Winzard copy icon mặc định của ứng dụng, cái mà bạn nên hay đổi cho tính nghệ thuật của lập trình viên
- Folder /Re là nơi mà ứng dụng l u rữ những files tài nguyên mà nó
sử dụng, điển hình nh orm và S ring orm hì đ c định nghĩa bởi những fil định nghĩa XML Chúng a ẽ thấy tài nguyên nào sẽ
đ c sử dụng khi chúng ta tao project UI
- Chú ý: Folder /Icons, /Hom và /R cũng đ c tạo ra nh những folder trong thiết bị thật của bạn khi bạn cài đặt ứng dụng, Trong điện thoại, /Icons và /Res là những vị trí hệ th ng chỉ đọc (Read-only), rong hi /Hom hì đ c đọc,ghi cho riêng ứng dụng của bạn Trong IDE, Projec Ex lo r cũng cho a hấy một folder /Include, nó
là một folder ảo và sẽ ánh xạ tất cả đ ờng dẫn cho project của bạn
Nó không phải là một folder vật lý trong hệ th ng file windows của bạn
Pro c Ex lor r cũng giấu vài files cái mà bạn sẽ nhìn thấy trong hệ
th ng file windows, với ên nh .bada r , c ro c và ro c Đây
là những nơi chứa file Eclipse chuẩn cái mà bạn có thể bỏ qua
3.5 Chạy thử bada
Làm quen với giao diện lập trình và các hàm, thao tác lập trình qua các ví
dụ tại địa chỉ d%E1%BB%A5ng/
http://badavn.wordpress.com/category/%E1%BB%A9ng-H ớng dẫn cụ thể đ c đề cập trong http://badavn.wordpress.com/category/%E1%BB%A9ng-Help-bada IDE
Trang 134 CƠ SỞ DỮ LIỆU SỬ DỤNG XML
4.1 Định nghĩa
XML (viết tắt từ tiếng Anh eXtensible Markup Language, "Ngôn ngữ
Đánh dấu Mở rộng") là ngôn ngữ đánh dấu với mục đích chung do W3C đề nghị, để tạo ra các ngôn ngữ đánh dấu hác Đây là một tậ con đơn giản của SGML, có khả năng mô ả nhiều loại dữ liệu khác nhau
Mục đích chính của XML là đơn giản hóa việc chia sẻ dữ liệu giữa các
hệ th ng hác nhau, đặc biệt là các hệ th ng đ c kết n i với Internet Các ngôn ngữ dựa trên XML (thí dụ RDF, RSS, MatML, XHTML, SVG, GML, cXML) đ c định nghĩa h o cách hông h ờng, cho phép các
ch ơng rình ửa đổi và kiểm tra h p lệ bằng các ngôn ngữ này mà không cần có hiểu biế r ớc về hình thức của chúng
tự và các phụ thuộc bên ngoài
Phần còn lại của tài liệu này chứa các phần tử lồng nhau, một s phần tử rong đó có các thuộc tính và nội dung Một phần tử h ờng bao gồm hai thẻ (tag), một thẻ bắ đầu và một thẻ kết thúc, có thể bao quanh văn bản và các phần tử khác Thẻ bắ đầu bao gồm mộ cái ên đặt trong một cặp ngoặc nhọn, nh "<roo >"; thẻ kết thúc bao gồm chính cái ên đó đặt trong một cặp ngoặc nhọn, với một dấu gạch chéo đứng r ớc, nh "</roo >"
File xml sẽ đ c dùng để l u rữ tọa độ u r, và đ ờng bao tọa độ vùng nguy hiểm
Trang 14Khi gọi hàm này một node mới sẽ đ c tạo ra với các thuộc tính: ID của node, tên node và coordinates
4.3.3 Hàm lấy ID, tên và tọa độ landmark
public Osp::Ui::Controls::Form,
public Osp::Ui::IActionEventListener,
public Osp::Locations::ILocationListener
Ở đây m chỉ đề cậ đến ự ế hừa của Cla ILocationListener
Lớ này có 2 h ơng hức ảo đ c ế hừa
virtual void OnLocationUpdated(Osp::Locations::Location& location);
virtual void
OnProviderStateChanged(Osp::Locations::LocProviderState
newState);
Method: void OnLocationUpdated(Osp::Locations::Location& location);
Sẽ cậ nhậ vị rí hiện ại au những hoảng hời gian đ c định r ớc
Các nam ac cần ử dụng
using namespace Osp::Base;
using namespace Osp::Ui;
using namespace Osp::Ui::Controls;
using namespace Osp::Locations;
Nam ac Loca ion chứa các lớ Loca ionProvid r, QualifiedCoordinates
Cla Loca ionProvid r cung cấ các chức năng hởi ạo cho ứng dụng,
Cla Qualifi dCoordina cung cấ inh độ,vĩ độ,cao độ
Giải hích đoạn cod quan rọng:
Trang 15}
Trong hàm rên Loca ionProvid r là con rỏ lớ Loca ionProvid r Osp::Locations::LocationProvider* pLocationProvider;
Câu lệnh : pLocationProvider->Construct(LOC_METHOD_GPS);
Xây dựng h ơng hức xác định vị rí của hiế bị bằng GPS
Ph ơng hức RequestLocationUpdates(*this,5,false) ẽ há inh ự iện
OnLocationUpdated au những hoảng hời gian là
void
GPSForm::OnLocationUpdated(Osp::Locations::Location& location) {
}
Khi h ơng hức này xảy ra,việc của chúng a là ẽ cậ nhậ giá rị của inh độ và vĩ độ hiện
ại của hiế bị Sử dụng con rỏ Cla Qualifi dCoordina để lấy giá rị của inh độ qua câu lệnh latitude=p->GetLatitude(); và lấy giá rị của vĩ độ qua câu lệnh log i ud -
>GetLongitude();
5.3 Tiến hành mô phỏng:
- Sau hi buil hành công, chạy Run As>>Bada Simulator Application
- Đầu iên hải ích hoạ GPS lên nh au
Vào S ing >>Conn c ivi y>>Loca ion>>Enabl loca ion rvic , Enabl advanc d GPS
Trang 16Hình 6 Kích hoạt GPS
- Sau đó ích chuộ hải lên orm>>chọn Ev n Ịn c or>>chọn Loca ion>>chọn Location Data
- Nhậ inh độ và vĩ độ vào 2 x box La i ud và Long i ud >> au đó ấn S nd Log
Hình 7 Thiết lập vị trí hiện thời
Khi đó cứ hoảng u u xuấ hiện dòng chữ au hì chứng ỏ ứng dụng đã hoạ động
Trang 17public Osp::Ui:: ITouchEventListener ,
public Osp::Ui:: IActionEventListener ,
public Osp::Locations::Services:: IMapServiceListener ,
public Osp::Locations::Controls:: IMapEventListener ,
public Osp::Locations:: IAreaListener ,
6.2.2 Các hàm callback
virtual void OnTouchPressed( const Osp::Ui:: Control & source, const Osp::Graphics:: Point & currentPosition, const
Osp::Ui:: TouchEventInfo & touchInfo) (1)
// Hàm đ c gọi hi ng ời dùng touch màn hình
virtual void OnActionPerformed(const Osp::Ui::Control& source, int actionId)(2)
// hàm tự động đ c gọi khi ng ời dùng ác động vào 1 phím trên màn hình
Trang 18virtual void OnMapDrawCompleted( const
Osp::Locations::Controls:: Map & source)(4)
// Dùng để lấy tọa độ trung tâm của đ i ng ma hi mà đ i ng map
đ c di chuyển trên bản đồ -> dùng để xđ rung âm của imap ( tọa độ trung tâm là tọa độ nhìn trên màn hình
virtual void OnBoundaryCrossed( const GeographicArea & area,
Location & location)
// xác định đ c đ i ng ra khỏi vùng đánh dấu dùng cờ
6.2.3 Các hàm tự tạo
InitializeMap() // load bản đồ s lên map control
InitializeMapService() // load bản đồ s lên imap control
OnTouchPressed()//xmlclass ->WNodeLandMark(idnew,toado)- hàm này
là hàm chính cho hé máy l u ọa độ vào cơ ở dl -> có hàm xđ ọa độ trung tâm của vùng nguy hiểm -> in ra
OnLocationUpdated()// quét tất cả các vùng landmark thông qua id -> kiểm tra tọa độ mình đang đứng có thuộc vùng đó hông hông qua hàm
polygonGeoArea ContainsCoordinates(&coord)( = true nếu ở trong else nếu ở ngoài)
TestLandMark()// khôi phục lại vùng nguy hiểm thông qua id của nó
6.2.4 Các nam ac cần ử dụng
using namespace Osp::Base;
using namespace Osp::Base::Collection;
using namespace Osp::Base::Utility;
using namespace Osp::Graphics;
using namespace Osp::Ui;
using namespace Osp::Ui::Controls;
using namespace Osp::Locales;
using namespace Osp::Locations;
using namespace Osp::Locations::Services;
6.2.5 Giải hích đoạn cod
Với dữ liệu đầu vào là tọa độ lấy từ GPS ta sẽ viế đoạn cod này để kiểm tra xem tọa độ đó có nằm trong hay nằm ngoài vùng đó rong cơ ở dl //Tim tat ca cac diem LandMark
Osp::Base::Collection:: ArrayList * pListLandM= xmlclass
->SearchAllLandMark();
for(int i=0;i<pListLandM->GetCount();i++)