Tải bản đầy đủ (.doc) (8 trang)

su dung VB truyen thong cong COM ppsx

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

MACHDIENLYTHU.VNO.VN
Biên dịch: laiquangtuyen@ iJvietnam.com
Một ví dụ chứng minh việc điều khiển cổng COM là một phạm trù của Visual Basic.
Truyền thông nối tiếp là nền tảng cho phép một máy tính (hay một PDA) giao tiếp được
với nhau với những modun hay những thiết bị khác. Hầu như các modun này đều sử
dụng chung một tập lệnh để lập trình. Bảng mã ASCII dựa trên nền tảng là các tập lệnh
cho phép máy tính khởi tạo một modun, có thể ứng dụng trong quay số điện thoại, giữ
liên lạc vv Những thiết bị khác thì sử dụng truyền thông nối tiếp cho việc chuẩn đoán
và với mục đích dò lỗi.
Mã nhúng của Visual Basic là Comm hỗ trợ điều khiển cả về văn bản lẫn nhị phân dựa
trên giao thức truyền thông RS-232
TRUYỀN THÔNG TRÊN NỀN VĂN BẢN
Chúng ta sẽ bắt đầu với truyền thông trên nền văn bản và chúng ta sẽ làm quen cách
truyền thông với máy tính
Hãy làm theo các bước sau đây:
1) Tạo ra một project.
2) Nhấp chuột vào menu chọn Project , chọn components, đánh dấu Comm
Microsoft 6.0. Bây giờ bạn sẽ thấy một biểu tượng điện thoại trong cửa sổ
thành phần.
3) Đặt hai cái hộp văn bản trên mẫu.
4) Đặt một nhãn ở trên mỗi cái hộp văn bản
5) thay đổi một trong số những đầu đề của nhãn thành Received Data Và cái
còn lại là Data To Transmit.
6) Đổi tên cái hộp văn bản ở dưới nhãn Received Data thành
ReceivedDataTextBox.
7) Đổi tên cái hộp văn bản ở dưới nhãn Data To Transmit thành
DataToTransmitTextBox.
8) Tạo ra một nút lệnh command trên form và thay đổi caption nó.
9) Chọn Comm control và đặt nó vào form.
10) Thiết đặt lại thuộc tính của Comm để bạn sử dụng cho việc truyền thông
với máy tính.


11) Cài đặt những thuộc tính thiết đặt :19200, N, 8,1.
12) Đặt thuộc tính Rthreshold là 1. Cái này làm cho OnComm bất kỳ khi nào
trên port nối tiếp.
13) Sau đây là một đoạn code:
Private Sub Command1_Click()
MSComm1.Output = DataToTransmitTextBox.Text
End Sub
Private Sub Form_Load()
MSComm1.PortOpen = True
End Sub
Select Case MSComm1.CommEvent
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
ReceivedDataTextBox.Text = MSComm1.Input
Case comEvSend
' do nothing here for now
End Select
End Sub
Case comEvReceive
ReceivedDataTextBox.Text = MSComm1.Input
Case comEvSend
' do nothing here for now
End Select
End Sub
Khi mọi thứ đã làm xong, dự án trên máy tính trông tương tự như hình bên
dưới
Bây giờ chúng ta sẽ đi vào ứng dụng của pocket PC, làm theo các bước sau
đây:
1) Tạo ra một new project.

