1. Trang chủ
  2. » Luận Văn - Báo Cáo

QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH

137 606 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Quản Lý Phòng Máy Thư Viện Bằng Mã Vạch
Người hướng dẫn ThS. Phạm Thế Bảo, ThS. Nguyễn Minh Hiệp
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh - Trường Đại Học Khoa Học Tự Nhiên
Chuyên ngành Toán – Tin Ứng Dụng
Thể loại Luận Văn Tốt Nghiệp
Năm xuất bản 2004
Thành phố Hồ Chí Minh
Định dạng
Số trang 137
Dung lượng 4,03 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

KHOA TOÁN - TIN HỌC CHUYÊN NGÀNH : TOÁN – TIN ỨNG DỤNG

WUX

LUẬN VĂN TỐT NGHIỆP

ĐỀ TÀI :

Giáo Viên Hướng Dẫn : ThS PHẠM THẾ BẢO

Giáo Viên Phản Biện : ThS NGUYỄN GIANG SƠN Sinh Viên Thực Hiện : ÂU DƯƠNG ĐẠT

LÊ THÀNH NGUYÊN

Trang 2

NIÊN KHOÁ 2000 - 2004

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Trang 3

LỜI CẢM ƠN

Chúng em xin bày tỏ chân thành lòng biết ơn đến thầy Phạm Thế Bảo, người đã

cung cấp tài liệu, tận tình hướng dẫn, chỉ bảo chúng em trong suốt quá trình làm và

hoàn thành luận văn

Chúng em xin cảm ơn các thầy, cô trong khoa Toán – Tin học đã tạo mọi điều

kiện thuận lợi giúp đỡ chúng em trong suốt bốn năm học đại học

Đồng thời, chúng em xin cảm ơn các anh, chị khóa trước đã giúp đỡ chúng em

nhiệt tình và cho chúng em nhiều lời khuyên bổ ích

Cảm ơn các bạn sinh viên lớp Toán – Tin học 2000 đã chia sẻ và động viên chúng

tôi trong suốt quá trình thực hiện luận văn

Cuối cùng, chúng con xin gửi lời cảm ơn chân thành nhất đến bố mẹ và mọi

người trong gia đình đã động viên, giúp đỡ chúng con cả về vật chất lẫn tinh thần để

chúng con có được kết quả ngày hôm nay

TP Hồ Chí Minh, tháng 7 năm 2004

Trang 4

II Mã vạch 2 chiều: Error! Bookmark not defined II.1 Thông tin về mã vạch 2 chiều: Error! Bookmark not defined II.1.1 Mã vạch 2 chiều là gì? Error! Bookmark not defined II.1.2 Mã vạch 2 chiều chứa đựng thông tin gì? Error! Bookmark not

defined.

II.1.3 Cấu trúc của mã vạch 2 chiều: Error! Bookmark not defined II.2 Ứng dụng trong thực tế: Error! Bookmark not defined II.3 Ưu khuyết điểm: Error! Bookmark not defined II.3.1 Ưu điểm: Error! Bookmark not defined II.3.2 Khuyết điểm: Error! Bookmark not defined.

Trang 5

II.4 Giới thiệu một số loại mã vạch: Error! Bookmark not defined.

II.4.1.PDF417: Error! Bookmark not defined.

II.4.2.Data Matrix: Error! Bookmark not defined II.4.3 Maxi Code: Error! Bookmark not defined II.5 So sánh giữa các loại mã vạch: Error! Bookmark not defined II.6 Mã vạch PDF417: Error! Bookmark not defined II.6.1 Mã hóa mã vạch PDF417: Error! Bookmark not defined II.6.1.1 Mã hóa mức cao: Error! Bookmark not defined II.6.1.2 Mã hóa mức thấp Error! Bookmark not defined II.6.2 Cơ chế phát hiện và sửa lỗi của mã vạch PDF417: Error! Bookmark

not defined.

II.6.2.1 Cấp độ sửa lỗi được đề nghị : Error! Bookmark not defined II.6.2.2 Những vấn đề khác cần biết đến khi sử dụng cấp độ sửa lỗi: Error!

Bookmark not defined.

II.6.2.3 Bảng hệ số đa thức khai triển tương ứng các cấp độ bảo mật: Error!

Bookmark not defined.

III Ứng dụng thực tế của mã vạch: Error! Bookmark not defined III.1 Ứng dụng trong xét nghiệm Error! Bookmark not defined III.2 Ứng dụng trong việc trồng và bán rau sạch Error! Bookmark not defined.

III.3.Ứng dụng trong việc tránh sử dụng nhầm thuốc Error! Bookmark not

defined.

III.4 Ứng dụng trong việc làm CMND Error! Bookmark not defined III.5 Ứng dụng trong làm thẻ học sinh Error! Bookmark not defined III.6 Ứng dụng trong việc ghi hạn sử dụng của sữa Vinamilk Error! Bookmark

CHƯƠNG 2 – QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH Error!

Bookmark not defined

Trang 6

I Đặt vấn đề: Error! Bookmark not defined.

II Phân tích yêu cầu: Error! Bookmark not defined II.1 Về mặt ứng dụng: Error! Bookmark not defined II.1.1 Module 1: Error! Bookmark not defined II.1.2 Module 2: Error! Bookmark not defined II.1.3 Module 3: Error! Bookmark not defined II.1.4 Module 4: Error! Bookmark not defined II.2 Về mặt kĩ thuật: Error! Bookmark not defined II.3 Các yêu cầu khác: Error! Bookmark not defined III Thiết kế: Error! Bookmark not defined III.1 Kiến trúc hệ thống: Error! Bookmark not defined III.2 Thiết kế tổng quát: Error! Bookmark not defined III.2.1 Thủ thư: Error! Bookmark not defined III.2.1.1 Ứng dụng web: Error! Bookmark not defined III.2.1.2 Ứng dụng trên máy đơn: Error! Bookmark not defined III.2.2 Sinh viên: Error! Bookmark not defined III.3 Thiết kế Cơ sở dữ liệu: Error! Bookmark not defined III.3.1 Bảng Sinh viên: Error! Bookmark not defined III.3.2 Bảng Hẹn: Error! Bookmark not defined III.3.3 Bảng Hẹn sinh viên: Error! Bookmark not defined III.3.4 Bảng Lớp: Error! Bookmark not defined III.3.5 Bảng Phòng máy: Error! Bookmark not defined III.3.6 Bảng Thủ thư : Error! Bookmark not defined III.4 Thiết kế xử lý: Error! Bookmark not defined III.4.1 Xử lý: đăng kí làm thẻ của sinh viên Error! Bookmark not defined III.4.2 Xử lý: đăng nhập của sinh viên Error! Bookmark not defined III.4.3 Xử lý: đăng nhập của thủ thư Error! Bookmark not defined III.4.4 Xử lý: hẹn ngày chụp hình của thủ thư Error! Bookmark not defined III.4.5 Xử lý: thêm lớp của thủ thư Error! Bookmark not defined III.4.6 Xử lý: tìm kiếm sinh viên của thủ thư Error! Bookmark not defined III.4.7 Xử lý: quy định thời gian của thủ thư Error! Bookmark not defined.

