You are on page 1of 9

I have a Huawei Modem connected to my VB.

net project all AT Commands work such


as CONNECT, READ and SEND SMS
The only thing that I cannot work with is the DELETE SMS
I have this code:

With SerialPort1
.Write("AT")
Threading.Thread.Sleep(1000)
.Write("AT+CMGF=1")
Threading.Thread.Sleep(1000)
.Write("AT+CPMS=""SM""" & vbCrLf)
Threading.Thread.Sleep(1000)
.Write("AT+CMGD=1,4")
Threading.Thread.Sleep(1000)
MsgBox(at_status.ToString)
End With
But the at_status throws me "ERROR" always.
AT+CMGD=1,4 as what I've read on the documentation is the right command but it throws
me an "ERROR" always.
What do you think is wrong with my code? All other command works, except this.

Answers
I figured it out, I only need to put some linebreaks & vbCrLf after every AT
Commands.
With SerialPort1
.Write("AT" & vbCrLf)
Threading.Thread.Sleep(1000)
.Write("AT+CMGF=1" & vbCrLf)
Threading.Thread.Sleep(1000)
.Write(TextBox3.Text & vbCrLf)
Threading.Thread.Sleep(1000)
.Write("AT+CMGD=1,4" & vbCrLf)
Threading.Thread.Sleep(1000)
MsgBox(at_status.ToString)
End With
shareimprove this answer
Hope this helps.

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button4.Click
Try
With SerialPort1
.Write("AT" & vbCrLf)
Threading.Thread.Sleep(100)
.Write("AT+CMGF=1" & vbCrLf)
Threading.Thread.Sleep(100)
.Write("AT+CPMS=""SM""" & vbCrLf)
Threading.Thread.Sleep(100)
.Write("AT+CMGD=" & Label9.Text & "" & vbCrLf)
Threading.Thread.Sleep(100)
'MsgBox(ReceivedData.ToString
If ReceivedData.ToString.Contains("ERROR") Then
MsgBox("Got some error", MsgBoxStyle.Critical, "Error")
Else
MsgBox("Message Deleted", MsgBoxStyle.Information, "Deleted")
ListView1.Items.Clear()
ReceivedData = ""
Try
With SerialPort1
.Write("AT" & vbCrLf)
Threading.Thread.Sleep(100)
.Write("AT+CMGF=1" & vbCrLf)
Threading.Thread.Sleep(100)
.Write("AT+CPMS=""SM""" & vbCrLf)
Threading.Thread.Sleep(100)
.Write("AT+CMGL=""ALL""" & vbCrLf)
Threading.Thread.Sleep(100)
ReadMesssage()
End With

Catch ex As Exception
MsgBox(ex.ToString)
End Try
Label11.Text = ListView1.Items.Count
Label9.Text = ""
End If
End With
Catch ex As Exception

End Try
End Sub
shareimprove this answer

Try the below script in the AT Command Tester tool

//Script: at_cmgd.at
//Use this script to AT+cmgd AT command
//Get the command support
AT+cmgd=?
WAIT=2
//Delete SMS message at index 1
AT+cmgd=1
WAIT=1
//Delete SMS message at index 2
AT+cmgd=2
WAIT=1
//Delete SMS message at index 3
AT+cmgd=3
WAIT=1
//Delete all read messages SMS messages, leave unread
//messages and stored MO messages untouched
AT+cmgd=,1
WAIT=1
//Delete all read messages SMS messages and sent Mobile
//originated messages, leave unread messages and unsent MO
//messages untouched
AT+cmgd=,2
WAIT=1
//Delete all read messages SMS messages. sent and unsent
//Mobile originated messages, leave unread messages untouched
AT+cmgd=,3
WAIT=1
//Delete all messages including unread messages
AT+cmgd=,4
WAIT=1

Output of the above script in the AT Command Tester tool tool.

AT+cmgd=?
+CMGD: (0,1,2),(0-4)
OK
AT+cmgd=1
OK
AT+cmgd=2
OK
AT+cmgd=3
OK
AT+cmgd=,1
OK
AT+cmgd=,2
OK
AT+cmgd=,3
OK
AT+cmgd=,4
OK
Perintah AT COMMAND mengirim dan menerima SMS

Pada postingan sebelum nya yang mengenakan AT COMMAND pada handphone


