2012-05-22 41 views
6

Tôi đang sử dụng thành phần ComPort để gửi tin nhắn SMS qua modem, vấn đề là thỉnh thoảng tôi nhận được tin nhắn đôi khi không nhận được lệnh trong phần nội dung của tin nhắn.Gửi sms qua AT Lệnh hoạt động lạ

Đây là mã của tôi:

procedure SendSmsCosmote(numar,text : string); 
const 
    buf : Byte = 26; 
begin 
    Form1.ComPort1.WriteStr('AT+CMGF=1'+#13#10); 
    Form1.ComPort1.WriteStr('AT+CMGS="'+ numar + '"'+#13); 
    Form1.ComPort1.WriteStr(text); 
    Form1.ComPort1.Write(buf,1); 
end; 

Tôi đang làm gì sai? Và tại sao khi tôi đọc từ modem tôi nhận được những gì tôi đã gửi trên dòng tx?

+0

hãy quan tâm đến chế độ chân không hoặc chế độ ... – RBA

Trả lời

1

Thử thêm độ trễ nhỏ giữa các lệnh (hoặc đợi modem trả lời, "OK" thường).

+2

Với độ trễ (khoảng thời gian bao lâu?) Bạn không thể chắc chắn lệnh đã thành công, vì vậy tôi chắc chắn sẽ chờ trả lời và kiểm tra giá trị của nó. – TLama

+0

Thời gian chờ thứ hai là tốt. Hãy nhớ rằng các modem có thể trả lời ở chế độ tiết hoặc số. Đôi khi bạn nên thiết lập liên hệ với modem trước bằng cách chỉ cần gửi 'AT + # 13 # 10'. –

+0

TLama: chậm trễ là cách dễ dàng để kiểm tra nó, và đôi khi giải pháp thích hợp. – Harriv

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