Trang 7

III.4.9 Xử lý: in phiếu chụp hình cho sinh viên của thủ thư Error! Bookmark

CHƯƠNG 3 – CÔNG NGHỆ SỬ DỤNG Error! Bookmark not defined.

I JSP / Servlet: Error! Bookmark not defined I.1 Java Server Page (JSP): Error! Bookmark not defined I.1.1 Khái niệm: Error! Bookmark not defined I.1.2 Cấu trúc thẻ: Error! Bookmark not defined I.1.2.1 Thẻ chỉ dẫn: Error! Bookmark not defined I.1.2.2 Thẻ kịch bản: Error! Bookmark not defined I.1.2.3 Các hành động chuẩn: Error! Bookmark not defined I.1.3 Các đối tượng ẩn (implicit object): Error! Bookmark not defined I.1.3.1 Đối tượng Request: Error! Bookmark not defined I.1.3.2 Đối tượng Response: Error! Bookmark not defined I.1.3.3 Đối tượng session: Error! Bookmark not defined I.1.3.4 Đối tượng Application: Error! Bookmark not defined I.1.3.5 Đối tượng Out: Error! Bookmark not defined I.1.3.6 Đối tượng Config: Error! Bookmark not defined I.1.3.7 Đối tượng Exception: Error! Bookmark not defined I.1.4 Chu trình sống của JSP Error! Bookmark not defined I.1.4.1 Biên dịch trang JSP: Error! Bookmark not defined I.1.4.2 Nạp trang: Error! Bookmark not defined I.1.4.3 Khởi tạo: Error! Bookmark not defined I.1.4.4 Thực thi: Error! Bookmark not defined I.1.4.5 Dọn dẹp: Error! Bookmark not defined I.2 Servlet: Error! Bookmark not defined I.2.1 Khái niệm: Error! Bookmark not defined I.2.2 Các phương thức xử lý cơ bản: Error! Bookmark not defined I.2.2.1 Phương thức khởi tạo init(): Error! Bookmark not defined.

Trang 8

I.2.2.2 Phương thức phục vụ service(): Error! Bookmark not defined I.2.2.3 Phương thức huỷ destroy(): Error! Bookmark not defined I.2.2.4 Phương thức getServletConfig() và getServletInfo(): Error!

Bookmark not defined.

I.2.3 Chu trình sống của servlet: Error! Bookmark not defined I.2.3.1 Nạp servlet: Error! Bookmark not defined I.2.3.2 Khởi tạo servlet: Error! Bookmark not defined I.2.3.3 Thực thi servlet: Error! Bookmark not defined I.2.3.4 Dọn dẹp servlet: Error! Bookmark not defined I.3 So sánh giữa JSP và Servlet: Error! Bookmark not defined.

II JDBC: Error! Bookmark not defined II.1 Giới thiệu: Error! Bookmark not defined II.2 Khái quát: Error! Bookmark not defined II.2.1 java.sql.DriverManager Error! Bookmark not defined II.2.2 java.sql.Connection Error! Bookmark not defined II.2.3 java.sql.Statement Error! Bookmark not defined II.2.4 java.sql.ResultSet Error! Bookmark not defined II.3 Các kiểu JDBC: Error! Bookmark not defined II.3.1 Kiểu 1:JDBC sử dụng cầu nối ODBC (JDBC-ODBC Bridge) Error!

Bookmark not defined.

II.3.2 Kiểu 2:JDBC kết nối trực tiếp với các trình điều khiển cơ sở dữ liệu

Error! Bookmark not defined II.3.3 Kiểu 3:JDBC kết nối thông qua các ứng dụng mạng trung gian Error!

Bookmark not defined.

II.3.4 Kiểu 4:JDBC kết nối thông qua các trình điều khiển đặc thù ở xa Error!

Bookmark not defined.

II.4 Truy xuất cơ sở dữ liệu: Error! Bookmark not defined II.4.1 Kết nối với cơ sở dữ liệu: Error! Bookmark not defined II.4.2 Truy vấn dữ liệu: Error! Bookmark not defined II.4.3 Trích xuất dữ liệu: Error! Bookmark not defined II.4.4 Đóng kết nối: Error! Bookmark not defined.

Trang 9

III.1 Tổng quan: Error! Bookmark not defined III.2 Kiến trúc JMF: Error! Bookmark not defined III.2.1 Dữ liệu nguồn: Error! Bookmark not defined III.2.1.1 Dữ liệu nguồn kéo: Error! Bookmark not defined III.2.1.2 Dữ liệu nguồn đẩy: Error! Bookmark not defined III.2.2 Thiết bị thu: Error! Bookmark not defined III.2.3 Player: Error! Bookmark not defined III.2.3.1 Không nhận biết: Error! Bookmark not defined III.2.3.2 Nhận biết: Error! Bookmark not defined III.2.3.3 Đã nhận biết: Error! Bookmark not defined III.2.3.4 Tìm kiếm: Error! Bookmark not defined III.2.3.5 Đã tìm kiếm: Error! Bookmark not defined III.2.3.6 Bắt đầu: Error! Bookmark not defined III.2.4 Processor: Error! Bookmark not defined III.2.4.1 Định hình: Error! Bookmark not defined III.2.4.2 Đã định hình: Error! Bookmark not defined III.2.5 DataSink: Error! Bookmark not defined III.2.6 Format: Error! Bookmark not defined III.2.7 Manager: Error! Bookmark not defined III.2.7.1 Manager: Error! Bookmark not defined III.2.7.2 CaptureDeviceManager: Error! Bookmark not defined III.2.7.3 PlugInManager: Error! Bookmark not defined III.3 Các phương thức thực hiện: Error! Bookmark not defined III.3.1 Tạo ra Player: Error! Bookmark not defined III.3.2 Thu dữ liệu media Error! Bookmark not defined III.4 Lấy hình ảnh từ webcam sử dụng JMF: Error! Bookmark not defined III.4.1 Giới thiệu: Error! Bookmark not defined III.4.2 Tên thiết bị : Error! Bookmark not defined III.4.3 Lấy định dạng đúng: Error! Bookmark not defined III.4.4 Lấy DataSource: Error! Bookmark not defined III.4.5 Lấy Processor Error! Bookmark not defined III.4.6 PushBufferStream: Error! Bookmark not defined.

Trang 10

III.4.7 Lấy Image: Error! Bookmark not defined III.5 Chương trình đầy đủ minh họa việc lấy ảnh từ camera: Error! Bookmark

not defined.

CHƯƠNG 4 – CÀI ĐẶT, ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN Error!

Bookmark not defined

I Cài đặt: Error! Bookmark not defined I.1 Tại sao cần cài đặt cơ chế chia sẻ kết nối (Connnection Pool): Error!

Bookmark not defined.

I.2 Tại sao lại sử dụng JMF: Error! Bookmark not defined I.3 Hình ảnh các module của hệ thống Error! Bookmark not defined.

II Đánh giá: Error! Bookmark not defined II.1 Tự đánh giá: Error! Bookmark not defined II.2 Thư viện đánh giá: Error! Bookmark not defined III Hướng phát triển: Error! Bookmark not defined.

