Tải bản đầy đủ (.pdf) (26 trang)

Đồ án Remote PC viết bằng ngôn ngữ JAVA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.38 MB, 26 trang )

























MÔN HỌC: THỰC HÀNH LẬP TRÌNH JAVA
GIẢNG VIÊN: TRẦN HOÀNG ĐẠT
NHÓM THỰC HIỆN: 03
SINH VIÊN: NGUYỄN VĂN QUÂN 1020172
PHAN LÝ TRÚC ANH 1020005
TIÊU MINH NHỰT 1020145






01/2014
ĐẠI HỌC KHOA HỌC TỰ NHIÊN – ĐHQG TPHCM
KHOA ĐIỆN TỬ VIỄN THÔNG
Page 1 of 25

MỞ ĐẦU 2
CHƢƠNG 1: TÌM HIỂU VỀ J2ME 3
1.1 Kiến trúc J2ME 3
1.1.1 Tầng phần cứng (Device Hardware Layer) 3
1.1.2 Tầng máy ảo (Java Virtual Machine Layer) 3
1.1.3 Tầng cấu hình (Configuration) 5
1.1.4 Tầng hiện trạng (Profile) 5
1.2 MIDP Profile 7
1.3 Xây dựng ứng dụng MIDP – Midlets 8
1.3.1 Sử dụng J2ME Wireless Toolkit (JWT) 8
1.3.2 Đóng gói ứng dụng Midlet 10
1.3.3 Vấn đề bảo mật trong Midlet 12
CHƢƠNG 2: CÔNG NGHỆ BLUETOOTH 13
2.1 Tổng quan về bluetooth 13
2.1.1 Giới thiệu về công nghệ bluetooth 13
2.1.2 So sánh giữa bluetooth và hồng ngoại 13
2.1.3 So sánh giữa bluetooth và 802.11b(wireless LAN) 13
2.2 Kiến trúc của bluetooth 14
2.2.1 Bluetooth protocol stack 14
2.2.2 Lớp (Layer) 14
2.2.3 Các Profile 15

2.3 Các thao tác trên 1 ứng dụng bluetooth 15
CHƢƠNG 3 XÂY DỰNG CHƢƠNG TRÌNH ĐIỀU KHIỂN MÁY TÍNH 16
3.1 Sơ đồ của chương trình 16
3.2 Nhiệm vụ chính của Client và Server 16
3.3 Tập lệnh giao tiếp Client và Server 16
CHƢƠNG 4: CHƢƠNG TRÌNH ĐIỀU KHIỂN MÁY TÍNH 19
4.1 Chức năng 19
4.2 Yêu cầu 19
4.3 Cài đặt 19
4.4 Chạy chương trình 20
KẾT LUẬN 24
TÀI LIỆU THAM KHẢO 25


Page 2 of 25

MỞ ĐẦU
Với mục đích hỗ trợ cho việc trình bày báo cáo, thuyết
trình trong giảng dạy, học tập, làm việc,… nhóm xin được lập
trình ứng dụng RemotePC. Trước đó có vài ứng dụng tương tự
đã được phát triển như Thiết bị hỗ trợ bài giảng điện tử của thầy
Bùi Đức Tuyên, Phone Remote Control trên website
sinhviencuc.com,… Tuy nhiên, đồ án RemotePC được sử dụng
ngôn ngữ lập trình Java, kết nối thiết bị với nhau qua Bluetooth,
có khả năng sử dụng trên máy tính chạy window, đây là bước đổi
mới so với các ứng dụng trên.
Để thực hiện đồ án RemotePC, nhóm phải tham khảo
nhiều tài liệu cũng như bài giảng môn học Lập trình Java. Với
khả năng của nhóm, các chức năng của ứng dụng còn hạn chế, có
ưu và khuyết điểm, tuy nhiên có thể phát triển thêm.

Sau đây là bản báo cáo đồ án RemotePC sau khi đã hoàn
chỉnh ứng dụng.


Page 3 of 25

