Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 116 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
116
Dung lượng
1,37 MB
Nội dung
Đại Học Quốc Gia Tp Hồ Chí Minh TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN TRẦN CAO TẤN KHOA XÂY DỰNG BỘ CHƯƠNG TRÌNH NHẬN DẠNG SẢN PHẨM TRONG SIÊU THỊ TRÊN NỀN T-ENGINE Chuyên ngành: Khoa Học Máy Tính LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 09 năm 2008 CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH Cán hướng dẫn khoa học: TS PHẠM TƯỜNG HẢI Cán chấm nhận xét 1: PGS TS NGUYỄN HỮU PHƯƠNG Cán chấm nhận xét 2: TS ĐINH ĐỨC ANH VŨ Luận văn thạc sĩ bảo vệ HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 13 tháng 09 năm 2008 ĐẠI HỌC QUỐC GIA TP HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập – Tự – Hạnh phúc -oOo Tp HCM, ngày 22 tháng 06 năm 2008 NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Nguyễn Trần Cao Tấn Khoa Giới tính: Nam ;/ Nữ Ngày, tháng, năm sinh: 24/01/1979 Nơi sinh: Tây Ninh Chuyên ngành: Khoa học máy tính Khóa: 2005 1- TÊN ĐỀ TÀI: Xây dựng chương trình nhận dạng sản phẩm siêu thị T-Engine 2- NHIỆM VỤ LUẬN VĂN: - Khảo sát vấn đề tổng quát liên quan đến phát triển ứng dụng hệ nhúng TEngine - Xây dựng mô tả cho “Hệ thống nhận dạng sản phẩm siêu thị T-Engine” Phân tích đề xuất mơ hình khả thi cho hệ thống với hai khối: khối máy PC khối T-Engine - Phát triển phần mềm cho khối chương trình PC - Phát triển phần mềm cho khối chương trình T-Engine 3- NGÀY GIAO NHIỆM VỤ: 4- NGÀY HOÀN THÀNH NHIỆM VỤ: 5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS.PHẠM TƯỜNG HẢI Nội dung đề cương luận văn thạc sĩ Hội Đồng Chuyên Ngành thông qua CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN (Họ tên chữ ký) QUẢN LÝ CHUYÊN NGÀNH (Họ tên chữ ký) LỜI CAM ĐOAN Tôi cam đoan rằng, ngoại trừ kết tham khảo từ cơng trình khác ghi rõ luận văn, cơng việc trình bày luận văn tơi thực chưa có phần nội dung luận văn nộp để lấy cấp trường trường khác Ngày 22 tháng 06 năm 2008 Nguyễn Trần Cao Tấn Khoa LỜI CẢM ƠN Tôi xin gửi lời cảm ơn chân thành sâu sắc đến Ts Phạm Tường Hải, người trang bị hướng dẫn đến với lĩnh vực nghiên cứu tận tình hướng dẫn để tơi hồn thành tốt luận văn Tôi xin cảm ơn người phịng thí nghiệm Renesas khoa cơng nghệ thơng tin trường đại học Bách Khoa Tp Hồ Chí Minh tạo điều kiện tốt để tơi hồn thành tốt luận văn Cuối cùng, xin gửi lời cảm ơn đến tất bạn bè đồng nghiệp tạo điều kiện thuận lợi suốt thời gian thực luận văn để tơi hồn thành tốt nhiệm vụ học tập TÓM TẮT Luận văn giới thiệu cách tổng quan hệ thống nhúng T-Engine, hệ thống nhúng có tính mở, chuẩn hóa tảng tốt để phát triển hệ thống nhúng thời gian thực (Real-time Embedded Systems) T-Engine giáo sư Ken Sakamura trường đại học Tokyo đưa với mục đích chuẩn hóa hệ thống nhúng Cùng với việc giới thiệu hệ thống nhúng, đề tài em nghiên cứu cách tổ chức liệu tập tin sở liệu để quản lý liệu máy tính T-Engine Từ xây dựng chương trình nhận dạng sản phẩm siêu thị chạy T-Engine với chức hiển thị thơng tin hữu ích sản phẩm cho người dùng người dùng nhập vào mã sản phẩm Ngồi cịn có chương trình quản lý sở liệu cho chương trình nhận dạng sản phẩm siêu thị chạy Windows với chức quản lý tất thông tin sản phẩm siêu thị MỤC LỤC Chương 1: GIỚI THIỆU 1.1 Đặt vấn đề: .1 1.2 Giải vấn đề: 1.3 Giới hạn luận văn: 1.4 Cấu trúc luận văn: Chương 2: TỔNG QUAN MỘT SỐ CHƯƠNG TRÌNH VIẾT TRÊN HỆ THỐNG NHÚNG Chương 3: T-ENGINE/SH7760 .8 3.1 T-Engine gì? .8 3.2 Các sản phẩm T-Engine: 3.3 Tổng quan T-Engine/SH7760: 10 3.4 Kiến trúc phần cứng T-Engine/SH7760: .12 3.5 Kiến trúc phần mềm T-Engine/SH7760: .13 3.6 Phần mềm ứng dụng T-Engine/SH7760: 15 3.7 Tổng quan T-Monitor: 16 3.7.1 Các hàm hệ thống: 16 3.7.2 Các hàm debugging: .16 3.7.3 Các hàm hỗ trợ chương trình: .17 3.8 Tổng quan T-Kernel: .17 3.8.1 Các hàm system call: 18 3.8.2 Các hàm quản lý task: 20 3.8.3 Đồng task-dependent: 20 3.8.4 Xử lý ngoại lệ task: 20 3.8.5 Đồng giao tiếp: .21 3.8.6 Đồng giao tiếp mở rộng: 21 3.8.7 Quản lý Memory Pool: 21 3.8.8 Quản lý thời gian: 22 3.8.9 Quản lý hệ thống: 22 3.8.10 Quản lý nhớ hệ thống: 22 3.9 Tổng quan LCD T-Engine: .22 3.10 Cách vẽ liệu lên LCD: 23 3.11 Biên dịch liên kết chương trình chạy T-Engine: 24 Chương 4: QUẢN LÝ CƠ SỞ DỮ LIỆU 25 4.1 Các hệ quản trị sở liệu: 25 4.2 Hệ quản trị tập tin: .26 4.2.1 Giới thiệu: .26 4.2.2 Bản ghi: .26 4.2.3 Tổ chức tập tin: .26 4.2.4 Phương pháp truy xuất: .27 4.2.4.1 Tổ chức truy xuất tuần tự: 27 U U I 4.2.4.2 Tổ chức truy xuất trực tiếp: 28 4.2.4.2.1 Tập tin có số: 29 4.2.4.2.2 Tập tin có số: 31 4.2.4.2.3 Tập tin truy xuất ngẫu nhiên: 32 4.3 Tổ chức liệu vật lý: 34 4.3.1 Mơ hình tổ chức nhớ ngoài: 34 4.3.2 Tập tin băm (hashed file): 35 4.3.2 Tập tin số (indexed file): .36 4.3.2 B (balanced tree): 38 Chương 5: THIẾT KẾ TỔNG QUÁT CHƯƠNG TRÌNH QUẢN LÝ CƠ SỞ DỮ LIỆU 42 5.1 Mục đích: .42 5.2 Giải vấn đề: 43 5.2.1 Xây dựng định dạng tập tin sở liệu: 43 5.2.2 Giới thiệu phần định dạng ghi sở liệu: .46 5.2.3 Các phương pháp thực xây dựng tập tin sở liệu: 50 5.3 Hiện thực chương trình: .56 5.3.1 Sơ đồ khối chương trình nhận dạng sản phẩm siêu thị chạy T-Engine/SH7760: 56 5.3.2 Sơ đồ khối chương trình quản lý sở liệu: .57 5.3.3 Giao diện khối chương trình quản lý sở liệu: .58 5.3.3.1 Chức hệ thống menu: 59 5.3.3.1.1 Chức menu File: 59 5.3.3.1.2 Chức menu Record: .60 5.3.3.1.3 Chức menu Help: 61 5.3.3.2 Chức hệ thống toolbar: 61 5.3.4 Giao diện khối chương trình thêm record thơng tin sản phẩm: .61 5.3.5 Giao diện khối chương trình tìm kiếm sản phẩm: 63 5.3.5 Một số hàm mã giả để xây dựng chương trình quản lý sở liệu: 64 Chương 6: THIẾT KẾ TỔNG QUÁT CHƯƠNG TRÌNH NHẬN DẠNG SẢN PHẨM TRONG SIÊU THỊ CHẠY TRÊN NỀN T-ENGINE/SH7760 .65 6.1 Mục đích: .65 6.2 Giải vấn đề: 66 6.2.1 Xây dựng chế truy cập tìm kiếm sản phẩm sở liệu tập tin: 66 6.2.2 Xây dựng cấu trúc đánh mục: 66 6.2.3 Hiện thực cấu trúc đánh mục: 67 6.3 Hiện thực chương trình: .70 6.3.1 Sơ đồ khối chương trình nhận dạng sản phẩm siêu thị chạy T-Engine/SH7760: 71 6.3.2 Giao diện khối chương trình nhận dạng sản phẩm siêu thị chạy T-Engine/SH7760: 71 6.3.2.1 Chức hệ thống menu: 72 6.3.2.2 Chức hệ thống nút nhấn: .73 U II 6.3.3 Giao diện khối chương trình tìm kiếm record sản phẩm: .73 6.3.4 Một số cấu trúc liệu sử dụng chương trình: 74 6.3.5 Cấu trúc bảng màu chữ sử dụng chương trình: .75 6.3.6 Một số hàm mã giả để xây dựng chương trình nhận dạng sản phẩm siêu thị chạy T-Engine/SH7760: 82 Chương 7: KẾT LUẬN VÀ HƯỚNG MỞ RỘNG .83 TÀI LIỆU THAM KHẢO .87 Phụ lục A CẤU TRÚC TẬP TIN BMP 88 A.1 Cấu trúc: 88 A.1.1 Phần Header: có kích thước 14 byte 88 A.1.2 Phần Info Header: có kích thước 40 byte 88 A.1.3 Phần Optional Pallette: 89 A.1.4 Phần liệu hình ảnh : 89 Phụ lục B MÃ GIẢ MỘT SỐ HÀM DÙNG ĐỂ XÂY DỰNG BỘ CHƯƠNG TRÌNH QUẢN LÝ SẢN PHẨM TRONG SIÊU THỊ CHẠY TRÊN NỀN TENGINE/SH7760 93 B.1 Mã giả số hàm dùng chương trình quản lý sở liệu chạy hệ điều hành Windows, dựa PC: 93 B.1.1 Hàm DatabaseStructWriter: 93 B.1.2 Hàm ToByteArray: .93 B.1.3 Hàm InitEntry: 94 B.1.4 Hàm Write: 94 B.1.5 Hàm FromBinaryReaderField: 95 B.1.6 Hàm CreatedtvIndex: 95 B.1.7 Hàm LoadData: 95 B.1.8 Hàm SaveData: 96 B.1.9 Hàm AddRecord: 97 B.1.10 Hàm SearchRecord: 97 B.1.11 Hàm ImportDatabase: 98 B.1.12 Hàm First: 98 B.2 Mã giả số hàm dùng chương trình nhận dạng sản phẩm siêu thị chạy T-Engine/SH7760: 99 B.2.1 Hàm task: 99 B.2.2 Hàm init: .99 B.2.3 Hàm DisplaymnuFile: 100 B.2.4 Hàm pdproc: .100 B.2.5 Hàm SearchOneRecord: 101 B.2.6 Hàm DisplayItem: 101 B.2.7 Hàm Show: .101 B.2.8 Hàm SelecttxtProductCode: .102 B.2.9 Hàm read_BMP: .102 B.2.10 Hàm Init_Keyboard: .103 B.2.11 Hàm Select_Key: .103 B.2.12 Hàm CreateIndexTree: .103 III B.2.13 Hàm ReadItem: 104 B.2.14 Hàm MaxRowOfInformation: 104 IV Mỗi byte sử dụng để mô tả cho pixel, có thứ tự từ trái sang phải Bảng màu sử dụng có giá trị thường qui định bit dùng để biểu diễn cho màu đen bit để biểu diễn cho màu trắng Nếu bitmap có màu trắng đen dạng phù hợp để mơ tả cho hình ảnh đó, trường hợp có thêm màu khác màu bỏ qua Nên nhớ sau byte để mơ tả cho pixel phải thêm vào byte đủ số lượng 32 bit ¾ BitCount = compression = Mỗi byte dùng để mơ tả cho pixel, bit bên trái dùng để mô tả cho pixel đầu tiên, bit cịn lại dùng để mơ tả cho pixel thứ Trong bảng màu tập tin bitmap có 16 mẫu Những màu khơng thiết 16 màu chuẩn MS-Windows Sau byte phải thêm vào byte đủ số lượng 32bit, gây tình trạng lãng phí ¾ BitCount = compression = Mỗi byte dùng để mô tả cho pixel, trường hợp bảng màu tập tin bitmap có giá trị 256 Nhưng đủ 32 bit hàng mà phải thêm vào byte ¾ BitCount = 16 compression = Mỗi byte dùng để mô tả cho pixel Và tập tin bitmap khơng có bảng màu Cuối hàng phải thêm vào byte cho đủ số lượng 32bit ¾ BitCount = 24 compression = Mỗi byte ( tương ứng 32 bit) dùng để mô tả cho pixel Byte dùng để mô tả cường độ màu đỏ, byte để mô tả cho màu xanh da (green) mô tả cho màu xanh da trời (blue) byte cuối không sử dụng thường thiết lập giá trị Tập tin bitmap khơng có bảng màu không cần phải thêm vào byte cho đủ số lượng 32 bit thân đủ ¾ BitCount = compression = Sử dụng phương pháp nén bit Run Length Encoding Dữ liệu hình ảnh lưu trữ thành cụm byte Byte dùng để số cặp pixel liên tiếp có màu giống nhau, byte thứ dùng để màu cặp pixel Như hình ảnh bitmap 90 pixel có màu xen kẽ bit cao bit thấp byte thứ Nếu byte có giá trị byte thứ dùng mã “escape” Khi kết thúc tập tin Bitmap byte thêm vào để đủ số lượng 32 bit Sau bảng mô tả giá trị có cặp byte Byte 1(n) >0 0 0 Byte 2(c) Phần mô tả Có giá trị bất n pixel vẽ Trong pixel thứ kì 1,3,5, có màu qui định bit cao c pixel thứ 2,4,6, qui định bit thấp c Kết thúc hàng Kết thúc tập tin bitmap Delta byte định độ dời theo chiều qua phải x pixel lên y pixel Các pixel bỏ qua có màu qui định phần tử zero bảng màu ≥3 c byte đọc màu riêng lẽ pixel tập tin không nén bit thêm vào để đủ 16 bit Bảng A.1: Phương pháp nén bit Run Length Encoding 17 Sau số ví dụ nén bit Run Length Encoding Dữ liệu nén 03 04 05 06 00 06 45 56 67 00 04 78 00 02 05 01 00 00 09 1E 00 01 Dữ liệu không nén 040 06060 455667 7878 Dời đến vị trí cách vị trí pixel bên phải pixel theo hướng lên Kết thúc dòng 1E1E1E1E1 Kết thúc tập tin ảnh bitmap Bảng A.2: Ví dụ phương pháp nén bit Run Length Encoding 18 91 ¾ BitCount = compression = Sử dụng phương pháp nén bit Run Length Encoding Dữ liệu hình ảnh lưu trữ dạng cụm byte, byte dùng để số lượng byte liên tiếp có màu giống byte thứ dùng để mô tả cho màu pixel Nếu byte có giá trị byte thứ dùng mã “escape” Sau bảng mô tả giá trị có cặp byte Byte 1(n) >0 0 Byte 2(c) Có giá trị ≥3 Phần mơ tả n pixel có màu c vẽ Kết thúc hàng Kết thúc tập tin bitmap Delta byte định độ dời theo chiều qua phải x pixel lên y pixel Các pixel bỏ qua có màu qui định phần tử zero bảng màu c byte đọc màu riêng lẽ pixel tập tin không nén byte thêm vào c số lẻ Bảng A.3: Phương pháp nén bit Run Length Encoding 19 Sau ví dụ trường hợp nén bit Run Length Encoding Dữ liệu nén 03 04 05 06 00 03 45 56 67 00 04 78 00 02 05 01 00 00 09 1E 00 01 Dữ liệu không nén 04 04 04 06 06 06 06 06 45 56 67 78 78 78 78 Dời đến vị trí cách vị trí pixel bên phải pixel theo hướng lên Kết thúc dòng 1E 1E 1E 1E 1E 1E 1E 1E 1E Kết thúc tập tin ảnh bitmap Bảng A.4: Ví dụ phương pháp nén bit Run Length Encoding 20 92 Phụ lục B MÃ GIẢ MỘT SỐ HÀM DÙNG ĐỂ XÂY DỰNG BỘ CHƯƠNG TRÌNH QUẢN LÝ SẢN PHẨM TRONG SIÊU THỊ CHẠY TRÊN NỀN T-ENGINE/SH7760 B.1 Mã giả số hàm dùng chương trình quản lý sở liệu chạy hệ điều hành Windows, dựa PC: B.1.1 Hàm DatabaseStructWriter: Hàm DatabaseStructWriter làm nhiệm vụ tạo tập tin sở liệu nhị phân với định dạng phần liệu Header chứa 100 bytes sau: ¾ 34 bytes chứa chuỗi: This Is Format Of TEngine Database ¾ 66 bytes cịn lại chứa khoảng trắng để dành Phần định dạng liệu Header chứa 100 bytes dùng để phân biệt tập tin sở liệu với tập tin khác hệ thống Procedure DatabaseStructWriter (filename) Input filename : Tên tập tin sở liệu cần tạo Output Tạo tập tin sở liệu có định dạng header mong muốn Begin {Tạo tập tin nhị phân có tên filename.} {Tạo chuỗi có định dạng mong muốn.} {Ghi chuỗi vào tập tin.} EndProcedure B.1.2 Hàm ToByteArray: Hàm ToByteArray làm nhiệm vụ chuyển đổi cấu trúc liệu sang mảng bytes Hàm sử dụng ta cần chuyển đổi cấu trúc liệu DatabaseStruct thành mảng bytes để lưu xuống tập tin sở liệu 93 Procedure ToByteArray(data, array) Input data: Dữ liệu cấu trúc cần chuyển đổi thành mảng bytes Output array: Mảng bytes cấu trúc liệu cần chuyển đổi Begin {Chuyển đổi liệu từ cấu trúc sang định dạng mảng bytes.} EndProcedure B.1.3 Hàm InitEntry: Hàm InitEntry làm nhiệm vụ xin chương trình cấp phát nhớ để tạo cấu trúc record cho phép người dùng nhập thông tin sản phẩm vào Procedure InitEntry(out) Input Output out: Trả cấu trúc record tạo Begin {Xin cấp phát không gian nhớ cho record struct.} {Trả cho chương trình gọi record này.} EndProcedure B.1.4 Hàm Write: Hàm Write làm nhiệm vụ thêm record vào tập tin sở liệu Cấu trúc record cấu trúc DatabaseStruct khai báo bên để lưu thông tin sản phẩm Procedure Write (data,filename) Input data: record liệu DatabaseStruct cần ghi vào tập tin sở liệu Output filename: Cơ sở liệu ghi record vào Begin {Chuyển đổi liệu cấu trúc sang định dạng chuỗi bytes.} {Ghi vào tập tin sở liệu.} EndProcedure 94 B.1.5 Hàm FromBinaryReaderField: Hàm FromBinaryReaderField đọc tập tin sở liệu xây dụng lại record thông tin ban đầu từ dãy bytes lưu tập tin sở liệu Procedure FromBinaryReaderField(br) Input br: Con trỏ đến tập tin sở liệu mà chương trình đọc để xây dựng lại liệu Output Cấu trúc liệu xây dựng lại Begin {Đọc dãy thông tin lưu xuống cấu trúc.} {Đối với liệu chuỗi, hay ảnh đọc dạng bytes, cịn liệu số phải đọc dạng số.} {Trả cấu trúc liệu.} EndProcedure Ngoài hàm thao tác với sở liệu chương trình cón cung cấp số hàm để xây dựng chương trình quản lý sở liệu như: B.1.6 Hàm CreatedtvIndex: Hàm CreatedtvIndex xây dựng cấu trúc liệu để lưu toàn thông tin tập tin sở liệu tải lên chương trình hoạt động Procedure CreatedtvIndex () Input Output Xây dựng cấu trúc liệu để lưu tồn thơng tin tập tin sở liệu tải lên Begin {Xây dựng cấu trúc liệu tương tự bảng liệu để phân trang chương trình.} EndProcedure B.1.7 Hàm LoadData: Hàm LoadData đọc liệu từ tập tin liệu xây dựng lại thông tin ban đầu từ dãy bytes lưu tập tin sở liệu Hàm 95 làm nhiệm vụ loại bỏ tất khoảng trắng thêm vô trường record mà trường không chứa thông tin hết phần nhớ mà cấu trúc cấp Procedure LoadData (DatabaseName) Input DatabaseName: Tên tập tin sở liệu mà chương trình tải liệu lên Output Tải liệu tập tin sở liệu vào cấu trúc mà ta xây dựng bên trên, sau phân trang liệu để hiển thị liệu chương trình Begin {Tải liệu vào cấu trúc mà ta xây dựng.} {Chuẩn bị định dạng toàn liệu.} {Phân trang liệu cần hiển thị.} {Hiển thị thông tin chương trình.} EndProcedure B.1.8 Hàm SaveData: Hàm SaveData duyệt qua tất record lưu cấu trúc liệu tạo hàm CreatedtvIndex sau chuyển record sang dãy bytes lưu xuống tập tin sở liệu Hàm làm nhiệm vụ thêm khoảng trắng vô trường record mà trường không chứa thông tin hết phần nhớ mà cấu trúc cấp Procedure SaveData (DatabaseName) Input DatabaseName: Tên tập tin sở liệu mà chương trình lưu liệu xuống Output Tạo tập tin sở liệu với toàn liệu lưu Begin {Duyệt qua toàn liệu.} {Với record liệu chuẩn bị lại định dạng để lưu xuống tập tin sở liệu.} {Chuyển record sang dãy bytes } {Lưu record xuống tập tin sở liệu } EndProcedure 96 B.1.9 Hàm AddRecord: Hàm Addrecord tạo record liệu lưu cấu trúc liệu tạo hàm CreatedtvIndex Hàm chuẩn bị tất công việc từ chuẩn bị định dạng, xem xét tính quán, nhập liệu cho sản phẩm v.v Procedure Addrecord () Input Output Tạo record sản phẩm thêm record vào cấu trúc tạo hàm CreatedtvIndex Begin {Tạo record sản phẩm.} {Lưu record vào cấu trúc tạo hàm CreatedtvIndex.} EndProcedure Tương tự cho hàm ModifyRecord DeleteRecord để xóa sửa record cấu trúc liệu tạo hàm CreatedtvIndex B.1.10 Hàm SearchRecord: Hàm SearchRecord tìm kiếm tất record sản phẩm cấu trúc liệu tạo hàm CreatedtvIndex mà thỏa mãn điều kiện người dùng nhập vào Sau tìm kiếm xong chương trình phân trang hiển thị record sản phẩm cho người dùng tham khảo Procedure SearchRecord() Input Output Hiển thị record sản phẩm thỏa mãn điều kiện cho người dùng tham khảo Begin {Hiển thị form cho người dùng nhập điều kiện tìm kiếm.} {Tìm kiếm.} {Phân trang.} {Hiển thị kết quả.} EndProcedure 97 B.1.11 Hàm ImportDatabase: Hàm ImportDatabase import liệu từ sơ sở liệu tạo trước đưa liệu vào sở liệu hành Procedure ImportDatabase(DatabaseName) Input DatabaseName: tên sở liệu import Output Các record sở liệu import chép vào cấu trúc tạo hàm CreatedtvIndex Begin {Hiển thị form để người dùng chọn sở liệu cần import.} {Đọc record sở liệu import để đưa vào sở liệu hành.} {Nếu record import có mã sản phẩm trùng với mã sản phẩm sở liệu hành chương trình phép người sử dụng ghi đè liệu hay không.} EndProcedure Tương tự cho hàm NewDatabase OpenDatabase tạo sở liệu mở sở liệu cho chương trình quản lý sở liệu B.1.12 Hàm First: Hàm First tải liệu sở liệu hành hiển thị cho người sử dụng tham khảo, sở liệu hành chứa nhiều 10 record hiển thị 10 record mà Procedure First() Input Output Tải liệu 10 record sản phẩm sở liệu hành hiển thị Begin {Tìm kiếm 10 sản phẩm sở liệu hành.} {Chuẩn bị định dạng cho record này.} {Hiển thị.} 98 EndProcedure Tương tự cho hàm Last tải liệu 10 record sản phẩm cuối sở liệu hành hiển thị cho người sử dụng tham khảo Đối với hàm Previous Next chương trình dựa vào trang hành hiển thị để tìm sản phẩm hiển thị cho người sử dụng tham khảo B.2 Mã giả số hàm dùng chương trình nhận dạng sản phẩm siêu thị chạy T-Engine/SH7760: B.2.1 Hàm task: Đây hàm chạy sau hàm main gọi để gán thông số cần thiết tạo task hoạt động Hàm thực cơng việc khởi tạo hình làm việc, cài đặt màu mà hình hiển thị, cho phép nhận kiện từ người sử dụng từ nút nhấn hình cảm ứng EXPORT void task( INT stacd, VP exinf ) Input stacd: mã khởi động task exinf: thông tin thêm task Output Khởi tạo phiên làm việc cho TEngine/SH7760 Begin {Thực công việc khởi tạo.} EndProcedure B.2.2 Hàm init: Đây hàm gọi hàm task chạy đầu tiên, hàm làm nhiệm vụ khởi động biến nằm hệ thống, xác định tọa độ vùng để nhận kiện chuẩn bị giao diện cho người dùng LOCAL void init( void ) Input 99 Output Khởi động biến nằm hệ thống chuẩn bị giao diện cho người dùng Begin {Thực công việc khởi tạo.} {Thực công việc xác định tọa độ.} {Thực công việc vẽ giao diện cho người sử dụng.} EndProcedure B.2.3 Hàm DisplaymnuFile: Hàm lưu trạng thái hình thời hiển thị menu File cho người sử dụng mục menu File LOCAL void DisplaymnuFile ( void ) Input Output Lưu trạng thái hình thời hiển thị menu File Begin {Lưu trạng thái hình thời.} {Hiển thị menu File.} EndProcedure Tương tự cho DisplaymnuSearch DisplaymnuHelp B.2.4 Hàm pdproc: Hàm tính tốn tất tọa độ sử dụng chương trình để đáp ứng kiện nhấp vào hình cảm ứng T-Engine/SH7760 Trong hàm tính tốn form tích cực để đáp ứng kiện nhấp cho LOCAL void pdproc (EVENT *evt) Input *evt: Con trỏ cấu trúc liệu kiện nhấp vào hình cảm ứng Output Đáp ứng kiện nhấp vào hình cảm ứng TEngine/SH7760 Begin 100 {Tính tốn tọa độ.} {Đáp ứng kiện nhấp vào hình cảm ứng TEngine/SH7760.} EndProcedure B.2.5 Hàm SearchOneRecord: Hàm dựa vào thông tin mã sản phẩm mà người sử dụng nhập vào để tìm kiếm sản phẩm hiển thị thơng tin sản phẩm có mã nhập vào Nếu khơng tìm thấy hiển thị thơng báo khơng tìm thấy LOCAL void SearchOneRecord () Input Output Tìm kiếm hiển thị thông tin sản phẩm cho người sử dụng Begin {Tìm kiếm sản phẩm có mã nhập vào.} {Hiển thị thơng tin sản phẩm có mã nhập vào.} EndProcedure B.2.6 Hàm DisplayItem: Sau tìm kiếm thấy sản phẩm hàm chuẩn bị hiển thị thông tin sản phẩm cho người sử dụng tham khảo LOCAL void DisplayItem () Input Output Hiển thị thông tin sản phẩm cho người dùng tham khào Begin {Chuẩn bị liệu hiển thị.} {Định dạng cho phù hợp để hiển thị.} {Hiển thị thông tin sản phẩm.} EndProcedure B.2.7 Hàm Show: Hàm dùng để hiển thị ảnh T-Engine/SH7760 101 EXPORT void show(unsigned long ** pixels,int x,int y,int height,int width) Input x,y: tọa độ hiển thị T-Engine/SH7760 height,width: chiều rộng chiều cao ảnh **pixels: trỏ tới liệu ảnh Output Hiển thị ảnh lên T-Engine/SH7760 Begin { Hiển thị ảnh lên T-Engine/SH7760.} EndProcedure B.2.8 Hàm SelecttxtProductCode: Hàm cho phép người dùng nhập vào mã sản phẩm LOCAL void SelecttxtProductCode( void ) Input Output Cho phép người dùng nhập vào mã sản phẩm Begin {Chuẩn bị định dạng cho phép nguời dùng nhập vào mã sản phẩm.} {Hiển thị Keyboard cho người dùng nhập mã.} EndProcedure B.2.9 Hàm read_BMP: Hàm dùng để đọc liệu từ tập tin ảnh bmp để lấy liệu ảnh, hàm xử lý loại bỏ tất thông tin không cần thiết để hiển thị ảnh EXPORT unsigned long **read_BMP(char*file_name,int*h,int *w) Input *h,*w, *file_name: trỏ chiều cao, chiều rộng tên ảnh Output Trả trỏ đến phần liệu đọc tập tin ảnh Begin {Đọc liệu tron ảnh.} {Loại bỏ thông tin không cần thiết.} 102 EndProcedure B.2.10 Hàm Init_Keyboard: Hàm dùng để hiển thị Keyboard cho người sử dụng dùng IMPORT void Init_Keyboard(BMP *p_bmp) Input *p_bmp: trỏ đến cấu trúc BMP chứa thông tin xử lý hình cảm ứng Output Begin {Tính toán tọa độ cần thiết để hiển thị Keyboard.} {Vẽ Keyboard cho người sử dụng.} EndProcedure B.2.11 Hàm Select_Key: Hàm dùng để đáp ứng kiện nhấp phím hình cảm ứng IMPORT void Select_Key (BMP *p_bmp, int x, int y) Input *p_bmp: trỏ đến cấu trúc BMP chứa thơng tin xử lý hình cảm ứng x,y: tọa độ hình cảm ứng Output Begin {Tính tốn tọa độ cần thiết để xác định phím hình cảm ứng nhấn } {Xử lý sau xác định phím nhấn.} EndProcedure B.2.12 Hàm CreateIndexTree: Hàm dùng để tạo nhị phân tìm kiếm dựa mã sản phẩm trình tìm kiếm nhanh IMPORT int CreateIndexTree(char* DatabaseFileName) 103 Input * DatabaseFileName: trỏ tên tập tin sở liệu chứa liệu mã sản phẩm cần để xây dựng nhị phân tìm kiếm Output Trả mã tạo hay không Begin {Đọc liệu mã sản phẩm tập tin sở liệu } {Thêm nút vào nhị phân tìm kiếm.} EndProcedure B.2.13 Hàm ReadItem: Hàm dùng để đọc thông tin sản phẩm sau biết vị trí lưu tập tin sở liệu EXPORT void ReadItem(int Position) Input Position: Vị trí tập tin sở liệu Output Begin {Đọc trường thông tin sản phẩm lưu vào cấu trúc liệu thích hợp } {Loại bỏ khoảng trắng dư thừa liệu } EndProcedure B.2.14 Hàm MaxRowOfInformation: Hàm dùng để tính tốn số dịng đoạn văn hiển thị khung hiển thị Ta dùng hàm để xây dựng nên Textbox chương trình EXPORT int MaxRowOfInformation() Input Output Begin {Đọc toàn nội dung cần hiển thị.} {Tính tốn số dịng cần thiết để hiển thị tồn thơng tin Textbox cho trước.} EndProcedure 104 ... (tk_ter_tsk) Terminate (tk_ter_tsk) SUSPEND state (treo) DORMANT state (ngủ) Create (tk_cre_tsk) Terminate (tk_ter_tsk) Terminate Exit (tk_ext_tsk) Delete (tk_del_tsk) NON-EXISTENT state (khơng t? ??n... Chương trình có chức t? ??o quản lý sở liệu cho chương trình nhận dạng sản phẩm siêu thị ¾ Chương trình vi? ?t chạy hệ điều hành Windows với chức quản lý sản phẩm thơng tin chúng siêu thị Chương trình. .. hàm hệ thống mở rộng điều khiển tiến trình, điều khiển t? ??p tin giao tiếp tiến trình Chương trình thực thi nhớ ảo T- Kernel mở rộng 3.7 T? ??ng quan T- Monitor: T- Monitor chương trình giám s? ?t T -Engine,