2) Nhấp chuột vào menu chọn Project , chọn components, đánh dấu
Microsoft CE Comm Control 3.0. Bây giờ bạn sẽ thấy một biểu tượng điện
thoại trong cửa sổ thành phần.
3) Đặt hai cái text boxe trên form.
4) Đặt một nhãn ở trên mỗi cái hộp văn bản
5) thay đổi một trong số những đầu đề của nhãn thành Received Data Và cái
còn lại là Data To Transmit.
6) Đổi tên cái hộp văn bản ở dưới nhãn Received Data thành
ReceivedDataTextBox.
7) Đổi tên cái hộp văn bản ở dưới nhãn Data To Transmit thành
DataToTransmitTextBox.
8) Tạo ra một nút lệnh command trên form và thay đổi caption nó.
9) Chọn Comm control và đặt nó vào form.
10) Thiết đặt lại thuộc tính của Comm để bạn sử dụng cho việc truyền thông
với máy tính.
11) Cài đặt những thuộc tính thiết đặt :19200, N, 8,1.
12) Đặt thuộc tính Rthreshold là 1. Cái này làm cho OnComm bất kỳ khi nào
trên port nối tiếp.
13) Sau đây là một đoạn code:
Option Explicit
Private Sub Comm1_OnComm()
Select Case Comm1.CommEvent
Case comEvReceive
ReceivedDataTextBox.Text = Comm1.Input
Case comEvSend
' do nothing here for now
End Select
End Sub
Private Sub Command1_Click()
Comm1.Output = DataToTransmitTextBox.Text

End Sub
Private Sub Form_Load()
Comm1.PortOpen = True
End Sub
Private Sub Form_OKClick()
App.End
End Sub
Khi mọi thứ đã làm xong, dự án trên máy tính trông tương tự như hình bên
dưới
Bây giờ hãy chạy chương trình máy tính và chương trình Pocket PC. Bạn sẽ
thấy dữ liệu được chuyển thành công giữa máy tính và Pocket PC.
Bây giờ là một đoạn code khác được thêm vào form. Bạn sẽ thấy điều gì khác so với đoạn
code trên:
Dim InputData As String
Private Sub Command1_Click()
MSComm1.Output = DataToTransmitTextBox.Text
End Sub
Private Sub Form_Load()
InputData = ""
MSComm1.PortOpen = True
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
InputData = InputData + MSComm1.Input
Case comEvSend
Timer1.Enabled = True
Case comEvCTS
ReceivedDataTextBox.Text = InputData
InputData = ""

End Select
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
' all data sent, so toggle rts.
MSComm1.RTSEnable = Not MSComm1.RTSEnable
End Sub
Trên Pocket PC, thay đổi thuộc tính Sthreshold trong điều khiển Comm thành 1.
Tiếp theo, chúng tôi sẽ thay đổi code. Code cho form trên Pocket PC như sau:
Option Explicit
Dim InputData As String
Private Sub Comm1_OnComm()
Select Case Comm1.CommEvent
Case comEvReceive
InputData = InputData + Comm1.Input
Case comEvSend
' all data sent, so toggle RTS
Comm1.RTSEnable = Not Comm1.RTSEnable
Case comEvCTS
ReceivedDataTextBox.Text = InputData
InputData = ""
End Select
End Sub
Private Sub Command1_Click()
Comm1.Output = DataToTransmitTextBox.Text
End Sub
Private Sub Form_Load()
InputData = ""
Comm1.PortOpen = True
End Sub

Private Sub Form_OKClick()
App.End
End Sub
Bây giờ chạy cả hai chương trình trên bạn sẽ thấy trên cả 2 thiết
bị được truyền hoàn toàn qua lại với nhau những gì mà bạn muốn.
TRUYỀN THÔNG NHỊ PHÂN
Đặt Rthreshold điều khiển Comm có thuộc tính là 1. Đặt thuộc tính InputLen
điều khiển Comm là 0.
Đoạn mã sau đây mô tả làm sao để truyền một byte:
Dim TransmitByte as Byte
MSComm1.Output = Chr(TransmitByte)
Đoạn mã sau đây mô tả làm sao để nhận được tới 100 byte:
Dim TmpStr As String
Dim StrLen As Long, I As Long
Dim FileData(100) As Byte
While MSComm1.InBufferCount > 0
TmpStr = MSComm1.Input
StrLen = Len(TmpStr)
For I = 1 To StrLen
FileData(I) = CByte(Asc(Mid(TmpStr, I, 1)))
Next I
Wend
Hy vọng bạn bây giờ sẽ có một ý tưởng Comm kiểm soát những công việc như
thế nào và có ý định về khả năng làm một số truyền thông của mình!

×