CHƢƠNG 1: TÌM HIỂU VỀ J2ME
1.1 Kiến trúc J2ME
1.1.1 Tầng phần cứng (Device Hardware Layer)
Đây chính là thiết bị di động thật sự với cấu hình phần cứng của nó về bộ nhớ và
tốc độ xử lý. Thật ra đây không phải là một phần của J2ME nhưng nó là nơi xuất phát.
Các thiết bị di động khác nhau có thể có các bộ vi xử lý khác nhau với các tập mã lệnh
khác nhau. Mục tiêu của J2ME là cung cấp một chuẩn cho tất cả các loại thiết bị di
động khác nhau.
1.1.2 Tầng máy ảo (Java Virtual Machine Layer)
Máy ảo JVM dành cho J2ME thường gọi là KVM vì dung lượng của nó thường
là kilobytes. Khi mã nguồn Java được biên dịch nó được chuyển đổi thành mã
bytecode. Mã bytecode này sau đó được chuyển thành mã ngôn ngữ máy của thiết bị di
động.
Tầng máy ảo Java bao gồm KVM (K Virtual Machine) là bộ biên dịch mã
bytecode có nhiệm vụ chuyển mã bytecode của chương trình Java thành ngôn ngữ máy
để chạy trên thiết bị di động. Tầng này cung cấp một sự chuẩn hóa cho các thiết bị di
động để ứng dụng J2ME sau khi đã biên dịch có thể hoạt động trên bất kỳ thiết bị di
động nào có J2ME KVM.
Để hiểu rõ vai trò của máy ảo KVM chúng ta sẽ xem chi tiết quá trình phát triển
ứng dụng MIDlet với IDE (Môi trường phát triển tích hợp-Intergrated Development
Environment):
- Lập trình viên: Tạo các tập tin nguồn Java: Bước đầu tiên là lập trình viên phải tạo
mã nguồn Java, có thể có nhiều tập tin (*.java).
- Trên IDE: Bộ biên dịch Java (Java Compiler): Biên dịch mã nguồn thành mã

bytecode: Bộ biên dịch Java sẽ biên dịch mã nguồn thành mã bytecode. Mã bytecode
này sẽ được KVM dịch thành mã máy. Mã bytecode đã biên dịch sẽ được lưu trong các
tập tin “.class” và sẽ có một tập tin “.class” sinh ra cho mỗi lớp Java.
- Trên IDE: Bộ tiền kiểm tra (Preverifier): Kiểm tra tính hợp lệ của mã bytecode
Page 4 of 25

Một trong những yêu cầu an toàn của J2ME là bảo đảm mã bytecode chuyển cho KVM
là hợp lệ và không truy xuất các lớp hay bộ nhớ ngoài giới hạn của chúng. Do đó tất cả
các lớp đều phải được tiền kiểm tra trước khi chúng có thể được download về thiết bị
di động. Việc tiền kiểm tra được xem là một phần của môi trường phát triển làm cho
KVM có thể được thu nhỏ hơn. Bộ tiền kiểm tra sẽ gán nhãn lớp bằng một thuộc tính
(attribute) đặc biệt chỉ rằng lớp đó đã được tiền kiểm tra.
- Trên IDE: Tạo tập tin JAR. IDE sẽ tạo một tập tin JAR chứa:
+ Tất cả các tập tin “.class”
+ Các hình ảnh của ứng dụng. Hiện tại chỉ hỗ trợ tập tin *.png
+ Các tập tin dữ liệu có thể được yêu cầu bởi ứng dụng
+ Một tập tin kê khai (manifest.mf) cung cấp mô tả về ứng dụng cho bộ quản lý
ứng dụng (application manager) trên thiết bị di động.
- Tập tin JAR được bán hoặc được phân phối đến người dùng đầu cuối: Sau khi đã
gỡ rối và kiểm tra mã lệnh trên trình giả lập (simulator), mã lệnh đã sẵn sàng được
kiểm tra trên điện thoại di động và sau đó được phân phối cho người dùng.
- Người dùng: Download ứng dụng về thiết bị di động Người dùng sau đó download
tập tin “.jar” chứa ứng dụng về thiết bị di động. Trong hầu hết các điện thoại di động,
có ba cách để download ứng dụng:
+ Kết nối cáp dữ liệu từ PC sang cổng dữ liệu của điện thoại di động
+ Cổng hồng ngoại IR (Infra Red) Port
+ OTA (Over the Air)
- Trên thiết bị di động:
+ Bộ tiền kiểm tra: Kiểm tra mã bytecode: Bộ tiền kiểm tra kiểm tra tất cả các lớp
đều có một thuộc tính hợp lệ đã được thêm vào bởi bộ tiền kiểm tra trên trạm phát

triển ứng dụng. Nếu tiến trình tiền kiểm tra thất bại thì ứng dụng sẽ không được
download về thiết bị di động.
+ Bộ quản lý ứng dụng: Lưu trữ chương trình: Bộ quản lý ứng dụng trên thiết bị di
động sẽ lưu trữ chương trình trên thiết bị di động. Bộ quản lý ứng dụng cũng điều
khiển trạng thái của ứng dụng trong thời gian thực thi và có thể tạm dừng ứng dụng
khi có cuộc gọi hoặc tin nhắn đến.
Page 5 of 25