PHỤ LỤC Error! Bookmark not defined.

I Cài đặt hệ quản trị CSDL: MS SQL Server 2000 Error! Bookmark not defined.

II Cài đặt Webserver : Apache Tomcat 5.0.25 Error! Bookmark not defined III Cài đặt JMF : Java Media Framework Error! Bookmark not defined.

TÀI LIỆU THAM KHẢO Error! Bookmark not defined.

Trang 11

LỜI MỞ ĐẦU

Trong những năm gần đây với sự phát triển vượt bậc của công nghệ thông tin, những ứng dụng của công nghệ thông tin vào các lãnh vực đã đóng vai trò to lớn cho

sự phát triển của nhân loại Áp dụng quản lý bằng máy tính thay cho quản lý bằng tay

ở các tổ chức, công ty, cơ quan, đơn vị… là vô cùng cần thiết khi ở đó, sự nhanh chóng, chính xác và tính hiệu quả được đặt lên hàng đầu

Ở Thư viện trường Đại học Khoa Học Tự Nhiên, việc quản lý sinh viên sử dụng phòng máy của thư viện từ trước đến nay đều chủ yếu thực hiện bằng tay, từ việc làm thẻ, dán ảnh, đến nhập thông tin của sinh viên vào máy tính Vì vậy, sẽ mất nhiều thời gian cho việc quản lý và hiệu quả không cao Do đó, mục tiêu của đề tài là xây dựng chương trình quản lý sinh viên sử dụng phòng máy và tạo thẻ dựa trên mã vạch, qua

đó tăng độ chính xác và giảm thiểu sai sót

Chương trình quản lý sinh viên sử dụng phòng máy là một bộ công cụ hỗ trợ quản lý phòng máy thư viện bao gồm: hệ thống Web cho phép sinh viên đăng kí trực tuyến, hẹn ngày chụp hình trực tuyến, thủ thư quản lý sinh viên; công cụ tạo và in thẻ phòng máy; công cụ quản lý sử dụng máy tính Chương trình sử dụng Java là ngôn ngữ mạnh theo hướng thuần đối tượng, mã nguồn mở để xây dựng các ứng dụng Chương trình chạy trên môi trường Window có giao diện thân thiện với người sử dụng

Do khả năng có hạn và thời gian không cho phép nên không tránh khỏi những sai sót, rất mong sự góp ý của quý thầy cô và các bạn

Một lần nữa xin chân thành cảm ơn tất cả quý Thầy, Cô và các bạn !

Trang 12

CHƯƠNG 1 – KHÁI NIỆM MÃ VẠCH

Trang 13

I.1.2 Mã vạch chứa đựng thông tin gì?

Nội dung được chứa đựng trong mã vạch tuỳ thuộc vào người dùng muốn mã hoá cái gì, nội dung đó có thể là mã số một mặt hàng, tên nhân viên, tên hàng hoá,

Đa số các mã vạch có một hàng gồm chữ và số ngay bên dưới mã vạch Chúng ta

có thể dễ dàng đọc nội dung trong hàng này Nó được sử dụng khi mã vạch vì một lý

do nào đó bị hư hại, không đọc được Khi đó, hàng này sẽ đóng vai trò cung cấp lại nội dung đã được mã hoá trong mã vạch

Bản thân mã vạch một chiều không chứa đựng cơ sở dữ liệu Khi mã được nhận thông qua một máy quét, người sử dụng lấy thông tin bằng cách tương ứng mã nhận được này vào một CSDL có sẵn, từ đó có được những nội dung cần biết

Trang 14

Hình 1.2

I.1.3 Cấu trúc của mã vạch 1 chiều:

Mỗi mã vạch bắt đầu bằng kí tự bắt đầu và kết thúc bằng kí tự kết thúc Những kí

tự đặc biệt này giúp cho máy đọc có thể xác định được vị trí của mã vạch và quét từ đầu đến cuối

Mỗi mã vạch có thể có một kí tự kiểm tra ngay trước kí tự kết thúc Kí tự kiểm tra này được tính toán khi mã vạch được in ra dựa trên những kí tự trên mã vạch Máy đọc thực hiện tính toán kí tự kiểm tra và so sánh kết quả tính được với kí tự kiểm tra đọc được ở cuối mã vạch Nếu hai kết quả này không giống nhau, máy đọc sẽ cho rằng có cái gì đó sai sót, nó sẽ thoát ra và thử thực hiện lại một lần nữa

Nhằm nâng cao sự chính xác trong việc đọc mã vạch, có một vùng trống tại nơi

bắt đầu và kết thúc của mã vạch gọi là Quiet Zone Vùng trống này giúp cho máy đọc

mã vạch có thể xác định chính xác vị trí của kí tự bắt đầu và kết thúc của mã vạch

Thông thường, độ rộng của vùng Quiet Zone phải gấp 10 lần chiều rộng của thanh

hẹp nhất

Trang 15

Hình 1.3

I.1.4 Tập kí tự:

Tập kí tự tuỳ thuộc vào loại dữ liệu mà mã vạch có thể mã hóa Thông thường, có

3 loại tập kí tự: số, chữ cái và số, và tất cả các kí tự trong bảng mã ASCII

Một mã vạch có tập kí tự số có nghĩa là mã vạch đó chỉ có thể mã hóa dữ liệu số

từ 0 đến 9 Một số kí tự bổ sung có thể được mã hóa bình thường là những kí tự điều khiển của mã vạch, ví dụ như là kí tự bắt đầu, kết thúc

Một mã vạch có tập kí tự gồm chữ cái và số có nghĩa là mã vạch đó có thể mã hóa các số từ 0 đến 9 và chữ cái từ A đến Z Thêm vào đó, một số kí tự bổ sung có thể được mã hóa, ví dụ như là kí tự bắt đầu, kết thúc

Một mã vạch có tập kí tự bao gồm tất cả những kí tự trong bảng mã ASCII cho phép mã hóa tất cả các kí tự trong bảng mã ASCII Nó bao gồm tất cả các kí tự trong bảng mã ASCII, có giá trị từ 0 đến 127 và có thể được mã hóa bởi mã vạch

Trên lý thuyết, để mã hoá cùng một dữ liệu như nhau, mã vạch dùng tập kí tự số

sẽ sử dụng nhiều không gian vật lý hơn so với mã vạch dùng tập kí tự bao gồm tất cả các kí tự trong bảng mã ASCII Tuy nhiên, mã vạch có tập kí tự bao gồm tất cả các kí

tự trong bảng mã ASCII cho phép bạn linh động trong việc mã hóa nhiều dạng thông tin hơn so với mã vạch dùng tập kí tự số

I.1.5 Gián đoạn, liên tục:

Thông thường có hai loại mã vạch: gián đoạn và liên tục

Trang 16

Mã vạch gián đoạn là dạng mã vạch mà mỗi kí tự được mã hóa trong mã vạch có thể được biểu diển riêng lẻ mà không có mối liên hệ nào đến phần còn lại trong mã vạch Những mã vạch như vậy có những kí tự ở cả đầu và cuối của mã vạch Những kí

