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.
halo pak, salam kenal saya ingin bertanya bagaimana kalo koneksinya kalau melalui USB? apakah sama saja ?? dan kalo komponen yang dipakai serialNG bagaimana? terimakasih
Halo simon, Yang dimaksud lewat USB itu apakah firewire? Soalnya kalo Infrared sama Bluetooth Dongle itu kan lewat USB Kalo firewire, aku belum pernah tau... belum pernah ngerasakan HP high-end sih Tapi menurut dugaanku, koneksi apapun yang tidak melewati port COM secara fisik (misalnya Siemens C35i), drivernya akan selalu menciptakan virtual COM. Nah, kalo muncul COM virtual ini, berarti sama saja dengan koneksi yang lainnya. Aplikasi tetap bisa jalan. CMIIW Untuk komponen serialNG, aku ga pernah tau. Intinya, komponen tersebut dapat digunakan untuk komunikasi serial dengan COM, untuk mengirim AT Command, itu yang penting.
mas yang VB nya aku tungguin, kapan yah. kalo bisa mas secepatnya lah, tapi ku mohon bisa dikirim ke email ku tolong dong
mas saya sudah coba install component sesuai dengan petunjuk. sewaktu saya coba jalankan programnya ada error class TXComm not found. bisa tolong saran dan masukkannya mas terima kasih
Halo agung, Itu karena komponen TXComm belum kamu install. - Download ini dulu: http://www.bengkelprogram.com/download-ouxcom.zip - Extract di suatu directory, misalnya C:ouxcom - Buka Delphi - Open file .dpk dari c:ouxcom - Tekan install - Masuk menu Tools > Environment Options > Library - Tambahkan direktori c:ouxcom pada daftar Library Path - Library sudah terinstall Itu langkah-langkah install komponennya, kalo ada masalah lain, silakan dilaporkan lagi :)
halo again.... Mo nanya lagi (^_^)! Aplikasinya 'sms bengkel prpgram' kemaren da tak install plus Txcomnya. Tapi ko selalu gak connect ke hp mas ya...selalu gagal buka port Apakah aplikasinya gak support utk SE T290i ya?? Thank u very muchhhhhhhhh......
Halo simon, Selama HP itu support AT Command, aku rasa bisa diakses oleh aplikasi itu. Pastikan nomor port dan baudratenya udah bener. Port harus dalam kondisi 'free', tidak sedang dipake oleh aplikasi lain. Trus coba juga dari program Hyper Terminalnya Windows. Kalo misalnya dari Hyper Terminal bisa konek tapi aplikasi masih tetep ga bisa konek, berarti something wrong pada aplikasi Dicoba dulu ya.
Wah site seger, gak sengaja masuk , kebetulan saya developer VB6 nih. Saya tambahkan mas... Saya pernah dapat report mengenai komponen "MSCOMM32.ocx", komponen tersebut tidak bisa akses IrDa virtual COM. Berikut saya kutipkan yach... bisa jadi masukan untuk mas. Limited Windows Support for IrCOMM Programming Windows implements a subset of the IrCOMM protocol to support certain legacy applications, but that support is considered legacy, and is not recommended for new applications. Instead of IrCOMM, Windows Sockets is the recommended programming interface for IrDA on all Windows platforms. Windows exposes the IrCOMM protocol through Telephony or Windows Sockets APIs. There are several reasons why Windows does not expose IrCOMM virtual serial ports, and why Windows Sockets is the recommended programming interface instead of IrCOMM: 1. IrCOMM runs on top of a reliable protocol layer, but session establishment and release services are not exposed through the serial API. Also, since the underlying IrDA connection can be broken and re-established without the event being communicated to the application through the serial API, IrCOMM is not a reliable protocol in practice. As such, IrCOMM applications must be prepared to add another layer of reliability. 2. Multiple applications cannot share a virtual serial port. This condition is particularly troublesome in many situations. For example, if an IrCOMM-based application opens the single virtual serial port and holds it open until system shutdown, the virtual serial port is unavailable for any other operation. An example is an IrTran-P file transfer application running as a background service; no other IrDA application or driver can run on that system, even though the underlying IrDA protocols provide support to allow multiple applications to be waiting for incoming connections and allow clients to select a target application at connect time through established protocol mechanisms. 3. Windows support for multiple concurrent adapters, or IrDA connections to different devices, cannot be well supported with an API and protocol that assumes a single-device connection, such as IrCOMM does. 4. The complexity and various modes of IrCOMM make real-world interoperability a difficult problem to overcome. Unfortunately, the fundamental limitation of the IrCOMM protocol, which is that multiple servers cannot concurrently listen for incoming connections, is still exposed in this implementation. If one application is listening for incoming IrCOMM connections, another application trying to do so will get an error from Windows Sockets. This means that all new applications should either avoid IrCOMM or support multiple modes concurrently.
Halo Mas Teguh, Terima kasih atas informasinya, sangat membantu sekali :) Dapat dijadikan pegangan, kalo suatu saat kita mau develop pake MSComm. Sebagai tambahan, jika ingin menggunakan Infrared sebagai Virtual Com, dapat download ini: http://www.bengkelprogram.com/download-IrCOMM2k-1.2.1-eng.zip Dengan driver itu, Infrared akan dianggap sebagai port COM. Dan juga ada pilihan 'exlusive' atau tidak, seperti yang tertulis pada referensi di atas.
Trus gimana juga cara koneksi mysql pada delphi. Kasih source code donk! Thanks
» 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 :-)