2012-05-22 18 views
6

Bir modem üzerinden SMS mesajları göndermek için ComPort bileşenini kullanıyorum, bazen bazen sms alıyorum bazen bazen mesajın gövdesinde komutları alıyorum.AT aracılığıyla sms gönder Komut eylemleri garip

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; 

yanlış yapıyorum: Burada

benim kodudur? Ve neden modemden okurken tx hattına gönderdiğim şeyi alıyorum?

+0

sincron veya asincron modu ile ilgili dikkat edin ... – RBA

cevap

1

Komutlar arasında hafif bir gecikme eklemeyi deneyin (veya modem yanıtını bekleyin, "Tamam").

+2

Gecikme ile (ne kadar sürede?) Komutun başarılı olduğundan emin olamazsınız, bu yüzden cevabı kesinlikle beklerim ve değerini kontrol ederim. – TLama

+0

Bir saniye zaman aşımı iyidir. Modemlerin ayrıntılı veya sayısal modda yanıtlayabileceğini unutmayın. Bazen sadece AT + # 13 # 10 'göndererek modem ile bağlantı kurmak iyidir. –

+0

TLama: Gecikmeyi test etmek kolay ve bazen de uygun bir çözümdür. – Harriv