tự riêng lẻ được tách biệt bởi một số khoảng trắng giữa các kí tự Khoảng trắng giữa những kí tự không chứa đựng thông tin gì cả, chức năng duy nhất của nó là tách biệt những kí tự ra

Hình 1.4

Mã vạch liên tục là một dạng mã vạch mà mỗi kí tự riêng lẻ của mã vạch không thể được tách biệt Thực tế là do những kí tự bắt đầu bằng một thanh và kết thúc bằng một khoảng trắng Khoảng trắng cuối cùng được kết thúc bởi thanh bắt đầu của kí tự tiếp theo Do đó, không có cách nào để có thể biết được khoảng trắng cuối cùng rộng bao nhiêu và cũng không thể biết được kí tự tiếp theo bắt đầu ở đâu Những mã vạch liên tục thông thường sử dụng một vài loại thanh kết thúc đặc biệt hay chuỗi kết thúc,

do đó khoảng trắng cuối cùng của kí tự dữ liệu cuối cùng được kết thúc bởi thanh kết thúc

Hình 1.5Trong ví dụ trên, mỗi kí tự bao gồm 4 thanh và 4 khoảng trắng Khoảng trắng cuối cùng của kí tự 1 được kết thúc bởi thanh đầu tiên của kí tự 2 Khoảng trắng cuối cùng của kí tự 2 được kết thúc bởi thanh đầu tiên của kí tự 3 Khoảng trắng cuối cùng

Trang 17

của kí tự 3 được kết thúc bởi thanh đầu tiên của kí tự 4 Khoảng trắng cuối cùng của kí

tự 4 được kết thúc bởi thanh kết thúc

Với cùng một dữ liệu cần mã hoá như nhau, mã vạch gián đoạn cần sử dụng nhiều không gian hơn so với mã vạch liên tục do mã vạch gián đoạn tốn không gian cho khoảng trắng giữa các kí tự Tuy nhiên, mã vạch gián đoạn thông thường có thể được in ra với chất lượng kém- điều này đồng nghĩa với việc có thể sử dụng máy in rẻ Ngoài số lượng khoảng trắng mà hai loại mã vạch yêu cầu, cũng như loại và chất lượng của phần cứng được sử dụng để in nó, không có sự khác biệt tự nhiên nào trong vấn đề an toàn Điều này có nghĩa là, không thể nói rằng mã vạch liên tục thì an toàn hơn so với mã vạch gián đoạn hay ngược lại

I.1.6 Mã vạch có độ dài cố định, thay đổi:

Mã vạch có thể có chiều dài cố định hay thay đổi

Theo định nghĩa, mã vạch có chiều dài cố định mã hóa một số lượng kí tự xác định Ví dụ, mã vạch UPC-A thường mã hóa 12 kí tự Một ứng dụng không thể mã hoá

ít hơn hay nhiều hơn chiều dài được quy định trước là 12 kí tự Bản thân mã vạch xác định chiều dài dữ liệu

Mã vạch có chiều dài thay đổi có thể mã hoá một số lượng kí tự bất kì Ví dụ, Code128 có thể mã hóa một số lượng kí tự bất kì Bản thân mã vạch không xác định cụ thể bao nhiêu kí tự dữ liệu có thể được mã hoá

Chú ý rằng, tuỳ thuộc vào hiệu quả sử dụng, mã vạch có chiều dài thay đổi cũng

có thể được sử dụng như mã vạch có chiều dài cố định Ví dụ, nếu chúng ta sử dụng Code 128 để mã hoá một số nhận dạng có chiều dài luôn là 10 thì có nghĩa là chúng ta

đã sử dụng Code 128 như thể nó là mã vạch có chiều dài cố định

I.1.7 Mã vạch tự kiểm tra:

Mã vạch được xem như “tự kiểm tra” nếu có một lỗi in hay quét thì mã vạch sẽ không cho phép đọc một kí tự trong mã vạch thành một kí tự hợp lệ khác

Chú ý rằng “tự kiểm tra” không có nghĩa là tự sửa lỗi

Trang 18

I.2 Ứng dụng:

Trong thực tế, chúng ta bắt gặp việc sử dụng mã vạch tại một số siêu thị trên cả nước giúp tăng hiệu quả bán hàng, giúp cho việc phục vụ khách hàng một cách nhanh chóng và hiệu quả Trên mỗi mặt hàng đều có một mã vạch tương ứng, khi khách hàng đem đến quầy tính tiền, nhân viên chỉ cần quét qua máy đọc mã vạch tất cả các mặt hàng, từ đó máy tính sẽ cho biết tổng số tiền khách hàng phải trả Điều này giúp giảm thiểu sự sai sót trong tính toán và nâng cao khả năng phục vụ cho khách hàng

Ứng dụng trong những quy trình kinh doanh, những quy trình cần được tự động tăng năng suất và giảm thiểu sự sai lầm của con người

Ứng dụng trong những sản phẩm xuất khẩu Hiện nay, hầu hết những quốc gia trên thế giới (hơn 80 quốc gia) đã đưa vào sử dụng mã vạch trên sản phẩm của họ Nền công nghiệp Việt Nam sẽ phải sử dụng mã vạch nếu muốn xuất khẩu sản phẩm của mình ra nước ngoài

Nói chung, mã vạch được ứng dụng khi có yêu cầu về sự nhận diện chính xác và tốc độ nhận diện

Tuỳ từng yêu cầu cụ thể của người sử dụng mà có các loại mã vạch tương ứng

Những mặt hàng ở USA và Canada UPC/EAN

Những mặt hàng trên toàn thế giới UPC/EAN

Những thùng carton được vận chuyển bằng

tàu

Code 128

Những thùng carton được vận chuyển bằng

tàu

Interleaved 2 of 5 hay Code 128

Những thùng carton được vận chuyển bằng

tàu

Interleaved 2 of 5 hay Code 128

Những thùng carton được vận chuyển bằng

tàu

Code 128

Số sêri trong việc xuất bản hàng loạt Code 128

Số sêri trong việc xuất bản hàng loạt Code 128

Địa chỉ thư trong các bưu điện ở Mỹ POSTNET

Kiểm tra trong ngân hàng MICR E-13B hay CMC-7

Trang 19

I.3 Ưu khuyết điểm:

I.3.1 Ưu điểm:

‰ Cải thiện hiệu quả thao tác

‰ Tiết kiệm thời gian

‰ Giảm bớt việc mắc lỗi

‰ Giúp cho việc quản lý dễ dàng

I.3.2 Khuyết điểm:

Khuyết điểm chính của mã vạch một chiều đó là bản thân nó không thể chứa đựng thông tin của cơ sở dữ liệu Đây chính là điểm yếu của nó so với mã vạch hai chiều

I.4 Giới thiệu một số loại mã vạch:

Mã số EAN-13 gồm 13 con số có cấu tạo như sau :

Từ trái sang phải

Mã quốc gia: hai hoặc ba con số đầu

Mã doanh nghiệp: có thể là bốn, năm hoặc sáu con số

Mã mặt hàng: có thể là năm, bốn hoặc ba con số tùy thuộc vào mã doanh

nghiệp

Số cuối cùng là số kiểm tra

