menu

Sabtu, 21 Mei 2011

Mengenal Bagian-Bagian Lab Windows/CVI

Sebagai contoh, disini kita kita akan membuat sebuah program yang menggunakan port dari PPI untuk berkomunikasi dengan seseorang di komputer lain menjalankan program yang sama sekaligus lebih mengenal bagian dari editor Lab Windows/CVI

Proyek Window
Window pertama yang muncul bila kita buka editor CVI, adalah jendela proyek. Jika ini ini dibuka maka CVI akan membuka layar kosong, dan kita diberi kebebasan dalam menulis project, mau dalam bentuk C atau UIR (User Interface), selain itu akan membuka proyek yang bisa diedit terakhir.
Dalam Proyek ini anda akan melihat jendela proyek Anda dapat menemukan semua file yang relevan untuk proyek Anda. Untuk-kode C anda en header ada biasa. C en. File h. Ada juga jenis baru file, di antara mereka ada file RIB.. Ini adalah file user interface sumber daya. File ini berisi informasi tentang tampilan windows Anda program, user interface yang disebut grafis (GUI). Anda dapat membuat file baru melalui menu New File. Setelah Anda telah menciptakan mereka, Anda harus menambahkannya ke proyek Anda. Hal ini dapat dilakukan melalui Edit Tambah file ke proyek menu.


User Interface Editor
 Bila Anda membuat file UIR baru, CVI otomatis membuka editor user interface. Pada jendela ini Anda dapat membuat antarmuka pengguna Anda sendiri. Hal pertama yang harus dilakukan adalah menciptakan panel (jendela dasar), dengan mengklik Create Panel.

Panel 
Dalam panel ini kita dapat membuat objek disebut kontrol. Dengan kontrol ini pengguna dapat memberikan informasi ke dalam program (misalnya nilai perubahan parameter) atau program dapat menampilkan output (misalnya grafik). Anda dapat menemukan kontrol ini dalam menu Create. Ada juga kemungkinan membuat menubar untuk aplikasi Anda, tetapi kami tidak akan mengeksplorasi opsi ini lebih terinci sekarang.
Pertama kita harus memberikan panel kami nama untuk alasan yang jelas yang ingin kita dapat mengidentifikasi di C-kode. Dengan mengklik dua kali pada panel, jendela Edit Panel akan muncul.

Dan ia menamainya CHATPANEL ...Seperti Anda dapat melihat kami memberinya nama CHATPANEL elegan, ini adalah nama konstan sehingga disebut digunakan dalam kode sumber. Dalam judul bidang Panel Anda dapat memberikan Anda sebuah panel judul yang masuk akal yang akan muncul kepada pengguna masa depan. Ada banyak hal-hal lain yang dapat diedit tetapi ini tidak penting (untuk sekarang).

Menambahkan Kontrol Panel
Setelah menekan OK kami siap untuk menambahkan beberapa kontrol ke panel kami. Kami akan menambah dua kotak teks. Satu untuk transmisi dan satu untuk menerima teks. Dengan mengklik dua kali pada control atau memilih EditControl (atau double klik) kita dapat mengubah pengaturan untuk kotak teks.

Sampai disini, anda dapat melihat bahwa kami telah melakukan tiga hal, kami telah memberikan jendela label, nama konstanta dan fungsi callback. Fungsi callback sangat penting. Ini akan dieksekusi setiap kali sesuatu terjadi ke jendela (misalnya diklik atas). Kami menyebutnya Pertandingan. Untuk acara sesuai sebuah konstanta dari bentuk EVENT_XXX, ini didefinisikan dalam userint.h. Jadi dalam fungsi callback (kita akan menulis dalam beberapa saat) dapat menggambarkan bagaimana program harus merespon ketika sebuah peristiwa terjadi. Menerima jendela akan menjadi kontrol pasif (pengguna hanya dapat vieuw itu) sehingga hanya membutuhkan label dan nama konstan. Untuk membuat jelas untuk CVI bahwa pengguna tidak bisa melakukan apa-apa kecuali menonton, kita perlu mengatur Mode Control untuk Indikator.
Menghasilkan fungsi panggilan balikKami akan membiarkan CVI membuat memulai dengan menulis fungsi callback dengan memilih kontrol dan kemudian Kode Hasilkan Control Callback.

