Domanda

Sto cercando di inviare un sms tramite telefono cellulare Nokia su seriale che è abbastanza facile via di stucco.I comandi dal nokia documentazione funziona bene.

Tuttavia, il tentativo di inviare gli stessi comandi da un'applicazione c# fallisce miseramente.Ho eseguito Sysinternals PortMon e può vedere i comandi vengono attraverso OK, l'unica differenza che posso vedere è il modo in cui si connette, ma sto avendo problemi a trovare i comandi in grado di appianare le differenze.

Il codice che sto usando sembra un po ' come questo

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();
                    }
                }

Le differenze sto vedendo nella traccia dalla porta seriale sono

All'inizio

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

E alla fine

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 

Qualcuno ha avuto qualche consiglio su come ferro questi problemi?Ho anche notato che il telefono non risponde all'applicazione con il riconoscimento quando ho emettere un comando così ho il sospetto che il problema è la connessione, e non i messaggi alla fine.

È stato utile?

Soluzione

È necessario attendere che la ">" prima di scrivere il messaggio. Inoltre, non interrompere il messaggio con un CR / LF (WriteLine).

Altri suggerimenti

Prova a vedere se è possibile leggere il seriale di comunicazione dal telefono.Dopo l'invio di 'A', il telefono dovrebbe rispondere con "OK".Potrebbe essere una buona idea per verificare che la comunicazione seriale di lavoro prima di assumere l'SMS bit.

Da quello che mi ricordo, penso che dopo AT+CMGS il messaggio deve essere inserito e seguito da ctrl-z, e senza carattere di nuova riga è necessario.Potresti provare a cambiare il WriteLine ("messaggio") per Scrivere(messaggio)?

Spero che questo aiuta!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top