Mengenai cara menerima dan menampilkan SMS yang masuk menggunakan AT Command melalui aplikasi VB6 - Setelah kita dapat mengirim SMS melalui AT Command dengan menggunakan kode VB6
yang ini dan yang
yang ini, membicarakan fungsi sleep dalam
posting yang ini yang ini dan
yang ini (Hai, terlalu banyak kata "yang ini"!), dan contoh kode untuk mendeteksi modem
yang ada disana, dan mengirim kode ussd melalui AT Command
yang ada disana. Sekarang tiba saatnya untuk membicarakan cara menerima SMS
disini.
Maka tanpa kata berpanjang lebar menunggu cacing berbulu, di bawah ini adalah kode VB6 yang mewakili tindakan dengan judul di atas:
Option Explicit
Dim strBuffer As String
Private Sub Form_Load()
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
With MSComm1
.CommPort = 3
.Settings = "115200,N,8,1"
.Handshaking = comRTS
.RTSEnable = True
.DTREnable = True
.RThreshold = 1
.SThreshold = 1
.InputMode = comInputModeText
.InputLen = 0
.PortOpen = True
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
strBuffer = strBuffer & MSComm1.Input
Do
strBuffer = strBuffer & MSComm1.Input
Loop While MSComm1.InBufferCount
If InStr(1, strBuffer, "+CMTI") > 0 Then
If Right(strBuffer, 1) = vbLf Then
Text1.Text = strBuffer
End If
End If
End Select
End Sub
Sampai dengan kode di atas, apabila ada SMS baru, maka modem akan memberitahukan kepada kita dengan diawali "+CMTI" misalnya: +CMTI: "SM",11. SM artinya memory yang digunakan adalah SIM card, sedangkan angka 11 mewakili indeks dari SMS tersebut, jadi apabila kita ingin mengakses/membaca SMS tersebut harus menggunakan 11 sebagai indeksnya. Gantilah kode yang terdapat dalam event MSComm1_OnComm() diatas dengan kode dibawah ini, apabila Anda berkeinginan membaca isi SMS baru tersebut.
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
strBuffer = strBuffer & MSComm1.Input
Do
strBuffer = strBuffer & MSComm1.Input
Loop While MSComm1.InBufferCount
If InStr(1, strBuffer, "OK") > 0 Then
Text1.Text = strBuffer
Dim d() As String
d = Split(strBuffer, vbCrLf)
strBuffer = ""
End If
If InStr(1, strBuffer, "+CMTI") > 0 Then
Do
strBuffer = strBuffer & MSComm1.Input
Loop While MSComm1.InBufferCount
If Right(strBuffer, 1) = vbLf Then
Text1.Text = strBuffer
Dim s() As String
s = Split(strBuffer, ",")
ReadSMSByIndex Trim$(s(UBound(s)))
End If
End If
End Select
End Sub
Private Sub ReadSMSByIndex(Index As Integer)
strBuffer = ""
MSComm1.Output = "AT+CMGR=" & Index & vbCrLf 'baca SMS yang berada di index ke-1
End Sub
Setelah kita modifikasi, maka akan menghasilkan:
+CMGR: "REC UNREAD","+6281315673456",,"12/06/26,01:43:51+28"
Test SMS. Test SMS.
OK
Lakukan parse (urai, pisah, memilih dan memilah) jika Anda terganggu dan tidak nyaman dengan perolehan response data yang selalu diawali dengan "+CMGR: "REC UNREAD" kemudian koma dan diakhiri dengan kata "OK". Terutama jika Anda bermaksud memasukan data tersebut ke dalam objek ListView atau MSHFlexgrid, dan lain-lain, demikian pula jika bermaksud menghubungkannya dengan database Access, SQLite, MySQL, atau database apa saja tergantung selera Anda, tidak ada paksaan dalam hal ini.
Source : http://vb6-sourcecode-insert.blogspot.com/
HOT INFO
Anda ingin mencari refrensi dan contoh program lengkap ? Kami ada. Sekarang Anda bisa mencari Source Code SMS Gateway di situs ini : www.panduanSkripsi.net. Koleksi program lengkap di sana, proyek PHP dan MySQL, juga jQuery dan Framework. Bukunya juga ada.