siemens untuk pengoperasian dan Cek AT comand. kini penulis menyampaikan
pastikan PC dengan terminal kita (HP/GSM modem) udah terkoneksi AT
Coba tanyain alat di terminal kita (HP/GSM Modem, apakah dia support PDU mode
(0) atau SMS text mode (1) atau dua-duanya = AT+CMGF=?

1. Misal kalo alat kita support SMS text mode, maka saya mau HP/GSM modem
saya beroperasi dalam SMS text mode = AT+CMGF=1
2. Nah, baru kita Menulis Nomor yang akan kita kirim dan Pesan ke Message
Storage di HP/GSM modem (SIM card) kita = AT+CMGW=”nomor telepon yg
dituju”
(Enter)…PESAN YG INGIN DIKIRIM…..(Ctrl-Z untuk mengakhiri pesan)…
kemudian muncul info nomor index dimana pesan kita tadi disimpan dalam message
storage.
3. Kita kirimkan pesan kita di index message storage tadi AT+CMSS =
nomorindexpesankita
Selesai…sebagai contoh AT commands dan respons-nya di bawah ini:
AT
OK
AT+CMGF=1
OK
AT+CMGW=”+85291234567″
> A simple demo of SMS text messaging.
+CMGW:1
OK
AT+CMSS=1
+CMSS:20
OK

Lengkap AT commands untuk Kirim SMS:


AT command Meaning
+CMGS Send message
+CMSS Send message from Storage
+CMGW Write message to memory (nomor
tujuan dan pesan yang akan dikirim)
+CMGD Delete message
+CMGC Send command
+CMMS More messages to send

=======================================================

II. BACA SMS Pake AT Commands


1. Ajak HP/GSM Modem kita make mode SMS text = AT+CMGF=1
2. Baca semua pesan yang ada dalam Message Storage HP/GSM modem
(SIM card) kita = AT+CMGL=”ALL”
Contohnya:
AT
OK
AT+CMGF=1
OK
AT+CMGL=”ALL”
+CMGL: 1,”REC READ”,”+85291234567″,,”06/11/11,00:30:29+32″
Hello, welcome to our SMS tutorial.
+CMGL: 2,”REC READ”,”+85291234567″,,”06/11/11,00:32:20+32″
A simple demo of SMS text messaging.
OK

Lihat terdapat 2 pesan dalam Message Storage GSM Modem (SIM).

- “REC READ” berarti pesan uudah dibaca


- “+85291234567″ nomor pengirim
- ““06/11/11,00:32:20+32″ pesan diterima
tanggal Tahun 2006/Bulan 11/Tanggal11
jam 00:32:20 waktu GMT(+32/4) yakni GMT+8
- Isi pesan
=======================================================

Untuk mengetahui options isian Membaca Pesan di Message Storage


(+CMGL) AT+CMGL=?
Membaca pesan SMS pada index tertentu dalam Message Storage
AT+CMGR=nomorindex
Contoh saya pengin baca Pesan SMS di Index 15 Message Storage:
AT+CMGR=15
+CMGR: “STO SENT”,”0411363xxxx”,
TEST OK TONY
=======================================================
Mensetting Jika ada SMS baru yang masuk HP/GSM modem kita disuruh ngapain
=AT+CNMI=…,….,…,…,…..
(options angka sesuai manual AT commands untu HP/GSM Modem yang kita pake)
Kita bisa nyuruh “tiap kali ada SMS masuk langsung kirim ke PC” atau “tiap kali ada
SMS masuk save aja di Message Storage kemudian mberi-tahu PC
Mencheck apakah SIM card kita udah tepat masuk ke GSM Modem = AT+CPIN?
AT+CPIN?
+CPIN: READY
————————————–
AT Commands untuk Baca SMS:
AT command Meaning
+CNMI New message Indications (Kalo ada SMS baru
masuk mau diapain???)

+CMGL List messages (Tampilkan LIST (L)


SMS yang ada di Message Storage!)
+CMGR Read messages (Baca/READ (R)
pesan di index …)
+CNMA New message acknowledgement
————————————-
* +CNMI untuk GSM Modem saya (Wavecom)
AT+CNMI= kode perlakuan untuk hasil yang TIDAK dicari (hanya support mode 2:
disimpan di memory dan dikirimkan ke PC nanti), perlakuan untuk SMS Masuk
(default 1), perlakuan untuk Cell Broadcast Messages yang masuk (0: jika ada CBM
yang masuk TIDAK diteruskan, 1: disimpan dulu di Modem dan indeks lokasi
memory dikirimkan ke aplikasi PC, 2: langsung diteruskan ke PC), SMS Status
Report di route atau tidak (default 0: tidak dikirimkan, 1: dikirimkan, 2: disimpan dan
dikirimkan), buffer (default 0: isi buffer dikirim ke PC, 1: isi buffer dihilangkan)
AT+CNMI=2, 1, 1, 2, 0

=======================================================
BERIKUT PENULISAN DALAM PROGRAM KITA
=======================================================

Perintah yang di mengerti modem adalah “AT Command” .


Disebut AT Command karena perintah2nya didahului oleh “AT” ( Atention).

Contoh beberapa AT command untuk Modem GSM:

AT+CPBF : cari no telp.


AT+CPBR : membaca buku telp.
AT+CPBW : menulis no telp di buku telp.
AT+CMGF : menyeting mode SMS text atau PDU
AT+CMGL : melihat semua daftar sms yg ada.
AT+CMGR : membaca sms.
AT+CMGS : mengirim sms.
AT+CMGD : menghapus sms.
AT+CMNS : menyeting lokasi penyimpanan ME(hp) atau SM(SIM Card)
AT+CGMI : untuk mengetahui nama atau jenis ponsel
AT+CGMM : untuk mengetahui kelas ponsel
AT+COPS? : untuk mengetahui nama provider kartu GSM
AT+CBC : untuk mengetahui level baterai
AT+CSCA : untuk mengetahui alamat SMS Center

Dalam proses pengiriman atau penerimaan SMS, terdapat 2 mode yaitu:

1. Mode SMS text

2. Mode SMS PDU (Protocol Data Unit).

Mode yang paling mudah digunakan yaitu mode teks (kode ASCII). tapi mode
PDU(kode hexa) lebih powerful.

Penjelasan Beberapa AT Command

AT+CPMS : Mengeset Target lokasi memory

AT Command Respon Modem


AT+CPMS=[Mode1],[Mode2],[Mode3] OK

Mode1],[Mode2],[Mode3] , SM =SIM Card , ME (HP) , MT semua storage.