Để đảm bảo tính thống nhất và tính đơn nhất của mã số, mã quốc gia phải do tổ chức mã số vật phẩm quốc tế (EAN lnternational) cấp cho các qưốc gia là thành viên của tổ chức này Mã số quốc gia của Việt Nam là 893 Mã số EAN-8 gồm 8 con số có

Trang 20

cấu tạo như sau : ba số đầu là mã số quốc gia giống như EAN-13, bốn số sau là mã mặt hàng, số cuối cùng là số kiểm tra

00-13: USA & Canada 20-29: In-Store Functions 30-37: France

40-44: Germany 45: Japan (also 49) 46: Russian Federation

471: Taiwan 474: Estonia 475: Latvia

477: Lithuania 479: Sri Lanka 480: Philippines

482: Ukraine 484: Moldova 485: Armenia

486: Georgia 487: Kazakhstan 489: Hong Kong

49: Japan (JAN-13) 50: United Kingdom 520: Greece

528: Lebanon 529: Cyprus 531: Macedonia

535: Malta 539: Ireland 54: Belgium & Luxembourg 560: Portugal 569: Iceland 57: Denmark

590: Poland 594: Romania 599: Hungary

600 & 601: South Africa 609: Mauritius 611: Morocco

613: Algeria 619: Tunisia 622: Egypt

625: Jordan 626: Iran 64: Finland

690-692: China 70: Norway 729: Israel

73: Sweden 740: Guatemala 741: El Salvador

742: Honduras 743: Nicaragua 744: Costa Rica

746: Dominican Republic 750: Mexico 759: Venezuela

76: Switzerland 770: Colombia 773: Uruguay

775: Peru 777: Bolivia 779: Argentina

780: Chile 784: Paraguay 785: Peru

786: Ecuador 789: Brazil 80 - 83: Italy

84: Spain 850: Cuba 858: Slovakia

859: Czech Republic 860: Yugloslavia 869: Turkey

87: Netherlands 880: South Korea 885: Thailand

888: Singapore 890: India 893: Vietnam

899: Indonesia 90 & 91: Austria 93: Australia

94: New Zealand 955: Malaysia 977: International Standard Serial Number for Periodicals (ISSN) 978: International Standard

Book Numbering (ISBN)

979: International Standard Music Number (ISMN) 980: Refund receipts

981 & 982: Common

Currency Coupons 99: Coupons

Mã EAN-8 chỉ sử dụng trên những sản phẩm có kích thước nhỏ, không đủ chỗ ghi mã EAN-13 (ví dụ như thỏi son, bút bi)

+ Cách tính số kíểm tra cho mã EAN-13 và mã EAN-8

Bước 1 : Từ phải sang trái, cộng tất các con số ở vị trí lẻ (trừ số kiểm tra C); Bước 2: Nhân kết quả bước 1 với 3;

Bước 3 : Cộng giá tri của các con số còn lại

Trang 21

Bước 5 : Lấy bội số của 10 lớn hơn và gần kết quả bước 4 nhất trừ đi kết quả bước 4, kết quả là số kiểm tra C

Ví dụ : Tính số kiểm tra cho mã 893456501001 C

+ Các điểm cần chú ý khi in mã EAN :

Không in chữ hay bất kỳ hình vẽ gì vào vùng diện tích xung quanh mã (đánh dấu bằng khung đen trên film master): Màu lý tưởng để in mã vạch là màu đen trên nền trắng Có thể in một số màu nền và màu vạch khác để bao bì đẹp hơn ; khi đó phải tuân thủ theo bảng các màu nền và màu vạch tiêu chuẩn do tổ chức EAN quốc gia cung cấp; Mã vạch nên đặt ngang, các vạch vuông góc với mặt phẳng đáy sản phẩm,

mã số ở dưới

I.4.2 Code 128:

+ Thông tin về Code 128:

Code 128 là một loại mã vạch mã hoá dữ liệu chữ và số có hiệu quả sử dụng và

độ dày cao Mã vạch này được ứng dụng rộng rãi, đặc biệt trong những trường hợp cần

mã hoá một lượng dữ liệu tương đối lớn trong một khoảng không gian tương đối hẹp

Hình 1.7+ Tính toán số kiểm tra:

Trước khi Code 128 được mã hóa, phần mềm phải tính toán xem số kiểm tra trên mã vạch có đúng không Những bước để tính toán số kiểm tra như sau:

1 Lấy giá trị của kí tự bắt đầu (103, 104, hay 105) và tạo giá trị bắt đầu của số kiểm tra

2 Bắt đầu từ kí tự theo sau kí tự đầu tiên, lấy giá trị của kí tự (giữa 0 và 102), nhân nó với vị trí của kí tự (1) và thêm nó vào số kiểm tra đang

sử dụng

3 Xét từng kí tự trên dữ liệu, lấy giá trị của nó nhân với vị trí của nó và cộng vào giá trị số kiểm tra

Trang 22

4 Chia kết quả số kiểm tra cho 103 Số dư trở thành số kiểm tra, được thêm vào cuối của thông điệp

5 Kí tự kết thúc được thêm vào sau kí tự kiểm tra

Để dễ hiểu ta xem xét ví dụ sau Tính giá trị của số kiểm tra cho mã vạch sau:

“HI345678” Số kiểm tra có trong tất cả các mã vạch Code 128, nhưng nó không được

in như là một phần của phần văn bản phía dưới mã vạch (giống như UPC và EAN)

Hình 1.8 + Cấu trúc mã vạch Code 128:

Code 128 gồm một vùng trống đầu, một trong ba kí tự bắt đầu, dữ liệu,

số kiểm tra, kí tự kết thúc, và vùng trống

Trang 23

Để mã hoá giá trị trong mã vạch Code 128, đầu tiên chúng ta phải tính kí

tự kiểm tra và phần dữ liệu của mã vạch, bao gồm cả số kiểm tra, sau đó chúng ta mới

có thể mã hóa chúng thành một dãy gồm những thanh và khoảng trắng

Một mã vạch Code 128 có cấu trúc vật lý như sau:

1 Mã đầu tiên, là mã 103, 104, hay 105 lấy từ bảng mã hóa bên dưới

2 Mỗi kí tự dữ liệu được mã hóa dựa theo bảng mã hóa bên dưới

3 Kí tự kiểm tra được tính như được đề cập ở trên và được mã hóa sử dụng bảng bên dưới

KÍ TỰ GIÁ

Trang 24

50 R R 50 11000101110 103 Start A Start A Start A 11010000100

51 S S 51 11011101000 104 Start B Start B Start B 11010010000

52 T T 52 11011100010 105 Start C Start C Start C 11010011100

+ Ví dụ mã hóa:

Xét ví dụ sau, mã hoá HI345678 trên mã vạch Code 128 Theo cách tính

số kiểm tra như phần trên, chúng ta thu được số kiểm tra đối với trường hợp này là 67 Chúng ta mã hóa từng kí tự sử dụng bảng mã hóa trên:

Trang 25

+ Thông tin về Code 39:

Code 39 là loại mã vạch chữ và số đầu tiên được phát triển, hiện nay vẫn còn được sử dụng rộng rãi, đặc biệt là trong việc bán sỉ hàng hoá Nó là một chuẩn mã vạch được sử dụng bởi Bộ Quốc Phòng Mỹ Code 39 cũng được biết với tên “3 of 9 Code” hay “USD-3”

Một mã vạch Code 39 có dạng như sau:

Hình 1.10 Code 39 thuộc dạng mã vạch gián đoạn, có chiều dài thay đổi Nó có thể

tự kiểm tra vì vậy một kí tự in sai không thể được đọc và chuyển thành một kí tự đúng được

+ Tính số kiểm tra:

Vì Code 39 có khả năng tự kiểm tra nên thông thường số kiểm tra không còn cần thiết nữa Tuy nhiên, trong những trường hợp cần đòi hỏi độ chính xác cao thì

có thể thêm số kiểm tra vào

Để tính số kiểm tra tự chọn, ta theo những bước sau:

1 Lấy giá trị (0 đến 42) của từng kí tự trong mã vạch Những kí tự bắt đầu và kết thúc không được tính trong quá trình tính số kiểm tra

2 Tính tổng những giá trị trong bước 1

3 Chia giá trị trong bước 2 cho 43

Trang 26

4 Phần dư trong pháp chia ở bước 3 là kí tự kiểm tra, được thêm vào trước kí tự kết thúc

+ Mã hoá mã vạch:

Trong phần này, chúng ta sẽ xem xét cách mã hoá mã vạch bằng cách xem như

“1” đại diện cho thanh, “0” đại diện cho khoảng trắng trên mã vạch Vì vậy số 1101 biểu diễn mã vạch gồm 2 thanh (11), tiếp theo là một khoảng trắng (0), tiếp theo là một thanh (1) Cuối cùng ta có mã vạch như sau:

Hình 1.11

+ Cấu trúc mã vạch Code 39:

Mã vạch Code 39 có cấu trúc sau:

1 Kí tự bắt đầu- kí tự *

2 Những kí tự được mã hoá dựa trên bảng

3 Số kiểm tra tuỳ chọn như đã đề cập ở trên được mã hóa từ bảng bên dưới

4 Kí tự kết thúc là kí tự * thứ hai

+ Bảng mã hoá:

Giá trị kiểm tra

Kí tự ASCII Mã hóa độ rộng

Mã hóa mã vạch

Trang 27

Chúng ta sẽ mã hóa dữ liệu TEST8052 sử dụng mã vạch Code 39 Trong trường hợp này chúng ta không sử dụng số kiểm tra

Trang 29

SVTH : Âu Dương Đạt – Lê Thành Nguyên Trang 19

I.5 So sánh giữa các loại mã vạch:

EAN-13 Toàn số

12 con số dữ liệu

và 1 con số kiểm tra; 2 hoặc 5 con

số thêm vào tuỳ ý

Cần thiết Đánh dấu hàng hoá bán lẻ toàn thế giới

EAN Bookland Toàn số Cần thíết Ứng dụng đặc biệt của EAN-13 trong việc mã hoá IBSN cho sách Interleaved 2 of 5 Toàn số Có thể thay đổi Không bắt buộc

Rất dày đặc, mã hoá số theo từng cặp do

đó chiều dài tổng cộng phải là số chẵn những con số

N, or T Có thể thay đổi Không định rõ

Một loại mã cũ, thường được sử dụng trong thư viện và trong ngân hàng máu

Plessey Toàn số Có thể thay đổi Cần thiết Những thẻ trên kệ các cửa hàng tạp hoá

Code 39 Kí tự hoa A-Z; Số 0-9; Khoảng trắng - $ / + % Có thể thay đổi Không bắt buộc Sử dụng rất rộng rãi cho rất nhiều loại ứng dụng

Code 93 Kí tự hoa A-Z; Số 0-9; Khoảng trắng - $ / + % Có thể thay đổi Không bắt buộc Họ hàng của Code 39 ít được sử dụng

Intended Code 39 Tất cả kí tự mã ASCII và mã điều khiển Có thể thay đổi Không bắt buộc Sử dụng từng cặp kí tự để mã hoá những kí hiệu không chuẩn, lãng phí không gian Code 128 Tất cả kí tự mã ASCII và mã điều khiển Có thể thay đổi Cần thiết Được sử dụng rộng rãi, tuyệt vời với một số ứng dụng LOGMARS Kí tự hoa A-Z; Số 0-9; Khoảng trắng - $ / + % Có thể thay đổi Không bắt buộc Tương tự như Code 39, nhưng là chuẩn của Mỹ

Trang 30

Mã vạch 2 chiều là loại mã vạch mà thông tin có thể được biểu diễn và lưu trữ theo cả các vạch theo chiều ngang lẫn các vạch theo chiều dọc, tận dụng được nhiều không gian hơn

Mã vạch 2 chiều được phát triển nhằm thay thế dần mã vạch 1 chiều truyền thống không những về khả năng chứa được nhiều dữ liệu hơn, xử lí nhanh hơn mà nó còn

được phát triển như là một cơ sở dữ liệu thu nhỏ, di động được (Portable database)

II.1.2 Mã vạch 2 chiều chứa đựng thông tin gì?

Tương tự như mã vạch một chiều, nội dung được chứa đựng trong mã vạch 2 chiều cũng tuỳ thuộc vào người dùng muốn mã hoá cái gì, nội dung đó có thể là mã số một mặt hàng, tên nhân viên, tên hàng hoá,

Tuy nhiên nếu như mã vạch 1 chiều chỉ chứa giá trị là khóa chính trong các bảng của một cơ sở dữ liệu, thì những thông tin mà mã vạch 2 chiều biểu diễn và lưu trữ được, có thể là một record, một bảng, thậm chí một cơ sở dữ liệu đầy đủ

II.1.3 Cấu trúc của mã vạch 2 chiều:

Khác với mã vạch một chiều, mã vạch 2 chiều có cấu trúc đặc trưng phụ thuộc vào loại mã vạch 2 chiều đó là loại nào

Trang 31

Mã vạch 2 chiều được phát triển bởi nhiều công ty, tổ chức cũng các cá nhân khác nhau Vì vậy trên phạm vi toàn thế giới, mã vạch 2 chiều có rất nhiều loại khác nhau tùy theo nhu cầu và mục đích sử dụng chúng

Hiện nay thị trường đang tồn tại khoảng trên 20 loại mã vạch 2 chiều và được chia thành 2 nhóm chính sau đây

‰ Mã vạch 2 chiều dạng stacked code

‰ Mã vạch 2 chiều dạng matrix code

email=ptbao@mathdep.hcmuns.

edu.vn Reason: I am the author of this document

Date: 2006.08.20 12:21:35 +07'00'

Trang 32

II.3.1 Ưu điểm:

Hình 1.13

Mã vạch 2 chiều có khả năng chứa đựng, mã hóa thông tin nhiều hơn hẳn so với

mã vạch một chiều Ngoài ra mã vạch 2 chiều còn có độ chính xác cao hơn

II.3.2 Khuyết điểm:

Tuy nhiên chi phí đầu tư ban đầu cho các loại thiết bị đầu cuối dùng cho mã vạch

2 chiều tốn kém hơn so với mã vạch một chiều

