Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
1,32 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 NGHIÊN CỨU HỆ THỐNG BIỂU QUYẾT ĐIỆN TỬ SỐ 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 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 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 CHƢƠNG 1:TỔNG QUAN VỀ HỆ THỐNG BIỂU QUYẾT ĐIỆN TỬSỐ (DCN) 1.2 Giới thiệu tổng quan hệ thống biểu điện tử số DCN 1.2.1 Thiết bị phân tập 1.2.2 Thiết bị điều khiển trung tâm CCU 1.3 Định tuyến hệ thống âm hệ DCN 1.4 Nguyên lý hoạt động hệ thống biểu số 1.4.1 Sơ đồ nguyên lý hoạt động hệ thống biểu đ 1.4.2 Cấu trúc Bộ điều khiển trung tâm CCU 1.4.3 Nguyên lý hoạt động hệ thống biểu điện tử 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 2.1 Cấu hình hệ thống biểu số DCN 2.1.2 Hệ thống biểu điện tử số DCN Multi- CCU 2.2 Thông số cổng CCU kết nối với PC kết nối với cam 2.3 Thông số kỹ thuật cổng nối tiếp RS 232 2.3.1 Truyền thông hai nút 2.3.2 Truy xuất trực tiếp thông qua cổng COM CHƢƠNG 3:GIAO DIỆN ĐIỂU KHIỂN TỪ XA ĐẾN HỆ THỐNG DCN 3.1 Mô hình hệ thống điều khiển từ xa 3.2 Các thông số điều khiển từ xa 3.2.1 Kiểu thông báo định dạng 3.2.2 Kiểu định dạng thông báo 3.2.3 Định dạng yêu cầu điều khiển từ xa 3.2.4 Định dạng đáp ứng điều khiển từ xa 3.2.5 Định dạng thông báo cập nhật MDSC_NOTIFY 3.2.6 Định dạng thông số truyền thông 3.3 Thủ tục truyền thông điều khiển trung tâm 3.3.1 Đặc tính giao thức truyền thơng Full 3.3.2 Tham số nhận biết thông tin 3.3.3 Giao thức truyền thông 3.3.3.1 Gói liệu khơng trả lời 3.3.3.2 Giá trị thời gian kết nối đƣờng truyền CHƢƠNG 4: XÂY DỰNG PHẦN MỀM BIỂU QUYẾT 4.1 Chức đăng ký đại biểu 4.1.1 Đăng ký tham dự 4.1.2 Điều khiển truy cập hệ thống 4.1.4 Kết hợp đăng ký tham dự với truy cập hệ thống 4.1.5 Thông số chức 4.2 Điều khiển microphone hệ thống biểu điện tử số 4.2.1 Các bƣớc đăng ký phát biểu 4.2.2 Chƣơng trình kiểm soát danh sách đại biểu 4.3 Biểu điện tử 4.3.1 Các kiểu loại biểu điện tử số 4.3.2 Các bƣớc thực biểu điện tử số 4.3.3 Xây dựng chƣơng trình hiển thị kết biểu 4.4 Kết ghép nối máy tính với điều khiển trung tâm KẾT LUẬN TÀI LIỆU THAM KHẢO PHỤ LỤC DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT TỪ VIẾT TẮT ACN AT CCU DCN EIA LCD PA PC PRAEDIC remote controller RFS SC SI UnitId VT Tên bảng Bảng 1.1 Bảng 1.2 Bảng 1.3 Bảng 1.4 Bảng 1.5 Bảng 1.6 Bảng 1.7 DANH MỤC Hình 1.1 Sơ đồ tổng quan hệ thống 1.2 Sơ đồ định tuyến âm than 1.3 Sơ đồ nguyên lý hệ thống 1.4 Hình ảnh bên b 1.5 Hình ảnh bên ngoại b 2.1 Kết nối hệ thống DCN độ 2.2 Kết nối hệ thống biểu quy 2.3 Tín hiệu truyền ký tự 2.4 Sơ đồ chân cổng nối tiếp 2.5 Kết nối đơn giản tr 2.6 Kết nối truyền thôn 3.1 Sơ đồ ghép nối với điề 3.2 Sơ đồ trạng thái truyền tr 4.1 Giao diện phần mề 4.2 Giao diện Danh sách đăn 4.3 Giao diện hiển thị kết qu 4.4 Cơ sở liệu đại biểu 4.5 Cơ sở liệu tỉnh, th 4.6 Toàn cảnh phiên họp Quố 4.7 Hệ thống biểu H 4.8 Giao diện điều khiển Mic 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) đƣợc phát triển mạnh mẽ với cơng nghệ đại đƣợc đời Nó xâm nhập vào lĩnh vực đời sống xã hội Việc xã hội hố 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 đƣợc 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 đƣợc 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 nhƣ đ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 CHƢƠNG TỔNG QUAN VỀ HỆ THỐNG BIỂU QUYẾT ĐIỆN TỬSỐ (DCN) 1.1 Sơ đồ tổng quan hệ thống biểu điện tử số DCN 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 nhƣ 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 ngồi: mixer, khuyếch đại cơng suất (amplifier), loa Hệ thống phát hồng ngoại 12 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 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 nhƣ sau: 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 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: Hình 4.9: Tra cứu thơng tin đại biểu 2.Hiển thị Danh sách đăng ký phát biểu: Hình 4.10: Hiển thị danh sách đăng ký phát biểu 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 Hiển thị kết biểu sau hết thời gian biểu quyết: Hình 4.12:Kết biểu hết thời gian biểu 55 KẾT LUẬN 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 đặ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ị đƣợc 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ị đƣợc kết biểu quyết, danh sách đăng ký phát biểu Vì vậy, cần hồ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ế 56 TÀI LIỆU THAM KHẢO 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 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() 64 End Sub 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 ' 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 ... phần mềm biểu 11 CHƢƠNG TỔNG QUAN VỀ HỆ THỐNG BIỂU QUYẾT ĐIỆN TỬSỐ (DCN) 1.1 Sơ đồ tổng quan hệ thống biểu điện tử số DCN Hình 1.1: Sơ đồ tổng quan hệ thống biểu số Hệ thống biểu điện tử số sử... hệ thống biểu điện tử 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 2.1 Cấu hình hệ thống biểu số DCN 2.1.2 Hệ. .. 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