+ Người dùng: Thực thi ứng dụng
+ Bộ quản lý ứng dụng sẽ chuyển ứng dụng cho KVM để chạy trên thiết bị di động.
+ KVM: Thực thi mã bytecode khi chương trình chạy.
+ KVM dịch mã bytecode sang ngôn ngữ máy của thiết bị di động để chạy.
1.1.3 Tầng cấu hình (Configuration)
Tầng cấu hình định nghĩa giao diện ngôn ngữ Java (Java language interface) cơ
bản để cho phép chương trình Java chạy trên thiết bị di động. Đây là một tập các API
định nghĩa lõi của ngôn ngữ J2ME.
- Một configuration đươc thiết kế cho một loại thiết bị, nó phụ thuộc vào giới hạn bộ
nhớ và khả năng xử lý của loại thiết bị đó đồng thời cũng quy định chính xác các API
nào trong J2SE có thể dùng được trên nền tảng này.
- Hiện tại có 2 loại Configurations là CDC(Connected Device Configuration) và
CLDC(Connected, Limited Device Configuration)
+ CDC: Thiết kế cho các thiết bị 32bit yêu cầu thiết bị phải có:
 ít nhất 512kb bộ nhớ ROM (bộ nhớ chỉ đọc)
 ít nhất 256kb bộ nhớ RAM (bộ nhớ truy cập ngẫu nhiên)
 CDC được thiết kế cho các thiết bị như set-top box của Tivi, hệ thống
điều
khiển xe hơi, các thiết bị cầm tay cao cấp PDA,… CDC hỗ trợ tất cả các
tính năng của JVM phiên bản 2.
+ CLDC: Thiết kế cho các thiết bị quen thuộc như điện thoại di động, máy nhắn tin,
PDA…(16 bit hoặc 32 bit)có cấu hình nhỏ hơn các thiết bị CDC. CLDC yêu cầu tổng

bộ nhớ từ 160kb đến 512kb bao gồm:
 ít nhất 160kb ROM
 và ít nhất 32kb RAM
1.1.4 Tầng hiện trạng (Profile)
- Profile là lớp phía trên lớp Configuration, cộng thêm các API và các chỉ định cần
thiết để phát triển các ứng dụng cho 1 dòng thiết bị.
- Các Profile sẽ chỉ định chi tiết hơn các configuration. 1 Profile về cơ bản là
Page 6 of 25

configuration và cung cấp thêm các API, chẳng hạn như giao diện người dùng, bộ nhớ
lâu dài, và tất cả những gì cần thiết để phát triển được các ứng dụng chạy trên thiết bị.
- Có 7 profile như sau:
+ Foundation Profile: Profile này dành cho các thiết bị CDC có khả năng hỗ trợ kết
nối mạng cao, là cơ sở của 2 lớp Profile bên trên là Personal Basis Profile và
Personal Profile. Sự kết hợp của CDC + Foundation Profile + Personal Basis Profile
+ Personal Profile để tạo ra một môi trường phát triển thế hệ tiếp theo cho các thiết
bị cao cấp gọi là PersonalJava.
+ Game Profile: là profile thiết kế cho các các thiết bị CDC, chứa tất cả các lớp cần
thiết cho việc phát triển các ứng dụng Game trên các thiết bị thuộc loại này.
+ PDA Profile: được xây dựng cho cấu hình CLDC với mục đích cho các thiết bị
palmtop với ít nhất 512kb ROM và RAM.
+ Personal Profile: thường dùng cho cấu hình CDC, và Foundation Profile, chứa
các lớp cần thiết để thực thi một giao diện người dùng phức tạp. Foundation Profile
cung cấp các lớp cơ sở , còn Personal Profile cung cấp các thực thi cụ thể
+ Personal Basis Profile: Tương tự như Personal Profile thường dùng cho cấu hình
CDC, và Foundation Profile. Tuy nhiên, Personal Basis Profile cung cấp các lớp
cần thiết để thực thi một giao diện người dùng đơn giản ví dụ như 1 giao diện cho
phép mỗi lần hiển thị 1 cửa sổ.
+ RMI Profile: thường dùng cho cấu hình CDC, và Foundation Profile để cung cấp
các lớp Remote Method Invocation.

+ Mobile Information Device Profile (MIDP): Các chỉ số yêu cầu của profile này:
 ít nhất 256kb bộ nhớ ROM
 ít nhất 128kb bộ nhớ RAM
 ít nhất 8kb cho vùng nhớ lưu dữ liệu lâu dài
 kích thước tối thiểu màn hình 96×54 pixels

Hiện nay rất nhiều thiết bị hỗ trợ MDIP như điện hoại di động, các máy nhắn tin
đời mới, các thiết bị cầm tay PDA, so với MDIP 1.0, MDIP2.0 có nhiều cải tiến
Page 7 of 25

như hỗ trợ Media, hỗ trợ kết nối https: và quan trọng là hoàn toàn tương thích với
MDIP 1.0

