Catatan: Bagian-2 (klik disini untuk membaca Bagian-1) ini ditulis dengan asumsi Anda sudah pernah minimal membuat program sederhana menggunakan Visual Basic 6.0. Jika belum, disarankan untuk belajar dengan tingkat dasar dulu, buku2 atau tutorialnya sudah banyak sekali.
Menggunakan Simulator port Serial yang telah dibahas sebelumnya, akan kita gunakan untuk belajar membuat program dalam Visual Basic 6.0 untuk membaca ID dari board, dalam hal ini simulator port serial yang telah dibahas sebelumnya. Jika Anda belum mengetahui protokol simulator ini silahkan baca kembali artikel sebelumnya. Klik disini untuk mengunduh simulator port serial.
Baiklah…
Yang harus dilakukan pertama adalah instalasi Visual Basic 6.0 terlebih dulu (kecuali sudah ada di komputer Anda). Selain itu tidak dibutuhkan fasilitas port apapun di komputer Anda, karena ini adalah simulator port serial dan bahkan, boleh percaya atau tidak, saat Anda mengaktifkan simulator serial pada software ini, komputer akan memberikan indikator bunyi seakan-akan ada alat USB yang ditancapkan, demikian juga pada saat dinon-aktifkan. Sebagaimana telah dicoba pada artikel/tutorial Bagian-1.
Aktifkan VB6 dan buatlah proyek baru (EXE), perhatikan Gambar 1.
Gambar 1. Perhatikan kotak merah (Standard EXE)
Sertakan juga komponen Microsoft COMM Control 6.0 (perhatikan Gambar 2). Untuk mengaktifkan jendela ini (Gambar 2), gunakan menu Project -> Components.. (atau tekan Ctrl+T), sehingga ditampilkan jendela seperti pada Gambar 2.
Gambar 2
Centang pada komponen Microsoft COMM Control 6.0 (Gambar 2) kemudian klik Ok, sehingga pada bagian koponen VB6.0 akan ditambahkan komponen tersebut (Gambar 3).
Gambar 3
Ok… selanjutnya kita buat GUI-nya atau Form-nya mengikuti Gambar 4, masing-masing objek nama-namanya sudah ada di Gambar 4 tersebut, ingat juga untuk menempatkan komponen COMM-nya juga (saya beri tanda kotak merah dan dengan nama MSComm1).
Gambar 4
Inti dari program VB ini adalah mengirimkan id alat saja, artinya saat tombol Open ditekan, maka program VB akan langsung mengirimkan perintah “id” pada simulator port serial (dalam hal ini menggantikan board yang terpasang di lapangan, misalnya).
Untuk itu disiapkan sebuah subrutin yang nantiya digunakan untuk melakukan hal tersebut, namanya subrutin kirim_id(), sebagai berikut…
Private Sub kirim_id() Dim pj As Byte On Error GoTo salah MSComm1.Output = "id" & vbCr buffer = "" Do DoEvents buffer = buffer & MSComm1.Input Loop Until InStr(buffer, vbCr) pj = Len(buffer) Text1.Text = Mid(buffer, 1, pj - 2) Exit Sub salah: MsgBox "Ada kesalahan kirim data", vbOKOnly, "Peringatan" End Sub
Sedangkan variabel buffer sebaiknya dituliskan di baris paling atas dari listing VB..
Dim buffer As Variant
Artinya panjang buffer-nya menyesuaikan.
Subrutin kirim_id() diawali dengan pendefinisian variabel pj sebagai byte, yang digunakan untuk menyimpan panjang data yang diterima dari port serial. Informasi panjang string inilah yang akan digunakan untuk memotong string agar dapat ditampilkan melalui objek Text1.Text dengan tepat (tanpa adanya karakter Cr (carriage return) dan Lf (line feed) alias ENTER, perhatikan instruksi Mid(buffer,1,pj-2) yang digunakan untuk memotong dua karakter terakhir yaitu Cr dan Lf).
Dengan asumsi port serial sudah dibuka (open), diawali dengan jebakan jika terjadi kesalahan selama berkomunikiasi dengan port serial (perhatikan pernyataan On Error), maka dialihkan ke label “salah:”, yaitu menampilkan pesan kesalahan “Ada kesalahan kirim data”. Langkah selanjutnya adalah mengirimkan perintah “id” yang diikuti dengan karakter Cr ke port serial (perhatikan instruksi MSComm1.Output).
Instruksi yang ada di dalam Do..Loop merupakan serangkaian instruksi yang digunakan untuk menangkap data dari port serial yang kemudian disimpan kedalam variabel buffer hingga diterima karakter Cr (saja). Baru kemudian dilakukan penghitungan panjang string yang diterima (instruksi pj=Len(buffer)) dan pemotongan string seperti dijelaskan sebelumnya.
Pada saat pertama kali dijalankan program dijalankan, VB akan mengisi pilihan COM terlebih dahulu melalui subrutin…
Private Sub Form_Load() Dim i As Byte For i = 1 To 16 Combo1.AddItem (i) Next i cmdTutup.Enabled = False End Sub
Untuk tombol “Buka COM” dituliskan subrutin…
Private Sub cmdBuka_Click() Dim pj As Byte On Error GoTo salah MSComm1.CommPort = Combo1.ListIndex + 1 MSComm1.Settings = "9600,N,8,1" MSComm1.PortOpen = True Call kirim_id cmdTutup.Enabled = True cmdBuka.Enabled = False Exit Sub salah: MsgBox "Ada yang salah di COM" & Combo1.ListIndex + 1, _ vbOKOnly, "Peringatan!" End Sub
Anda perhatikan cara pengaturan port serial, port berapa yang akan dibuka (MSComm1.CommPort), kecepatan dan seting bitnya apa saja (MSComm1.Settings), kemudian proses membuka port (MSComm1.PortOpen). Dilanjutkan mengirim perintah “id” dan mengaktifkan tombol Close dan mematikan tombol Open.
Sedangkan untuk tombol “Tutup COM” menggunakan subrutin…
Private Sub cmdTutup_Click() On Error GoTo salah MSComm1.PortOpen = False cmdTutup.Enabled = False cmdBuka.Enabled = True Text1.Text = "id Alat" Exit Sub salah: MsgBox "Tidak bisa menutup COM", vbOKOnly, "Peringatan!" End Sub
Cukup sederhana bukan? Silahkan mencoba dan silahkan berdiskusi melalui komentar di artikel ini, terima kasih!