PHÁT HIỆN KÝ TỰ ĐẾN BỘ ĐỆM NHẬN CỦA MÁY TÍNH VÀ PHÂN LOẠI ĐÁP ỨNG TỪ MOĐEM.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xây dựng hệ thống nhắn tin nội bộ dựa trên các thiết bị thông tin không dây (Trang 51 - 53)

Cơ sở dữ liệu

5.2 PHÁT HIỆN KÝ TỰ ĐẾN BỘ ĐỆM NHẬN CỦA MÁY TÍNH VÀ PHÂN LOẠI ĐÁP ỨNG TỪ MOĐEM.

PHÂN LOẠI ĐÁP ỨNG TỪ MOĐEM.

Phát hiện ký tự đến và lƣu trữ

Như đã trình bày ở trên, để chương trình hoạt động một cách thơng suốt và hoàn toàn tự động, chúng ta phải thực hiện các biện pháp nhằm phát hiện ra các ký tự mới ngay khi chúng được chuyển từ mođem vào bộ đệm nhận của máy tính.

Hệ thống nhắn tin nội bộ trên cơ sở ghép nối môđem GSM ứng dụng SMS

nhằm thuận tiện cho việc sử lý sau này. Việc phát hiện ký tự đến này được thực hiện thông qua sự kiện OnComm của MSComm. Chương trình 5-2 dưới đây minh họa kỹ thuật phát hiện và lưu trữ chuỗi ký tự nhận được.

Chƣơng trình 5-2

Private Sub comm1_OnComm()

Static stEvent As String Dim stComChar As String * 1 Select Case Comm1.CommEvent

Case comEvReceive „Nếu phát hiện có dữ liệu ở bộ đệm nhận

Do

stComChar = Comm1.Input „ đọc ký tự ở bộ đệm nhận If bMessageStore Then

„lưu các ký tự đọc được vào biến

strMessageBuffer = strMessageBuffer & stComChar End If

Loop While Comm1.InBufferCount End Select

End Sub

Như vậy, việc phát hiện ký tự đến được thực hiện thơng qua thuộc tính comEvReveive, ký tự đến bộ đệm nhận được lưu vào biến stComChar và chuỗi các ký tự đến bộ đệm nhận của máy tính được lưu vào biến strMessageBuffer. Giá trị của stComChar và strMessageBuffer thay đổi mỗi khi có một ký tự mới được gửi đến bộ đệm nhận. Chương trình đọc lần lượt các ký tự cho đến khi bộ đệm nhận của máy tính rỗng hồn tồn.

Phân loại thông tin nhận đƣợc từ mođem.

Như đã trình bày ở các chương trước, mỗi khi gửi một từ máy tính tới mođem, mơđem sẽ trả lời bằng một mã đáp ứng tùy thuộc vào lệnh, các mã này có thể bao gồm: “OK”, “ERROR”, “+CMTI”, “>” ... trong đó mã “OK” và “ERROR” thể hiện lệnh vừa gửi ra từ máy tính đã được thực hiện thành công hay không thành cơng; mã “+CMTI” cho biết có tin nhắn mới đến trong bộ nhớ của mođem; mã “>” dùng để nhắc đưa chuỗi tin cần gửi khi sử dụng lệnh “+CMGS” để gửi tin nhắn. Việc phát hiện được từng loại mã này là mấu chốt trong việc lập trình truyền nhận giữa mođem và máy tính vì nếu không ta không thể điều khiển luồng dữ liệu gửi, nhận một cách hiệu quả.

Trong chương trình 5-2a, chúng ta đã đọc ký tự đến bộ đệm nhận của máy tính vào biến stComChar, xử lý biến này, ta có thể thu được thơng tin cần thiết:

Hệ thống nhắn tin nội bộ trên cơ sở ghép nối môđem GSM ứng dụng SMS

Case ">"

bGreaterSign = True

lstEvents.AddItem stComChar Case vbLf

Case vbCr „nếu phát hiện ký tự hết dòng,

„hiểu là đã kết thúc một đáp ứng If Len(stEvent) > 0 Then

ProcessEvent stEvent „ chạy chương trình xử lý Event stEvent = ""

End If Case Else

stEvent = stEvent + stComChar „ lưu các ký tự vào biến End Select

Như đã biết, mỗi mã trả lại của môđem đều kết thúc bằng ký tự trở về đầu dòng vbCr, và như vậy, khi phát hiện ký tự này trong bộ đệm nhận, nghĩa là các ký tự đến trước đó đã tập thành một mã trả lại đầy đủ, khi đó, gọi chương trình con xử lý ProcessEvent để xử lý chuỗi ký tự đó ta có thể phát hiện xem đó là đáp ứng gì.

Sub ProcessEvent

If Mid$(stEvent, 1, 5) = "+CMTI" Then strMessageBuffer = ""

stEvent = ""

FetchSMS_Click „Gọi chương trình lấy tin nhắn End If

Select Case stEvent Case "OK" bOK = True Case "ERROR" bError = True Case Else End Select End sub

Việc phát hiện ra các mã “OK” và “ERROR” rất quan trọng vì rằng chúng ta cần phải biết xem lệnh gửi ra mođem có được thực hiện hay không, đồng thời việc phát hiện ra chuỗi “+CMTI” cũng rất quan trọng vì rằng nó là thơng tin thơng báo có tin nhắn mới đến.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Xây dựng hệ thống nhắn tin nội bộ dựa trên các thiết bị thông tin không dây (Trang 51 - 53)

Tải bản đầy đủ (PDF)

(84 trang)