Qt Creator – Qwt, Pustaka Pengganti TeeChart untuk Simulasi Realtime Signal Plotting di Linux (Contoh Program Osiloskop)


Bismillahirrahmanirrahim.

Di luar pemrograman kemarin, sering saya tidak melakukan penulisan kode. Sering saya ingin mencoba examples yang disediakan oleh Qt. Kemarin saya menginstal pustaka Qwt dari repo (karena ketertarikan besar saya untuk mencari pengganti TeeChart di Linux) dan baru hari ini tahu kalau Qwt sama seperti Qt Creator, sama-sama membawa example programs siap pakai. Saya tahu dari mencari bagaimana real time plotting dengan Qwt. Pokoknya grafik sinyal output harus dinamis dan bisa berubah-ubah sesuai input. Eh, pada suatu forum disebut Oscilloscope Example milik Qwt. Lho, memangnya ada? Saya coba cari dengan locate di bash Ubuntu saya dan ketemu. Letaknya di /usr/share/doc/libqwt-doc/examples/. Di situ ada banyak sekali folder example programs. Nah, salah satunya bernama oscilloscope. Saya salin folder itu ke Publik dan membukanya dengan Qt Creator. Ini hasilnya.

qwt-osiloskopa

Hasilnya sungguh realtime seperti TeeChart. Bahkan bisa jadi ini lebih baik. Beranimasi, sinyalnya dinamis, bergerak terus, dan sinyal berubah-ubah sesuai data yang dimasukkan saat runtime. Saya sendiri sangat kaget saat berhasil mengompilasi Osiloskop ini di Qt Creator. Mirip sekali dengan Osiloskop di dunia nyata dan yang sangat menggembirakan adalah akhirnya saya temukan pengganti TeeChart di Linux. Saya sangat gembira malam ini, walhamdulillah.

qwt-osiloskop1a

Apa yang dimaksud dengan realtime? Ya mudahnya, output akan berubah sesuai input yang dimasukkan pada saat itu juga. Lihat, perhatikan knob bundar Amplitude. Saya perkecil maka bentuk sinyal juga menyusut. Persis Osiloskop aslinya. Kalau yang di bawah ini, perhatikan knob Frequency. Saya perkecil, sinyal menjadi renggang tidak lagi mampat. Sungguh persis Osiloskop aslinya. Yang paling penting, ini membuktikan bahwa kita bisa membuat simulasi realtime signal plotting dengan menggunakan pustaka di Linux. Jadi tidak hanya di Windows saja dengan pustaka TeeChart dan IDE Microsoft Visual Studio yang kedua-duanya komersial melainkan juga di Linux bisa bahkan Qwt selaku pustaka dan Qt Creator selaku IDE sama-sama gratis bahkan open source. Suatu keberuntungan buat kita.

qwt-osiloskop2a

Untuk Siapa Tulisan Ini?

  1. Peneliti/pelajar yang ingin membuat aplikasi simulasi real time plotting di Linux.
  2. Peneliti/pelajar yang ingin pengganti TeeChart yang gratis dan open source di Linux.
  3. Programer yang butuh pustaka untuk aplikasi simulasi Biorhytm atau komputasi medikal yang lain.

Behind The Scene Tulisan Ini

TeeChart

Gara-gara TeeChart. Saya sendiri tidak tahu menahu gambar di atas ini program untuk apa. Namun yang paling penting, program ini menayangkan grafik sinyal-sinyal secara dinamis. Lalu kita bisa memasukkan angka-angka di kotak putih sebelah kanan itu dan sinyal-sinyalnya sungguh bisa berubah-ubah. Ini dinamakan simulasi. Dan ini dilakukan dengan bahasa C, pada Microsoft Visual C++, dengan pustaka charting yang bernama Steema TeeChart. Saya bisa mengatakannya karena saya sempat melihat sendiri orang yang membuat program ini. Satu hal saja yang saya pikirkan kala itu (mungkin 4 bulan lalu) bahwa saya harus temukan pengganti TeeChart untuk Linux. Harus bisa dibuat simulasi serupa (tentunya yang realtime bukan yang statis) di Linux. Namun kala itu saya belum tahu sama sekali adanya pustaka-pustaka untuk plotting di Linux.

Selama ini, sejak sebelum posting Qt pertama saya di sini, saya mencari pustaka-pustaka pengganti TeeChart untuk Linux. Cukup sulit menemukannya walau sudah saya temukan calon-calonnya:

  1. OpenGL (saya sudah tahu sebelum keinginan mencari itu ada, tetapi terlalu sulit)
  2. Matplotlib http://matplotlib.sourceforge.net/
  3. GNUplot http://www.gnuplot.info/
  4. QCustomPlot http://qcustomplot.com/ (paling menarik buat saya)
  5. wxPlot http://wxcode.sourceforge.net/showcomp.php?name=wxPlot
  6. wxMathPlot http://wxmathplot.sourceforge.net/
  7. libgraph http://savannah.nongnu.org/projects/libgraph/‎
  8. koolplot http://koolplot.codecutter.org/
  9. EasyBMP http://easybmp.sourceforge.net/‎
  10. plotutils http://gnu.org/s/plotutils/
  11. plplot http://plplot.sourceforge.net
  12. wxArt2d http://wxart2d.org/moin/WxArt2dScreenShots
  13. MathGL http://mathgl.sourceforge.net/
  14. Scidavis http://scidavis.sourceforge.net/ (bukan pustaka)
  15. DISLIN http://www.dislin.de/
  16. wxChart http://wxcode.sourceforge.net/components/wxchart/
  17. PyQtGraph http://www.pyqtgraph.org/
  18. GUIQwt https://code.google.com/p/guiqwt/
  19. Chaco http://code.enthought.com/projects/chaco/gallery.php
  20. Qwt http://qwt.sourceforge.net/ (sebenarnya masih ada yang lain, hanya saja yang saya temukan cuma sekian).