Kode yang dihasilkan oleh CVI 
Pertama-tama kita menyimpan file sebagai handshake.c. Seperti yang Anda lihat CVI telah melakukan beberapa hal. Termasuk adalah userint.h dan handshake.h, yang pertama adalah file header standar untuk CVI, yang kedua adalah file header untuk program anda dan akan dihasilkan secara otomatis juga saat Anda menyimpan RIB-file.. Masalahnya CVI kami ingin lakukan adalah, untuk menghasilkan dasar fungsi callback SendWin. The CVICALLBACK kata kunci memberitahu kita, memang fungsi callback. Anda dapat melihat CVI telah membuat pilihan untuk argumen. Melalui Event argumen yang bisa membedakan mana acara berlangsung di kontrol. Jadi ketika, misalnya, pengguna mengklik tombol kiri mouse pada jendela Kirim, fungsi callback SendWin disebut dengan EVENT_LEFT_CLICK konstan sebagai argumen acara. Kita sekarang dapat menjelaskan bagaimana program kami untuk merespon di berbagai aktivitas menggunakan konstruksi switch. Panel kontrol berisi argumen dan nama konstan panel aktif dan kontrol. Argumen lain yang berisi data yang lebih tepat pada acara yang berbeda untuk berbagai aktivitas.
Menambah kontrol lebihKita sekarang menambahkan kontrol yang tersisa kita ingin menggunakan. Kita perlu timer, ada kontrol yang berperilaku sebagai timer. Ini adalah timer multimedia sehingga disebut. Hal ini terkait dengan systemclock komputer, sehingga tidak terkait dengan UIB. Kami membutuhkan kontrol yang disebut slide pointer vertikal itu memungkinkan kita untuk mengubah parameter dalam program. Karena akan berdiri untuk penundaan dalam hitungan detik, kita label itu tersebut. Juga kita berikan nilai minimal dan maksimal dengan interval terkecil. Jelas itu juga membutuhkan nama konstanta dan fungsi callback. Terakhir tetapi bukan tidak penting kita memerlukan tombol berhenti. Ini hanya tombol perintah dengan Berhenti fungsi callback dan Keluar label. Sebuah detail yang bagus adalah Close Control pilihan dalam panel jendela Edit. Jika kita memilih Keluar, tombol X standar di sudut kanan jendela kita akan memanggil fungsi yang sama dengan tombol kita berhenti. Sekarang kita akan menghasilkan fungsi panggilan balik untuk kontrol ini juga. Sebelum kita dapat melakukannya, kita harus mengatur file target. Jadi memilih Kode Tetapkan Target File dan klik pada Handshake.c setelah itu Menghasilkan Kode pilih Semua Callback. Kami sekarang memiliki semua fungsi yang kita butuhkan tetapi satu, fungsi utama. Dalam fungsi utama kita harus untuk memulai dan menjalankan program, yang berarti loading Panel dan Kontrol. Dengan memilih Kode Hasilkan Fungsi Utama CVI akan menghasilkan fungsi utama juga.

Kerangka program kamiKami sekarang memiliki kerangka program kami. Kami memiliki semua kontrol, fungsi utama dan fungsi callback semua tanpa melakukan apapun. Sekarang kita akan harus menulis fungsi callback tersebut, bahwa program tersebut melakukan apa yang harus dilakukan.

Merancang program Chat
Marilah kita sekarang berpikir tentang apa yang sebenarnya kita ingin program kami lakukan. Kami ingin berkomunikasi dengan orang lain di komputer lain melalui port PPI. Kami tidak memiliki clock bersama untuk menyinkronkan komunikasi kita, jadi kita akan kita sebuah protokol yang disebut jabat tangan. Ini berarti bahwa komunikasi tidak terdiri dari langkah-langkah dengan jangka waktu yang tetap, namun proses hanya akan melanjutkan ke langkah berikutnya jika kedua belah pihak sepakat pada validitas langkah. Pada awalnya kami akan membuat program adalah kedua pihak memiliki roll tetap, kami memiliki pemancar dan penerima. Satu dapat menerapkan skema tersebut dengan menggunakan dua bit dan bus data (8 bit). Pemancar memiliki sedikit DATA dan penerima sedikit sibuk. Bit yang terhubung ke port (set untuk input) dari pihak lain. Pada awal kami memiliki posisi netral, DATA dan BUSY memiliki nilai 0 (tidak ada data, tidak sibuk). Jika pemancar ingin mengirimkan sesuatu akan menempatkan data pada bus dan memberikan Nya DATA nilai bit 1. Setiap kali dan sedangkan pihak penerima mengecek status bit DATA dari pemancar tersebut. Jika penerima mendeteksi DATA == 1 ini akan membaca bus dan memberikan sedikit sibuk nya nilai 1, sebagai tanda ia mendapat data namun belum siap untuk mendapatkan data baru. Sekarang transmitter bereaksi terhadap ini dengan seting DATA ke 0 dan menghapus data dari bus. Jika pihak penerima siap untuk input baru akan ditetapkan sibuk ke 0. Sekarang siklus selesai dan bisa mulai lagi.