II.4 Giới thiệu một số loại mã vạch:

II.4.1 PDF417:

PDF417 là loại mã vạch 2 chiều dạng

stacked code, có thể mã hóa bất kỳ chữ cái, số,

hoặc kí tự nào trong thực tế

Mỗi kí tự bao gồm 4 vạch và 4 khoảng

trống trong một cấu trúc có 17 phần Tên loại

Hình 1.14

Trang 33

mã vạch này được đặt xuất phát từ định dạng mã của nó PDF được viết tắt từ chữ

"Portable Data File“

Mỗi ký hiệu PDF417 có từ 3 đến 90 dòng stack được bao quanh bởi một vùng tĩnh trên tất cả bốn cạnh

Mỗi dòng bao gồm : một vùng tĩnh leading, mẫu bắt đầu , kí tự chỉ định dòng bên trái, từ một đến ba mươi kí tự chứa dữ liệu, kí tự chỉ định dòng bên phải, mẫu kết thúc,

và một vùng tĩnh trailing

PDF417 hỗ trợ việc nén văn bản, nén số, và nén byte theo cơ chế tương quan ánh

xạ giữa những giá trị codeword và dữ liệu được giải mã

Ngoài ra, PDF417 có thể hỗ trợ lên tới 340 kí tự trên một inch vuông, với khả năng lưu trữ dữ liệu cực đại là 1850 kí tự dạng văn bản

II.4.2 Data Matrix:

Data Matrix là loại mã vạch 2 chiều dạng matrix

code, có khả năng mã hóa tất cả 128 kí tự của bảng mã

ASCII và một số tập hợp kí tự khác nhau

Mỗi ký hiệu Data Matrix gồm có : một vùng tĩnh

perimeter xung quanh, tiếp giáp với hai đường viền liên

tục và hai đường viền đứt quãng, và những ô bên trong các

đường này có thể có màu sáng hay màu tối

2 đường viền liên tục cùng với những ô dữ liệu được sử dụng để nhận dạng ký hiệu, việc định hướng và định vị các ô

Data Matrix có khả năng lưu trữ lên đến 500 MB dữ liệu trên mỗi inches vuông, hay từ 1 đến 2335 kí tự

Data Matrix là loại mã vạch được thiết kế giảm đến mức tối đa sự dư thừa, tận dụng không gian để biểu diễn thông tin và khắc phục tương đối hoàn hảo những khuyết điểm khi in

Hình 1.15

Trang 34

II.4.3 Maxi Code:

Maxi Code là loại mã vạch 2 chiều matrix code,

thường được sử dụng bởi United Pacel Service, dùng để

sắp xếp và phân loại các thư từ khi chuyển phát nhanh

Maxi Code được phát triển để có thể đọc và quét

được bằng các scanner ở tốc độ cao và theo bất kì phương

hướng nào

Maxi Code là loại mã vạch có kích thước cố định bao gồm 866 lục giác được xếp vào 33 dòng, xung quanh finder pattern nằm ở giữa

Kích thước của một ký hiệu Maxi Code từ 1,05 cho đến 1,1 inch

Một ký hiệu Maxi Code đơn có thể mã hóa lên đến 93 kí tự dữ liệu và sử dụng 5 phương thức khác nhau để có thể mã hóa được 256 kí tự của bảng mã ASCII MaxiCode sử dụng ba thuộc tính đặc trưng duy nhất khi mã hóa dữ liệu : Loại dịch vụ,

Mã quốc gia, và Mode

II.5 So sánh giữa các loại mã vạch:

Loại mã vạch Độ chính xác thấp nhất Độ chính xác cao nhất

Data Matrix 1 lỗi trên 10,5 triệu 1 lỗi trên 612,9 triệu

PDF 417 1 lỗi trên 10,5 triệu 1 lỗi trên 612,4 triệu

Code 129 1 lỗi trên 2,8 triệu 1 lỗi trên 37 triệu

Code 39 1 lỗi trên 1,7 triệu 1 lỗi trên 4,5 triệu

UPC 1 lỗi trên 349.000 1 lỗi trên 800.000

Hình 1.16

Trang 35

II.6 Mã vạch PDF417:

II.6.1 Mã hóa mã vạch PDF417:

Hình 1.17Công việc mã hóa dữ liệu sang mã vạch PDF417 bao gồm 2 bước xử lí :

‰ Đầu tiên, dữ liệu được chuyển đổi ra các giá trị codeword từ 0 – 928, đại diện cho dữ liệu Đây là quá trình mã hóa ở mức cao ( high level )

‰ Sau đó, các giá trị này được biểu diễn một cách vật lí bằng những mẫu bao gồm các vạch và khoảng trống xen kẽ lẫn nhau Đây chính là quá trình mã hóa ở

mức thấp ( low level )

Và công việc giải mã bao gồm 2 bước xử lí ngược lại

II.6.1.1 Mã hóa mức cao:

PDF417 mã hóa các giá trị tùy theo cluster Những mẫu bao gồm các vạch và

khoảng trống của mỗi codeword không những phụ thuộc vào giá trị được mã hóa mà còn phụ thuộc vào cluster được sử dụng bởi dòng đó

Toàn bộ 929 codeword của mã vạch PDF417 được biểu diễn bằng 3 tập hợp kí hiệu loại trừ lẫn nhau, hay còn được gọi là cluster Mỗi cluster mã hóa 929 codeword

thành những pattern khác nhau vì vậy một cluster thì luôn phân biệt với cluster khác

Giá trị của cluster bao gồm : 0, 3, 6

Trang 36

Khái niệm cluster được áp dụng cho tất cả kí hiệu của PDF417 ngoại trừ kí hiệu bắt đầu và kết thúc

Mỗi dòng chỉ sử dụng duy nhất 1 trong 3 cluster (0, 3 hoặc 6) để mã hóa dữ liệu, với sự lặp lại một cluster sau mỗi 3 dòng

Tóm lại điều cần biết đầu tiên khi muốn mã hóa bất kì codeword nào là phải biết được giá trị cluster của nó

VD : Dòng 0 các codeword sử dụng cluster 0

Dòng 1 các codeword sử dụng cluster 3

Dòng 2 các codeword sử dụng cluster 6

Một cách tổng quát : cluster = (dòng mod 3) * 3

Mã hóa mức cao chuyển dữ liệu thành các codeword tương ứng Và cơ chế nén

dữ liệu được sử dụng nhằm tăng cường khả năng lưu trữ dữ liệu khi mã hóa Tùy theo kiểu dữ liệu mà PDF417 có những cách mã hóa dữ liệu khác nhau

Mode là một phương thức nén dữ liệu đơn giản Một kí hiệu PDF417 khi cần thiết

có khả năng chuyển đổi giữa những mode khác nhau

Mã vạch PDF417 hỗ trợ 3 mode cho việc mã hóa dữ liệu

‰ Text Compaction mode

‰ Byte Compaction mode

‰ Numeric Compaction mode

Mỗi mode định nghĩa một ánh xạ xác định giữa dữ liệu người dùng và trình tự codeword một cách hiệu quả Trong một ứng dụng cụ thể thì mode tối ưu được lựa chọn có thể là sự kết hợp cả 3 mode trên

