BAB 2 LANDASAN TEORI
2.1. GPS (Global Positioning System) GPS dibentuk oleh konstelasi 24 satelit operasional. Konstelasi ini, dikenal sebagai Initial Operational Capability (IOC), diselesaikan pada Juli 1993, namun pengumuman resminya dilakukan pada 8 Desember 1993. Untuk memastikan cakupannya di seluruh pelosok dunia, satelit GPS diatur sedemikian rupa sehingga empat satelit ditempatkan pada tiap-tiap orbital dari enam orbital yang ada. Dengan geometri konstelasi ini, empat hingga sepuluh satelit GPS akan dapat terlihat di manapun di seluruh dunia, jika sudut elevasinya dianggap 10°.
Gambar 2.1 Konstelasi Satelit GPS (http://upload.wikimedia.org/wikipedia/commons/d/d3/GPS_satellite_const ellation.jpg)
7
8 Bentuk orbit satelit nyaris lingkaran, dengan sudut inklinasi sekitar 55° terhadap ekuator (khatulistiwa). Sumbu semimayor orbit GPS adalah sekitar 26.650 km (ketinggian satelit sekitar 20.200 km dari permukaan bumi). (Ahmed El-Rabbany, Introduction to GPS, 2002, p1-p2)
2.1.1. Segmen-segmen GPS GPS terdiri atas tiga segmen yaitu space segment, control segment, user segment, berikut ini adalah penjelasannya: 1. Space Segment Space segment terdiri atas konstelasi 24 satelit. Masing-masing satelit mengirimkan sebuah sinyal, yang memiliki sejumlah komponen: dua buah gelombang sinus (yang juga dikenal sebagai carrier frequency / frekuensi pembawa), dua kode digital, dan sebuah pesan navigasi. Pesan kode dan navigasi ditambahkan ke dalam pembawa sebagai modulasi dua fasa biner. Pembawa dan kode digunakan terutama untuk menentukan jarak dari receiver pengguna sampai ke satelit GPS. Pesan nagivasi berisi koordinat (lokasi) satelit sebagai fungsi waktu bersama dengan informasi-informasi lain. 2. Control Segment Segmen kontrol dari sistem GPS terdiri atas jaringan lima stasiun pemantau di seluruh pelosok dunia, dengan stasiun kontrol utama (master control station / MCS) berlokasi di dekat Colorado Springs, Colorado, Amerika Serikat. Tugas utama segmen kontrol operasional adalah menjejaki satelit GPS dengan tujuan untuk menentukan dan
9 memprediksikan lokasi satelit, integritas sistem, jam atom satelit, data atmosfer, perkiraan satelit, dan pertimbangan-pertimbangan lain. Informasi ini kemudian digabungkan dan di-upload ke satelit GPS melalui jalur S-band. 3. User Segment User segment mencakup semua pengguna militer dan sipil. Dengan sebuah penerima GPS yang terhubung dengan antena GPS, seorang pengguna dapat menerima sinyal GPS, yang dapat digunakan untuk menentukan posisi pengguna tersebut di manapun di bumi. Saat ini GPS tersedia bagi siapapun di seluruh dunia tanpa biaya apapun. (Ahmed El-Rabbany, Introduction to GPS, 2002, p2-p3)
2.1.2. Cara Kerja GPS Secara teoritis, GPS bekerja dengan cara mengumpulkan data dari minimal 3 satelit, masing-masing mengenai jarak dari sebuah titik di bumi (GPS receiver) bersamaan dengan lokasi satelit tersebut. Dari semua data itu, lokasi titik (GPS receiver) dapat ditentukan dengan cara menerapkan konsep triangulasi. Dalam hal ini, alat penerima akan berada pada titik potong tiga bidang bola; masing-masing dengan radius sebesar jarak alat penerima ke satelit, dengan satelit itu sebagai pusat bola. Dengan demikian, posisi titik itu dapat diketahui. Pada praktiknya, satelit keempat dibutuhkan untuk perhitungan sinkronisasi clock dari penerima GPS. Akurasi yang diperoleh dengan metode ini terbatas pada 100 meter untuk komponen horizontal, 156 meter
10 untuk vertikal, dan 340 nanodetik untuk komponen waktu, semua pada tingkat probabilitas sebesar 95%. Tingkat keakuratan yang rendah ini diakibatkan oleh teknik selective availability, yaitu teknik yang digunakan untuk menurunkan akurasi posisi waktu nyata independen bagi pengguna yang tak berhak. Dengan keputusan pemerintah Amerika Serikat tanggal 1 Mei 2000 untuk penghentian selective availability, akurasi horizontal dapat naik menjadi 22 meter (dengan tingkat probabilitas 95%). Untuk lebih lagi meningkatkan
akurasi
GPS,
digunakan
metode
diferensial,
yang
menggunakan dua alat penerima bersamaan. Dalam kasus ini, tingkat keakuratan yang diperoleh mencapai beberapa meter saja.
2.1.3. Format Kalimat GPS Perusahaan-perusahaan pembuat GPS memiliki formatnya masingmasing untuk menyimpan hasil pengukuran GPS, sehingga sulit untuk menggabungkan data dari alat GPS yang berbeda. Masalah yang mirip terjadi saat ingin melakukan antarmuka terhadap berbagai alat yang berbeda, termasuk sistem GPS. Untuk mengatasi masalah ini, banyak peneliti yang membuat format standar untuk berbagai keperluan penggunanya. Format standar yang banyak digunakan saat ini ada empat, yaitu: 1. RINEX RINEX dibuat oleh sekelompok peneliti untuk mengatasi kesulitan mengkombinasikan data biner dari penerima GPS yang berbeda. Data RINEX merupakan format standar ASCII, sehingga meskipun
11 memakan tempat yang lebih banyak dalam penyimpanannya namun hal itu juga berarti fleksibilitas dalam distribusi. 2. NGS-SP3 NGS-SP3 dibangun oleh U.S. NGS yang merupakan akronim dari Standard Product #3, yang datanya berupa dokumen ASCII yang berisi data orbital yang presisi dan koreksi clock satelit yang bersangkutan. 3. RTCM SC-104 untuk Layanan DGPS Format ini merupakan format standar industri untuk mengirimkan koreksi waktu nyata DGPS yang diajukan oleh Radio Technical Commission for Maritime Services untuk memastikan operasi yang efisien dan koreksi pseudorange. 4. NMEA 0183 NMEA merupakan akronim dari National Marine Electronics Association, yang formatnya diadopsi sebagai format untuk antarmuka alat-alat elektronik kelautan. Format ini juga menggunakan data dalam format ASCII. Standar format NMEA merupakan format ASCII yang dikirim dengan kecepatan 4800 bps. Aliran data dapat berupa informasi mengenai posisi, data faktual hasil pengukuran, kedalaman air, dan variabel-variabel lain. Data ini dikirim dalam bentuk kalimat-kalimat; masing-masing dimulai dengan sebuah tanda dollar “$” dan diakhiri dengan
. Berikut ini adalah daftar kalimat NMEA yang berhubungan dengan GPS receiver beserta deskripsinya:
12
Tipe String
Deskripsi
$GPAAM
Waypoint Arrival Alarm
$GPALM
GPS Almanac Data
$GPBEC
Bearing & Distance to Waypoint, Dead Reckoning
$GPBOD
Bearing, Origin to Destination
$GPBWC
Bearing & Distance to Waypoint, Great Circle
$GPFSI
Frequency Set Information
$GPGGA
*Global Positioning System Fix Data (Time, Position, Elevation)
$GPGLC
Geographic Position, Loran-C
$GPGLL
*Geographic Position, Latitude/Longitude
$GPGRS
GPS Range Residuals
$GPGSA
*GPS DoP (Dilution of Precision) and Active Satellites
$GPGSV
*GPS Satellites in View
$GPHDG
Heading, Deviation & Variation
$GPHDT
Heading, True
$GPHSC
Heading Steering Command
$GPMWV
Wind Speed and Angle
$GPRMC
*Recommended Minimum Specific GNSS GPS/TRANSIT Data (Time, Position, Velocity)
$GPROT
Rate of Turn
$GPRPM
Revolutions
$GPRTE
Routes Tabel 2.1 Daftar kalimat NMEA
Berikut ini adalah penjelasan mengenai beberapa kalimat yang sering digunakan dalam format NMEA:
13 1. RMB (Recommended Minimum Navigation Information) RMB adalah kalimat “rekomendasi navigasi minimum”, dan dikirim setiap kali sebuah rute atau sebuah goto (seperti misalnya menetapkan tujuan
(waypoint))
diaktifkan.
Beberapa
sistem
di-set
untuk
mengirimkan kalimat ini sepanjang waktu, mengirimkan data null jika tidak ada goto yang dipilih, sementara pada sistem lain hanya mengirimkannya saat diperlukan. Format kalimatnya adalah: $GPRMB,A,x.x,a,c--c,d-d,llll.ll,e,yyyyy.yy,f,g.g,h.h,i.i,j*kk
Di mana RMB
: Informasi rekomendasi navigasi minimum
A
: Status data (A = Active, V = Void)
x.x
: Cross-track
error
(diukur
dalam
mil
laut,
nilai
maksimumnya 9.99) a
: Arah kemudi untuk memperbaiki cross-track error (L = Left, R = Right)
c--c
: Nomor identitas waypoint asli
d--d
: Nomor identitas waypoint tujuan
llll.ll
: Garis lintang (latitude) waypoint tujuan
e
: N (North) atau S (South) untuk latitude
yyyyy.yy
: Garis bujur (longitude) waypoint tujuan
f
: E (East) atau W (West) untuk longitude
g.g
: Jarak
ke
tujuan
(diukur
dalam
mil
laut,
nilai
14 maksimumnya 999.9) h.h
: Arah untuk sampai ke tujuan, dalam derajat
j
: Status kedatangan (A = arrived, V = not arrived)
2. RMC (Recommended Minimum Specific GPS/TRANSIT Data) Kalimat RMC merupakan data ekuivalen NMEA untuk PVT (Position, Velocity, Time yaitu Posisi, Kecepatan, Waktu). Format kalimatnya adalah: $GPRMC,hhmmss.ss,A,llll.ll,e,yyyyy.yy,f,x.x,y.y,ddmmyy,z. z,a*hh
Di mana RMC
: Recommended Minimum Sentence C
hhmmss.ss : Waktu saat pemosisian, dalam UTC (Universal Time
Coordinated) A
: Status data (A = Active, V = Void)
llll.ll
: Garis lintang (latitude) waypoint tujuan
e
: N (North) atau S (South) untuk latitude
yyyyy.yy
: Garis bujur (longitude) waypoint tujuan
f
: E (East) atau W (West) untuk longitude
x.x
: Kecepatan terhadap tanah pantauan (dalam mil laut)
y.y
: Sudut penjejakan yang dipantau (dalam derajat)
ddmmyy
: Tanggal UT (Universal Time)
z.z
: Variasi magnetik
15 a
: E (East) atau W (West) untuk variasi magnetik
*hh
: Checksum
3. GGA (Global Positioning System Fix Data) Kalimat GGA menyediakan lokasi 3 dimensi dan data keakuratan. Format kalimatnya adalah: $GPGGA,hhmmss.ss,llll.ll,e,yyyyy.yy,f,a,bb,x.x,y.y,M,z.z, M,s.s,####*hh
Di mana GGA
: Global Positioning System Fix Data
hhmmss.ss : Waktu saat pemosisian, dalam UTC (Universal Time
Coordinated) llll.ll
: Garis lintang (latitude) waypoint tujuan
e
: N (North) atau S (South) untuk latitude
yyyyy.yy
: Garis bujur (longitude) waypoint tujuan
f
: E (East) atau W (West) untuk longitude
1
: Kualitas pemosisian GPS 0 = invalid 1 = Pemosisian GPS (SPS) 2 = Pemosisian DGPS 3 = Pemosisian PPS (Precise Positioning Service) 4 = RTK (Real Time Kinematic) 5 = Float RTK
16 6 = Perkiraan (dead reckoning/perhitungan mati) 7 = Input secara manual 8 = Mode simulasi bb
: Jumlah satelit yang digunakan untuk menjejaki
x.x
: Kesalahan horizontal (dilusi atau presisi)
y.y,M
: Ketinggian antena (dalam meter)
z.z,M
: Ketinggian geoid (permukaan air laut rata-rata), dalam meter
s.s
: Waktu (dalam detik) sejak update terakhir
####
: Identitas stasiun DGPS
*hh
: Checksum
4. VTG (Actual Track Made Good and Speed Over Ground) Kalimat ini menyediakan informasi kecepatan terpantau $GPVTG,t,T,?,??,s.ss,N,S.SS,K*hh
Di mana VTG
: Track kecepatan di darat
t
: Penjejakan sebenarnya
T
: Teks yang sudah pasti (tetap) ini mengindikasikan bahwa penjejakan yang dipantau relatif terhadap utara
?
: tidak digunakan
??
: tidak digunakan
s.ss
: Kecepatan terhadap tanah (dihitung dalam mil laut)
17 N
: Teks yang sudah pasti (tetap) ini mengindikasikan bahwa kecepatan terhadap tanah adalah dalam knot
S.SS
: Kecepatan terhadap tanah (dihitung dalam kilometer per jam)
K
: Teks yang sudah pasti (tetap) ini mengindikasikan bahwa kecepatan terhadap tanah adalah dalam kilometer per jam
*hh
: Checksum
5. RMA (Navigation Data from Present Position) Kalimat ini menyediakan data navigasi berdasarkan posisi sekarang, format kalimatnya adalah: $GPRMA,A,llll.ll,e,yyyyy.yy,f,?,??,s.ss,ccc,zz.z,a*hh
Di mana RMA
: Data navigasi posisi sekarang
A
: Status data (A = Active, V = Void)
llll.ll
: Garis lintang (latitude) waypoint tujuan
e
: N (North) atau S (South) untuk latitude
yyyyy.yy
: Garis bujur (longitude) waypoint tujuan
f
: E (East) atau W (West) untuk longitude
?
: tidak digunakan
??
: tidak digunakan
s.ss
: Kecepatan terhadap tanah (diukur dalam mil laut)
ccc
: Arah terhadap daratan
18 zz.z
: Variasi magnetik (variasi ke Timur dikurangi dari arah sesungguhnya)
a
: E (East) atau W (West) untuk variasi magnetik
*hh
: Checksum
6. GSA (GPS DoP and Active Satellites) Kalimat ini menyediakan informasi terinci pada pemosisian oleh satelit. Dalam kalimat ini juga terdapat jumlah satelit yang digunakan dalam solusi saat ini dan DoP (Dilution of Precision/Dilusi Keakuratan) yaitu indikasi efek geometri satelit terhadap keakuratan pemosisian. DoP tidak memiliki satuan pengukuran – namun semakin kecil nilainya semakin baik. Format kalimat GSA adalah: $GPGSA,A,B,x1,x2,x3,x4,x5,x6,x6,x8,x9,x10,x11,x12,x,y,z*h h
Di mana GSA
: DoP dan satelit aktif
A
: Mode pemosisian M = Manual (di mana alat penerima dipaksa untuk bekerja pada 2 dimensi atau 3 dimensi) A = Automatic (otomatis)
3
: Mode pemosisian 1 = Pemosisian tidak dimungkinkan 2 = 2 dimensi
19 3 = 3 dimensi x1-x12
: ID dari masing-masing satelit (SV) yang digunakan untuk pemosisian
x
: Dilusi keakuratan posisi
y
: Dilusi keakuratan horizontal
z
: Dilusi keakuratan vertikal
*hh
: Checksum
7. GSV (Satellites in View Data) Kalimat NMEA ini adalah yang paling informatif dimana menunjukkan data tentang satelit bahwa satelit tersebut mungkin mampu mencari berdasarkan viewing mask dan almanac data. GSV juga menunjukkan kemampuan unit saat ini untuk menjejaki data ini. Sebuah kalimat GSV dapat menyediakan data hingga empat buah satelit, sehingga mungkin diperlukan tiga buah kalimat GSV untuk memperoleh informasi lengkap. Untuk semua kalimat satelit GSV tidak perlu tampil secara berurutan. Pada GSV juga terdapat informasi SNR (Signal-to-Noise Ratio) yang merupakan indikator kekuatan sinyal. Menurut standar NMEA, range SNR adalah 0 sampai 99 dB, jangkauan yang biasa bekerja pada GPS adalah 25-35 dB. Format kalimat GSV adalah: $GPGSV,A,B,C,D1,E1,Az1,SNR1,D2,E2,Az2,SNR2,D3,E3,Az3,SNR3 ,D4,E4,Az4,SNR4*hh
Di mana
20 GSV
: Satelite in View
A
: Jumlah kalimat yang dibutuhkan untuk menampung data semua SV yang sedang dilihat
B
: Nomor kalimat
C
: Jumlah total satelit yang dilihat
D1-D4
: Nomor PRN (Pseudo Random Number) satelit
E1-E4
: Sudut elevasi (dalam derajat, nilai maksimumnya 90)
Az1-Az4
: Sudut azimuth (dalam derajat dari utara, nilainya 000 sampai 359)
SNR1-SNR4 : Nilai SNR (Signal-to Noise Ratio), semakin besar
nilainya semakin baik sinyalnya *hh
: Checksum
(Kathie Kingsley-Hughes, Hacking GPS, 2005, p199-p202)
2.2. ARM ARM (Advanced RISC Machine) merupakan 32 bit mikroprosesor RISC yang dikembangkan oleh ARM limited yang sering digunakan dalam desain embedded system. ARM dapat menghasilkan performa yang tinggi dengan konsumsi daya dan biaya yang rendah. Prosesor ARM dapat menyediakan solusi untuk hal-hal berikut: -
Membuka serangkaian program yang dijalankan dalam OS yang kompleks untuk hubungan tanpa kabel, aplikasi pemakaian dan imaging aplikasi.
-
Sistem tertanam yang real time yang memerlukan banyak penyimpanan seperti dalam bidang otomotif, industri dan jaringan.
21 -
Aplikasi pengamanan, termasuk smart card dan SIM.
(http://www.arm.com/products/CPUs/index.html)
2.2.1. Fitur ARM ARM sebagai prosesor yang menggunakan instruksi RISC tentu saja memiliki beberapa fitur yang sama dengan RISC yaitu: •
Arsitektur load/store
•
Kumpulan instruksi ortogonal
•
Lebar kode operasi yang digunakan sudah ditentukan selebar 32 bit untuk kepentingan decoding dan pipelining
•
Dokumen register sebesar 16-32 bit
•
Kebanyakan menggunakan eksekusi single-cycle.
Ada juga fitur yang hanya dimiliki oleh ARM, yaitu: •
Eksekusi bersyarat kebanyakan instruksi, mengurangi overhead cabang dan mengkompensasikan kekurangan dari sebuah prediktor cabang,
•
Instruksi aritmatika mempengaruhi kode persyaratan hanya saat diinginkan,
•
Penggeser 32-bit dapat digunakan tanpa mengurangi performa dengan banyaknya instruksi aritmatika dan perhitungan alamat,
•
Secara kuat menunjuk mode pengalamatan, dan
•
Subsistem interupsi 2 tingkat prioritas dengan kumpulan register switch yang sederhana namun cepat.
22 (http://en.wikipedia.org/wiki/ARM_architecture)
2.2.2. Sistem Operasi ARM Perusahaan penghasil ARM sekarang telah menyediakan standar development tool yang lengkap, dengan sistem operasi dan perangkat lunak yang mendukung jenis ARM yang dipasarkan. Sistem operasi yang dapat didukung oleh ARM yaitu Linux, Symbian OS, dan Windows Embedded CE. (http://www.arm.com/products/) Adapun kriteria yang digunakan untuk memilih OS sebagai berikut: o Memiliki fungsi yang diperlukan aplikasi o Terdapat development tools dan technical support o Mendukung aplikasi yang berkelompok dan pengembangannya o Mempunyai kemampuan real-time o Arsitektur prosesor dan hal lainnya yang mendukung o Memory footprint o Mendukung open source o Sesuai standar o Familiar dengan interface programming. (http://www.arm.com/products/os/index.html)
2.2.3. EP9302 EP9302 merupakan ssalah satu desain on-chip-system yang memiliki performa tinggi dan didesain menggunakan prosesor ARM9 dan
23 ideal baik untuk penggunaan dalam bidang industri maupun penggunaan aplikasi elektronik lainnya. Fitur EP9302 termasuk prosesor ARM920T terbaru yang didesain dengan MMU (Memory Management Unit) yang didukung Linux, Windows
CE,
dan
sistem
operasi
tertanam
lainnya.
ARM920T
menggunakan arsitektur 32 bit mikrokontroller dengan pipeline five-stage, yang dapat menghasilkan performa tinggi dengan daya yang sangat rendah. (http://www.cirrus.com/en/products/pro/detail/P1066.html) Fitur utama dari EP9302 sebagai berikut: o ARM (32-bit) dan arsitektur Thumb (16-bit yang telah di-compress) kumpulan instruksi o 32-bit Advanced Micro-Controller Bus Architecture (AMBA) o 16 Kbyte instruction cache dengan lockdown o 16 Kbyte data cache (dapat menampung write-through atau write-back program) dengan lockdown o MMU untuk Linux®, Microsoft® Windows® CE dan sistem operasi lainnya o Translation Look Aside Buffers with 64 Data and 64 Instruction Entries o Ukuran program dapat mencapai 1Mbyte, 64 Kbyte, 4 Kbyte, dan 1 Kbyte o Independent lockdown of TLB Entries. (TS-7250 Hardware Manual, p15)
24
Fitur Kecepatan prosesor (MHz)
Keterangan 200
Ethernet MAC PCMCIA Device
-
IDE/IF
-
USB Hosts
2
Display I/F
-
Graphics Engine
-
Math Crunch Engine Touch/ADC
5 ADC
Package
208 LQFP
Tabel 2.2 Overview EP 9302
2.3. Qt Qt merupakan C++ framework yang luas untuk pengembangan aplikasi cross-platform GUI menggunakan pendekatan “write once, compile anywhere”. QT libraries and tools merupakan bagian dari Qtopia core, sebuah produk yang menghasilkan sistem window sendiri pada Embedded Linux. (C++ GUI Programming with Qt 4). Framework Qt pertama kali di perkenalkan pada Mei 1995. Yang dikembangkan oleh Haavard Nord (Trolltech’s CEO) dan Eirik Chambe-Eng (presiden Trolltech’s). Haavard dan Eirik bertemu di Norwegian Institute of Technology di Trondheim, dimana mereka berdua lulus bersama dengan gelar master dalam bidang computer science.
25 Ketertarikan Haavard pada pengembangan C++ GUI dimulai pada tahun 1988 pada saat dia bertugas pada sebuah perusahaan di Swedia untuk mengembangkan C++ GUI framework. Haavard dan Eirik bekerja sama dalam pengembangan aplikasi basis data C++ untuk ultrasound image. Sistem ini dapat bekerja dengan menggunakan GUI pada Unix, Macintosh, dan Windows. Huruf ‘Q’ dipilih sebagai class prefix karena huruf ini tampak bagus pada font Emac’s Haavard. Huruf ‘t’ merupakan kepanjangan dari “toolkit”, yang terinspirasi dati Xt, X toolkit. (Jasmin Blanchette, Mark Summerfield, C++ GUI Programming with Qt 4, 2006) Untuk meng-compile program pada Qt maka yang harus digunakan adalah: 1. Menyimpan setiap coding dalam format *.cpp. Lalu file yang telah disimpan tadi masukkan kedalam sebuah folder. 2. Buka terminal (pada KDEvelop cukup klik icon terminal) dan masuk ke dalam folder dimana kita menyimpan file yang ingin di-compile. 3. Lalu ketikkan qmake -project. Instruksi ini berfungsi untuk membuat project file dengan extension *.pro. 4. Setelah itu ketikkan qmake. Instruksi ini akan membuat makefile dari project file. 5. Setelah itu ketikkan instruksi make untuk membuat program. 6. Setelah itu jalankan program dengan mengetik ./. Nama folder diperlukan karena pada saat qmake dan make dijalankan, instruksi ini membuat file dengan nama folder dimana instruksi dijalankan. Salah satu hal yang paling penting dalam pemrograman Qt adalah penggunaan slot dan signal. Dengan menggunakan slot dan signal, programmer
26 dapat menghubungkan suatu objek dengan objek lainnya, tanpa membuat objek yang dihubungkan saling mengetahui satu sama lain. Untuk menggunakan slot dan signal kita perlu menggunakan connect(), contohnya adalah sebagai berikut. connect(pengirim, SIGNAL(signal), penerima, SLOT(slot)); connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
Jika ingin memisahkan objek yang dihubungkan maka kita dapat menggunakan disconnect(), akan tetapi instruksi ini jarang digunakan karena secara otomatis Qt akan membersihkan semua hubungan terhadap suatu objek pada saat suatu objek dihapus. disconnect(pengirim, SIGNAL(signal), penerima, SLOT(slot));
Sintaks yang terdapat pada Qt bersifat case sensitive (huruf besar dan huruf kecil dianggap berbeda). Dan yang cukup merepotkan pada Qt adalah beberapa sintaks atau instruksi yang digunakan menggunakan huruf besar dan huruf kecil, dan hal ini perlu sangat diperhatikan karena sedikit kesalahan saja maka program yang di-compile akan error. Contoh: QObject
perlu diperhatikan huruf Q dan O harus huruf besar
QApplication
huruf Q dan A harus huruf besar
lineEdit
huruf E pada edit harus huruf besar
Qtopia Core Aplikasi Qtopia Core dapat dikembangkan pada platform manapun yang dilengkapi dengan rangkaian alat yang mendukung multi-platform. Pilihan yang
27 paling umum adalah digunakan untuk membangun suatu cross-compiler GNU C++ pada sistem Unix. Proses ini dapat disederhanakan oleh serangkaian script dan tambahan
lainnya
yang
disediakan
oleh
Dan
Kegel
pada
http://kegel.com/crosstool/. Sejak Qtopia Core berisi Qt API, biasanya dapat digunakan pada desktop versi Qt, seperti Qt/X11 atau Qt/Windows, untuk berbagai pengembangan. Konfigurasi sistem Qtopia Core mendukung cross-compiler, melalui script configure pilihan -embedded. Sebagai contoh, untuk membangun arsitektur
ARM harus mengetik sebagai berikut: ./configure –embedded arm
Untuk membuat suatu konfigurasi yang baru, dapat menambahkan file baru ke direktori Qt mkspecs/qws. Qtopia Core menggambar secara langsung pada frame Linux (area memori yang berhubungan dengan display video). Untuk mengakses frame buffer, harus memberikan izin untuk menulis pada device /dev/fb0. Untuk menjalankan aplikasi Qtopia Core, harus terlebih dahulu memulai suatu proses yang bertindak sebagai server. Server ini bertugas untuk mengalokasi daerah layar ke klien dan untuk membangkitkan peristiwa mouse dan keyboard. Aplikasi Qtopia Core manapun bisa dijadikan server dengan menambahkan -qws pada garis atas perintahnya atau dengan memberi QApplication:: GuiServer sebagai parameter ketiga pada pembangun QApplication. Komunikasi antaraplikasi klien dengan server Qtopia Core menggunakan memori yang sama. Pada dasarnya klien menggambar diri mereka ke dalam memori bersama dan bertanggung jawab atas dekorasi window mereka sendiri. Hal
28 ini dapat menjaga komunikasi antara klien dan server menjadi minimum, dan menghasilkan suatu antarmuka pengguna yang rapi. Aplikasi Qtopia Core biasanya menggunakan QPainter untuk menggambar mereka sendiri, tapi dapat juga mengakses perangkat keras video langsung menggunakan QdirectPainter. Para klien juga dapat berkomunikasi dengan sesama pengguna protokol QCOP. Seorang klien dapat mendengarkan pada satu saluran dengan menciptakan sebuah objek QcopChannel dan menghubungkan ke sinyal received(). Contoh: QCopChannel *channel = new QCopChannel("System", this); connect(channel,
SIGNAL(received(const
QString
&,
const
QByteArray &)), this, SLOT(received(const QString &, const QByteArray &)));
Sebuah pesan QCOP terdiri dari nama dan sebuah pilihan QByteArray. QCopChannel::send() yang statis menyiarkan suatu pesan pada suatu saluran.
Contoh: QByteArray data; QDataStream out(&data, QIODevice::WriteOnly); out << QDateTime::currentDateTime(); QCopChannel::send("System", "clockSkew(QDateTime)", data);
Berbagai variabel lingkungan mempengaruhi aplikasi Qtopia Core. Yang paling utama adalah QWS_MOUSE_PROTO dan QWS_KEYBOARD yang menetapkan jenis mouse dan keyboard. Dengan menggunakan Unix pada pengembangan platform, aplikasi Qtopia virtual frame butter (qvfb) dapat dites, dan aplikasi X11 yang mensimulasikan, pixel demi pixel, frame buffer yang sebenarnya. Hal ini dapat sangat mempercepat siklus pengembangan. Untuk memungkinkan virtual buffer dapat digunakan di
29 Qtopia Core, lewat pilihan –qvfb menyusun script. Aplikasi virtual frame buffer ditempatkan pada tools/qvfb dan dapat diaktifkan melalui perintah berikut: qvfb -width 320 -height 480 -depth 32
Pilihan lain yang bekerja pada kebanyakan platform adalah penggunaan VNC (Virtual Network Computing) untuk menjalankan aplikasi dari jarak jauh. Untuk memberikan kemampuan VNC pada Qtopia Core, masukkan opsi -qt-gfxvnc ke configure. Kemudian jalankan aplikasi Qtopia Core dengan baris perintah -display VNC:0 dan jalankan klien VNC mengarah ke host di mana aplikasi
sedang berjalan. Ukuran layar dan kedalaman warna dapat dirinci dengan menyetel variabel lingkungan QWS_SIZE dan QWS_DEPTH pada host yang menjalankan aplikasi Qtopia Core (contohnya, QWS_SIZE=320x480 dan QWS_DEPTH=32). Ketika meng-install Qtopia Core, fitur-fitur tertentu dapat dihilangkan untuk mengurangi penggunaan memori. Qtopia Core memasukkan lebih dari seratus fitur yang dapat dikonfigurasi, masing-masing terasosiasi dengan simbol preprosesor. Contohnya, QT_NO_FILEDIALOG tidak memasukkan QFileDialog dari library
QTGui,
dan
QT_NO_I18N
meninggalkan
semua
dukungan
internasionalisasi. Fitur-fiturnya didaftarkan src/corelib/qfeatures.txt. Qtopia Core menyediakan lima contoh konfigurasi (minimum, small, medium, large, dan dist) yang disimpan dalam file qconfig_xxx.h di lokasi src/corelib/. Konfigurasi ini dapat dirinci menggunakan script configure pada
pilihan -qconfig xxx, misalnya: ./configure -qconfig small
Untuk membuat berbagai konfigurasi pilihan sendiri, dengan menyediakan qconfig-xxx.h secara manual dan menggunakannya seperti konfigurasi standar.
30 Alat grafis qconfig juga dapat digunakan, terletak dalam subdirektori tools dalam Qt. Qtopia core menyediakan kelas-kelas berikut untuk antarmuka dengan input dan output device dan untuk kustomisasi tampilan sebuah sistem window: Base class untuk
Class QScreen
Driver layar
QScreenDriverPlugin
Plugin pengendali layar
QWSMouseHandler
Pengendali mouse
QMouseDriverPlugin
Plugin pengendali mouse
QWSKeyboardHandler
Pengendali keyboard
QKbdDriverPlugin
Plugin pengendali keyboard
QWSInputMethod
Metode input
QDecoration
Gaya dekorasi window
QDecorationPlugin
Plugin yang menyediakan gaya dekorasi window
Tabel 2.3 Kelas-kelas Qtopia core Untuk memperoleh daftar pengendali yang telah didefinisikan sebelumnya, metode input, dan gaya dekorasi window, jalankan script configure dengan pilihan -help. Pengendali layar dapat dirinci dengan menggunakan pilihan baris perintah -display saat memulai server Qtopia Core, atau dengan menyetel variabel
lingkungan QWS_DISPLAY. Pengendali mouse dan device yang terhubung dapat dirinci menggunakan variabel lingkungan QWS_MOUSE_PROTO, yang nilainya harus memiliki sintaks type:device, di mana type adalah salah satu pengendali yang
31 didukung penggunaannya dan device yaitu jalan menuju device (contohnya QWS_MOUSE_PROTO=IntelliMouse:/dev/mouse). Keyboard ditangani dengan cara
yang hampir sama melalui variabel lingkungan QWS_KEYBOARD. Metode input dan dekorasi window dapat disetel melalui program dalam server menggunakan QWSServer::setCurrentInputMethod()
dan
QApplication::qwsSetDecoration().
Gaya dekorasi window dapat disetel secara terpisah dari gaya widget, yang merupakan turunan dari QStyle. Misalnya menyetel Windows sebagai gaya dekorasi window dan Plastique sebagai gaya widget-nya sangatlah mungkin. Jika diinginkan, dekorasi dapat disetel untuk setiap window. Class QWSServer menyediakan berbagai fungsi untuk kustomisasi sistem window. Aplikasi yang menjalankan server Qtopia Core dapat mengakses instance QWSServer yang unik melalui variabel global qwsServer, yang diinisiasi oleh
konstruktor QApplication. Qtopia Core mendukung format jenis-jenis huruf berikut ini: TrueType (TTF), PostScript Type 1, Bitmap Distribution Format (BDF), dan Qt Prerendered Fonts (QPF). Karena QPF adalah format raster, QPF lebih cepat dan biasanya lebih kompak daripada format vektor seperti TTF dan Type 1 jika yang dibutuhkan hanya satu atau dua ukuran yang berbeda. Pre-render untuk file bertipe TTF atau Type 1 dapat dilakukan dengan makeqpf dan menyimpan hasilnya dalam format QPF. Dapat juga dengan cara menjalankan aplikasi dengan pilihan baris perintah -savefont.
32 2.4. GPRS GPRS (General Packet Radio Service) merupakan layanan pengiriman data yang tersedia untuk penggunaan GSM dan telepon seluler IS-136. Biaya yang dikenakan oleh layanan GPRS dihitung per unit (kilobyte atau megabyte) data yang akan dikirimkan. Keuntungan utama GPRS adalah bahwa GPRS menggunakan packet switching: 1. Karena alat dapat menangani lalu lintas paket, data dapat ditukar langsung dengan Internet atau intranet perusahaan; 2. Paket dari satu pengguna dapat ditransmisikan melalui beberapa petak waktu dengan antarmuka udara (bundling); 3. Petak waktu tidak digunakan terus-menerus dan dapat dibagi-bagi dengan banyak pengguna; 4. Meskipun pengguna tidak mengirim atau menerima, mereka dapat tetap terhubung atau terjangkau (misalnya dari LAN perusahaan), dan dengan melakukan hal itu pengguna tidak menghabiskan resource; 5. Pengguna hanya mengalokasikan resource hanya saat memerlukannya; 6. GPRS ditanamkan dalam standar GSM sehingga tidak ada frekuensi lain yang harus digunakan. Jaringan GSM standar harus diubah dari phase 2 menjadi phase 2+ agar dapat mendukung penggunaan GPRS, karena GSM standar phase 2 tidak dapat mengirimkan data dalam mode packet switch. Ada tiga kelas untuk peralatan GPRS: 1. Kelas A, yaitu alat yang dapat menangani panggilan suara dan transfer data paket secara bersamaan;
33 2. Kelas B, alat yang dapat menangani panggilan suara maupun data namun tidak secara simultan (bersamaan) dan dapat menghentikan lalu lintas data sementara untuk menerima panggilan telepon; 3. Kelas C, yaitu alat yang dapat menangani baik suara maupun data, namun untuk dapat mengaktifkan satu layanan, layanan yang lain harus dihentikan dulu secara eksplisit (pengaktifan layanan secara manual). (http://en.wikipedia.org/wiki/Gprs)
2.5. Sistem Tracking Kereta Api Lain Saat ini ada banyak sistem tracking ketera api yang lain, baik yang sudah direalisasikan maupun belum, dan masing-masing memiliki kelemahan dan kelebihannya tersendiri.
•
New Radar System For Train Tracking and Control Sistem yang dirancang oleh T. Ishikawa dan H. Zebker ini menawarkan sebuah desain baru untuk pengontrolan kereta api, yang disebut sistem radar untuk pengontrolan dan tracking kereta api / Radar System for Train Tracking and Control (RSTTC). RSTTC ini mengikuti sistem communication-based train control (CBTC) dan menggunakan teknologi radar dengan skema spreadspectrum. Keuntungan dari penggunaan sistem CBTC yaitu: 1. Kecepatan antar kereta api dapat disesuaikan 2. Lalu lintas kereta api dapat lebih fleksibel. Radar digunakan untuk mengidentifikasi posisi kereta api dan kecepatan yang dibutuhkan untuk mengontrol kereta api. Teknik spread-
34 spectrum membantu sistem menghindari noise dan gangguan dari jalur komunikasi. Sistem ini juga menggunakan kombinasi dari CDMA (code-division multiple access) dan TDMA (time-division multiple access) digunakan untuk melakukan proses tracking dan pengontrolan banyak kereta api hanya pada satu jalur komunikasi. (http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/7859/21638/01002569.pd f)
•
Train Location With Eddy Current Sensors Sistem yang dibuat oleh A. Geistler menggunakan sensor eddy current untuk mendeteksi lokasi kereta api. Sensor eddy current terdiri dari dua buah sensor yang diletakkan berjauhan dan dengan arah yang membujur. Dengan demikian, waktu delay antara dua sinyal sensor tersebut yang diperoleh korelasi silang adalah suatu ukuran untuk kecepatan suatu kendaraan, dalam hal ini kereta api. Bentuk dari sinyal sensor tersebut sangat bergantung pada ketidakteraturan pada bidang magnet yang timbul pada rel sepanjang jalur.
35 (a)
(b) Gambar 2.2 Differential eddy current sensor: (a) principle drawing; (b) experimental setup with two sensors inside the housing. Untuk sistem ini diperlukan pemahaman yang mendalam mengenai peletakan sensor eddy current yang tepat, perhitungan kecepatan dan jarak kendaraan yang diolah dari koefisien korelasi silang yang didapat, cara pergantian sensor yang digunakan, beserta keamanan yang dibutuhkan untuk pemasangan sensor pada rel. (http://www.mrt.uni-karlsruhe.de/download/CR02_print.pdf)
•
Digitrac Train Location System Sistem ini adalah sistem buatan Union Switch & Signal Inc. yang terdiri atas 3 komponen utama yaitu antenna, reader, dan transponder.
36
Gambar 2.3 Aplikasi Umum Sistem Digitrac Transfer data antara kereta api dan pinggir rel kereta terjadi pada lokasi tetap yang didefinisikan oleh posisi peralatannya. Sistem Digitrac mengirimkan informasi dari rel kereta api ke kereta api. Namun, sistem ini dapat digunakan dengan penanaman transponder di kereta api dan reader / antenna-nya diletakkan di pinggir rel kereta. Transfer data dapat dilakukan pada kereta berkecepatan hingga 125 mil per jam. (www.switch.com/manuals/documents/7020a/7020a.pdf)
•
Simec Sistem integrator buatan TagMaster ini mengutilisasi kereta dengan heavy-duty ID-tags pada depan, belakang, dan samping kiri-kanan kereta api.
37 Dua buah pembaca ditempatkan pada masing-masing stasiun, untuk memonitor pergerakan kereta. Informasi mengenai kedatangan dan tujuan kereta berikutnya di-display pada masing-masing stasiun. (http://www.tagmaster.com/?id=525)
•
Fiber-Optic Sensor Sensor yang dibuat oleh Shun-Lien Chuang, seorang professor di Univertisy of Illinois ini menggunakan transmisi sinyal serat optik yang ditempelkan ke rel kereta api dengan epoxy dan selotip. Sistem ini bekerja dalam sistem reflektor dengan domain waktu, yang mengukur hilangnya sinyal pada serat optik sebagai fungsi dari jarak menggunakan teknik deteksi pulsa dengan gerbang waktu. Sebuah kereta api yang bergerak akan mengganggu transmisi optik pada fiber, sehingga sistem ini harus melakukan beberapa kali scan dan mengukur jarak gangguan ini untuk menentukan lokasi dan kecepatan kereta api. (http://www.news.uiuc.edu/scitips/01/02rrtrax.html)