2009-06-12 4 views
2

Я пытаюсь отправить sms через телефон Nokia по серийному номеру, который достаточно прост через шпатлевку. Команды от nokia documentation отлично работают.Sms через телефон nokia через последовательный порт

Однако попытка отправки одних и тех же команд из приложения C# завершилась неудачно. Я запустил Sysinternals PortMon и вижу, что команды проходят через OK, единственное различие, которое я вижу, связано с тем, как он соединяется, но у меня возникают проблемы с поиском команд, которые могли бы сгладить эти различия.

Кода я бег выглядит немного как этого

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.00001844 aspnet_wp.exe IOCTL_SERIAL_SET_HANDFLOW USBSER001 SUCCESS Shake:1 Replace:43 XonLimit:4096 XoffLimit:4096 

И в самом конце

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

Рукопожатие и управление потоком - это то же самое, что и шпатлевка из waht, которую я вижу. Уточнить; Shake: 1 Replace: 43 - это то, что другое, но я не уверен, как это изменить. – mjallday

+0

вы нашли ответ? Я изо всех сил пытаюсь получить ответ от моего телефона ... –

ответ

0

Перед записью необходимо подождать «>». Кроме того, не завершайте сообщение с помощью CR/LF (WriteLine).

1

Попытайтесь узнать, можете ли вы прочитать серийное сообщение с телефона. После того, как вы отправите «AT», телефон должен ответить «OK». Возможно, неплохо проверить, работает ли последовательная связь, прежде чем принимать бит SMS.

Из того, что я помню, я думаю, что после AT + CMGS сообщение должно быть введено, а за ним следует ctrl-z, и никакая новая строка не нужна. Не могли бы вы попробовать изменить WriteLine (сообщение) на Write (message)?

Надеюсь, это поможет!

+0

это, безусловно, НЕ происходит. поэтому я думаю, что проблема - это линия, в которой есть Shake, Replace on it. Думаю, я лучше буду пытаться выяснить, в чем проблема с этим. Спасибо. – mjallday

Смежные вопросы