Aplikasi Handphone

Kompilasi beberapa unit yang digunakan untuk mengirim dan membaca SMS, dan menampilkan informasi handphone


Senin Pon, 20 Februari 2006

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:

Page 1 Page 2 Page 3 Page 4

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.

Update Aplikasi

Versi terbaru:
Source: AplikasiSMS_1_7_Src.zip
Aplikasi: AplikasiSMS_1_7_Exe.zip

Source lama: AplikasiHP_1_2.zip

Berikut ini perubahan pada aplikasi:

Daftar Komentar

Deni Wibowo

deni.wibowo@...  Rabu Kliwon, 22 Februari 2006
Bagus mas Aryo, terima kasih. Aku bisa belajar lebih banyak lagi tentang delphi. Masih newbie nich... :D

Aryo Sanjaya

aryo.sanjaya@...  Rabu Kliwon, 22 Februari 2006
Halo Deni,

Hehe, sep sep...

Source dan aplikasinya baru aku update, supaya bisa nyimpan SMS ke file di PC. Banyak yang minta ditambahi itu.

Rencananya mau ditambahi agar dia bisa ngecek SMS otomatis.

Kalo dituruti terus, ga ada habisnya :))

Oh ya, bagi yang ga punya Delphi di komputernya, aplikasi ini butuh file qtintf.dll dan vcl60.bpl

Kira-kira ilegal gak ya kedua file itu aku taruh disitu? :D

Sonta

ahemjogja@...  Sabtu Pon, 25 Februari 2006
yang VB mas saya tunggu

Aryo Sanjaya

aryo.sanjaya@...  Senin Kliwon, 27 Februari 2006
Diusahakan, soale sekarang di kantor lagi dikejar dateline :( Hm, kalo ada yang mau mbantu porting ke VB, dipersilakan :D

redcode

kurniawanpujianto@...  Senin Kliwon, 27 Februari 2006
trus ada component yang gak ke deteksi seperti "MSCommLib_TLB" padahal aku dah instal komponennya n udah tak link ma librarynya. bisa bantu gak apa itu ya..? aku baru mau coba nih

Aryo Sanjaya

aryo.sanjaya@...  Senin Kliwon, 27 Februari 2006
Alo redcode, Error itu karena component MSComm masih belum sempurna terinstall. Kamu check ke daftar pallete-nya Delphi, ada ga komponen MSComm (bergambar telepon) ? Install dulu itu, lalu pastikan kamu menyimpan perubahan paketnya (Save All), baru kemudian load project HPApp.dpr Semoga membantu ;)

Deni Wibowo

deni.wibowo@...  Selasa Legi, 28 Februari 2006
Tanya lageee nech... Untuk akses ke file dos Aku dah pake ShellExec. Namun sekarang aku pengen ambil result dari hasil eksekusi file dos tersebut dan ternyata belum bisa juga. Aku coba masukkan hasil ShellExec ke suatu variabel dan coba konversi hasilnya ket text tapi juga tetep ngga bisa. Gimana caranya ya? Tolong dong dibantu...

redcode

kurniawanpujianto@...  Selasa Legi, 28 Februari 2006
mas tolong kirim via email petunjuknya aku dah coba tapi setelah buka file aplikasinya aku run kok gak bisa maklum masih belajar jadi komponenntnya gak kebaca error "vrhyperbutton2 doesnot have coresponden component"

Aryo Sanjaya

aryo.sanjaya@...  Selasa Legi, 28 Februari 2006
Halo Deni, Kalo untuk eksekusi file dos (aplikasi console), mending kamu pake perintah WinExec, lebih simple. Untuk mengambil hasil outputnya, pake trik ini, misalnya: WinExec('cmd.exe /c "dir c: > c:hasil.txt"', SW_HIDE); Maka output proses dir akan tersimpan di file c:hasil.txt Untuk lebih jelasnya, silakan mengacu pada artikel ini: http://delphi.about.com/od/windowsshellapi/l/aa082499.htm Semoga membantu.

Aryo Sanjaya

aryo.sanjaya@...  Selasa Legi, 28 Februari 2006
Halo redcode, untuk instalasi komponen Variant emang agak sulit, bagi yang belum terbiasa :D Sekarang aku lagi ngerubah aplikasi HPApp agar tidak menggunakan Variant dan MSComm lagi, jadi meminimalkan ketergantungan pada paket lain. Ditunggu ya ;)


URL: https://bengkelprogram.com/data-artikel-249.0.bps