Silakan tunggu sedang proses
Rabu Legi 24 April 2024 14:57
learn make rich
share make it perfect
Ayat Suci
maka sekiranya kita dapat kembali sekali lagi (ke dunia) niscaya kami menjadi orang-orang yang beriman".
(QS. ASY SYU'ARA':102)

 otomatis refresh

Javascript ayat
Daftar Fungsi
pasaran
Mencari nama hari dan nama pasaran
pdu2sms
Konversi dari PDU ke Teks SMS
bacarss
Membaca RSS dari beberapa situs
Para Rekan
MyWeblog

Aplikasi Handphone

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

Aryo Sanjaya
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:

  • Merk HP, didapatkan dengan mengeksekusi perintah AT+CGMI
  • Informasi modem, dengan command AT+GMM
  • AT+CGSN untuk mendapatkan nomor IMEI
  • AT+COPS? untuk menampilkan operator jaringan
  • AT+CSCA? untuk mendapatkan nomor SMSC (layanan SMS)

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:

Komentar

Halaman Komentar:   < 1 ... 19 20 21 22 23 24 25  >

edy

Selasa Kliwon, 27 Juni 2006

tolong gimana cara membuat sms yang dah
masuk dalam PC otomatis bisa memutar lagu. ini untuk TA ku ttg stasiun radio.tlg banget yaaa.begini rinciannya....
pendengar mengirim sms misal ketik
" padi sobat " maka sms yang dah masuk ke server langsung masuk dalam antrian lalu searching lagu yang diinginkan dan
mutar lagu.hanya dibatasi 10 pengirim sms pertama. tolong banget yaaa...klo bisa sekalian source code-nya hehe...
terserah pake bahasa pemrograman apa saja diutamakan java.

ip4nk

Selasa Kliwon, 27 Juni 2006

Saya udah coba yang pake ouxcom, ga ada masalah yang berarti tuh, tapi pada saat pertamakali di jalankan ada error karena beberapa string yang dicari di dalam registry windows masih kosong (belum ada isinya) kalo ga salah dicari baudrate defaultnya.

Aku usul aja, gimana kalo aplikasinya sekalian membaca dan mencatat incoming dan outgoing call, dan juga memiliki fungsi dial dari keyboard PC dengan suara dan speaker dari komputer dan bisa direkam. Judulnya kan Applikasi HP jadi bukan sekedar kirim dan terima SMS dong?!?!?

Btw... thanks banget, what a great job , saya dapet ilmu yang berguna dari mas aryo sanjaya ini.

KRishy

Selasa Kliwon, 27 Juni 2006

boleh dicoba tuh artikelnya,,thank to mas aryo

rinnoA

Selasa Kliwon, 27 Juni 2006

for edi
ini cara nampilin MP3 ntar tinggal disambungin ama program nerima SMSnya:
...get a MP3's ID3-Tag ?


{
Byte 1-3 = ID 'TAG'
Byte 4-33 = Titel / Title
Byte 34-63 = Artist
Byte 64-93 = Album
Byte 94-97 = Jahr / Year
Byte 98-127 = Kommentar / Comment
Byte 128 = Genre
}


type
TID3Tag = record
ID: string[3];
Titel: string[30];
Artist: string[30];
Album: string[30];
Year: string[4];
Comment: string[30];
Genre: Byte;
end;

const
Genres : array[0..146] of string =
('Blues','Classic Rock','Country','Dance','Disco','Funk','Grunge',
'Hip- Hop','Jazz','Metal','New Age','Oldies','Other','Pop','R&B',
'Rap','Reggae','Rock','Techno','Industrial','Alternative','Ska',
'Death Metal','Pranks','Soundtrack','Euro-Techno','Ambient',
'Trip-Hop','Vocal','Jazz+Funk','Fusion','Trance','Classical',
'Instrumental','Acid','House','Game','Sound Clip','Gospel','Noise',
'Alternative Rock','Bass','Punk','Space','Meditative','Instrumental Pop',
'Instrumental Rock','Ethnic','Gothic','Darkwave','Techno-Industrial','Electronic',
'Pop-Folk','Eurodance','Dream','Southern Rock','Comedy','Cult','Gangsta',
'Top 40','Christian Rap','Pop/Funk','Jungle','Native US','Cabaret','New Wave',
'Psychadelic','Rave','Showtunes','Trailer','Lo-Fi','Tribal','Acid Punk',
'Acid Jazz','Polka','Retro','Musical','Rock & Roll','Hard Rock','Folk',
'Folk-Rock','National Folk','Swing','Fast Fusion','Bebob','Latin','Revival',
'Celtic','Bluegrass','Avantgarde','Gothic Rock','Progressive Rock',
'Psychedelic Rock','Symphonic Rock','Slow Rock','Big Band','Chorus',
'Easy Listening','Acoustic','Humour','Speech','Chanson','Opera',
'Chamber Music','Sonata','Symphony','Booty Bass','Primus','Porn Groove',
'Satire','Slow Jam','Club','Tango','Samba','Folklore','Ballad',
'Power Ballad','Rhytmic Soul','Freestyle','Duet','Punk Rock','Drum Solo',
'Acapella','Euro-House','Dance Hall','Goa','Drum & Bass','Club-House',
'Hardcore','Terror','Indie','BritPop','Negerpunk','Polsk Punk','Beat',
'Christian Gangsta','Heavy Metal','Black Metal','Crossover','Contemporary C',
'Christian Rock','Merengue','Salsa','Thrash Metal','Anime','JPop','SynthPop');


