2009-09-14 29 views
8

Tôi có modem GSM được kết nối với máy tính của mình, tôi muốn nhận tin nhắn văn bản được gửi tới nó bằng chương trình python tôi đã viết, tôi tự hỏi kỹ thuật tốt nhất để thăm dò dữ liệu là gì.Thiết kế tốt nhất để thăm dò một modem cho dữ liệu đến là gì?

Tôi có nên viết chương trình có vòng lặp vô hạn liên tục kiểm tra tin nhắn gửi đến tức là trong vòng lặp chương trình gửi lệnh AT và đọc dữ liệu đầu vào hay không. hoặc làm modem có cách báo hiệu ứng dụng của dữ liệu đến (sms). Bạn đang cố gắng tưởng tượng một chiếc điện thoại di động chỉ là một modem GSM, và khi nhận được tin nhắn, điện thoại sẽ thông báo cho bạn về sự kiện, hoặc phần mềm điện thoại có vòng lặp vô hạn để thăm dò dữ liệu đến hay không.

+0

Câu hỏi hay! Chỉ tò mò, bạn có modem GSM nào? –

+0

Huawei, Mô hình Modem USB E220 HSDPA – gath

Trả lời

3

Tôi đã viết một cái gì đó tương tự trước đây. Có một cách sử dụng lệnh AT để yêu cầu modem báo hiệu cho bạn mỗi khi nhận được một tin nhắn SMS.

Để tham khảo, tôi đã sử dụng Maestro 100 GSM Modem trong một ứng dụng được nhúng.

Trước tiên, bạn phải khởi tạo modem đúng cách. Tôi đã sử dụng chế độ văn bản cho SMS nhưng bạn có thể đang sử dụng một cái gì đó khác. Chọn từ những gì bạn muốn. AT + CNMI là quan trọng nhất.

AT&F0 # Restore factory defaults 
ATE0 # Disable command echo 
AT+CMGF=1 # Set message format to text mode 
AT+CNMI=1,1,0,1,0 # Set new message indicator 
AT+CPMS="SM","SM","SM" # Set preferred message storage to SIM 

Sau đó, bạn sẽ đợi thông báo tin nhắn, sẽ giống như thế này. (Không phù hợp về số lượng chỉ số, mà có thể khác nhau giữa các thông báo)

+CMTI: "SM",0 # Message notification with index 

Khi bạn nhận được thông báo rằng, lấy chưa đọc tin nhắn SMS của:

AT+CMGL="REC UNREAD" # Retrieve unread messages 

tôi sẽ khuyên bạn cũng có thêm một cuộc thăm dò, có thể mỗi 5 phút hoặc lâu hơn, chỉ trong trường hợp bạn bỏ lỡ một thông báo. Với các số nối tiếp, bạn không bao giờ có thể chắc chắn!

+0

Cảm ơn, bạn không thể đợi. – gath

+0

Ok, đã chỉnh sửa. Hi vọng điêu nay co ich. Tôi đã sử dụng các lệnh đó trong một ứng dụng nhúng với một modem GSM bên ngoài. –

+0

Tuyệt vời, hãy để tôi dùng thử. – gath

0

Tôi thấy tôi không thể nhớ nhiều tập lệnh AT có liên quan đến SMS. Câu trả lời của Andre Miller dường như đổ chuông. Dù sao thì bạn nên đọc tài liệu một cách cẩn thận, tôi chắc rằng có một vài câu chuyện.

Việc phân tích lại phiếu thăm dò ý kiến ​​của tôi ít nhất là 5 giây một lần - điều này chỉ dành cho sự vững chắc và đáp ứng khi đối mặt với sự ngắt kết nối.

Tôi đã sử dụng máy trạng thái để điều hướng giữa việc khởi tạo, đọc và xóa tin nhắn.

Các vấn đề liên quan