2009-06-12 6 views
2

나는 퍼티를 통해 충분히 쉽게 시리얼을 통해 노키아 전화를 통해 SMS를 보내려고합니다. nokia documentation의 명령이 정상적으로 작동합니다.시리얼 포트를 통해 노키아 전화를 통해 SMS를 수신

그러나 C# 응용 프로그램에서 동일한 명령을 보내려고하면 비참하게 실패합니다. 나는 Sysinternals PortMon을 실행했고 명령이 OK를 통해 진행되는 것을 볼 수 있습니다. 내가 볼 수있는 유일한 차이점은 연결하는 방법에 있지만 그 차이점을 없애는 명령을 찾는 데 어려움이 있습니다.

내가 실행 해요 코드는 내가 시리얼 포트에서 추적에보고하고있어 차이가 시작

0.00001844 aspnet_wp.exe IOCTL_SERIAL_SET_HANDFLOW USBSER001 SUCCESS Shake:1 Replace:43 XonLimit:4096 XoffLimit:4096 
에서

이다이

using (SerialPort port = new SerialPort(comPort, 9600, Parity.None, 8, StopBits.One)) 
      { 
       port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived); 
       port.ErrorReceived += new SerialErrorReceivedEventHandler(port_ErrorReceived); 

       //port.ReceivedBytesThreshold = 1; 
       port.DtrEnable = true; 
       port.RtsEnable = true; 
       port.ReadTimeout = 1; 
       port.Handshake = Handshake.XOnXOff; 


       try 
       { 
        port.Open(); 

        port.WriteLine("AT"); 

        port.WriteLine("AT+CMGF=1"); 

        port.WriteLine("AT+CMGS=\"" + number + "\""); 

        port.WriteLine(message); 

        port.Write(new byte[] { (byte)26 }, 0, 1); 
       } 
       finally 
       { 
        if (port.IsOpen) 
        { 
         port.Close(); 
        } 
       } 

같은 약간 보이는

그리고 맨 마지막에

0.00061153 aspnet_wp.exe IOCTL_SERIAL_PURGE USBSER001 SUCCESS Purge: RXABORT RXCLEAR 
0.00004442 aspnet_wp.exe IOCTL_SERIAL_PURGE USBSER001 SUCCESS Purge: TXABORT TXCLEAR 

누구도 이러한 문제를 해결하는 방법에 대한 정보를 얻었습니까? 또한 문제가 연결과 관련된 것으로 의심되므로 마지막에 해당 메시지가 아니라고 명령을 보낼 때 전화가 응답으로 응용 프로그램에 응답하지 않음을 알 수 있습니다.

+0

휴대 전화에 하드웨어 흐름 제어가 필요한지 확인 했습니까? – toholio

+0

핸드 셰이크와 흐름 제어는 내가 볼 수있는 것과 같은 퍼티와 같습니다. 명확히하기; the Shake : 1 Replace : 43은 다르지만 어떻게 바꾸는 지 모르겠습니다. – mjallday

+0

답변을 찾았습니까? 나는 내 전화에서 배달 응답을 얻으려고 애 쓰고있다. –

답변

0

메시지를 쓰기 전에 ">"를 기다려야합니다. 또한 CR/LF (WriteLine)로 메시지를 종료하지 마십시오.

1

전화로 직렬 통신을 읽을 수 있는지 확인하십시오. 'AT'를 보내면 전화가 'OK'로 응답해야합니다. SMS 비트를 사용하기 전에 직렬 통신이 작동하는지 확인하는 것이 좋습니다.

내가 기억하기로는 AT + CMGS 이후에 메시지를 입력하고 Ctrl-z를 입력해야하며 새 줄이 필요하지 않다고 생각합니다. WriteLine (메시지)을 Write (메시지)로 변경해보십시오.

희망이 도움이됩니다.

+0

이것은 확실히 일어나지 않습니다. 그러므로 나는 그 문제가 Shake, Replace가있는 라인이라고 생각한다. 내가 그 문제가 뭔지 알아 내려고 노력하는 것이 더 나은 것 같아 .. 고마워. – mjallday