2012-05-22 7 views
6

ComPort 구성 요소를 사용하여 모뎀을 통해 SMS 메시지를 보내고 있는데 때로는 가끔씩 때로는 문자 메시지를받을 때가있어서 문자 메시지의 본문에 at 명령을받는 경우가 있습니다.AT 명령을 통해 sms 보내기 이상한 행동

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; 

내가 잘못 뭐하는 거지 : 여기

내 코드? 그리고 왜 내가 모뎀에서 읽을 때 내가 tx 라인에서 보낸 것을 얻을 수 있습니까?

+0

은 sincron 또는 asincron 모드를 처리합니다 ... – RBA

답변

1

명령 사이에 약간의 지연을 추가하거나 (일반적으로 모뎀 응답, "OK"를 기다리십시오).

+2

지연 (얼마나 오래 있겠습니까?) 명령이 성공했는지 확신 할 수 없으므로 회신을 기다리고 값을 확인합니다. – TLama

+0

1 초 제한 시간이 좋습니다. 모뎀은 자세한 또는 숫자 모드로 응답 할 수 있습니다. 때로는'AT + # 13 # 10 '을 보내는 것만으로 모뎀과의 접속을 설정하는 것이 좋다. –

+0

TLama : 지연은 테스트하기 쉬운 방법이며 때로는 적절한 솔루션입니다. – Harriv