var
Form1: TForm1;

implementation

{$R *.dfm}

function readID3Tag(FileName: string): TID3Tag;
var
FS: TFileStream;
Buffer: array [1..128] of Char;
begin
FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
FS.Seek(-128, soFromEnd);
FS.Read(Buffer, 128);
with Result do
begin
ID := Copy(Buffer, 1, 3);
Titel := Copy(Buffer, 4, 30);
Artist := Copy(Buffer, 34, 30);
Album := Copy(Buffer, 64, 30);
Year := Copy(Buffer, 94, 4);
Comment := Copy(Buffer, 98, 30);
Genre := Ord(Buffer[128]);
end;
finally
FS.Free;
end;
end;

procedure TfrmMain.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
with readID3Tag(OpenDialog1.FileName) do
begin
LlbID.Caption := 'ID: ' + ID;
LlbTitel.Caption := 'Titel: ' + Titel;
LlbArtist.Caption := 'Artist: ' + Artist;
LlbAlbum.Caption := 'Album: ' + Album;
LlbYear.Caption := 'Year: ' + Year;
LlbComment.Caption := 'Comment: ' + Comment;
if (Genre >= 0) and (Genre <=146) then
LlbGenre.Caption := 'Genre: ' + Genres[Genre]
else
LlbGenre.Caption := 'N/A';
end;
end;
end;

rinnoA

Selasa Kliwon, 27 Juni 2006

mas Aryo, gmana klo cara buat agar bisa ngebales otomatis dalam checkboxpake timer, aq dah coba pake timer tapi didalam timer itu ada timer lagi sehingga ada error " stack overflow" pada procedure cek SMS

Agus Tri

Selasa Kliwon, 27 Juni 2006

Mas Aryo,
Kalau pakai web base gimana ya sistemnya, maksudnya apakah bisa pakai seperti di delphi/
Terus, apakah sender id nya bisa diganti dengan sebuah nama bukan nomor.
Makasih

rudi

Selasa Kliwon, 27 Juni 2006

holla....
minta tanya- bisa yaaa
gimana caranya setting agar handphone saya bisa sms otomatis setiap 1 jam sekali, umtuk nokia 2100, 2280 ato apapun (non smartphone)
klo bisa siemen c35, c45 dll

isi sms sembarang mis:"cobaaa"
soalnya buat tugas akhir aku
trims klo ada jawaban bls email aku yaaa..
rud1_it@yahoo.com

Aryo Sanjaya

Selasa Kliwon, 27 Juni 2006

Halo redcode,

Untuk source yang baru ini, dia sudah tidak menggunakan Variant lagi, silakan download source yang baru :D

Gak berhasil koneknya karena apa?
Ada alasan errornya?

Sebenernya satu komponen saja sudah cukup, untuk 'melayani' semua form. Asal di form yang membutuhkan komponen itu meng-uses form yang memiliki komponen, maka komponen tersebut sudah accessible dari form yang meng-uses.

Dari kasus kamu, mungkin form 3 belum memiliki uses ke form 1.

Untuk artikel yang detail mengenai fungsi dan procedure, aku belum punya.
Mending kamu tanyakan bagian mana yang kesulitan, kita bahas bersama di sini, ok :)

Aryo Sanjaya

Selasa Kliwon, 27 Juni 2006

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.

Wahyu

Selasa Kliwon, 27 Juni 2006

SALAM SEMUANYA
Tolong Saya dong..!!
Program bisa berjalan dengan baik, tapi bila menggunakan NOKIA 5110 konek saja kok tidak mau, saya menggunakan Win98 ram 128, bagian mana yang harus saya rubah


Halaman Komentar:   < 1 ... 19 20 21 22 23 24 25  >

Mengisi Komentar





untuk kode program, apit dengan tanda [code][/code].
contoh:

[code]
(kode program)
[/code]



Daftar Artikel Delphi

» Mengirim SMS dari PC (208)
Senin Wage, 28 November 2005

Jika sebelumnya sudah dibahas cara membaca SMS lewat PC, belum lengkap rasanya kalau tidak dibahas tentang proses pengiriman SMS lewat PC.

» Membaca SMS dari PC (162)
Selasa Pahing, 14 Juni 2005

Kirim-kiriman SMS memang asyik, apalagi kalo menggunakan PC, meski tetep aja bayar :-)



Halaman:    1  

Artikel Rame
Aplikasi Handphone (250)
Senin Pon, 20 Februari 2006

Mengirim SMS dari PC (208)
Senin Wage, 28 November 2005

Membaca SMS dari PC (162)
Selasa Pahing, 14 Juni 2005

Source SMS Autorespond (66)
Senin Legi, 24 April 2006

Penyembunyian Password di Database (36)
Kamis Kliwon, 2 Juni 2005

Bukutamu
» Imam Izzatir Rizzan
Jum'at Kliwon
7 Juli 2006

» adindri
Selasa Pahing
4 Juli 2006

» Je Malakian
Selasa Pahing
4 Juli 2006

» A.Azis
Jum'at Pon
30 Juni 2006

» zorro
Kamis Pahing
29 Juni 2006


Halaman Bukutamu
Lain-lain
User online: 24
User login: 0

user/passwd: bpuser

Status Y!M
Saya sedang Offline. Silakan gunakan menu Kontak atau tinggalkan pesan di Yahoo! Messenger pada Id: aryo_sanjaya
© 2005-2024 BengkelProgram.com