Melaksanakan Ide
Bagaimana kita menerapkan hal ini dalam program kami? Kami pertama-tama akan mulai untuk membuat hal-hal sederhana dengan memecah pekerjaan dalam dua. Pada awalnya kami akan membuat dua program yang menerima dan satu transmisi. Penerima dapat melupakan kontrol SendWin, dan pemancar tentang timer, slider dan menerima jendela. (Anda dapat menyalin file UIR. Anda, berikan nama lain, dan kemudian hapus (pilih & menghapus) semua kontrol Anda tidak perlu untuk menerima / transmitter).
Sisi penerima harus memeriksa secara berkala jika kolega kita di komputer lain adalah mengirimkan sesuatu. Itu dimana kita memiliki timer untuk. fungsi callback adalah disebut pada interval reguler, sehingga dalam fungsi yang kita dapat mengimplementasikan memeriksa kita. Juga kita ingin (untuk alasan didactical) memiliki kemampuan untuk mengubah interval antara dua kutu timer. Itulah di mana kita telah slider kami untuk. Setiap kali nilai slider berubah (EVENT_COMMIT terjadi) kita ingin menyesuaikan ticktime dari timer. Kita bisa mendapatkan nilai dari suatu kontrol dengan fungsi GetCtrlVal (panel, kontrol, nilai *) nilai tersebut disimpan di alamat yang ditunjuk oleh nilai *. Hal lain yang kami ingin lakukan adalah mengubah atribut tertentu dari kontrol (pilihan di jendela kontrol edit). Hal ini dapat dilakukan dengan fungsi SetCtrlAttribute (panel, kontrol, attrbt, attrbtvalue). Misalnya timestep dari timer adalah atribut dari timer dengan nama ATTR_INTERVAL konstan. Sekarang kita dapat menulis fungsi callback lengkap pertama kami.


Fungsi callback dari Slider dan tombol Keluar seperti yang Anda lihat saya juga telah menyelesaikan fungsi callback Keluar untuk Anda. Semua hal ini adalah bahwa pada EVENT_COMMIT (masukkan ditekan atau tombol kiri mouse diklik) akan menghentikan user interface. Sekarang hanya dua memanggil kembali fungsi dan fungsi utama akan tetap. Penerima harus menulis fungsi timer callback dan pemancar satu untuk SendWin. Beberapa Hal yang harus Anda ketahui sebelum Anda dapat mulai menyelesaikan program. Dengan fungsi SetCtrlVal (Panel, Control, String), dimana Kontrol adalah nama konstan untuk teks dan Panel untuk panel kami, Anda dapat menulis sebuah String ke textbox. Mendapatkan teks dari textbox adalah sedikit lebih rumit. Fungsi GetTextBoxLineLength (Panel, Control, LineIndex, panjang *) akan membiarkan Anda mendapatkan panjang baris dari nomor baris LineIndex, GetTextBoxLine (Panel, Control, LineIndex, * DestinationBuffer) digunakan untuk mendapatkan baris dengan LineIndex dan memasukkannya ke dalam buffer ditunjuk oleh * DestinationBuffer. Sebuah cara untuk melacak jalur yang sudah kirim adalah dengan mendeklarasikan variabel statis dalam fungsi SendWin yang menghitung jumlah baris yang telah dikirim.
Jika Anda selesai dengan tugas ini, Anda dapat mengintegrasikan program untuk satu yang dapat bekerja dengan dua cara. Sebuah beberapa masalah akan timbul. Sebagai contoh, apa yang terjadi ketika kedua belah pihak mencoba untuk menulis pada waktu yang sama?
Kode BuilderKetika merancang fungsi panggilan balik Anda menggunakan Kode Builder. Dalam Membangun Anda akan menemukan kompilasi dan membangun pilihan. Pada menu Run Anda akan menemukan cara untuk menambahkan breakpoint, trace ke dalam, langkah di atas, dll Cara lain untuk menambahkan dan menghapus breakpoints adalah dengan mengklik di perbatasan dari jendela di telepon Anda ingin program untuk istirahat di. Sama seperti di lingkungan yang paling ada beberapa alat-alat praktis. Dengan memilih Window Variabel, Window Watch Anda dapat mengakses variabel dan jendela menonton.
Jendela variabel menunjukkan semua variabel saat dideklarasikan, tetapi hal menarik adalah bahwa Anda dapat mengubah isi dari variabel-variabel saat program sedang berjalan dengan mengklik pada nama variabel.
Jendela menonton memberi Anda kesempatan untuk memantau perubahan variabel atau ekspresi sementara melangkah melalui program ini. Anda juga dapat menambahkan breakpoint tergantung pada nilai ekspresi. Bagi programmer yang benar-benar malas di antara kita (dan yang dengan memori buruk), Anda dapat menyisipkan konstruksi C (seperti switch, if,for,do while dll) dengan hanya mengklik edit masukkan, program aanda akan segera terbentuk dengan hanya dengan argumen fungsi tertentu CVI.
(*)

2 komentar:

  1. Hi friends,
    Really this is amazing blog post. I saw and read your site; this site is useful to all its visitors.

    BalasHapus
  2. Thanks for your appreciate this my blog

    BalasHapus