-AT+CMGF : Mengeset Modem sebagai Mode text atau PDU.

AT Command Respon Modem


AT+CMGF=<mode><CR> OK

Parameter
<mode> 0 =Mode PDU, 1 = Mode text

<CR> = ASCII character 13

Contoh Set GSM modem ke Text Mode SMS dan kirim sms ke No :
+6285695341050.

(anda bisa mencobanya lebih dahulu pada hyperterminal)


AT+CMGF=1 <akhiri dg enter(CR) >
OK // ini respon ok dari modem

AT+CMGS="+6285695341050" <akhiri dg enter(CR) >

> hallo apa kabar. <akhiri dgn CTRL-Z>

+CMGS: 324 //parameter jawaban dari modem

OK // jawaban ok dari modem

Untuk mengetahui Mode apa yang sedang aktif gunakan perintah:

AT+CMGF?

- AT+CMGL: Melihat sms yang ada

AT Command Respon Modem


AT+CMGL=<stat><C +CMGL: <index>,<stat>,<oa>,[<alpha>],
R> [<scts>]<CR><LF><data><CR><LF>

OK

Parameter
<stat>: Status , antara lain:

status sms mode text mode PDU


sms blm “REC 0
dibaca UNREAD”
sms sdh “REC READ” 1
dibaca
sms tak “STO 2
terkirim UNSENT”
sms terkirim “STO SENT” 3
semua sms “ALL” 4

<index>: Index pesan


<oa>: alamat Originator
<alpha>: Originator name (jika ada di phonebook)
<scts>: waktu
<data>: isi pesan

<CR>: ASCII character 13


<LF>: ASCII character 10

Contoh :

Settinglah modem GSM ke Mode SMS text, lihat semua sms yg ada
kemudian hapus sms dari modem GSM.
AT+CMGF=1 < tekan enter(CR) >
OK
AT+CMGL="ALL" //(pada mode PDU(CMGF=0) gunakan AT+CMGL=4)
+CMGL: 1,"REC UNREAD","+6285695341050",,"11/01/09,10:26:26+04" pesan
pertama
+CMGL: 2,"REC UNREAD","+6285695341050",,"11/01/09,10:26:49+04" pesan kedua
OK
AT+CMGD=1 //hapus pesan pertama
OK
AT+CMGD=2 //hapus pesan kedua
OK

AT+CMGD : Menghapus SMS

AT Command Response MODEM


AT+CMGD=<index><CR> OK
contoh
AT+CMGD=1 //hapus pesan urutan pertama
OK //jawaban dari modem GSM

AT+CMGS : Mengirim SMS

AT Command Response modem GSM


AT+CMGS=<number><CR><message><CTRL- +CMGS:<mr>
Z> OK
Parameter
<CR> = ASCII character 13
<CTRL-Z> = ASCII character 26
<mr> = message Reference

Contoh
Menseting modem GSM ke Mode SMS text dan menngirim sms ke
+6285695341050.
AT+CMGF=1
OK //jawaban modem
AT+CMGS="+6285695341050" <akhiri dgn enter bukan>
> halo pc control <akhiri dgn CTRL-Z>
+CMGS: 123 //parameter jawaban dari modem
OK //jawaban dari modem

demikianlah ceritanya dasar perintah AT Command.

sumber : tonyteaching.wordpress.com , pccontrol.wordpress.com

You might also like