Supaya nyata, ini saya sertakan skrinsot jadi salah satu pustaka (PyQtGraph, open source):

pyqtgraph-plotting

Serta satu lagi, yakni Matplotlib (open source):

Dan harus saya sebut juga laman yang mengantarkan saya kepada semua pustaka plotting yang ada:

  1. http://stackoverflow.com/questions/296199/is-there-any-out-of-the-box-2d-3d-plotting-library-for-c
  2. http://wiki.python.org/moin/NumericAndScientific/Plotting
  3. http://qt-project.org/forums/viewthread/14819 (mengantar saya pada QCustomPlot)

Yang saya pikirkan kala membuka semua laman itu hanyalah: “ini bisa realtime apa tidak?“. Soalnya saya ingin yang realtime bukan yang statis. Akhirnya semua ini berakhir pada Qwt setelah saya melihat dua laman ini:

  1. http://www.swharden.com/blog/2013-05-08-realtime-data-plotting-in-python/ (gara-gara ini saya semangat lagi mencari setelah saya anggap sudah mustahil, saya melihat Qt Designer di sana dan kaget sekali)
  2. http://codingexodus.blogspot.com/2013/01/getting-started-with-qwt.html (saya coba dan berhasil)

Hasilnya saya cari keterangan soal Qwt dan alhamdulillah ternyata jawabannya ada di dalam examples milik Qwt. Supaya nyata juga, ini skrinsot folder oscilloscope asli milik Qwt.

resized_qwt-osiloskop5

Kode

Ada satu hal penting setelah mengimpor satu folder oscilloscope ke dalam Qt Creator. Anda harus menambahkan satu baris kode ini di dalam .pro Anda.

CONFIG += qwt

atau dipastikan Qt Creator Anda error karena tidak bisa menemukan letak header-header Qwt. Saya menggunakan Qt Creator 4.8 pada Ubuntu 12.04 dan error kalau tidak ada baris ini. Setelah ditulis baru jalan programnya seperti skrinsot pertama. Mudah sekali, bukan?

Unduh Kode Sumber

Tautan: http://otodidak.freeserver.me/tarball/oscilloscope.tar.gz
Ukuran: 8 KB

Kesimpulan

Qwt adalah pustaka Qt untuk realtime signal plotting pengganti TeeChart di Linux. Bisa digunakan untuk sinyal sinus biasa sampai simulasi Osiloskop.

Penutup

Semoga tulisan ini bermanfaat untuk Anda sekalian.

3 thoughts on “Qt Creator – Qwt, Pustaka Pengganti TeeChart untuk Simulasi Realtime Signal Plotting di Linux (Contoh Program Osiloskop)

  1. arhsa

    Sejujurnya, saya kurang faham pemograman, tapi saya sangat suka dan ingin membuat program. Sekarang, saya masih fokus mempelajari program-program pengganti utama, Gimp, Inkscape, Coversen, Libre Office, kustomisasi desktop, dan aplikasi lainnya.
    Saya sudah berhenti memilih-milih distro, sekarang fokus mempelajari aplikasi.

    Saya juga mengumpulkan aplikasi .deb untuk instalasi offline di desa. Pengguna komputer di desa tidak sama dengan di kota. Internet masih belum menjadi konsumsi umum yang merata. Instalasi offline satu-satunya solusi nyata.

    Terus terang saya belajar banyak dari Antum. Hal-hal diatas adalah to reduce complexcity. Agar ketika saya menggunakan Linux dan orang tertarik (tanya-tanya), saya ada kemampuan dasar baik penguasaan aplikasi maupun kustomisasi sederhana.

    Maka, seperti usul saya awal bulan kemarin, awal bulan ini juga saya usul kembali, usul yang sama, mohon Antum sediakan versi PDF dari tutorial-tutorial QT yang Antum buat. PDF Otodidak behind scene sangat bermanfaat, tapi sayang bagian duanya tidak muncul (atau saya yang tidak menemukannya), malah kemudian beralih ke QT. Akhirnya, Netbeans saya istirahatkan, QT belum saya jalankan. Hanya aplikasi yang terus saya pelajari.

    Suatu saat nanti, insya Allah akan saya pelajari kembali, mudah-mudahan bisa menciptakan aplikasi.

    Balas
    1. Ade Malsasa Akbar Penulis Tulisan

      Barakallahu fiikum, ana lupa soal PDF itu, Akhii. Ya Allah, barakallahu fiikum. Maaf, sesegera mungkin ana akan siapkan insya Allah dan kirim direct link-nya ke blog antum. Ana usahakan yang terbaik buat antum sekalian di sana. Barakallahu fiikum.

      Ana kirim salam buat muslimin di sana yang belajar. Sampaikan pokoknya jangan bertakalluf sampai antum bela-bela ke luar negeri pas orangnya nggak di Indonesia. Barakallahu fiikum.

      Balas
  2. Ping balik: Akhirnya, Realtime Data Plotting di Linux dengan Qt + QCustomPlot! | RESTAVA

Dilarang menggunakan emotikon

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s