Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
2,43 MB
Nội dung
1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN HỒNG PHÚC LỜI CÁM ƠN Em xin cám ơn toàn thể thầy, cô giáo khoa Công nghệ Điện tử - Viễn thông Trường Đại học Công Nghệ nhiệt tình giảng dạy, hướng dẫn em hoàn thành khóa học Đặc biệt lòng kính trọng biết ơn sâu sắc em tới thầy giáo PGS.TS.Trần Quang Vinh, người tận tình hướng dẫn em suốt trình hoàn thành luận văn Tôi xin cám ơn đến Lãnh đạo Văn phòng Quốc hội, Cục Quản trị, Vụ Tổ chức - Cán tạo điều kiện thuận lợi để học; cám ơn anh, chị công tác Viện Điện tử - Viễn thông Bộ Quốc phòng giúp đỡ, cung cấp tài liệu cần thiết, giúp hoàn thành luận văn NGHIÊN CỨU HỆ THỐNG BIỂU QUYẾT ĐIỆN TỬ SỐ Nhân đây,Tôi xin cảm ơn gia đình bạn bè nguồn lực tinh thần động viên khích lệ vượt qua khó khăn để hoàn thành luận văn Hà Nội, ngày 24 tháng 12 năm 2009 Nghành: Công nghệ Điện tử- Viễn Thông Chuyên nghành: Kỹ thuật Điện tử Mã số: 60.52.70 Nguyễn Hồng Phúc LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS Trần Quang Vinh Hà Nội- 2009 MỤC LỤC LỜI CAM ĐOAN Tôi xin cam đoan đề tài luận văn không trùng lặp với đề tài khóa trước thực nội dung luận văn không chép luận văn khác Nếu có gian lận nào, xin hoàn toàn chịu trách nhiệm Người cam đoan Nguyễn Hồng Phúc LỜI CÁM ƠN LỜI CAM ĐOAN MỤC LỤC DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT DANH MỤC CÁC BẢNG MỞ ĐẦU 10 CHƯƠNG 1:TỔNG QUAN VỀ HỆ THỐNG BIỂU QUYẾT ĐIỆN TỬSỐ (DCN) 11 1.2 Giới thiệu tổng quan hệ thống biểu điện tử số DCN 12 1.2.1 Thiết bị phân tập 13 1.2.2 Thiết bị điều khiển trung tâm CCU 13 1.3 Định tuyến hệ thống âm hệ DCN 14 1.4 Nguyên lý hoạt động hệ thống biểu số 15 1.4.1 Sơ đồ nguyên lý hoạt động hệ thống biểu điện tử số 15 1.4.2 Cấu trúc Bộ điều khiển trung tâm CCU 15 1.4.3 Nguyên lý hoạt động hệ thống biểu điện tử số DCN 16 1.5 Các phần mềm ứng dụng điều khiển hệ thống biểu điện tử số DCN: 17 CHƯƠNG 2: CẤU HÌNH HỆ THỐNG BIỂU QUYẾT ĐIỆN TỬ SỐ DCN 18 2.1 Cấu hình hệ thống biểu số DCN 18 2.1.2 Hệ thống biểu điện tử số DCN Multi- CCU 18 2.2 Thông số cổng CCU kết nối với PC kết nối với camera 20 2.3 Thông số kỹ thuật cổng nối tiếp RS 232 21 2.3.1 Truyền thông hai nút 25 2.3.2 Truy xuất trực tiếp thông qua cổng COM 26 CHƯƠNG 3:GIAO DIỆN ĐIỂU KHIỂN TỪ XA ĐẾN HỆ THỐNG DCN 27 3.1 Mô hình hệ thống điều khiển từ xa 27 3.2 Các thông số điều khiển từ xa 27 3.2.1 Kiểu thông báo định dạng 27 3.2.2 Kiểu định dạng thông báo 28 3.2.3 Định dạng yêu cầu điều khiển từ xa 28 3.2.4 Định dạng đáp ứng điều khiển từ xa 29 3.2.5 Định dạng thông báo cập nhật MDSC_NOTIFY 29 3.2.6 Định dạng thông số truyền thông 30 3.3 Thủ tục truyền thông điều khiển trung tâm 30 3.3.1 Đặc tính giao thức truyền thông Full 31 3.3.2 Tham số nhận biết thông tin 33 3.3.3 Giao thức truyền thông 34 3.3.3.1 Gói liệu không trả lời 35 3.3.3.2 Giá trị thời gian kết nối đường truyền 36 CHƯƠNG 4: XÂY DỰNG PHẦN MỀM BIỂU QUYẾT 37 4.1 Chức đăng ký đại biểu 37 4.1.1 Đăng ký tham dự 37 4.1.2 Điều khiển truy cập hệ thống 37 4.1.4 Kết hợp đăng ký tham dự với truy cập hệ thống 38 4.1.5 Thông số chức 38 4.2 Điều khiển microphone hệ thống biểu điện tử số 38 4.2.1 Các bước đăng ký phát biểu 38 4.2.2 Chương trình kiểm soát danh sách đại biểu 39 4.3 Biểu điện tử 41 4.3.1 Các kiểu loại biểu điện tử số 41 4.3.2 Các bước thực biểu điện tử số 41 4.3.3 Xây dựng chương trình hiển thị kết biểu 43 4.4 Kết ghép nối máy tính với điều khiển trung tâm 51 KẾT LUẬN 55 TÀI LIỆU THAM KHẢO 56 PHỤ LỤC 57 DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT TỪ VIẾT TẮT NỘI DUNG Ý NGHĨA ACN Audio Communication Network Mạng truyền âm AT Attendance Registration Đăng ký điểm danh CCU Central Control Unit Bộ điều khiển trung tâm DCN Digital Congress Network Mạng hội nghị số EIA Electronics Industry Associations Hiệp hội điện tử công nghiệp Mỹ LCD Liquid Crystal Display Màn tinh thể lỏng PA Public Address Hệ thống công cộng PC Personal Computer Máy vi tính PRAEDIC Profession Audio Encoding Decoding Intergrated Circuit Vi mạch mã hóa giải mã tín hiệu tiếng chuyên dụng remote controller Device (e.g PC) connected to the CCU Bộ điều khiển từ xa RFS Remote Function Services Gói dịch vụ chức điều khiển từ từ xa SC System Configuration Cấu hình hệ thống SI System Installation Cài đặt hệ thống UnitId Unit identification, also called unit- Thiết bị khai báo hệ number thống DCN VT Voting application Ứng dụng biểu DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG Tên bảng Nội dung Hình Tên hình Bảng 1.1 Thông số kỹ thuật chuẩn RS232 1.1 Sơ đồ tổng quan hệ thống biểu số Bảng 1.2 Chức cổng nối tiếp 1.2 Sơ đồ định tuyến âm hệ thống biểu số DCN Bảng 1.3 Các ngắt cổng COM 1.3 Sơ đồ nguyên lý hệ thống biểu điện tử số DCN Bảng 1.4 Thông số kết nối đường truyền 1.4 Hình ảnh bên điều khiển trung tâm CCU Sự kiện comevent 1.5 Bảng 1.5 Hình ảnh bên ngoại điều khiển trung tâm CCU 2.1 Kết nối hệ thống DCN độc lập Bảng 1.6 Bảng kiện 2.2 Kết nối hệ thống biểu điện tử số Multi CCU Bảng 1.7 Bảng thiết lập giao thức bắt tay 2.3 Tín hiệu truyền ký tự ‘A’ 2.4 Sơ đồ chân cổng nối tiếp 2.5 Kết nối đơn giản truyền thông nối tiếp 2.6 Kết nối truyền thông nối tiếp dùng tín hiệu bắt tay 3.1 Sơ đồ ghép nối với điều khiển từ xa 3.2 Sơ đồ trạng thái truyền thủ tục truyền “ FULL” 4.1 Giao diện phần mềm biểu 4.2 Giao diện Danh sách đăng ký phát biểu 4.3 Giao diện hiển thị kết biểu 4.4 Cơ sở liệu đại biểu 4.5 Cơ sở liệu tỉnh, thành phố 4.6 Toàn cảnh phiên họp Quốc hội 4.7 Hệ thống biểu Hội trường Bộ Quốc phòng 4.8 Giao diện điều khiển Mic biểu 4.9 Tra cứu thông tin đại biểu 4.10 Hiển thị danh sách đăng ký phát biểu 4.11 Kết bắt đầu biểu 4.12 Kết biểu hết thời gian biểu 10 MỞ ĐẦU Ngày nay, lĩnh vực Công nghệ thông tin truyền thông (ICT) phát triển mạnh mẽ với công nghệ đại đời Nó xâm nhập vào lĩnh vực đời sống xã hội Việc xã hội hoá thông tin phát triển từ phần cứng, phần mềm, hệ thống mạng viễn thông hệ thống dành cho xử lý thông tin, hệ thống truyền thông, hệ thống điều khiển từ xa, v.v…đã góp phần nâng cao chất lượng, độ tin cậy, hiệu công việc tiết kiệm mặt thời gian, không gian, địa điểm với khoảng cách xa kết nối điều khiển từ xa Hệ thống biểu điện tử số DCN sử dụng công nghệ kỹ thuật số đại cho việc điều khiển hội nghị với hàng nghìn người Hệ thống đạt hiệu ưu việt từ điều khiển âm thanh, đăng ký đại biểu, phân quyền người truy cập, truyền đa ngôn ngữ, biểu điện tử, ghép nối điều khiển từ xa tích hợp vào hệ thống Với phương thức biểu truyền thống hình thức giơ tay, bỏ phiếu kín nhiều công sức thời gian kiểm phiếu thời gian, dễ sai sót Biểu điện tử số cho kết biểu nhanh chóng, độ tin cậy cao có khả lưu trữ trạng thái biểu Đề tài Luận văn “Nghiên cứu Hệ thống biểu điện tử số” có nội dung nghiên cứu hệ thống với tính trội, độ tin cậy kỹ thuật, thông số truyền dẫn, ghép nối điều khiển từ xa với trung tâm điều khiển Qua đó, ta phát triển nhiều ứng dụng nhằm khai thác hệ thống tốt điều khiển hội nghị từ xa, biểu điện tử từ xa Luận văn gồm chương Chương 1: Tổng quan hệ thống biểu điện tử số DCN Chương 2: Cấu hình hệ thống biểu số DCN Giao tiếp cổng nối tiếp RS232 Chương 3: Nghiên cứu thủ tục truyền thông hệ thống biểu điện tử số DCN Chương 4: Xây dựng phần mềm biểu 11 12 CHƯƠNG TỔNG QUAN VỀ HỆ THỐNG BIỂU QUYẾT ĐIỆN TỬSỐ (DCN) Hệ thống phiên dịch hồng ngoại sử dụng sóng hồng ngoại để phát kênh dịch riêng lẻ Ứng với kênh hồng ngoại ngôn ngữ dịch Qua thu hồng ngoại người nghe lựa chọn ngôn ngữ phù hợp với ngôn ngữ Hệ thống mạng 1.1 Sơ đồ tổng quan hệ thống biểu điện tử số DCN Hệ thống sử dụng để kết nối điều khiển từ xa, chẳng hạn: truyền hình hội nghị, điều khiển từ xa hệ thống biểu điện tử số DCN, mạng máy tính điều khiển, hiển thị thông tin đại biểu, kết biểu quyết, thông báo hội nghị, nhắn tin… 1.2 Giới thiệu tổng quan hệ thống biểu điện tử số DCN: Hệ thống biểu điện tử số DCN cung cấp phương tiện điều khiển linh động, mềm dẻo cho loại hội nghị, từ hội thảo nhỏ đến hội nghị quốc tế, hội nghị đa ngôn ngữ với hàng trăm đại biểu Hệ thống DCN cung cấp dịch vụ từ quản lý điều khiển microphone, nhận dạng đại biểu, đăng ký đại biểu, biểu điện tử, hiển thị thông tin đến thiết bị phân phối, hiển thị mở rộng hệ thống phiên dịch đồng thời điều khiển camera tự động Toàn thiết bị DCN bao gồm: Thiết bị phân bố gồm: microphone đại biểu, microphone chủ toạ… Thiết bị phân bố thực chức sau: Hình 1.1: Sơ đồ tổng quan hệ thống biểu số Hệ thống biểu điện tử số sử dụng công nghệ kỹ thuật điện tử viễn thông Hệ thống biểu điện tử DCN bao gồm hình 1.1: Trung tâm điều khiển Bộ vi xử lý trung tâm, Bộ xử lý số tín hiệu, Bộ nhớ EPROM,… Quản lý sở liệu đại biểu, Quản lý điều khiển microphone đại biểu: danh sách đăng ký phát biểu, danh sách phát biểu, điều khiển tắt mở microphone, Điều khiển biểu điện tử: khởi tạo thời gian, biểu quyết, huỷ biểu quyết, hiển thị kết biểu quyết, quản lý điểm danh đại biểu v.v… Hệ thống ghép nối âm mở rộng Hệ thống tạo đường âm chất lượng cao ghép nối với hệ thống âm ngoài: mixer, khuyếch đại công suất (amplifier), loa Hệ thống phát hồng ngoại - Chức biểu điện tử theo trạng thái: điểm danh, biểu quyết, không biểu quyết, không tán thành - Chức đọc thẻ chíp - Chức microphone: đăng ký, hủy đăng ký phát biểu - Chức thông tin hội nghị - Chức chủ tọa hội nghị Thiết bị điểu khiển trung tâm CCU: Bao gồm vi xử lý, xử lý số, nhớ đường bus ACN1, ACN2 Bộ điều khiển trung tâm quản lý, điều khiển microphone, Biểu quyết, truyền thông đến phần mềm điều khiển, điều khiển từ xa… Thiết bị phiên dịch thiết bị phân phối dịch: Thiết bị sử dụng để truyền tải, phân phối ngôn ngữ theo kênh dịch để đại biểu hội nghị lựa chọn ngôn ngữ cho phù hợp với ngôn ngữ Thiết bị hiểu thị thông tin: Bảng hiển thị kết biểu Hall Display, Màn hiển thị điều khiển, Màn hình lớn: để hiển thị thông báo, hình ảnh, trình biểu quyết, kết biểu lên hình 13 Các gói phần mềm ứng dụng: - Quản lý vị trí lắp đặt thiết bị - Quản lý sở liệu - Quản lý điều khiển microphone - Quản lý danh sách đại biểu - Quản lý điều khiển biểu điện tử số 14 1.3 Định tuyến hệ thống âm hệ DCN Định tuyến âm hệ thống biểu điện tử DCN theo hình 1.2 sau: Các thiết bị lắp đặt: - Hộp kết nối đa mục đích, - Bộ khuyếch đại - Bộ điều khiển microphone - Bộ điểu khiển biểu - Hộp đọc thẻ Ngoài ra, thiết bị DCN mở rộng cách thích nghi với hệ thống hệ thống video, hiển thị liệu, hệ thống Camera TV, PC, hệ thống giám sát hiển thị, hệ thống khuếch đại PA, hệ thống loa hệ thống in ấn 1.2.1 Thiết bị phân lập Bao gồm thiết bị thực chức sau: Nghe, đăng ký phát biểu, phát biểu, nhận thông tin thông báo hình, liên lạc nội đại biểu thực biểu quyết, cắm thẻ đại biểu Chẳng hạn như: Hộp microphone chủ toạ, Hộp microphone đại biểu, bàn phiên dịch… 1.2.2 Thiết bị điều khiển trung tâm CCU Thiết bị điều khiển trung tâm CCU trái tim hệ thống DCN Bộ điều khiển trung tâm CCU hoạt động điều khiển hội nghị độc lập - CCU hoạt động thông qua máy tính sử dụng phần mềm điều khiển - CCU có khả điều khiển 240 thiết bị phân tập; - Khi tăng dung lượng điều khiển mở rộng CCU slave kết nối tối đa 16 có nghĩa có khả điều khiển mở rộng hệ thống lên 3840 thiết bị tương ứng với hội nghị có 3840 đại biểu - CCU cho phép quản lý điểu khiển microphone, hệ thống dịch đồng bộ, biểu điện tử, nhiều phương tiện khác kênh tiếng số, kênh liệu kênh truyền thông - CCU thực chức như: phiên dịch, điều khiển microphone, thông báo message, hiển thị kết biểu quyết, thủ tục biểu quyết, liên lạc nội (intercom) tạo sở liệu, đăng ký đại biểu, xử lý tiếng nói điều khiển Camera tự động Hình 1.2: Sơ đồ định tuyến âm hệ thống biểu số DCN Tín hiệu âm Voice từ người phát biểu thu microphone, tín hiệu microphone qua chuyển đổi A/D qua ghép kênh truyền dẫn đến trộn âm Audio Mixer đến chuyển đổi D/A đưa đến khuyếch đại công suất đến Loa ( loa đại biểu, loa PA,…) 15 16 1.4 Nguyên lý hoạt động hệ thống biểu số 1.4.3 Nguyên lý hoạt động hệ thống biểu điện tử số DCN 1.4.1 Sơ đồ nguyên lý hoạt động hệ thống biểu điện tử số - Kiến trúc mạng dây hệ thống cung cấp đường truyền thông kết nối đa phương tiện vi xử lý trung tâm đến thiết bị ghép nối vào CCU - Việc truyền thông thông qua hệ thống dây mạng để kết nối thiết bị với truyền thông CCU với khối IC chức thực nguyên tắc truyền thông khối truyền thông mạng âm ACN1, ACN2 ACN3 với - ACN1 lắp đặt thiết bị đại biểu, chủ toạ, bàn phiên dịch ACN1 kết nối với CCU thông qua ACN2, việc gửi nhận (hoạt động hay không hoạt động, kích hoạt hay thụ động) - ACN2 nhận thông tin từ ACN1 ACN3 truyền đến vi xử lý trung tâm - ACN3 có chức nhận liệu chẳng hạn chọn kênh nhận thông tin - PREADIC ( Profession Audio Encoding Decoding Intergrated Circuit) xử lý tích hợp chuyển đổi tương tự số chuyển đổi số sang tương tự: chẳng hạn tín hiệu từ microphone qua A/D để xử lý tương tự tín hiệu số qua mã hóa để mã hóa tín hiệu số truyền đi, tín hiệu số nhận qua giải mã đến D/A để xử lý số tương tự khuếch đại loa - Để đưa kết biểu bảng hiển thị điều khiển trung tâm truyền liệu qua cổng COM theo chuẩn RS 232 - Để dùng máy vi tính PC điều khiển, kết nối với điều khiển trung tâm thông qua Card mạng kết nối chuyên dụng Sơ đồ nguyên lý hoạt động hệ thống biểu số trình bày hình 1.3 Hình 1.3: Sơ đồ nguyên lý hệ thống biểu điện tử số DCN Chi tiết khối sau: 1.4.2 Cấu trúc điều khiển trung tâm CCU - Để đưa hình ảnh camera hình thông qua đường video hệ thống chuyển mạch camera Hình ảnh bên thiết bị trung tâm CCU trình bày hình 1.4 Bộ điều khiển trung tâm CCU bao gồm: - Vi xử lý trung tâm - Bộ xử lý tín hiệu số (DSP) - Bộ nhớ FLash - Bộ nhớ EFROM - ACN1 : Audio control Network - ACN2: Audio Control Network - Praedic: Bộ tiền xử lý tiếng ghép kênh - Bảng điều khiển điều khiển Các khối chức kết nối với thông qua đường dây mạng Hình 1.4: Hình ảnh bên điều khiển trung tâm CCU 17 18 Hình ảnh bên thiết bị điều khiển trung tâm CCU hình 1.5 CHƯƠNG CẤU HÌNH HỆ THỐNG BIỂU QUYẾT ĐIỆN TỬ SỐ DCN VÀ GIAO TIẾP CỐNG NỐI TIẾP RS232 2.1 Cấu hình hệ thống biểu số DCN Tuỳ thuộc vào số lượng đại biểu mà lựa chọn cấu hình hệ thống biểu điện tử số DCN đơn giản hay phức tạp Với số lượng đại biểu khoảng 240 đại biểu ta lựa chọn cấu hình hệ thống DCN single CCU Còn số lượng đại biểu nhiều 240 đại biểu sử dụng hệ thống DCN Multi CCU Hình 1.5: Hình ảnh bên cùa điều khiển trung tâm CCU 2.1.1 Hệ thống biểu điện tử số DCN Single CCU 1.5 Các phần mềm ứng dụng điều khiển hệ thống biểu điện tử số DCN: Hệ thống phần mềm điều khiển hệ thống DCN bao gồm module phần mềm sau: + Phần mềm khởi tạo hệ thống Phần mềm có tác dụng khởi động kết nối đường truyền với hệ thống DCN để chạy ứng dụng: thiết lập vị trí địa cứng cho đại biểu + Phần mềm sở liệu phần mềm lưu trữ thông tin đại biểu: tên, pin, code, quyền truy cập đại biểu biểu hay không biểu quyết, phát biểu hay không phát biểu dự thính + Phần mềm biểu điện tử phần mềm điều khiển hệ thống DCN biểu quyết: đặt chế độ biểu quyết: nghị viện kín hay nghị viện công khai, thời gian biểu quyết, khởi tạo biểu quyết, tạm dừng trình biểu quyết, kết thúc trình biểu quyết, huỷ bỏ trình biểu thị kết biểu + Phần mềm hiển thị kết biểu phần mềm đưa số liệu biểu + Phần mềm quản lý Microphone phần mềm cho phép đại biểu đăng ký phát biểu vào danh sách đại biểu, huỷ đăng ký, thêm đăng ký, điều khiển phát biểu, vào danh sách phát biểu…Điều khiển DCN hoạt động chế độ microphone: chế độ đăng ký phát biểu, chế độ tự động bật microphone, chế độ chiếm microphone (FIFO)… + Phần mềm quản lý vắng mặt, điểm danh phần mềm kiểm tra số lượng đại biểu có mặt, vắng mặt, hiển thị thông tin đại biểu đăng nhập hệ thống, thoát khỏi hệ thống Hình 2.1: Kết nối hệ thống DCN độc lập Hệ thống DCN dùng điều khiển trung tâm, dùng cho hội nghị nhỏ khoảng 240 đại biểu Bộ điều khiển trung tâm CCU kết nối cổng (port) với máy tính điều khiển PC kết nối theo chuẩn ghép nối nối tiếp với thông số cổng: (8,N,1) với tốc độ 115.2 kbps, giao thức truyền Full - Bộ chuyển mạch điều khiển camera kết nối vào (port) điều khiển trung tâm CCU theo thông số cổng: (8,N,1) với tốc độ 19.2 kbps, giao thức protocol: CAMERA Bằng kết nối này, hệ thống biểu điện tử số tự động tìm đến vị trí đại biểu đại biểu bật microphone 2.1.2 Hệ thống biểu điện tử số DCN Multi- CCU Khi hội nghị có số lượng lớn đại biểu tham dự hệ thống biểu 19 điện tử số cần mở rộng cách sử dụng kết nối nhiều điều khiển trung tâm kết nối theo hình 2.2 20 2.2 Thông số cổng CCU kết nối với PC kết nối với camera Thông số cổng COM sử dụng hệ điều hành OS2 - Thiết lập số cổng: Serial Port < number> Number or Cổng lôgic Portnumber tắt truyền thông nối tiếp 1–2 số cổng nối tiếp PC ( OS2) (COM1 – COM2) Thiết lập tốc độ truyền dẫn: Serialspeed Hình 2.2: Kết nối hệ thống biểu điện tử số Multi CCU Cấu hình máy tính điều khiển: Cài đặt hệ điều hành từ window 95 trở lên Hệ thống thiết lập có đầy đủ chức hệ thống biểu điện tử số: điều khiển microphone hội nghị, biểu quyết, chuyển mạch video theo vị trí microphone bật, với số lượng điều khiển lên đến 3840 microphone đại biểu Hệ thống biểu điện tử số kết nối sau: - CCU kết nối với PC điều khiển thông qua port CCU với thông số cổng COM: 115.2 kbps với giao thức (protocol): Full - CCU kết nối với hệ thống điều khiển camera qua cổng port CCU với thông số cổng COM: 19200bps Number or cổng lôgic Baudrate 19200 Các giá trị: 9600,19200,57600 115200 Các kiểu thủ tục truyền thông: Serial protocol Number or Cổng lôgic Type Terminal cổng sử dụng mã ACII Simple Thủ tục truyền simple Full Thủ tục truyền Full Camera Cổng sử dụng chuyển mạch video Thông số cổng COM: Chức Remote control cổng COM ( Điều khiển từ xa) Camera control DCN PC control ( Điều khiển Camera) ( Máy tính điều khiển DCN) Port 1: SERIALPORT2 Remote SERIALSPEED2 SERIALPORT1 SERIALSPEED1 Không ứng dụng 39 40 Lưu đồ điều khiển microphone sau: Xây dựng giao diện chương trình ngôn ngữ Visual Basic 6.0 hình 4.1 Bắt đầu Thiết lập trạng thái Kiểm tra yêu cầu trạng thái micro Kiểm tra điều khiển bật/tắt Có Bật / tắt Hình 4.1: Giao diện phần mềm biểu + Thiết kế form quản lý danh sách đăng ký phát biểu hình 4.2 Không Dừng chương trình Có Kết thúc 4.2.2 Chương trình kiểm soát danh sách đại biểu Khi phát biểu thảo luận hội nghị, phần quan trọng để điều hành hội nghị phải kiểm soát danh sách đại biểu đăng ký phát biểu biết đại biểu phát biểu Do đó, ta xây dựng phần mềm hiển thị danh sách đăng ký phát biểu danh sách phát biểu sau: Hình 4.2: Giao diện Danh sách đăng ký phát biểu 41 4.3 Biểu điện tử 42 Quá trình biểu điện tử số thực theo lưu đồ sau: 4.3.1 Các kiểu loại biểu điện tử số -Biểu điện tử số tuỳ vào thực tế sử dụng mà người ta chia làm nhiều kiểu loại khác sau: -Biểu nghị viện: Đại biểu tham dự biểu với trạng thái biểu quyết: tán thành, không tán thành, bỏ phiếu trống đại biểu không tham gia biểu -Biểu For/Againt: Đại biểu bỏ phiếu với trạng thái: đồng ý phản đối -Biểu đáp ứng số vấn đề: có loại câu hỏi để đại biểu trả lời: phản đối, phản đối, bỏ phiếu trống, đồng ý, đồng ý Đại biểu lựa chọn ý kiến Hệ thống biểu tính tỷ lệ để thị đồng ý với trạng thái Tại kỳ họp Quốc hội nước ta sử dụng kiểu biểu nghị viện với trạng thái biểu quyết: Tán thành, không tán thành, không biểu Bắt đầu biểu Kiểm tra biểu Thuật toán thống kê đưa hình Còn thời gian 4.3.2 Các bước thực biểu điện tử số - Đặt thông số biểu quyết: thời gian biểu - Chọn loại biểu quyết: nghị viện công khai - Khởi tạo biểu - Hiển thị kết biểu hình Kiểm tra thời gian Hết thời gian - Kết thúc biểu Kết thúc 43 4.3.3 Xây dựng chương trình hiển thị kết biểu + Xây dựng form hình hiển thị biểu sau: Hình 4.3: Giao diện hiển thị kết biểu 4.4 Điều khiển MSComm Visual Basic Visual Basic ngôn ngữ lập trình hướng đối tượng có nhiều tính có điều khiển ActiveX MSComm dùng truyền thông nối tiếp Các tính chất điều khiển dùng để thiết lập giao tiếp với thiết bị ngoại vi qua cổng RS232 Các tính chất MSComm xếp theo chức năng: Thiết lập tham số cho cổng: + CommID: trả lại handles đồng tới thiết bị truyền thông, có kiểu Long Tính chất lúc thiết kế mà có thi hành, thuộc tính ReadOnly + CommPort: dạng object.CommPort = value Value số cổng Com có giá trị từ ‐> 16 mặc định có giá trị =1 Thiết lập thông số trước mở cổng Sẽ có lỗi error 68 (Device unavailable) không mở cổng + InBuferSize: thiết lập trả lại kích thước đệm nhận, tính = byte Mặc định 1024 byte + InputLen: object.InputLen [= value] thiết lập trả lại số byte lần thuộc tính Input đọc đệm nhận Mặc định giá trị Value = tức thuộc tính Input đọc hết nội dung đệm nhận thuộc tính 44 gọi Nếu số kí tự đệm nhận không = InputLen thuộc tính Input trả lại kí tự rỗng Vì thế, chọn cách kiểm tra InBufferCount để chắn số kí tự yêu cầu có đủ trước dùng lệnh Input Tính chất có ích đọc liệu máy mà liệu định dạng khối có kích thước cố định + InputMode: object.InputMode [ = value ] Value = hay = comInputModeText liệu nhận dạng văn kiểu kí tự theo chuẩn ANSI Dữ liệu nhận sâu Value =1 hay = comInputModeBinary dùng nhận kiểu liệu kí tự điều khiển nhúng, kí tự NULL, Giá trị nhận từ Input mảng kiểu Byte + NullDiscard: object.NullDiscard [ = value ] tính chất định kí tự trống có truyền từ cổng đến đệm nhận hay không Nếu value= True kí tự không truyền value = false kí tự trống truyền Kí tự trống định nghĩa theo chuẩn ASCII kí tự – chr$(0) + OutBuferSize: giống InBuferSize, mặc định 512 + ParityReplace: thiết lập trả lại kí tự thay kí tự không lỗi giống + PortOpen: thiết lập trả lại tính trạng cổng (đóng mở) object.PortOpen [ = value ] value = true cổng mở value =false cổng đóng xóa toàn liệu đệm nhận truyền Cần phải thiết lập thuộc tính CommPort với tên cổng trước mở cổng giao tiếp Thêm vào đó, cổng giao tiếp thiết bị phải hỗ trợ giá trị thuộc tính Setting thiết bị hoạt động đúng, không chạy không tốt Đường DTR RTS giữ lại trạng thái cổng + RthresHold: object.Rthreshold [ = value ] value kiểu số nguyên Thiết lập số kí tự nhận trước gây lên kiện comEvReceive Mặc định = tức kiện OnComm nhận liệu Thiết lập = tức kiện OnComm xảy kí tự chuyển đến đệm nhận + Settings: object.Settings [ = value ] thiết lập trả lại thông số truyền: baudrate, bít liệu, bít chẵn lẻ, bít stop Nếu Value giá trị mở gây lỗi 380 (Invalidproperty value) + SThreshold: thiết lập và trả lại số kí tự nhỏ cho phép đệm gửi để xảy kiện OnComm = comEvSend Theo mặc định giá trị = tức truyền không gây kiện OnComm Nếu thiết lập thông số =1 kiện OnComm xảy đệm truyền rỗng Sự kiện OnComm = comEvSend xảy mà số kí tự đệm truyền nhỏ = Sthreshold Nếu số kí tự đệm lớn Sthreshold kiện xảy Truyền nhận liệu: + CommEvent: trả lại phần lớn kiện giao tiếp có lỗi CommEvent xảy có lỗi xảy kiện 45 46 Sau số số lỗi: Sự kiện Giá trị Miêu tả kiện comEventBreak 1001 nhận tín hiệu Break comEventFrame 1004 Lỗi hệ thống Phần cứng phát lỗi hệ thống comEventOverrun 1006 Xảy cổng tự tràn( Overrun) Kí tự không đọc từ phần cứng trước kí tự tới kí tự bị comEventRxOver 1008 Xảy đệm nhận bị tràn Không có đủ chỗ cho liệu đệm nhận comEventRxParity 1009 Lỗi Parity Phần cứng phát lỗi Parity comEventTxFull 1010 Xảy đệm truyền bị đầy Bộ đệm truyền bị đầy ghi liệu lớn vào đệm comEventDCB 1011 Một lỗi không mong muốn khôi phục lại khối điều khiển thiết bị( DCB – Device Control Block) cho cổng comEvCD Xảy có thay đổi đường CD( Carrier Detect) comEvRing Phát chuông (Ring).Một số UART không hỗ trợ kiện comEvEOF Xảy nhận kí tự kết thúc file ( kí tự 26 bảng mã ASCII) Bảng 1.6: Bảng kiện Bảng 1.5: Sự kiện comevent Một số kiện : Sự kiện Giá trị Miêu tả kiện comEvSend comEvReceive Xảy đệm nhận số kí tự giá trị RthresHold Sự kiện tạo liên tục dùng thuộc tính Input để lấy hết liệu từ đệm nhận RcomEvCTS Xảy có thay đổi đường CTS( Clear To Send) comEvDSR Xảy thay đổi đường DSR( Data Set Ready) Sự kiện xảy đường DSR thay đổi từ ‐> Xảy số kí tự đệm truyền nhỏ giá trị SthresHold EOFEnable : object.EOFEnable [ = value ] định hành động MSComm tìm thấy kí tự kết thúc file Nếu value=true tìm thấy kí tự kết thúc file gây lên kiện comEvEOF OnCommEvent Nếu value= false không gây lên kiện + InBufferCout: trả lại số kí tự có đệm nhận, xoá đệm nhận cách đặt thuộc tính =0 Không nhầm với thuộc tính InBufferSize tổng kích thước đệm nhận + Input: nhận xoá liệu đệm nhận Nếu InputMode comInputModeText giá trị trả xâu tức có kiểu String, liệu dạng text biến kiểu Variant Nếu InputMode = comInputModeBinary thuộc tính trả lại liệu dạng nhị phân dạng mảng kiểu byte biến Variant + OutBufferCount: trả lại số kí tự đệm truyền + Output: ghi liệu vào đệm truyền truyền kiểu text kiểu nhị phân Nếu truyền kiểu text cho biến Variant = kiểu String, truyền kiểu nhị phân cho Output= variant = mảng kiểu Byte Bắt tay( handshaking): + Break : thiết lập xoá tín hiệu object.Break [ = value] value = true false Khi set value= true thông số Break gửi tín hiệu break Tín hiệu break trì hoãn việc truyền liệu đưa đường truyền vào trạng thái break tới mà value = false + CDHolding: định xem truyền đến đâu cách truy vấn đường CD( Carrier Detect) Carrier Detect tín hiệu gửi từ modem tới máy tính kết nối với thông báo online Nếu giá trị = true đường CD mức cao, = false đường dây mức thấp Tính chất lúc thiết kế có chạy chương trình.Carrier Detect biết Receive Line Signal Detect (RLSD) + CTSHolding: quết định gửi liệu cách truy vấn trạng thái đường Clear To Send (CTS) Thông thường tín hiệu CTS gửi từ modem tới máy tính kết nối với để báo trình truyền liệu Thuộc tính Readonly xuất chạy chương trình Đường Clear To Send dùng RTS/CTS (Request To Send/Clear To Send) bắt tay phần cứng CTSHolding để tự tay dò đường Clear To Send để biết trạng thái 47 48 + DSRHolding: biết trạng thái đường Data Set Ready (DSR) Tín hiệu Data Set Ready truyền từ modem tới máy tính nối với để thông báo modem sẵn sàng hoạt động Tính chất dùng viết Data Set Ready/Data Terminal Ready handshaking routine cho máy Data Terminal Equipment (DTE)‐ máy trang bị đầu cuối liệu + Đoạn chương trình sử dụng MSCom để bắt liệu biểu điện tử số từ cổng( port 1) CCU: + DTREnable: tính chất định cho phép đường Data Terminal Ready (DTR) truyền thông Tín hiệu DTR gửi từ máy tính tới modem để báo máy tính sẵn sàng nơi nhận liệu Khi DTREnable = true đường Data Terminal Ready set lên cao cổng mở, thấp cổng đóng Nếu DTREnable = false đường mức thấp Trong phần lớn trường hợp set đường Data Terminal Ready thành thấp để hang up telephone + Handshaking: thiết lập trả lại giao thức bắt tay phần cứng object.Handshaking [ =value ] Các giá trị value: comNone (Mặc định) Không bắt tay comXOnXOff Bắt tay XON/XOFF comRTS Bắt tay RTS/CTS (Request To Send/Clear To Send) comRTSXOnXOff Dùng bắt tay Request To Send and XON/XOFF Bảng 1.7: Bảng thiết lập giao thức bắt tay Handshaking giao thức truyền thông nội định liệu truyền từ cổng phần cứng tới đệm nhận Khi kí tự liệu tới cổng nối tiếp, thiết bị truyền thông chuyển vào đệm nhận Nếu đệm liệu cần đọc kí tự trực tiếp từ phần cứng, liệu kí tự từ phần cứng đến nhanh Giao thức Handshaking đảm bảo liệu không bị mất, liệu đến cổng nhanh thiết bị truyền thông chuyển liệu vào đệm nhận + RTSEnable: định cho phép đường Request To Send (RTS), Tín hiệu RTS từ máy tính tới modem để yêu cầu tryền liệu Khi RTSEnable = true đường RTS mức cao cổng mở, tích mức thấp cổng đóng Và hiển nhiên RTSEnable đường RTS mức thấp.RTS dùng RTS/CTS hardware handshaking RTSEnable cho phép dò đường RTS cần biết tình trạng đường Private Sub MSComm1_OnComm() Dim dem As String Dim ii As Integer Dim CoMat As Integer Dim TanThanh As Integer Dim KhongTanThanh As Integer Dim KhongThamGia As String Dim KhongBieuQuyet As Integer If MSComm1.CommEvent = comEvReceive Then dem = MSComm1.Input ii = Asc(dem) 'Neu doc vao ma ket thuc=27 hoac xuong dong=32 thi bo qua 'Doc ky tu tiep theo If (ii = 27) Then ChuoiThu = "" dem = MSComm1.Input ii = Asc(dem) End If If (ii = 32) Then dem = MSComm1.Input ii = Asc(dem) End If 'Chuoi thu duoc ChuoiThu = ChuoiThu & Chr(ii) End If 'Reset bien If Check = Then Me.LblThoiGian.Caption = "00:00" Me.lblCoMat.Caption = "0" Me.lblTanThanh.Caption = "0" Me.lblKhongTanThanh.Caption = "0" Me.lblKhongBieuQuyet.Caption = "0" Me.lblCoMat_PT.Caption = "0%" Me.lblTanThanh_PT.Caption = "0%" Me.lblKhongTanThanh_PT.Caption = "0%" Me.lblKhongBieuQuyet_PT.Caption = "0%" End If 'Xu ly thoi gian 49 Me.LblThoiGian.Caption = Mid(ChuoiThu, 4, 4) Phut = Mid(Me.LblThoiGian.Caption, 1, 2) Giay = Mid(Me.LblThoiGian.Caption, 3, 2) Me.LblThoiGian.Caption = Phut & ":" & Giay 'Xu ly chuoi thu duoc If Len(ChuoiThu) = 28 Then CoMat = CInt(Trim(Mid(ChuoiThu, 8, 4))) Me.lblCoMat.Caption = CoMat TanThanh = CInt(Trim(Mid(ChuoiThu, 12, 4))) Me.lblTanThanh.Caption = TanThanh KhongTanThanh = CInt(Trim(Mid(ChuoiThu, 16, 4))) Me.lblKhongTanThanh.Caption = KhongTanThanh KhongBieuQuyet = CInt(Trim(Mid(ChuoiThu, 20, 4))) + Trim(Mid(ChuoiThu, 24, 4)) Me.lblKhongBieuQuyet.Caption = KhongBieuQuyet 'Tinh phan tram bieu quyet Me.lblCoMat_PT.Caption = Round(CoMat * 100 / 493, 2) & "%" Me.lblTanThanh_PT.Caption = Round(TanThanh * 100 / 493, 2) & "%" Me.lblKhongTanThanh_PT.Caption = Round(KhongTanThanh * 100 / 493, 2) & "%" Me.lblKhongBieuQuyet_PT.Caption = Round(KhongBieuQuyet * 100 / 493, 2) & "%" 50 Sử dụng Access 97 để thiết kế sở liệu sau: - Cơ sở liệu đại biểu Table/Delegate: Hình 4.4: Cơ sở liệu đại biểu - Cơ sở liệu tỉnh, thành phố.Table\ GroupID: End If Hình 4.5: Cơ sở liệu tỉnh, thành phố 51 52 4.4 Kết ghép nối máy tính với điều khiển trung tâm: Toàn cảnh phiên họp Quốc hội: Hình 4.7: Hệ thống biểu Hội trường Bộ Quốc phòng Hình 4.6: Toàn cảnh phiên họp Quốc hội Màn hình điều khiển hệ thống biểu điện tử số: Toàn cảnh hệ thống biểu điện tử số: Hình 4.8: Giao diện điều khiển microphone biểu 53 Phần mềm biểu điện tử xây dựng ngôn ngữ Visual Basic 6, sở liệu đại biểu xây dựng Access 97 với tính sau: Tra cứu thông tin Đại biểu Quốc hội: 54 Hiển thị kết biểu quyết: Hiển thị kết biểu khởi tạo biểu quyết: Hình 4.11: Kết bắt đầu biểu Hình 4.9: Tra cứu thông tin đại biểu Hiển thị kết biểu sau hết thời gian biểu quyết: 2.Hiển thị Danh sách đăng ký phát biểu: Hình 4.12:Kết biểu hết thời gian biểu Hình 4.10: Hiển thị danh sách đăng ký phát biểu 55 56 KẾT LUẬN TÀI LIỆU THAM KHẢO Bản luận văn sâu nghiên cứu hệ thống biểu điện tử số DCN với nguyên lý hoạt động, định tuyến âm thanh, thông số truyền thông, giao thức truyền điều khiển trung tâm CCU với thiết bị điều khiển từ xa Luận văn nêu tổng quan hệ thống biểu số nêu bật đặc tính truy cập hệ thống, loại biểu điện tử, bước thực điều khiển microphone, biểu điện tử số chuẩn ghép nối RS 232C, sâu tìm hiểu trình điểu khiển MS Com ngôn ngữ Visual Basic Đặc biệt, việc xây dựng phần mềm biểu luận văn hiển thị kết biểu điện tử hệ thống biểu điện tử số DCN phiên họp Quốc hội, Danh sách đăng ký đại biểu Quốc hội, truy cập thông tin đại biểu Quốc hội Việc thực ghép nối máy tính với hệ thống biểu số qua cổng port điều khiển trung tâm hệ thống biểu số hội trường Bộ Quốc phòng sử dụng trình điều khiển MS Com Visual Basic Trong luận văn xây dựng phần mềm biểu hiển thị kết biểu quyết, danh sách đăng ký phát biểu Vì vậy, cần hoàn thiện phần mềm biểu thêm tính sở liệu đại biểu có kèm theo hình ảnh, lưu trữ chi tiết kết biểu quyết, tìm kiếm đại biểu theo tỉnh, thành phố, tên đại biểu v.v… làm cho phần mềm hoàn thiện Trên sở nghiên cứu nguyên lý hệ thống biểu điện tử số, hướng nghiên cứu tiếp đề tài luận văn thiết kế mạch biểu ứng dụng thực tế Tiếng Việt Phạm Văn Ất (2008), Hướng dẫn sử dụng Access 2003 - 2007, NXB Giao thông vận tải, Hà Nội Phạm Thị Ngọc Mai (2005), Microsoft Visual Basic 6.0 & lập trình sở liệu, NXB Lao động - Xã hội, Hà Nội Trần Quang Vinh (2008), Cấu trúc máy vi tính, NXB Đại học Quốc gia Hà Nội, Hà Nội Tiếng Anh Bosch Security System (2003), General Remote Interface Description Bosch Security System (2003), AT Remote Interface Description Bosch Security System (2003), VT Remote Interface Description Bosch Security System (2003), MM Remote Interface Description Philips Comunication, Security & Image (2002), Digital Congress Network DCN Instalation & Operating Manual Bosch Security System (2003), SC &SI Remote Interface Description 10 MSDN Library (2001), Visual Tools and Languages/ Visual Studio 6.0 Documentation / Visual Basic Documentation / Reference/ Control Reference / ActiveX Control/ MSComm Control 57 PHỤ LỤC Khai báo biến giá trị theo hệ thống biểu số: Sub InitCommandTable() CmdTable(cmdMicroOn) = "$1" CmdTable(cmdMicroOff) = "$2" CmdTable(cmdAllMicroOff) = "$3" CmdTable(cmdPrioMicroOn) = "$4" CmdTable(cmdPrioMicroOff) = "$5" CmdTable(cmdRemainSpeech) = "$6" CmdTable(cmdRequestOn) = "&1" CmdTable(cmdRequestOff) = "&2" CmdTable(cmdAllRequestOff) = "&3" CmdTable(cmdVoteIndYes) = "#1" CmdTable(cmdVoteIndNo) = "#2" CmdTable(cmdVoteIndAbstain) = "#3" CmdTable(cmdVoteIndNoVoted) = "#4" CmdTable(cmdVoteTotal) = "%1" CmdTable(cmdVoteTotalResYes) = "%2" CmdTable(cmdVoteTotalResNo) = "%3" CmdTable(cmdVoteTotalResAbstain) = "%4" CmdTable(cmdVoteTotalResNoVoted) = "%5" CmdTable(cmdCardIn) = "!1" CmdTable(cmdCardOut) = "!2" End Sub Sub GetCommand() Dim CRLF As String Dim tmp As TCmd Dim i As Integer Dim j As Integer Dim s As String Dim n As Integer Dim cmd As String Dim Idx As Integer CRLF = Chr(13) j = InStr(InputBuffer, CRLF) While j > s = Left(InputBuffer, j) InputBuffer = Right(InputBuffer, Len(InputBuffer) - j) n = Len(s) 58 For i = To n - cmd = Mid(s, i, 2) Select Case cmd Case CmdTable(cmdMicroOn) tmp.CmdID = cmdMicroOn tmp.Seat = Val(Mid(s, i + 2, 4)) tmp.Index = ConvertToInt(Mid(s, i + 6, 4)) SendCmdToAllUser tmp Exit For Case CmdTable(cmdMicroOff) tmp.CmdID = cmdMicroOff tmp.Seat = Val(Mid(s, i + 2, 4)) tmp.Index = ConvertToInt(Mid(s, i + 6, 4)) SendCmdToAllUser tmp Exit For Case CmdTable(cmdVoteIndYes) Idx = ConvertToInt(Mid(s, i + 2, 4)) If Idx < MaxDelegate - Then VoteIndTable(Idx) = cmdVoteIndYes End If Exit For Case CmdTable(cmdVoteIndNo) Idx = ConvertToInt(Mid(s, i + 2, 4)) If Idx < MaxDelegate - Then VoteIndTable(Idx) = cmdVoteIndNo End If Exit For Case CmdTable(cmdVoteIndAbstain) Idx = ConvertToInt(Mid(s, i + 2, 4)) If Idx < MaxDelegate - Then VoteIndTable(Idx) = cmdVoteIndNoVoted End If Exit For Case CmdTable(cmdVoteIndNoVoted) Idx = ConvertToInt(Mid(s, i + 2, 4)) If Idx < MaxDelegate - Then VoteIndTable(Idx) = cmdVoteIndNoVoted End If Exit For Case CmdTable(cmdVoteTotal) tmp.CmdID = cmdVoteTotal tmp.Total = Val(Mid(s, i + 2, 4)) SendCmdToAllUser tmp Exit For Case CmdTable(cmdVoteTotalResYes) tmp.CmdID = cmdVoteTotalResYes 59 tmp.Total = Val(Mid(s, i + 2, 4)) SendCmdToAllUser tmp Exit For Case CmdTable(cmdVoteTotalResNo) tmp.CmdID = cmdVoteTotalResNo tmp.Total = Val(Mid(s, i + 2, 4)) SendCmdToAllUser tmp Exit For Case CmdTable(cmdVoteTotalResAbstain) tmp.CmdID = cmdVoteTotalResAbstain tmp.Total = Val(Mid(s, i + 2, 4)) SendCmdToAllUser tmp Exit For Case CmdTable(cmdCardIn) tmp.CmdID = cmdCardIn tmp.Card = Val(Mid(s, i + 2, 4)) tmp.Seat = Val(Mid(s, i + 6, 4)) tmp.Index = ConvertToInt(Mid(s, i + 10, 4)) SendCmdToAllUser tmp Exit For Case CmdTable(cmdCardOut) tmp.CmdID = cmdCardOut tmp.Card = Val(Mid(s, i + 2, 4)) tmp.Seat = Val(Mid(s, i + 6, 4)) tmp.Index = ConvertToInt(Mid(s, i + 10, 4)) SendCmdToAllUser tmp Exit For End Select Next i j = InStr(InputBuffer, CRLF) Wend End Sub Sub SendCmdToAllUser(cmd As TCmd) Dim i As Integer For i = To cUser - SendCmdToUser i, cmd Next i End Sub Sub SendCmdToUser(uid As Integer, cmd As TCmd) Dim n As Integer n = UserCmds(uid).Pointer + UserCmds(uid).Counter If n >= BufferLen Then UserCmds(uid).Buffer(n - BufferLen) = cmd Else UserCmds(uid).Buffer(n) = cmd End If 60 UserCmds(uid).Counter = UserCmds(uid).Counter + If UserCmds(uid).Counter = BufferLen Then UserCmds(uid).Counter = UserCmds(uid).Counter - UserCmds(uid).Pointer = UserCmds(uid).Pointer + If UserCmds(uid).Pointer = BufferLen Then UserCmds(uid).Pointer = End If End If End Sub Sub SendMsgToUser(uid As Integer, Sender As String, Msg As String) Dim n As Integer n = UserMsgs(uid).Pointer + UserMsgs(uid).Counter If n >= MaxMsgNote Then UserMsgs(uid).Sender(n - MaxMsgNote) = Sender UserMsgs(uid).MsgNote(n - MaxMsgNote) = Msg Else UserMsgs(uid).Sender(n) = Sender UserMsgs(uid).MsgNote(n) = Msg End If UserMsgs(uid).Counter = UserMsgs(uid).Counter + If UserMsgs(uid).Counter = MaxMsgNote Then UserMsgs(uid).Counter = UserMsgs(uid).Counter - UserMsgs(uid).Pointer = UserMsgs(uid).Pointer + If UserMsgs(uid).Pointer = MaxMsgNote Then UserMsgs(uid).Pointer = End If End If End Sub Function ConvertToInt(s As String) As Integer Dim ch As String Dim tmp As Integer Dim rate(5) As Integer Dim n As Integer Dim i As Integer Dim x As Integer rate(4) = rate(3) = 16 rate(2) = 16 * 16 rate(1) = 16 * 16 * 16 tmp = s = Trim(s) If s = "????" Then ConvertToInt = Exit Function End If 61 n = Len(s) For i = n To Step -1 x = Asc(Mid(s, i, 1)) - Asc("0") If x >= And x 255 And tmp < 384 Then tmp = tmp - 128 End If If tmp > 511 And tmp < 640 Then tmp = tmp - 256 End If If tmp > 767 Then tmp = tmp - 384 End If ConvertToInt = tmp End Function Function SendCmdToFile(uid As Integer, cmd As TCmd) As Boolean Dim hf As Integer Dim fn As String On Error Resume Next fn = UserCmdFileName(uid) If Trim(fn) = "" Then SendCmdToFile = False Exit Function End If If Dir(fn) = "" Then hf = FreeFile Open fn For Binary As hf 'Len = LenB(cmd) Put hf, , cmd Close hf SendCmdToFile = True Else SendCmdToFile = False End If End Function Function SendMsgToFile(uid As Integer, Sender As String, Msg As String) As Boolean Dim hf As Integer Dim fn As String Dim s As String * 60 62 Dim s1 As String * 255 On Error Resume Next s = Trim(Sender) s1 = Trim(Msg) fn = UserMsgFileName(uid) If Trim(fn) = "" Then SendMsgToFile = False Exit Function End If If Dir(fn) = "" Then hf = FreeFile Open fn For Binary As hf Put hf, , s Put hf, , s1 Close hf SendMsgToFile = True Else SendMsgToFile = False End If End Function Sub InitComm(ComObj As Control, ComPort As Integer, Setting As String) On Error Resume Next ComObj.CommPort = ComPort ComObj.Settings = UCase(Setting) ComObj.InputLen = ComObj.PortOpen = True InputBuffer = "" End Sub Sub ComEvent(ComObj As MSComm) Dim s As String s = ComObj.Input InputBuffer = InputBuffer & s GetCommand 'InputBuffer End Sub Đoạn chương trình hiển thị Danh sách đăng ký phát biểu: Private Sub cmdRegister_Click() Dim tmp As TCmd Dim i As Integer Dim c As Integer If tCardNumber.Text = "" Then Exit Sub If IndexToSeat(Val(tCardNumber.Text)) = Then Exit Sub 63 64 End Sub c = lbRequestOn.ListCount For i = To c - If Val(tCardNumber.Text) = LRequestIndex(i).Index And _ Val(tOrder.Text) > c Then tOrder.Text = c + tCardNumber.Text = "" tCardNumber.SetFocus Exit Sub End If Next i ' Request On tmp.CmdID = cmdRequestOn tmp.cmdIndex = Val(tOrder.Text) - tmp.Index = Val(tCardNumber.Text) tmp.Seat = IndexToSeat(Val(tCardNumber.Text)) SendCmdToAllUser tmp 'lblInfo.Caption = "" tCardNumber.Text = "" tCardNumber.SetFocus End Sub Private Sub Form_Activate() Dim c As Integer c = lbRequestOn.ListCount ' tCardNumber.SetFocus tOrder.Text = Trim(Str(c + 1)) End Sub Private Sub lbMicroOn_GotFocus() If Me.Visible Then lbMicroOn.ListIndex = -1 tCardNumber.SetFocus End If End Sub Private Sub lbrequeston_GotFocus() If Me.Visible Then tCardNumber.SetFocus End If End Sub Private Sub SSFrame2_Click() Private Sub tCardNumber_Change() Dim dInfo As TDelegate Dim s As String Dim i As Integer If Len(Trim(tCardNumber.Text)) > Or _ Val(tCardNumber.Text) > MaxDelegate Or _ Val(tCardNumber.Text) < Then tCardNumber.Text = "" ' lblInfo.Caption = "" Exit Sub End If For i = To Len(tCardNumber.Text) If Asc(Mid(tCardNumber.Text, i, 1)) < Asc("0") Or _ Asc(Mid(tCardNumber.Text, i, 1)) > Asc("9") Then tCardNumber.Text = "" ' lblInfo.Caption = "" Exit Sub End If Next i If IndexToSeat(Val(tCardNumber.Text)) > Then i = DelegateSearch(Val(tCardNumber.Text)) If i = -1 Then ResetDelegateInfo dInfo Else dInfo = DelegateTable(i) End If s = Padr(Trim(dInfo.DelegateName), 25, " ") + _ Padr(Trim(dInfo.GroupName), 25, " ") + _ "Sè ghÕ : " + Padr(Trim(Str(IndexToSeat(dInfo.CardNumber))), 4, " ") + _ " Micro : " + Trim(Str(STML(IndexToSeat(dInfo.CardNumber)))) 'lblInfo.Caption = s Else ' lblInfo.Caption = "" End If End Sub Private Sub tCardNumber_KeyDown(KeyCode As Integer, Shift As Integer) Dim tmp As TCmd Dim Idx As Integer Dim i As Integer Dim Shiftdown As Integer Dim c As Integer ' Arrow Up was pressed If KeyCode = vbKeyUp And lbRequestOn.ListCount > Then If lbRequestOn.ListIndex = -1 Then lbRequestOn.ListIndex = 65 ElseIf lbRequestOn.ListIndex > Then lbRequestOn.ListIndex = lbRequestOn.ListIndex - End If End If ' Arrow Down was pressed If KeyCode = vbKeyDown And lbRequestOn.ListCount > Then If lbRequestOn.ListIndex = -1 Then lbRequestOn.ListIndex = ElseIf lbRequestOn.ListIndex < lbRequestOn.ListCount - Then lbRequestOn.ListIndex = lbRequestOn.ListIndex + End If End If ' Home key was pressed If KeyCode = vbKeyHome And lbRequestOn.ListCount > Then lbRequestOn.ListIndex = End If ' End key was pressed If KeyCode = vbKeyEnd And lbRequestOn.ListCount > Then lbRequestOn.ListIndex = lbRequestOn.ListCount - End If If Trim(tCardNumber.Text) = "" Or _ Val(tCardNumber.Text) > 999 Then tCardNumber.Text = "" Exit Sub End If Shiftdown = (Shift And vbShiftMask) > Idx = Val(tCardNumber.Text) c = frmTMicro.lbRequestOn.ListCount ' Delete key was pressed ' Xoa mot dong Danh sach dai bieu DANG KY PHAT BIEU If Not Shiftdown And KeyCode = vbKeyDelete Then If c > Then For i = To lbRequestOn.ListCount - If Idx = LRequestIndex(i).Index Then 'off current request tmp.CmdID = cmdRequestOff tmp.cmdIndex = Idx tmp.Index = Val(tCardNumber.Text) tmp.Seat = IndexToSeat(tmp.Index) SendCmdToAllUser tmp ' lblInfo.Caption = "" tCardNumber.Text = "" 66 tCardNumber.SetFocus End If Next i End If End If ' Shift + Delete key pressed ' Xoa mot dong Danh sach dai bieu PHAT BIEU If Shiftdown And KeyCode = vbKeyDelete And _ lbMicroOn.ListCount Then For i = To lbMicroOn.ListCount - If Idx = LMicroIndex(i, 0) Then 'off current micro tmp.CmdID = cmdMicroOff tmp.Index = LMicroIndex(i, 0) tmp.Seat = LMicroIndex(i, 1) SendCmdToAllUser tmp tCardNumber.Text = "" tCardNumber.SetFocus Exit For End If Next i End If ' shift + Insert ket was pressed If Shiftdown And KeyCode = vbKeyInsert Then For i = To lbMicroOn.ListCount - If Idx = LMicroIndex(i, 0) Then tCardNumber.Text = "" Exit Sub End If Next i ' On new micro tmp.CmdID = cmdMicroOn tmp.Seat = IndexToSeat(Idx) tmp.Index = Val(tCardNumber.Text) SendCmdToAllUser tmp tCardNumber.Text = "" tCardNumber.SetFocus End If End Sub Private Sub tOrder_Change() Dim c As Integer Dim i As Integer 67 c = frmTMicro.lbRequestOn.ListCount If Len(tOrder.Text) > Or _ Val(tOrder.Text) > 99 Or _ Val(tOrder.Text) c + Then tOrder.Text = Trim(Str(c + 1)) tOrder.SelStart = tOrder.SelLength = Exit Sub End If For i = To Len(tOrder.Text) If Asc(Mid(Trim(tOrder.Text), i, 1)) < Asc("0") Or _ Asc(Mid(Trim(tOrder.Text), i, 1)) > Asc("9") Then tOrder.Text = Trim(Str(c + 1)) tOrder.SelStart = tOrder.SelLength = Exit Sub End If Next i End Sub Private Sub tOrder_GotFocus() tOrder.SelStart = tOrder.SelLength = End Sub Đoạn chương trình hiển thị thông tin đại biểu: Private Sub Form_Load() Dim s As String For i = To TotalDelegate - s = Padr(DelegateTable(i).DelegateName, 25, " ") + _ Padr(DelegateTable(i).GroupName, 25, " ") + _ Padr(Str(DelegateTable(i).CardNumber), 4, " ") lDelegate.AddItem s Next i End Sub [...]... danh sách phát biểu như sau: Hình 4.2: Giao diện Danh sách đăng ký phát biểu 41 4.3 Biểu quyết điện tử 42 Quá trình biểu quyết điện tử số được thực hiện theo lưu đồ sau: 4.3.1 Các kiểu loại biểu quyết điện tử số -Biểu quyết điện tử số tuỳ vào thực tế sử dụng mà người ta chia làm nhiều kiểu loại khác nhau như sau: -Biểu quyết nghị viện: Đại biểu tham dự biểu quyết với 3 trạng thái biểu quyết: tán thành,... sử dụng kiểu biểu quyết nghị viện với 3 trạng thái biểu quyết: Tán thành, không tán thành, không biểu quyết Bắt đầu biểu quyết Kiểm tra biểu quyết Thuật toán thống kê đưa ra màn hình Còn thời gian 4.3.2 Các bước thực hiện biểu quyết điện tử số - Đặt các thông số biểu quyết: thời gian biểu quyết - Chọn loại biểu quyết: nghị viện công khai - Khởi tạo biểu quyết - Hiển thị kết quả biểu quyết ra màn hình... biệt, việc xây dựng phần mềm biểu quyết trong luận văn đã hiển thị được kết quả biểu quyết điện tử của hệ thống biểu quyết điện tử số DCN tại phiên họp của Quốc hội, Danh sách đăng ký đại biểu Quốc hội, truy cập thông tin đại biểu Quốc hội Việc thực hiện ghép nối giữa máy tính với hệ thống biểu quyết số qua cổng port 1 của bộ điều khiển trung tâm trong hệ thống biểu quyết số tại hội trường Bộ Quốc phòng... Hình 4.11: Kết quả bắt đầu biểu quyết Hình 4.9: Tra cứu thông tin đại biểu Hiển thị kết quả biểu quyết sau khi hết thời gian biểu quyết: 2.Hiển thị Danh sách đăng ký phát biểu: Hình 4.12:Kết quả biểu quyết khi hết thời gian biểu quyết Hình 4.10: Hiển thị danh sách đăng ký phát biểu 55 56 KẾT LUẬN TÀI LIỆU THAM KHẢO Bản luận văn đi sâu nghiên cứu hệ thống biểu quyết điện tử số DCN với nguyên lý hoạt... quyết điện tử số: Toàn cảnh hệ thống biểu quyết điện tử số: Hình 4.8: Giao diện điều khiển microphone và biểu quyết 53 Phần mềm biểu quyết điện tử được xây dựng bằng ngôn ngữ Visual Basic 6, cơ sở dữ liệu đại biểu được xây dựng bằng Access 97 với các tính năng chính sau: 1 Tra cứu thông tin Đại biểu Quốc hội: 54 3 Hiển thị kết quả biểu quyết: Hiển thị kết quả biểu quyết khởi tạo biểu quyết: Hình 4.11:... truy cập hệ thống Để truy cập hệ thống biểu quyết điện tử số, Đại biểu phải thực hiện các bước truy cập như sau: - Vào mã PIN tại vị trí đại biểu - Cắm thẻ đại biểu ID – card vào hộp đại biểu 4.1.3 Nhận biết đại biểu Chức năng này cung cấp thông tin vị trí ngồi của đại biểu cho hệ thống biểu quyết nhận biết đại biểu thông qua kết qủa của việc nhập ID card vào hoặc rút chúng ra khỏi vị trí đại biểu Ý... mềm biểu quyết căn bản đã hiển thị được kết quả biểu quyết, danh sách đăng ký phát biểu Vì vậy, cần hoàn thiện phần mềm biểu quyết thêm các tính năng về cơ sở dữ liệu đại biểu có kèm theo hình ảnh, lưu trữ chi tiết kết quả biểu quyết, tìm kiếm đại biểu theo tỉnh, thành phố, tên đại biểu v.v… làm cho phần mềm hoàn thiện hơn Trên cơ sở nghiên cứu nguyên lý cơ bản của hệ thống biểu quyết điện tử số, hướng... đại biểu đăng nhập vào hệ thống bằng cách: Ấn phím điểm danh, vào mã PIN, cài thẻ đại biểu ID Card hoặc cài thẻ đại biểu ID và mã PIN 4.2 Điều khiển microphone trong hệ thống biểu quyết điện tử số 4.2.1 Các bước đăng ký phát biểu Khi đại biểu tham gia vào hội nghị, đại biểu có quyền đăng ký phát biểu, phát biểu thì đại biểu thực hiện các thao tác sau: - Ấn phím đăng ký phát biểu “Mic” tại hộp đại biểu. .. Thông số kết nối đường truyền 5000 bytes < 0,5 sec 37 CHƯƠNG 4 XÂY DỰNG PHẦN MỀM BIỂU QUYẾT 4.1 Chức năng đăng ký đại biểu Để truy cập được hệ thống biểu quyết điện tử số DCN, đại biểu được gắn các quyền đăng nhập hệ thống như sau: - Đăng ký tham dự - Kiểm tra quyền truy cập hệ thống - Nhận biết đại biểu Các chức năng này dùng để phân quyền truy cập cho đại biểu: - Dự thính 38 Nhận biết đại biểu có... biết đại biểu có 2 khả năng: - Đại biểu ngồi đúng vị trí: Đại biểu phải ngồi đúng vị trí mới có quyền truy cập hệ thống: đăng ký phát biểu, phát biểu, biểu quyết - Đại biểu ngồi không đúng vị trí: đại biểu không ngồi đúng vị trí không có quyền truy cập hệ thống ngoại trừ hệ thống biểu quyết thiết lập chế độ ngồi tự do 4.1.4 Kết hợp giữa đăng ký tham dự với truy cập hệ thống Dựa vào có sự kết hợp này mà