View Single Post
Old 16-11-2009, 10:45 PM   #4
hvhdtk3
Đệ tử 1 túi
 
Tham gia ngày: Jul 2009
Bài gửi: 11
:
Chưa hiểu lắm

Trích:
Nguyên văn bởi dung h View Post
phạm minh tuấn nói rất đúng bạn nên đóng gói thành 1 farme có byte dầu là byte start,byte 2 là byte chỉ số byte data ,và byte cuoi là byte stop

giao diện vb nhận data bạn có thể nhận bằng phương pháp thăm dò hoặc phương pháp ngắt
nếu bạn sử dụng ngắt bạn đặt MSComm1.Rthreshold = số byte nhận ở bài của bạn ta đặt 11 khi đó cứ khi bộ nhớ đệm nhạn được 11 byte thì sẽ nhảy đến sự kiện ngắt on com

Private Sub MSComm1_OnComm()
dim a[11]
dim i
If MSComm1.CommEvent = comEvReceive Then
a[i]= MSComm1.Input
i++
end sub
khi đó bạn sẽ được 1 mảng dữ liệu nhận về

hoặc bạn có thể sử dụng thăm dò sem bộ nhớ đệm khi nòa nhận đủ 11 byte thì đọc và xóa bộ đệm để nhận gói 11 byte tiếp theo
If MSComm1.InBufferCount >10 Then
a[i] = MSComm1.Input

em nối có chỗ nào không đúng mong các bác chỉ giáo!!!! thankS!
còn bạn hãy thử làm xem nhé
Mình chưa hiễu rõ và không quen truyền kiểu này. Mình hình dung FRAME như sau:
|START|Số byte dữ liệu|...Data...|STOP|
Như vậy thì giá trị byte START, STOP = ??? Có phải giá trị này tự mình quy ước không?
Và có cần chú ý gì khi truyền kiểu này không, bạn dung_h ???????
hvhdtk3 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn