Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

Senin, 27 Agustus 2012

SMS via AT COMMAND - PDU mode



Nah...bagaimana jika modem/HP ga support teks mode ?


AT+CMGF=1<enter>
ERROR


AT+CMGF=0<enter>
OK



Maka kita perlu merubah modenya menjadi Mode PDU. Mode ini merupakan cara pengiriman sms "Irit bit" , dimana ketika diciptakan mungkin saja resource dari system GSM masih sedikit. Mungkin jika diciptakan jaman 2000an hal ini akan tidak dilakukan. Mari kita bahas secara pelan-pelan.

Pertama kita perlu mengenal istilah "OCTET" dan "SEPTET" . Octet merupakan mode 8 bit, sedangkan Septet merupakan mode data 7bit. Data yg dikirimkan semuanya memakai mode OCTET, sedangkan SEPTET merupakan system penghematan karakter ASCII yg 8 bit menjadi 7 bit. Pola karakter 7-bit GSM hampir mirip ASCII tetapi diadakan beberapa penyesuaian untuk symbol khusus (baca lebih lanjut disini).

sebaiknya kita bahas dulu perubahan karakter 7-bit  (SEPTET) menjadi OCTET. Kita ambil contoh sebuah kalimat "hellohello"


courtesy of www.dreamfabric.com

hellohello
104101108108111104101108108111
1101000110010111011001101100110111111010001100101110110011011001101111
1101000
1100101
1101100
1101100
1101111
1101000
1100101
1101100
1101100
1101111

kalimat "hellohello" terdiri dari 10 SEPTET , dan sesuai tabel (perhatikan highlight berwarna kuning), kita ambil secara bertahap bit terakhir (warna kuning) dan kemudian ditaruh di awal dari SEPTET sebelumnya sehingga membentuk OCTET seperti berikut :

11101000
00110010
10011011
11111101
01000110
10010111
11011001
11101100
110111
E8329BFD4697D9
EC37


Njlimet ? ndak juga ....kalo dibuat dalam actionscript seperti ini codingnya :

function konversi(textnya:String):String
{
var textbaru:String = new String;
var hasil:Number;
var char1:Number;
var char2:Number;

for(b=0 ; b< textnya.length ; b++)
{
char1=textnya.charCodeAt(b+1);
char2=textnya.charCodeAt(b);

hasil=( ((0x7F >> (7 - septet)) & char1 ) <<(8 - septet) ) +(char2 >> (septet - 1)) ;

if(hasil< 16 ) textbaru+="0";
textbaru+=hasil.toString(16).toUpperCase();


}
return textbaru;

}

 Selanjutnya kita akan menambahkan beberapa header sebagai pelengkap pengirim sms seperti berikut:

Octet Penjelasan
00Panjang dari SMSC operator, kita gunakan "00" jika menggunakan SMSC default yg ada pada modem
11Artinya SMS SUBMIT / kirim sms
00Nomer referensi dari SMS yg dikirim, biarkan nilainya "00" agar ditentukan oleh operator
0BPanjang nomer tujuan 
81Format nomer tujuan, untuk mode sms local indonesia gunakan nilai 81
8051757367F6Nomer telepon yg ditulis sebagai semioctet, dimana jika jumlah nomer ganjil maka tambahkan karakter F dibelakang. Semioctet yg dimaksud adalah pola membalik 2 pasang angka, jika nomer 08 15 57 37 76 6F akan menjadi  80 51 75 73 67 F6
00TP-PID. Protocol identifier , biarkan nilainya "00"
00TP-DCS. Data coding scheme. Untuk kirim sms biasa gunakan 00
AATP-Validity-Period. "AA" berarti sms berlaku maksimal 4 hari
0APanjang septet atau panjang karakter, jadi karena panjang "hellohello" 10 septet, jadi nilainya 0A
E8329BFD4697D9EC37TP-User-Data. Octet berikut adalah hasil konversi septet yg dibahas diatas.

kemudian octet ini disusun dan dihitung panjangnya ( 1 octet = 2 karakter = panjang total/2) dikurangi 1 (octet "00" awal tidak dihitung), sehingga pada terminal kita inputkan seperti berikut :



AT+CMGS=23<enter> 
0011000B818051757367F60000AA0AE8329BFD4697D9EC37<ctrl+z> 



Mbulet ? Bingung ? ga juga ....semuanya ada pola yg pasti kok...lalu gimana jika ingin kirim long SMS (>160 char) ? kita akan bahas pada bagian berikutnya LONG SMS-PDU


SELAMAT MENCOBA
Share:

3 komentar:

  1. Untuk simbol apa saja yang berbeda dengan ASCII standar?
    Jadi untuk penanganan simbol seperti @ bagaimana ya?

    thx

    BalasHapus
  2. ada di link ini : http://www.dreamfabric.com/sms/default_alphabet.html

    jadi kudu di spesifikkan satu persatu, tapi kalo ku liat yg penting hanya @ dan $ , jadi di IF ketemu @ Then code = 0 , Else code=ASCII

    BalasHapus
  3. dah berhasil mas, cukup simbol @ sama $ aja ya....

    thx ya..

    BalasHapus

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (12) antares (11) arduino (27) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (26) euro2020 (13) gcc (1) gsm (1) iklan (1) infrared (2) Input Output (3) iot (74) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (11) lorawan (2) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (8) radio (28) raspberry pi (9) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) telkomiot (5) transistor (2) troubleshoot (3) tulisan (94) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3) yolo (7)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika