Untuk mengakomodasi masukan dari para rekan, aku menyusun aplikasi dari artikel Mengirim SMS dari PC dan artikel Membaca SMS dari PC, serta sedikit cara untuk mendapatkan informasi
mengenai status HP.
Aplikasi ini dibuat dalam versi Delphi, dan dengan teknik yang sama, sangat
mungkin untuk diporting ke Visual Basic ;)
untuk rekan yang belum terbiasa dengan Delphi, mungkin kapan-kapan akan aku buat
versi VB-nya. Kapan ya...
Ketika aplikasi ini pertama kali dijalankan, dalam keadaan tidak terhubung ke handphone.
Kita diberi kesempatan untuk memilih nomor port yang terhubung dengan handphone.
Setelah memilih nomor port yang benar, kemudian tekan tombol Konek, maka
aplikasi akan berusaha menghubungi HP.
Jika aplikasi sukses terhubung ke HP, maka akan ditampilkan beberapa informasi
mengenai HP tersebut.
Berikut ini adalah informasi tersebut:
Setelah itu, selama program berjalan, indikator dari handphone secara kontinu ditampilkan. Indikator tersebut diambil dengan perintah AT+CIND?
Nilai yang dikembalikan adalah suatu list (rangkaian) yang menandakan
indikator HP. Urutan dan nilai indikator dapat berbeda untuk beberapa merk HP.
Aku sudah nyoba untuk Sony Ericsson T610 dan Siemens CX65. Hasil yang persis
sama adalah pada indikator Battery dan Sinyal, sedangkan indikator yang lain
berbeda posisi.
Karena itu, jika ingin aplikasi kamu berjalan full untuk semua merk HP, maka aplikasi
harus mendeteksi semua nilai yang didukung oleh HP yang digunakan. Informasi mengenai
hal ini dapat dilihat pada command AT+CIND=?
Berikut ini adalah contoh hasil perintah AT+CIND=? pada Siemens CX65:
at+cind=? +CIND: ("battchg",(0-5)),("signal",(0-5)),("service",(0,1)), ("message",(0,1)),("call",(0,1)),("roam",(0,1)), ("smsfull",(0,1)),("call status",(10x-20x)), ("GPRS coverage",(0,1)),("callsetup",(0-3)) OK
Sesuai urutannya, maka item pertama adalah level battery, kedua adalah sinyal,
ketiga adalah kesiapan servis, lalu datangnya SMS baru, terjadinya panggilan (berbicara),
kondisi roaming, sms box penuh, dan seterusnya. Silakan mereferensi ke manual
masing-masing HP untuk lebih jelasnya.
Untuk mendapatkan nilainya, jalankan perintah AT+CIND? (tanpa sama dengan). Berikut ini adalah contohnya:
at+cind? +CIND: 2,2,1,0,0,1,0,0,1,0
Yang didapatkan adalah rangkain nilainya. Nilai yang pertama adalah untuk battery,
yaitu 2 dari skala 0 - 5 (lihat hasil AT+CIND=? di atas). Sinyal pada HP juga 2,
begitu seterusnya.
Informasi tersebut ditampilkan secara terus menerus, dengan interval timer 1000
milisecond (1 detik). Berikut ini adalah contoh tampilan aplikasi:
Level sinyal dan battery ditampilkan dalam bentuk gauge meter, sedangkan indikator call, sms, smsfull ditampilkan dengan gambar pada kotak hijau sebelahnya. Ya, aku akui, gambar indikatornya tidak informatif sama sekali. Karena itulah, program ini aku tempatkan di sini, dipersilakan untuk dimodifikasi :D
Fasilitas aplikasi yang lain adalah SMS Info, untuk membaca SMS dari Inbox (termasuk SMS
baru), sedangkan untuk SMS dalam folder draft dan sent, aplikasi belum mendukung :(
silakan ditambahi, ok.
Page berikutnya adalah fasilitas untuk mengirim SMS. Di sini juga disediakan tombol
untuk menyimpan SMS ke dalam folder draft pada HP.
Kedua fasilitas di atas menggunakan kedua unit yang telah dibahas pada artikel
sebelumnya, namun dengan berbagai perbaikan dari masukan rekan-rekan semua, terutama
Sri. Makasih banget, ok.
Kemudian, yang belum pernah dibahas sebelumnya adalah pembacaan buku kontak.
Untuk memilih memori penyimpanan kontak, apakah menggunakan SIM Card (kode SM), atau
memori handphone (ME), atau keduanya (MT), digunakan perintah AT+CPBS=(SM, ME,
MT). Tidak semua HP mendukung ketiganya, maka dari itu aplikasi mesti bijaksana
memilih :)
untuk mengetahui media yang didukung, pake perintah AT+CPBS=?
Untuk CX65 defaultnya adalah SM, dan gak bisa ME. Untuk amannya, gunakan saja
SM.
Setelah menentukan memori yang dipilih, berikutnya adalah mencari informasi
index (nomor posisi) kontak yang tersedia. Gunakan perintah AT+CPBR=?, maka akan diberikan
index yang tersedia. Contoh pada CX65:
at+cpbr=? +CPBR: (1-250),20,12 OK
Hasil itu menandakan bahwa index yang tersedia adalah 1 - 250. Maka kita perlu membaca (looping) dari 1 sampai 250 untuk mendapatkan keseluruhan kontak. Gunakan perintah AT+CPBR=nomor indexnya untuk membaca tiap-tiap index. Contoh:
at+cpbr=88
+CPBR: 88,"+6281524737470",145,"Rasdi"
OK
Hasil yang diberikan tinggal diparsing dan ditampilkan pada listview.
Untuk mendownload aplikasi dan sourcenya, silakan menuju ke bagian update aplikasi.
Jika ingin menjalankan dari
source-nya, atau melakukan modifikasi program, lebih mudah kalo menggunakan Delphi 6, karena aku membuatnya dari versi itu.
Untuk versi ini, dibutuhkan library XComDrv untuk mengcompile ulang. Silakan download library tersebut
di sini. Extract
pada suatu direktori (misalnya c:\ouxcom), lalu open file *.dpk melalui IDE Delphi, dan klik install.
Kemudin tambahkan path di mana ouxcom tersebut tadi di-extract, kedalam path
library, agar library tersebut dapat bekerja. Masuk menu Tools > Environment
Options > Library > Library path, browse ke c:\ouxcom, lalu tekan add.
Jika diperhatikan, masih banyak fasilitas yang mungkin ditambahkan. Aplikasi
tersebut hanya contoh penerapan perintah AT Command untuk baca dan kirim SMS.
Ok, selamat mencoba.
Wah...saya di Jakarta :'(
teman2 ada yang tau yg jual di jakarta...? (beserta cable datanya loh...)
Makasih2
mas aryo aku dah coba buat jalanin source code program smshp ke vb, komponen dan library dah kuinstalin, tapi masih ada error program SMSAR nya, pernyatanya yaitu kalo gak salah "can't create activeX component" itu apanya ya mas ya??
terus bisa gak aku minta SMSAR yang versi databasenya MSACCESS or SQLSERVER 2000, makasih atas bantuannya, ini buat skripsi saya sistem quiz. mohon bantuannya mas.
Saya salut deh dg Anda mau bagi2 ilmunya. saya baru bergabung nih & saya pengen coba download aplikasi smsnya. trus apa yang harus saya siapkan ya? kabel data dan hp pastinya ya. Dan hpnya sebaiknya merk apa saja. tks a lot
Mau tanya neh, untuk masalah delivery reportnya gimana nangkapnya, aku bisa dapatin PDU -nya tapi kalo pake unit gsm_sms (TSms) tidak bisa decode PDU -nya (atau aku yang salah).
mas, aku dah nyoba aplikasinya mas, tapi kok kadang-kadang modem gsmku mau konek, kadang kok ndak mau, itu kenapa ya?
aku coba buat aplikasi sendiri pake delphi dengan komponen ouxcom milik mas, tapi aku masih bingung bagaimana cara membaca output dari com tersebut,
klo untuk masalah koneksinya sih udah terkoneksi dengan opendevice
tapi untuk masalah pembacaan output dari com misalnya setelah perintah AT+CGML="ALL" itu kan klo di hyperterminal kan keluar keterangan mengenai sms yang masuk (gsm modemku mendukung teks mode dan pdu mode, jadi aku pake teks mode aja biar lebih mudah tanpa konversi dari pdu ke teks mode)
klo di delphi dengan ouxcom, bacanya dibagian properti apa mas, tolong kasih source tentang bacanya ya.
inputan pake ouxcomm1.writestring('AT+CGML="ALL"'#13)
outputnya dimana ?
terima kasih atas jawabannya
Solikin,
Kalo kamu jalankan dari Source SMS-AR, maka semua komponen yang dibutuhkan Project VB harus diinstall dulu. Kamu jalankan saja file .BAT yang disertakan di source itu, nanti semua komponen akan diinstall.
Untuk berpindah ke MS-SQL, aku rasa tidak banyak perubahan pada program. Dulu aku gunakan MySQL karena mudah dalam instalasinya.
Kalo ingin dirubah ke Access/SQL Server, mungkin hanya perubahan pada koneksi dan beberapa syntax SQL aja.
Mieke,
Untuk mencoba aplikasi itu, yang dibutuhkan adalah HP yang support AT Command, misal Siemens CX-65, SE T610, etc, dan kabel data/infrared/bluetooth untuk menghubungkan HP dengan PC.
Selamat mencoba
Indra,
Iya, nampaknya parser tSMS tidak support PDU untuk Delivery Report
Justru PDU parser milik aplikasi ini yang sebelumnya (yang lama, versi 1.2), support untuk hal ini.
Kalo mau download yang versi lama (1.2), parsernya masih bikin sendiri, tapi ya gitu, masih simple banget
Nunggu perbaikan dari FMA aja, atau mau diperbaiki sendiri?
Sendi,
Jika koneksi intermittent gitu, biasanya sih ada aplikasi lain yang sedang membuka juga. Pastikan aja ga ada aplikasi yang berjalan menggunakan device yang sama.
Untuk pembacaan dari tXCom, dapat menggunakan perintah:
XComm1.ReadString(data);
Tapi itu dilakukan saat ada event XComm1Data.
Dari source aplikasi, pada Unit1, pembacaan data dilakukan di procedure ini:
procedure TfUtama.XComm1Data(Sender: TObject; const Received: Cardinal);
Selamat utak-atik
nitip ya untuk regey..
untuk DCU nya di edit dengan Hex editor sedangkan Dede cuma untuk liat alur program aja. Hasil editan DCU itu yang nanti dipake diprogram buatan kamu, atau menggunakan demo program dari oxygen nya. Untuk lebih lanjutnya tolong kirim email ke ipank2nd@yahoo.com. Aku ga enak sama mas aryo coz dah OOT jauh nih.
Mas aryo numpang lewat ya... hihihi
Hey, gpp, terusin aja
Itulah gunanya sharing kan?
Kalo terlalu repot di sini, mending bikin topik baru di bagian Sharing aja
Atau, nanti aja hasil 'penyelidikan' kamu diletakkan di sini sekalian?
Mas Aryo,
Saya berencana membuat aplikasi SMS untuk pengecekan tagihan rekening PDAM, kira-kira cara kerjanya gimana ya, databasenya bisa pake text ga ya ?
Tks
mas aryo yang baik...
gimana program masukin data sms yang ada di inbox ke database mysql pake BDE?tapi lewat memo,aplikasi yang mas bikin kan pake listview,kalo lewat memo gimana?
makasih...
» Membaca SMS dari PC (162)Jika sebelumnya sudah dibahas cara membaca SMS lewat PC, belum lengkap rasanya kalau tidak dibahas tentang proses pengiriman SMS lewat PC.
Kirim-kiriman SMS memang asyik, apalagi kalo menggunakan PC, meski tetep aja bayar :-)