TUJUAN
Mahasiswa dapat menggunakan SerialPort class untuk mengirim dan menerima data antar PC.
PENDAHULUAN
Pada workshop sebelumnya, anda telah mencoba dua aplikasi yang saling berkomunikasi
didalam sebuah PC menggunakan kabel virtual. Teknik ini sangat berguna untuk melakukan
evaluasi apakah aplikasi yang kita bangun telah bekerja dengan benar, dalam kasus pertukaran
datanya. Setelah aplikasi yang anda buat lolos uji, saatnya mencoba untuk bertukar data dengan
PC yang lain. Untuk workshop kali ini, anda akan mencoba melakukan tukar data antar PC
menggunakan port serial. Bila PC atau laptop anda tidak mempunyai port serial (hanya port
USB), maka anda membutuhkan bantuan konverter USB-ke-Serial seperti ditunjutkkan oleh
Gambar 1.
PROSEDUR PERCOBAAN
1. Membuka dan menjalankan aplikasi yang telah dibuat (yang bertujuan untuk mengirim
dan
menerima data) pada workshop sebelumnya.
2. Memasang konverter USB-ke-Serial pada PC yang digunakan, dan memasang juga pada
PC
lain yang digunakan untuk bertukar data. Menggunakan kabel ekstensi serial untuk
menghubungkan kedua kabel konverter tersebut.
3. Melakukan pengiriman data pada PC anda, jika tidak ada yang salah, maka pada PC lain
yang terhubung akan menerima data yang dikirimkan.
HASIL PERCOBAAN
5a. Hasil Percobaan Sesuai Prosedur Modul 5
1. Membuka dan menjalankan aplikasi yang telah dibuat (yang bertujuan untuk mengirim
dan
menerima data) pada workshop sebelumnya.
Simulasi
lain yang digunakan untuk bertukar data. Menggunakan kabel ekstensi serial untuk
menghubungkan kedua kabel konverter tersebut.
Novanna Rahma Zani - 1103181047
(a) (b)
Gambar 3. (a) Konfigurasi 3-wire cross cable Connector DB9 Female
(b) konverter USB-ke-Serial pada 2 PC yang akan berkomunikasi
3. Melakukan pengiriman data pada PC anda, jika tidak ada yang salah, maka pada PC lain
yang terhubung akan menerima data yang dikirimkan.
TUGAS
5b. Tugas 1
Membuat aplikasi pertama pada PC anda, untuk mensimulasikan sebuah (satu) tombol
kendali dari sebuat peralatan. Jika tombol ditekan, maka text akan berganti dari “ON” ke
“OFF”, dan seterusnya. Jika tersebut ditekan, maka aplikasi akan mengirimkan data ke port
serial. Data yang dikirimkan adalah informasi status tombol, apakah sedang ON atau OFF.
Hasil :
Program melakukan komunikasi dengan pemilihan port dilakukan seperti percobaan lab
4.
Jika percobaan sebelumnya mengirimkan text dari textbox lalu klik send, pada tugas ini
program yang dikirim berasal dari switch. Dapat dilihat pada program diatas, perintah ini
dilakukan ketika user klik tombol switch. Ketika user klik switch, program memberikan
proteksi terlebih dulu, memastikan user telah mengkoneksikan serial port dengan
if (serialPort1.IsOpen == true) {eksekusi selanjutnya}
else
MessageBox.Show("Koneksikan PORT!");
Setelah itu, perintah apa yang akan dikirimkan mengikuti kondisi awal switch.
bunifuSwitch1.Value == true : Switch bernilai 1 atau on ;
bunifuSwitch1.Value == false : Switch bernilai 0 atau off ;
Lalu terdapat dua perintah yang program lakukan,
serialPort1.Write("Terrace ON" + "\n\r"); => Perintah yang dikirimkan ke receiver.
listBox1.Items.Add("Terrace Turn ON!"); => Text yang akan dicatat di aplikasi transmitter.
5c. Tugas 2
Membuat aplikasi kedua pada PC yang lain, untuk mensimulasikan sebuah (satu) peralatan
yang akan dikendalikan. Aplikasi ini menunggu data serial yang masuk. Jika aplikasi
menerima informasi bahwa tombol kendali dalam posisi ON, maka nyalakan peralatan.
Sebaliknya, jika aplikasi menerima informasi bahwa tombol kendali dalam posisi OFF, maka
matikan peralatan. Peralatan yang dimaksud dapat anda simulasikan dengan sebuah tombol
yang dapat berganti warna.
Hasil :
ini menyediakan fitur Notifikasi berupa status perintah yang diterima dan tambahan state
indicator berupa gambar/warna yang berubah mengikuti kondisi perintah. Sehingga Aplikasi
penerima (receiver) menerima informasi perintah dan menampilkan indikator yang
dikirimkan dari aplikasi pengirim (transmitter).
Analisa program :
public partial class Form1 : Form
{
Image TOFF = Properties.Resources.Button_Blank_Gray_icon;
Image TON = Properties.Resources.Button_Blank_Green_icon;
....
Image WOFF = Properties.Resources.Button_Blank_Gray_icon;
Image WON = Properties.Resources.Button_Blank_Green_icon;
public Form1()
{
InitializeComponent();
Terrace.Image = TOFF;
LivingRoom.Image = LOFF;
Kitchen.Image = KOFF;
Workspace.Image = WOFF;
}
Inisialisasi awal gambar dimulai dari definisi nama gambar seperti TOFF, TON dan
sebagainya. Lalu kondisi awalnya dibuat dengan button grey atau tidak aktif seperti
Terrace.Image = TOFF; LivingRoom.Image = LOFF; Kitchen.Image = KOFF;
Workspace.Image = WOFF;
private void timer1_Tick(object sender, EventArgs e) {
if (serialPort1.IsOpen {
if (listBox1.Text.ToUpper() == "Terrace ON") {
Terrace.Image = TON;
}
if (listBox1.Text.ToUpper() == "LivingRoom ON")
{
LivingRoom.Image = LON;
}
Timer dibuat enabled, dan ketika serial port sudah tersambung lalu list box mulai terisi text
seperti pada perintah yang dihasilkan switch button, gambar akan diubah.
listBox1.Text.ToUpper() => Memperhatikan listbox1 text yang berada di paling atas atau
perintah terakhir. Lalu,
{Terrace.Image = TON;}
Merupakan perintah untuk mengubah gambar pada Terrace.Image ; Jika sebelumnya tadi
Image TOFF maka akibat perintah ini Terrace.Image menjadi Image TON.
namespace GUI_Lab4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
{
}
}
}
else
MessageBox.Show("Koneksikan PORT!");
}
}
}
}
Aplikasi Receiver
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace GUI_Lab4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Terrace.Image = TON;
LivingRoom.Image = LOFF;
Kitchen.Image = KON;
Workspace.Image = WOFF;
}
namespace GUI_Lab4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
{
serialPort1.Write("Terrace OFF" + "\n\r");
listBox1.Items.Add("Terrace Turn OFF!");
}
}
else
MessageBox.Show("Koneksikan PORT!");
}
if (bunifuSwitch4.Value == true)
{
serialPort1.Write("Workspace ON" + "\n\r");
listBox1.Items.Add("Workspace Turn ON!");
}
else
{
serialPort1.Write("Workspace OFF!" + "\n\r");
listBox1.Items.Add("Workspace Turn OFF!");
}
}
else
MessageBox.Show("Koneksikan PORT!");
}
}
}
}
Aplikasi Receiver
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace GUI_Lab4
{
public partial class Form1 : Form
{
Image TOFF = Properties.Resources.Button_Blank_Gray_icon;
Image TON = Properties.Resources.Button_Blank_Green_icon;
Image LOFF = Properties.Resources.Button_Blank_Gray_icon;
Image LON = Properties.Resources.Button_Blank_Green_icon;
Image KOFF = Properties.Resources.Button_Blank_Gray_icon;
Image KON = Properties.Resources.Button_Blank_Green_icon;
Image WOFF = Properties.Resources.Button_Blank_Gray_icon;
Image WON = Properties.Resources.Button_Blank_Green_icon;
public Form1()
{
InitializeComponent();
Terrace.Image = TOFF;
LivingRoom.Image = LOFF;
Kitchen.Image = KOFF;
Novanna Rahma Zani - 1103181047
Workspace.Image = WOFF;
}
{
if (serialPort1.IsOpen)
{
if (listBox1.Text.ToUpper() == "Terrace ON")
{
Terrace.Image = TON;
}