Trong mỗi mode thì 900 codeword được dùng để mã hóa dữ liệu 29 codeword còn lại được sử dụng cho các chức năng đặc biệt, và độc lập với mode nén dữ liệu đang được sử dụng

Trang 37

Codeword từ 900 đến 928 có những chức năng sau đây

‰ Chuyển đổi giữa các mode

‰ Ứng dụng sử dụng Extended Channel Interpretation

‰ Các ứng dụng mở rộng khác

II.6.1.1.1 Mã hóa mức cao – Text Compaction Mode

Text Compaction Mode mã hóa được tất cả kí tự ASCII có thể in được, có giá trị

từ 32 đến 126 Text Compaction Mode hỗ trợ 4 sub-mode :

‰ Alpha ( các kí tự hoa )

‰ Lower ( các kí tự thường )

‰ Mixed ( kí tự số và một số dấu câu)

‰ Punctuation

Mỗi sub-mode có tối đa 30 kí tự, bao gồm kí tự sub-mode latch và shift

Chế độ nén mặc nhiên của mã vạch PDF417 là Text Compaction Mode Alpha sub-mode Và latch codeword khi đổi từ mode khác sang Text Compaction Mode luôn luôn chuyển thành Text Compaction Alpha sub-mode

II.6.1.1.2 Mã hóa mức cao – Byte Compaction Mode

Byte Compaction Mode cho phép mã hóa tất cả 256 giá trị byte 8-bit, bao gồm các kí tự ASCII có mã từ 0 đến 127, đồng thời hỗ trợ tập hợp kí tự quốc tế Byte Compaction Mode mã hóa khoảng 1.2byte/codeword

Nếu xét khía cạnh mã hóa dữ liệu mạnh thì Byte Compaction Mode chính là một lựa chọn tốt, ngược lại nó sẽ là Mode cho hiệu quả ít nhất khi xét về hiệu quả khi in

mã vạch

Mã hóa dữ liệu nhị phân sử dụng latch 901 hoặc 924, yêu cầu phải chuyển đổi dữ

liệu từ base 256 sang base 900

Quá trình mã hóa bằng latch codeword 924, lấy một lần 6 số hay giá trị chuyển chúng thành 5 codeword base 900 Quá trình này được tiếp tục cho đến khi tất cả số và giá trị đã được mã hóa hết

Nếu tổng các chữ số không phải bội của 6 thì ta sử dụng latch codeword 901 Khi

đó đối với các chữ số còn lại, ta lấy 1 chữ số là 1 codeword

Trang 38

Thuật toán chuyển đổi từ base 256 sang base 900

n = tổng số các codeword ( trong trường hợp này là 5 )

t = biến tạm

t = d5*2565 + d4*2564 + d3*2563 + d2*2562 + d1*2561 + d0*2560

Sau đó ta tính mỗi codeword như sau :

For : mỗi codeword ci = c0 … cn-1

Trang 39

Kết quả cuối cùng, ta có trình tự các codeword sau khi mã hóa dãy số {1,2,3,4,5,6} là

II.6.1.1.3 Mã hóa mức cao – Numeric Compaction Mode

Numeric Compaction Mode là một phương thức nén dữ liệu chuyển đổi từ base

10 sang base 900, thường được sử dụng để mã hóa các chuỗi chữ số dài liên tiếp Numeric Compaction Mode có khả năng mã hóa khoảng 2.93 chữ số numeric /codeword

Numeric Compaction Mode sử dụng latch codeword 901

Qui luật mã hóa các chuỗi chữ số dài liên tiếp có 2 bước

‰ Chia chuỗi số thành các nhóm gồm 4 chữ số Nhóm cuối cùng có thể có ít hơn 4 chữ số

‰ Với mỗi nhóm ta thêm chữ số 1 vào vị trí thích hợp để hạn chế sự mất dữ liệu

do chữ số 0 đứng đầu

Ví dụ: dữ liệu ban đầu : 00246812345678

sau 2 bước trên : 100 2468 1234 5678

Chú ý: số 1 ở đầu sẽ được bỏ trong thuật toán giải mã

Thuật toán chuyển đổi từ base 10 sang base 900

For : mỗi codeword ci = c0 … cn-1

Trang 40

Như đã nói lúc đầu mã hóa mức thấp là quá trình các giá trị codeword đã có được

từ bước mã hóa mức cao, được biểu diễn một cách vật lí bằng những mẫu bao gồm các vạch và khoảng trống xen kẽ lẫn nhau đã được định nghĩa trước

Cấu trúc của 1 codeword : 4 vạch và 4 khoảng trắng xen kẽ Mỗi vạch hay khoảng trắng có chiều rộng từ 1 đến 6 module, nhưng tổng cộng số module phải là 17

Chiều rộng của 1 module hay phần tử hẹp nhất được gọi là x-dimension ; chiều cao của chúng là y-dimension

Mỗi codeword được định nghĩa bằng 8 chữ số liên tiếp, biểu diển cho các vạch và

khoảng trắng, được gọi là x-sequence

Ví dụ: codeword có x-sequence 31111334 được biểu diễn như sau :

Ngày đăng: 16/02/2014, 03:02

HÌNH ẢNH LIÊN QUAN

Hình 2.1 – Kiến trúc hệ thống - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
Hình 2.1 – Kiến trúc hệ thống (Trang 59)
III.3.1. Bảng Sinh viên: - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
3.1. Bảng Sinh viên: (Trang 61)
Hình 2.2 – Mô hình quan hệ giữa các bảng - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
Hình 2.2 – Mô hình quan hệ giữa các bảng (Trang 61)
III.3.2. Bảng Hẹn: - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
3.2. Bảng Hẹn: (Trang 62)
III.3.4. Bảng Lớp: - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
3.4. Bảng Lớp: (Trang 63)
Hình 3.1 - Quá trình biên dịch trang JSP - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
Hình 3.1 Quá trình biên dịch trang JSP (Trang 78)
Hình 3.2 – Tổng quan JMF - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
Hình 3.2 – Tổng quan JMF (Trang 91)
Hình 3.3 – Kiến trúc JMF - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
Hình 3.3 – Kiến trúc JMF (Trang 92)
Hình 3.4 – Dữ liệu nguồn JMF - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
Hình 3.4 – Dữ liệu nguồn JMF (Trang 93)
Hình 3.5 – JMF Player - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
Hình 3.5 – JMF Player (Trang 94)
Hình 3.6 – Sơ đồ trạng thái Player - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
Hình 3.6 – Sơ đồ trạng thái Player (Trang 95)
Hình 3.7 – Xử lý JMF - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
Hình 3.7 – Xử lý JMF (Trang 96)
Hình 3.8 – Các định dạng JMF - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
Hình 3.8 – Các định dạng JMF (Trang 97)
Hình 3.9 – JMF Manager - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
Hình 3.9 – JMF Manager (Trang 98)
I.3. Hình ảnh các module của hệ thống - QUẢN LÝ PHÒNG MÁY THƯ VIỆN BẰNG MÃ VẠCH
3. Hình ảnh các module của hệ thống (Trang 113)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w