2009-05-28 48 views
5

Tôi muốn gửi SMS bằng ứng dụng cửa sổ. Tôi đã chạy mã nhưng tôi gặp lỗi. Đây làCách gửi SMS qua ứng dụng Windows

AT 

OK AT+CMGF=1 

OK AT+CSCA="+9460921985" 

OK AT+CMGS="+9660775564" 

    this is new message 

+CMS ERROR: 500 

Tôi đang sử dụng mã này.

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 

Cảm ơn bạn đã trợ giúp.

+0

Điều gì đã được cắm vào cổng nối tiếp của bạn? – cjk

+0

Tôi hy vọng một chiếc điện thoại của nó :) – samjudson

Trả lời

2

Tôi không có kinh nghiệm viết SMS nào cả, nhưng có vẻ như bạn đang gọi đến serialPort.WriteLine cũng như thêm vbCrLf vào cuối dòng.

Thứ hai, bạn có chắc đó là vbCrLf bạn muốn - một số điều tôi đã thấy đơn giản chỉ là tham chiếu đến 'Trả về vận chuyển' - đó là vbCr.

+0

Điểm tốt, WriteLine sẽ tự động nối thêm đầu cuối dòng chính xác cho môi trường – cjk

1

Tôi tình cờ gặp Microsoft SMS Sender một lúc trước và nó có thể giúp bạn. Tôi không bao giờ có xung quanh để sử dụng nó mặc dù ...

0

+ CMS ERROR 500 (thường) được mở rộng thành "Lỗi không xác định". Từ modem GSM AT tài liệu lệnh:


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.


Có thể bạn có thể gặp vấn đề thời gian chờ/kết nối. Có thể kiểm tra xem modem/điện thoại của bạn đã đăng ký thành công với dịch vụ, tức là kiểm tra phản hồi với AT + COPS chưa? và AT + CREG? lệnh.

Các vấn đề liên quan