ĐIỀU KHIỂN LUỒNG LỆNH

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 57 - 58)

Cơ sở dữ liệu

5.6 ĐIỀU KHIỂN LUỒNG LỆNH

Tuy nhiên, một vấn đề đặt ra là: do hệ thống được cấu thành từ các chương trình con cho các mục đich khác nhau, rất có thể trong lúc chúng ta gửi lệnh ra mơđem, thì ngay trước đó, chương trình con gửi tin nhắn đi cũng đang kích hoạt và đang đợi dấu nhắc “>” trả lại từ mođem. Đúng vào thời điểm này, nếu một lệnh khác được gửi ra mođem, mođem sẽ không hiểu và sẽ bị rơi vào trạng thái “treo” và hệ thống sẽ ngừng hoạt động. Nói tóm lại là có thể xảy ra trường hợp hai chương trình con (chương trình gửi và đọc tin nhắn) gửi lệnh ra mođem cùng một lúc, để tránh trường hợp này, kỹ thuật dùng các „cờ‟ để báo hiệu một lệnh đang được thực hiện được xử dụng. Các chương trình con sẽ kiểm tra giá trị của các „cờ‟ này trước khi gửi lệnh ra môđem.

Do

DoEvents Wait_Random

Loop Until ((bSending = False)) and ((bReceiving =False)) bReceiving = True

Fetch_SMS

Đoạn chương trình trên minh họa một qui trình kiểm tra trước khi thực hiện lệnh đọc tin nhắn từ mođem, chương trình sẽ đợi cho các lệnh gửi và nhận trước đó kết thúc bằng cách chờ một khoảng thời gian Wait_Random trước khi thực hiện lệnh. Tuy nhiên trước khi thực hiện lệnh, nó cũng đặt cờ bReceiving lên giá trị

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

True để thơng báo rằng có lệnh đang được thao tác với mođem. Khoảng thời gian Wait_Random nhận giá trị ngẫu nhiên trong khoảng từ 8 đến 20 ms, sở dĩ phải đặt giá trị ngẫu nhiên nhằm để tránh trường hợp hai chương trình con cùng đợi một lúc và lại cùng bắt đầu gửi lệnh ra cùng một lúc.

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 57 - 58)

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

(84 trang)