1.2 MIDP Profile
- Hiện nay rất nhiều thiết bị hỗ trợ MDIP như điện hoại di động, các máy nhắn tin
đời mới, các thiết bị cầm tay PDA, so với MDIP 1.0, MDIP2.0 có nhiều cải tiến như hỗ
trợ Media, hỗ trợ kết nối https: và quan trọng là hoàn toàn tương thích với MDIP 1.0
- Chuẩn Platform (Platform Standardization) JSR:
+ Khái niệm Building Blocks ra đời nhằm thay thế cho Configuration và Profile,
để chỉ định các API cho từng dòng thiết bị (các API này thuộc tập con của J2SE). 1
Building Blocks cụ thể gọi là 1 JSR. Bắt đầu từ JSR68 được xây dựng từ năm
2000. trong khi đó, JSR185 được mong đợi sẽ là chuẩn nền tốt.
+ Các API được dùng cho ứng dụng MIDP được quyết định bởi cả CLDC và
MIDP. Trong đó CLDC chỉ định các API cốt lõi, hầu hết thuộc J2SE như lớp cơ sở
java.lang hay các luồng IO trong java.io. Ví dụ MIDP2.0 và CLDC1.1:


Page 8 of 25

1.3 Xây dựng ứng dụng MIDP – Midlets

Quá trình xây dựng 1 ứng dụng Midlet bao gồm các bước : Viết mã> Tiền kiểm
tra> đóng gói> kiểm tra hoặc triển khai.
1.3.1 Sử dụng J2ME Wireless Toolkit (JWT)
- Midlet được phát triển trên máy tính mặc dù khi chạy thực lại trên các thiết bị nhỏ
khác. Để phát triển Midlet, có thể dùng các bộ công cụ (KIT) của Sun hoặc từ các công
ty khác. Bộ công cụ chủ yếu bao gồm các thành phần sau :
+ bộ tiền kiểm tra (preverity tool).
+ Thiết bị giả lập MIDP (Emulator).
+ Trình soạn mã.
+ Các tài liệu.
- Bộ công cụ khá phổ biến hiện nay được cung cấp miễn phí bởi Sun là Sun‟s J2ME
Wireless Toolkit (JWT) tại thời điểm này là JWT2.5. JWT cung cấp công cụ giao diện
đồ họa để xây dựng và đóng gói các ứng dụng Midlet.
- Sử dụng JWT .
+ Việc sử dụng JWT phải kèm theo 1 trình soạn code bất kỳ bởi vì JWT không hỗ
trợ soạn code. Sau khi soạn xong, các file .java được đặt vào thư mục chứa các
project của JWT theo đúng quy tắc (xem ví dụ dưới đây). Quá trình biên dịch mã
được thực hiện bởi JWT.
 Bật JWT
 Chọn “new project”

 Điền tên project và tên lớp chứa Midlet
Page 9 of 25


 Đặt các cấu hình cho ứng dụng (chọn các thông số MIDP và CLDC phù hợp với
ứng dụng) ví dụ MIDP 2.0 và CLDC 1.0

 Dùng trình soạn bất kỳ soạn file “TestMidlet.java”nội dung như sau
package hello;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class TestMidlet extends MIDlet {
public void startApp() {
Form form = new Form("Hello, Midlet!");
StringItem str=new StringItem("", " Hello, Midlet!");
form.append(str);
Display.getDisplay(this).setCurrent(form);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
}
Page 10 of 25

 Lưu thành file “TestMidlet.java”và đặt vào thư mục project Test vừa
tạo:\\DocumentsandSettings\usename\j2mewtk\2.5.2\apps\Test\
src\hello
 Bấm nút “Build” nếu báo thành công thì Bấm “run” để chạy thử sẽ được kết quả


1.3.2 Đóng gói ứng dụng Midlet
- Các ứng dụng Midlet cũng được đóng gói giống như các ứng dụng J2SE dùng công
cụ đóng gói trong Java 2 SDK để nén thành các file “.jar”. Với JWT các ứng dụng sẽ
được tự động đóng gói bằng cách chọn menu Project>Package >Create Package
- Mỗi ứng dụng sẽ gồm 2 file : 1 file “.jar” và 1 file mô tả “.jad”

+ File “.jar” bao gồm :
 File kê khai thông tin Midlet (Manifest Information): mỗi file jar bao gồm 1 file
Page 11 of 25


kê khai nằm trong thư mục META-INF/MANIFEST.MF để mô tả các thông tin
trong file nén. Các file kê khai này phải có phần thông tin mở rộng, những thông tin
này rất quan trọng vì nó cho biết các thông số về môi trường runtime của MIDP ví
dụ như tên lớp chứa Midlet và phiên bản của CLDC và MIDP
 Tập tin manifest.mf có nội dung như sau:
Manifest-Version: //Phiên bản tập tin manifest.mf
MIDlet-Name: //Tên bộ MIDlet
MIDlet-Version: //Phiên bản của bộ MIDlet
MIDlet-Vendor: //Nhà sản xuất
MIDlet-<n>: //Tên của MIDlet chính
MicroEdition-Profile: //Phiên bản hiện trạng
MicroEdition-Configuration: //Phiên bản cấu hình
 Các file “.class” chứa mã bytecode được dịch ra từ các file .java
 Các file thư viện kèm theo và các tài nguyên như các file ảnh .png

+ File mô tả Midlet “.jad” :File này thường đi kèm với mỗi ứng dụng Midlet để
mô tả các thông tin về ứng dụng. thông tin chứa trong file này phần lớn trùng với
các thông tin trong file Manifest chứa trong file nén “.jar”. Tuy nhiên vì nằm
ngoài file “.jar” nên nó cho phép người dùng hoặc trình quản lý Midlet có thể biết
được các thông tin về ứng dụng mà không cần cài đặt ứng dụng đó. File này có
phần mở rộng là .jad ví dụ file “TestMidlet.jad”
MIDlet-1: hello.TestMidlet
MIDlet-Jar-Size: 7641
MIDlet-Jar-URL:TestMidlet.jar
MIDlet-Name: Test
MIDlet-Vendor: Vendor
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0


Page 12 of 25

- Tối ưu mã chương trình và giảm kích thước ứng dụng: Sau khi đóng gói chương
trình thành tập tin JAR chúng ta thấy rằng các file dữ liệu đã được nén lại một cách
đáng kể. Tuy nhiên ta có thể giảm kích thước file JAR này thêm một lần nữa bằng
cách dùng một công cụ. Công cụ này thường bao gồm các đặc tính sau:
+ Loại bỏ các class không dùng đến
+ Loại bỏ các hàm và biến không dùng đến
+ Đổi tên class, package, hàm và biến thành các tên đơn giản và ngắn gọn hơn.
+ Thêm vào file class một số mã để chương trình khó bị dịch ngược hơn Ba đặc
tính đầu dùng để giảm kích thước các file “.class” trong khi đó đặc tính thứ 3 và
thứ 4 dùng để bảo vệ chương trình khó bị dịch ngược lại thành mã nguồn.
1.3.3 Vấn đề bảo mật trong Midlet
- Vấn đề bảo mật trong các ứng dụng wireless là vấn đề quan trọng trong nền cộng
nghiệp wireless bởi :
+ Các nhà phát triển muốn chắc chắn rằng không đưa virus vào các thiết bị của
khách hàng từ network.
+ Các nhà sản xuất thiết bị không muốn khách hàng của họ cài các phần mềm làm
sập thiết bị của họ
+ Người sử dụng muốn có thể chạy các phần mềm không đe dọa đến sự ổn định của
thiết bị và sự an toàn của các thông tin cá nhân
+ Các nhà phát triển thì không muốn các ứng dụng của mình chịu tác động của các
ứng dụng khác.
- Phân quyền (Permissions)
+ Phân quyền cung cấp cho Midlet một kiến trúc bảo mật rõ ràng. Các Midlet phải
được cho phép trong các thao tác nhạy cảm. chỉ có 1 phần API được bảo vệ bởi
phân quyền đó là các kết nối Network. Các API khác thì tự do đưa vào các phân
quyền để bảo vệ dữ liệu hoặc chức năng.
+ Tên các phân quyền sử sự tiền tố giống các lớp hoặc các giao tiếp mà nó bảo vệ.


Page 13 of 25

CHƢƠNG 2: CÔNG NGHỆ BLUETOOTH
2.1 Tổng quan về bluetooth
2.1.1 Giới thiệu về công nghệ bluetooth
Bluetooth là 1 giao thức kết nối không dây và cũng tương tự như các giao thức
kết nối khác mà chúng ta sử dụng hàng ngày như HTTP (giao thức web), FTP (giao
thức truyền file), SMTP(giao thức thư điện tử), bluetooth cũng sử dụng kiến trúc kết
nối khách- chủ (client-server) như những giao thức này. Trong bluetooth, thiết bị nào
bắt đầu 1 kết nối (client) là chủ (master), còn thiết bị nào nhận kết nối (server) là phụ
(slave).

2.1.2 So sánh giữa bluetooth và hồng ngoại
Công nghệ hồng ngoại được ra đời trước bluetooth với 2 nhược điểm lớn nhất
đó là
- Khoảng cách truyền rất ngắn (các thiết bị chỉ cách nhau vài feet (1
feet=0.3048 m)
- Các thiết bị trong khi truyền dự liệu phải đặt thẳng hướng với nhau.
Bluetooth ra đời đã giải quyết trọn vẹn 2 nhược điểm trên:
- Khoảng cách được nâng lên gần tầm 30 feet (cỡ 10m)
- Bluetooth làm việc giống như radio nên việc truyền dữ liệu có thể diễn ra
theo mọi hướng miễn là nằm trong vùng phủ sóng.

2.1.3 So sánh giữa bluetooth và 802.11b(wireless LAN)
- Wireless LAN là 1 giao thức không dây hoạt đông trên cùng dải tần giống bluetooth
(2,4 GHz) nhưng ra đời với mục đích khác. Wireless LAN nhằm kết nối 2 thiết bị có
công suất lớn ở tốc độ cao, cụ thể như kết nối 2 máy tính xách tay ở khoảng cách cỡ
100m với tốc độ truyền dữ liệu 11Mb/s.
- Đối với bluetooth, công nghệ này được tạo ra để kết nối những thiết bị nhỏ hơn (về
công suất và tốc độ) như PDA, điện thoại, trong khoảng 10m trở lại với tốc độ khoảng

1MB/s. khoảng cách ngắn cộng với tốc độ chậm nên công suất của bluetooth rất nhỏ so
Page 14 of 25

với wireless LAN (cỡ 500 lần) có nghĩa là lượng sẽ tiết kiệm được 1 lượng Pin khổng
lồ trên điện thoại
- Bluetooth cũng được tạo ra để thay thế công nghệ dây cáp ví dụ như nếu có quá
nhiều thiết bị ngoại vi kết nối đến máy tính qua chuẩn USB thì bluetooth cũng là 1 lựa
chọn tốt để “không dây hóa” các thiết bị này (công nghệ wireless LAN gần như không
thể sử dụng trong trường hợp này). Như vậy 2 công nghệ này được tạo ra với các mục
đích khác nhau nên không thể thay thế lẫn nhau

2.2 Kiến trúc của bluetooth
2.2.1 Bluetooth protocol stack
Các thiết bị bluetooth muốn kết nối với thế giới bên ngoài đều phải thông qua
các Bluetooth stack giống như 1 bộ điều khiển trung gian để thực hiện các giao thức kết
nối…2 Nhiệm vụ chính của Bluetooth stack là:
- Kết nối với các thiết bị bluetooth khác
- Điều khiển chính thiết bị của nó
Bluetooth Protocol Stack sẽ cho phép các bluetooth client và server trao đổi dữ
liệu qua mạng wireless.

2.2.2 Lớp (Layer)

Bluetooth Stack Có 10 lớp trong đó có một số lớp thường gọi là giao thức
(protocol) bởi vì đó chính là các giao thức con của giao thức Bluetooth Stack . Các
Page 15 of 25

giao thức khác như TCP/IP, OBEX, và WAP tuy không đưa vào nhưng vẫn được coi là
nằm trong bộ giao thức của bluetooth
2.2.3 Các Profile


Profile là 1 chuẩn do SIG đề ra để chuẩn hóa các dạng giao tiếp cho các thiết bị
bluetooth, sử dụng các giao thức tương ứng với các mô hình giao tiếp riêng biệt.
2.3 Các thao tác trên 1 ứng dụng bluetooth
- Stack initialization (khởi tạo bluetoothstack)
- Device management (bước này cho phép quản lý thông tin về các thiết bị bluetooth
như loại thiết bị, tên, địa chỉ MAC… )
- Device discovery (bước này sẽ thực hiện việc dò tìm thiết bị bluetooth khác từ một
thiết bị bluetooth – Trong giao tiếp bluetooth, thiết bị nào bắt đầu việc tìm kiếm được
coi là master (chủ), thiết bị nào treo server chờ thiết bị khác tìm gọi là slave (phụ))
- Service discovery (thao tác tìm dịch vụ của thiết bị bluetooth vừa tìm thấy, mỗi loại
service cho phép giao tiếp dữ liệu theo các kiểu dữ liệu khác nhau)
- Service Registration (Đăng ký service chuẩn bị cho việc giao tiếp)
- Communication (kết nối, giao tiếp dữ liệu).

Page 16 of 25

CHƢƠNG 3 XÂY DỰNG CHƢƠNG TRÌNH ĐIỀU KHIỂN MÁY
TÍNH
Chương trình điều khiển máy tính bằng điện thoại thông qua bluetooth dựa trên
nguyên tắc: máy tính là bên nhận và xử lý dữ liệu từ điện thoại, do đó việc giao tiếp dữ
liệu có thể áp dụng theo mô hình khách chủ (client – server), tuy nhiên do kết nối chỉ
xảy ra giữa 2 thiết bị và thao tác truyền dữ liệu trên server hoặc client tương tự nhau
(đều dùng các đối tượng kết nối và các luồng vào/ra ) nên việc chọn thiết bị nào là
khách hay, chủ hoàn toàn không quan trọng.
3.1 Sơ đồ của chƣơng trình

3.2 Nhiệm vụ chính của Client và Server
- Server (máy tính):
+ Tạo kết nối để sẵn sàng chờ client kết nối

+ Sau khi đã kết nối thành công, server liên tục nhận dữ liệu, nếu nhận được dữ liệu
từ client, server sẽ xử lý dữ liệu và chuyển thành các hoạt động điều khiển tương
ứng
- Client (điện thoại):
+ Tìm thiết bị bluetooth và dịch vụ trên máy tính để kết nối
+ Gửi dữ liệu điều khiển đến máy tính
3.3 Tập lệnh giao tiếp Client và Server
Dữ liệu điều khiển chương trình sử dụng là các chuỗi ký bởi các lý do sau:
- Quá trình truyền dữ liệu được thực hiện bằng các luồng vào/ra và thao tác dữ liệu
Page 17 of 25

đều thông qua dữ liệu kiểu byte trong Java (giá trị từ 0-255) do đó tất cả dữ liệu đều
được chuyển đổi thành kiểu byte trước khi trao đồi
- So với các lệnh quy định bằng số, các lênh bằng chuỗi trực quan hơn
- Cấu trúc của lệnh được đặt sao cho phải:
+ Phân biệt giữa các lệnh khác nhau
+ Phân biệt theo các nhóm chức năng khác nhau
+ Chuỗi lệnh ngắn nhất có thể
- Các lệnh có liên quan đến việc bấm phím được đặt theo cấu trúc :
TÊN_CHỨC_NĂNG + MÃ PHÍM
Ví dụ PPT-1 : có tên chức năng PPT (điều khiển trình chiếu PowerPoint) và mã
phím là -1 (mã của phím „UP‟). Mã phím của điện thoại được tuân theo quy định
chung
Bảng mã lệnh
Cấu trúc lệnh
Ý nghĩa
PPT-1
Tương ứng với phím „UP‟ (tiến lên) trên điện thoại, có chức năng trình
chiếu PowerPoint
PPT 50

Tương ứng với phím số „2‟ trên điện thoại, có chức năng trình chiếu
PowerPoint
PPT-2
Tương ứng với phím „DOWN‟ (phím xuống) trên điện thoại, có chức
năng dừng trình chiếu PowerPoint
PPT56
Tương ứng với phím số „8‟ trên điện thoại, có chức năng dừng trình
chiếu PowerPoint
PPT-4
Tương ứng với phím „RIGHT‟ (phím phải) trên điện thoại, có chức năng
chuyển slide tiếp theo
PPT54
Tương ứng với phím số „6‟ trên điện thoại, có chức năng chuyển slide
tiếp theo
PPT-3
Tương ứng với phím „LEFT‟ (phím trái) trên điện thoại, có chức năng
chuyển qua slide trƣớc
PPT52
Tương ứng với phím số „4‟ trên điện thoại, có chức năng chuyển qua
Page 18 of 25

slide trƣớc
POW49
Tương ứng với phím số „1‟ trên điện thoại, có chức năng tắt máy tính
POW50
Tương ứng với phím số „2‟ trên điện thoại, có chức năng khởi động lại
máy tính
POW51
Tương ứng với phím số „3‟ trên điện thoại, có chức năng đăng xuất (log
off ) máy tính

POW52
Tương ứng với phím số „4‟ trên điện thoại, có chức năng „stand by‟ máy
tính
KEY
Hiện cửa sổ đặt phím trên máy tính
KP+MÃ PHÍM
Bấm phím (hoặc bấm rồi nhả tổ hợp phím) trên máy tính tƣơng ứng
với mã phím đã đặt từ trƣớc
KR+MÃ PHÍM
Nhả phím trên máy tính tƣơng ứng với mã phím đã đặt từ trƣớc



Page 19 of 25

CHƢƠNG 4: CHƢƠNG TRÌNH ĐIỀU KHIỂN MÁY TÍNH
4.1 Chức năng
Chương trình RemotePC được viết bằng ngôn ngữ Java bao gồm 2 phần: 1 phần
chạy trên điện thoại và 1 phần chạy trên máy tính, chương trình có các chức năng
Điều khiển chương trình PowerPoint: Bao gồm các thao tác trình chiếu, tạm dừng;
chuyển slide trước, sau.
- Các thao tác tắt, khởi động lại, đăng xuất, stand by máy tính.
- Tùy chọn đặt phím điều khiển cho bất kỳ chương trình nào (1 phím trên điện thoại
tương ứng với 1 phím hoặc tổ hợp ít hơn 4 phím trên bàn phím máy tính)

4.2 Yêu cầu
- Máy tính và điện thoại hỗ trợ bluetooth có dịch vụ serialport (có thể gửi, nhận
file: bao gồm các máy tính xách tay có hỗ trợ bluetooth hoặc máy tính để bàn dùng usb
bluetooth)
- Điện thoại hỗ trợ cài đặt Java với cấu hình: CLDC 1.0, MIDP 2.0 hoặc cao hơn

(cấu hình này rất phổ biến đối với các điện thoại hỗ trợ Java hiện nay) .
- Máy tính cài Java JRE 1.6 trở lên
(Chương trình được thực hiện trên máy Nokia1760, đã kiểm tra và chạy tốt trên các
máy thuộc dòng BlackBerry hỗ trợ bluetooth và trên máy tính cắm USB bluetooth)

4.3 Cài đặt
Nếu máy tính xách tay có hỗ trợ bluetooth , cần phải cài Driver bluetooth cho
máy để có thể sử dụng được bluetooth, Driver thường trong đĩa đi kèm máy. Để kiểm
tra máy tính đã nhận thiết bị bluetooth chưa: Vào phần ControlPanel > chọn chế độ
"Switch to Classic View" (nếu chưa chọn) sẽ có biểu tương bluetooth như hình sau:
Page 20 of 25




- Cài Java cho máy tính : để chạy được chương trình trên máy tính cần phải cài môi
trường Java (JRE)
- Tiếp theo cần tải bản RemotePC phần chạy trên điện thoại về, chép file “.jar” vào
thẻ
nhớ và cài đặt theo hướng dẫn của máy
- Cuối cùng tải bản RemotePC phần chạy trên máy tính để chạy trực tiếp file “.jar”
(không cần cài đặt)
4.4 Chạy chƣơng trình
- Bước 1: Bước này rất quan trọng, nếu điện thoại và máy tính đã được kết nối với
nhau rồi thì bỏ qua bước này. Nếu chưa, phải "ghép đôi" (pair) 2 thiết bị bluetooth của
máy tính và điện thoại trước khi chạy phần mềm như sau:
+ Trên điện thoại bạn vào mục bluetooth setting đặt chế độ Discovery (chế độ che
giấu của thiết bị) là ON để máy tính hoặc các thiết bị bluetooth khác có thể tìm thấy
nó.
+ Trên máy tính vào bluetooth setting (trong mục ControlPanel) cũng chọn ON cho

chế độ Discovery như hình sau:
Page 21 of 25



+ Tiếp theo, trên máy tính hoặc điện thoại tiến hành tìm thiết bị mới ("add new
device") quá trình này sẽ yêu cầu nhập mã xác nhận, mã cần nhập giống nhau trên
máy tính và điện thoại (ví dụ nhập là '1') . Kết thúc thao tác này bluetooth của điện
thoại và máy tính sẽ được ghép với nhau.


Page 22 of 25

- Bước 2: Trên điện thoại, bật chương trình RemotePC vừa cài, vào Menu > bấm
"Connect " , nếu yêu cầu xác nhận cho phép kết nối, chọn đồng ý
- Bước 3: Trên máy tính, chạy File “.jar”, (lưu ý nếu file “.jar” trên máy tính mặc
định được mở bằng chương trình winrar thì phải sửa thuộc tính “open with” là
Java.)
+ Trong lần đầu chạy đầu tiên, chương trính sẽ thông báo không tìm thấy thiết bị
điều khiển, bấm “OK”

+ Sau đó, chương trình hiện 1 cửa sổ liệt kê các thiết bị đã kết nối, chọn tên máy
điện thoại muốn điều khiển sau đó bấm "Set Remote" để đặt làm thiết bị điều khiển.
Lần chạy sau, chương trình sẽ tìm trên thiết bị đã đặt trước đó

Page 23 of 25

+ Nếu thông báo thành công cần thoát chương trình (bấm chuột phải vào biểu tượng
của chương trình ở góc màn hình, chọn "Exit") rồi bật lại (lúc này điện thoại vẫn
đang chờ kết nối )

+ Nếu muốn đổi thiết bị điều khiển bấm chuột phải vào biểu tượng chương trình,
chọn “Devices”, hộp thoại “My devices” sẽ xuất hiện để đặt lại.
+ Nếu kết nối thành công, trên máy tính sẽ thông báo "Connected" và nháy đỏ,
đồng thời trên điện thoại sẽ chuyển giao diện lựa chọn các chức năng chương trình

Thông báo đã kết nối trên máy tính

- Bước 4: Phím điều khiển trình chiếu powerpoint như hình

SHOW: trình chiếu báo cáo, bài giảng
NEXT: chuyển sang trang kế tiếp
PREV: trở về trang trước đó
STOP: dừng trình chiếu
- Bước 5: Sau khi sử dụng, ngắt kết nối, đóng ứng dụng. Khi ứng dụng trên điện
thoại tắt thì ở máy tính cũng sẽ ngắt kết nối.

Page 24 of 25

KẾT LUẬN
Sản phẩm ứng dụng hoàn thành đảm bảo các yêu cầu cơ bản mà nhóm đã đặt ra. Có
thể sử dụng linh hoạt trong việc trình bày báo cáo, bài giảng. Tuy nhiên vẫn còn ưu –
khuyết điểm của một ứng dụng.
 Ưu điểm:
- Kết nối tốt giữa máy tính và điện thoại
- Thực hiện tốt các phím điều khiển
- Ít bị cản trở bởi các vật che khuất do dùng song Bluetooth
- Phần mềm gọn nhẹ, dễ cài đặt, tháo gỡ, sử dụng
- Có thể phát triển thêm các chức năng điều khiển máy tính, tắt mở máy
tính…
 Khuyết điểm:

- Vì kết nối Bluetooth nên cần đảm bảo pin cung cấp cho điện thoại hoạt động
- Các điện thoại kết nối phải có chất lượng Bluetooth tốt
- Tốc độ điều khiển chưa cao tuyệt đối.

×