2009-05-28 7 views
5

Je veux envoyer des SMS par l'application Windows. J'ai couru le code mais j'ai eu une erreur. C'estComment envoyer des SMS via l'application Windows

AT 

OK AT+CMGF=1 

OK AT+CSCA="+9460921985" 

OK AT+CMGS="+9660775564" 

    this is new message 

+CMS ERROR: 500 

J'utilise ce code.

Public Class Form2 
    Dim number As String = "+9660775564" 
    ''# Dim message As String = TextBox1.Text 
    Dim serialport As New IO.Ports.SerialPort 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Try With serialport 
     .PortName = "COM5" ''# "COM24" 
     .BaudRate = "9600" 
     .Parity = IO.Ports.Parity.None 
     .DataBits = 8 
     .StopBits = IO.Ports.StopBits.One 
     .Handshake = IO.Ports.Handshake.RequestToSend 
     .DtrEnable = True .RtsEnable = True 
    End With 

    serialport.Open() 
    ''# checks phone status 
    serialport.WriteLine("AT" & vbCrLf) 
    ''# Configures message as SMS 
    serialport.WriteLine("AT+CMGF=1" & vbCrLf) 
    ''# Sets message center number 
    ''# serialport.WriteLine("AT+CSCA=""+447785016005""" & vbCrLf) 
    serialport.WriteLine("AT+CSCA=""+9460921985""" & vbCrLf) 
    ''# Sets destination number 
    serialport.WriteLine("AT+CMGS=""" & number & """" & vbCrLf) 
    ''# Specifies message and sends Ctrl+z 
    serialport.WriteLine(TextBox1.Text & Chr(26)) 
    ''# Displays buffer containing output messages 
    System.Threading.Thread.Sleep(2000) ''# CurrentThread.Sleep(2000) 
    MsgBox(serialport.ReadExisting) 
    serialport.Close() 
    MessageBox.Show("OK") 

    Catch ex As Exception 
    MessageBox.Show(ex.Message) 
    End Try 
End Sub 

Merci d'avance pour votre aide.

+0

Qu'est-ce qui est branché à votre port série? – cjk

+0

J'espère que c'est un téléphone :) – samjudson

Répondre

2

Je n'ai aucune expérience de l'écriture de SMS, mais vous semblez appeler serialPort.WriteLine et ajouter vbCrLf à la fin de la ligne.

Deuxièmement, êtes-vous sûr que c'est vbCrLf que vous voulez - certaines choses que j'ai vues se réfèrent simplement à 'Retour chariot' - qui serait vbCr.

+0

Bon endroit, WriteLine ajoutera automatiquement le terminateur de ligne correct pour l'environnement – cjk

1

J'ai trébuché sur Microsoft SMS Sender il y a quelque temps et cela peut vous aider. Je n'ai jamais eu l'occasion de l'utiliser ...

0

+ L'ERREUR CMS 500 est (normalement) étendue en tant qu '"Erreur inconnue". Du modem GSM AT documentation de la commande:


If sending fails, for example, if a message is too long, the result code depends on the current setting of the AT^SM20 command:

If the AT^SM20 equals 1 (factory default) any failure to send a message is responded with "OK". Users should be aware, that despite the "OK" response, the message will not be sent to the subscriber.

If the AT^SM20 equals 0 any failure to send a message is responded with "ERROR". • If sending fails due to timeout, then AT^SM20 =1 causes "+CMS ERROR: Unknown error" to be returned;
AT^SM20 =0 causes "+CMS ERROR: timer expired" to be returned.


Peut-être que vous pourriez avoir des problèmes délai d'attente/connexion. Peut-être vérifier que votre modem/téléphone s'est enregistré avec succès avec le service, c'est-à-dire vérifier la réponse à l'AT + COPS? et AT + CREG? commandes.

Questions connexes