Вы находитесь на странице: 1из 27

Berikut project yang akan menggunakan library image processing AForge.

NET dengan bahasa


pemrograman C# dan menggunakan software Visual C# Express 2010. Berikut tampilan GUInya.

Project ini bermaksud sebagai sensor pendeteksi garis pada robot pengikut garis (line follower
robot) sebagai pengganti sensor proximity photodioda.
Berikut kodenya.
using
using
using
using
using
using
using
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
AForge;
AForge.Controls;
AForge.Video;
AForge.Video.DirectShow;
AForge.Imaging;
AForge.Imaging.Filters;

namespace line_tracker2
{
public partial class Form1 : Form
{
//reference sudah ditambahkan
private FilterInfoCollection VideoCaptureDevices;//mengumpulkan setiap
perangkat video yg terdeteksi
private VideoCaptureDevice FinalVideoSource;//menampung perangkat
video yang akan digunakan
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)


{
//pertama add reference semua Aforge.video.dll dan
Aforge.video.directshow.dll
VideoCaptureDevices = new
FilterInfoCollection(FilterCategory.VideoInputDevice);
//sekarang perangkat video sudah tersimpan pada array di atas
foreach (FilterInfo VideoCaptureDevice in VideoCaptureDevices)
{
comboBox1.Items.Add(VideoCaptureDevice.Name);
}
}

video

private void button1_Click(object sender, EventArgs e)


{
//tambahkan kode berikut untuk menentukan perangkat sumber dari

FinalVideoSource = new
VideoCaptureDevice(VideoCaptureDevices[comboBox1.SelectedIndex].MonikerString)
;
FinalVideoSource.NewFrame += new
NewFrameEventHandler(FinalVideoSource_NewFrame);
FinalVideoSource.Start();
}
private Rectangle objectRect;
int x1, y1,x1_bawah, y1_bawah;
void FinalVideoSource_NewFrame(object sender, NewFrameEventArgs
eventArgs)
{
//sekarang kita tambahkan kode berikut untuk menampilkan new frame
event (frame dari webcam) untuk menampilkan gambar pada picturebox
Bitmap image = (Bitmap)eventArgs.Frame.Clone();//bitmap boxing
Bitmap image_unfilter = (Bitmap)eventArgs.Frame.Clone();
Bitmap image_bawah = (Bitmap)eventArgs.Frame.Clone();//bitmap
boxing
Bitmap image_unfilter_bawah = (Bitmap)eventArgs.Frame.Clone();
Crop filter = new Crop(new Rectangle(0, 0, image.Width,
(image.Height/8)));
// apply the filter
image = filter.Apply(image);
image_unfilter = filter.Apply(image_unfilter);
Crop filter_bawah = new Crop(new Rectangle(0, 320,
image_bawah.Width, (image_bawah.Height / 8)));
// apply the filter
image_bawah = filter_bawah.Apply(image_bawah);
image_unfilter_bawah = filter_bawah.Apply(image_unfilter_bawah);
// create filter
ColorFiltering filtercr = new ColorFiltering();
// set color ranges to keep
filtercr.Red = new IntRange(200, 255);
filtercr.Green = new IntRange(200, 255);
filtercr.Blue = new IntRange(200, 255);
filtercr.FillOutsideRange = true;

// apply the filter


filtercr.ApplyInPlace(image);
filtercr.ApplyInPlace(image_bawah);

of
for
size

// create blob counter and configure it


BlobCounter blobCounter = new BlobCounter();
blobCounter.MinWidth = 20;

// set minimum size

blobCounter.MinHeight = 20;

// objects we look

blobCounter.FilterBlobs = true;

// filter blobs by

blobCounter.ObjectsOrder = ObjectsOrder.Size; // order found


object by size
// locate blobs
blobCounter.ProcessImage(image);
Rectangle[] rects = blobCounter.GetObjectsRectangles();
// draw rectangle around the biggest blob
if (rects.Length > 0)
{
objectRect = rects[0];
Graphics g = Graphics.FromImage(image_unfilter);
using (Pen pen = new Pen(Color.YellowGreen, 3))
{
g.DrawRectangle(pen, objectRect);
}
g.Dispose();
// calculate X,Y coordinates of object's center
x1 = (objectRect.Left + objectRect.Right - image.Width) / 2;
y1 = (image.Height - (objectRect.Top + objectRect.Bottom)) /
2;

}
blobCounter.ProcessImage(image_bawah);
Rectangle[] rects_bawah = blobCounter.GetObjectsRectangles();
// draw rectangle around the biggest blob
if (rects_bawah.Length > 0)
{
objectRect = rects_bawah[0];
Graphics g = Graphics.FromImage(image_unfilter_bawah);
using (Pen pen = new Pen(Color.YellowGreen, 3))
{
g.DrawRectangle(pen, objectRect);
}

g.Dispose();
// calculate X,Y coordinates of object's center
x1_bawah = (objectRect.Left + objectRect.Right image_bawah.Width) / 2;
y1_bawah = (image_bawah.Height - (objectRect.Top +
objectRect.Bottom)) / 2;
}
pictureBox1.Image = image_unfilter;

pictureBox2.Image = image_unfilter_bawah;

private void Form1_FormClosed(object sender, FormClosedEventArgs e)


{
//kita tambahkan kode untuk membuat webcam berhenti bekerja
//kapanpun form telah ditutup maka webcam akan berhenti bekerja
secara automatis
if (FinalVideoSource.IsRunning)
{
FinalVideoSource.Stop();
}
//selesai
//sekarang kita jalankan
}
private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = String.Format("koordinat_atas: x={0}y={1}
koordinat_bawah: x={2}y={3} delta_x = {4}", x1, y1, x1_bawah, y1_bawah,(x1x1_bawah));
}
}
}

Berikut link file download dari project di atas. file


Filed under electrical engineering Tagged with c#, computer, Design Software, interfacing
perangkat, robotics, robotika, visual studio, visual studio 2010, visual studio 2010 express

Mengukur Koordinat Menggunakan Mouse Komputer


March 5, 2012 2 Comments
Berikut link download project file VS C# di atas .
http://www.mediafire.com/file/5lt774t9sjh7550/mouse.rar
Untuk mengukur koordinat tempat sebuah mobile robot berada, biasanya menggunakan rotary
encoder untuk menghitung putaran roda yang kemudian diolah menjadi koordinat perpindahan
robot dari titik asalnya. Beberapa solusi lainnya bisa menggunakan mouse komputer sebagai
pengganti sebuah rotary encoder. Berikut kode aplikasi yg saya buat menggunakan Visual C#
2010 Express.
using
using
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;
System.Runtime.InteropServices;

namespace mouse
{
public partial class Form1 : Form
{
public const UInt32 SPI_SETMOUSESPEED = 0x0071;
[DllImport("User32.dll")]
static extern Boolean SystemParametersInfo(
UInt32 uiAction,
UInt32 uiParam,
UInt32 pvParam,
UInt32 fWinIni);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
SystemParametersInfo(SPI_SETMOUSESPEED, 0, 1, 0);

this.Cursor = new Cursor(Cursor.Current.Handle);


Cursor.Position = new Point(632, 358);

private void Form1_FormClosing(object sender, FormClosingEventArgs e)


{
SystemParametersInfo(SPI_SETMOUSESPEED, 0, 20, 0);
}
int x, y,count_x,count_y;
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
this.Cursor = new Cursor(Cursor.Current.Handle);
x = Cursor.Position.X;
y = Cursor.Position.Y;
if (x > 732)
{
Cursor.Position
count_x++;
}
if (x < 532)
{
Cursor.Position
count_x--;
}
if (y > 458)
{
Cursor.Position
count_y++;
}
if (y < 258)
{
Cursor.Position
count_y--;
}

= new Point(532, y);

= new Point(732, y);

= new Point(x, 258);

= new Point(x, 458);

label1.Text
label2.Text
label3.Text
label4.Text
}

=
=
=
=

Convert.ToString(x);
Convert.ToString(y);
Convert.ToString(count_x);
Convert.ToString(count_y);

Filed under electrical engineering Tagged with c#, computer, Design Software, interfacing
perangkat, robotics, robotika, visual studio, visual studio 2010, visual studio 2010 express

Aplikasi Serialport Berbasis Console Application Visual C#


2010 Express
January 22, 2012 Leave a comment
Pertama-tama buatlah sebuah project baru.

Lalu pada bagian Program.cs masukan kode berikut.


using
using
using
using

System;
System.Collections.Generic;
System.Text;
System.IO.Ports;

namespace SerialTest
{
class Program
{
static void Main(string[] args)
{
string[] names = SerialPort.GetPortNames();
Console.WriteLine("Serial ports:");
foreach (string name in names)

Console.WriteLine(name);
Console.Write("Choose one:");
SerialPort p = new SerialPort(Console.ReadLine());
p.DataReceived += new
SerialDataReceivedEventHandler(p_DataReceived);
p.Open();
string line;
do
{
line = Console.ReadLine();
p.Write(line);
} while (line != "quit");
p.Close();
}
static void p_DataReceived(object sender, SerialDataReceivedEventArgs
e)

{
Console.WriteLine(
(sender as SerialPort).ReadExisting());
}

Setelah itu, jangan lupa save program yang sudah dibuat. Run program (F5). Program bisa
dicoba berkomunikasi dengan Hyperterminal atau aplikasi serial port lainnya dengan bantuan
VSPE (Virtual Serial Port Emulator) yang bisa di download di
http://www.eterlogic.com/downloads/SetupVSPE.zip
Pada program yang sudah dibuat tadi, setelah dijalankan, untuk memilih COM, langsung saja
diketik nama COM nya. Misal COM5. Untuk mengirim data, tekan enter. Untuk keluar dari
program, ketik quit lalu tekan enter.

VSPE (Virtual Serial Port Emulator).

Tampilan program.
___________________________
Daftar Pustaka
http://balau82.wordpress.com/2009/04/18/simplest-serial-port-terminal-in-csharp/
Filed under electrical engineering Tagged with algoritma, c#, Design Software, interfacing
perangkat, komunikasi serial, programmer, Programming, Software, visual studio, visual studio
2010, visual studio 2010 express

Membuat Aplikasi Chat via Ethernet/Sockets Programming


dengan Visual Studio C# 2010
March 22, 2011 45 Comments
Pendahuluan
Program yang akan dibahas terdiri dari dua bagian, yaitu:
1.
Server, sebagai server yang mana semua client akan mengirim pesan ke computer yang ada
aplikasi ini dan mem-broadcast semua pesan ke client.
2.
Client, aplikasi yang dipakai oleh user untuk melakukan chat yang akan terhubung ke
server.
Membuat Server
Pertama bukalah aplikasi Visual Studio C# 2010. Lalu pilih new project. Kemudian pilih
Console Application dan berilah nama project chat_server pada bagian bawah form, lalu klik
OK.

Setelah itu cobalah masukan kode di bawah ini.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Net;
namespace ConsoleApplication1
{
class Program
{
const int portNo = 500;
static void Main(string[] args)
{
//==================================================================
//Mendapatkan Local Machines Host Name & IPAddress
//==================================================================
String strHostName = ;
if (args.Length == 0)
{
// Mendapatkan Ip address dari local machine
// Pertama cari host name dari local machine.

strHostName = Dns.GetHostName();
Console.WriteLine(Local Machines Host Name: + strHostName);
}
else
{
strHostName = args[0];
}
IPHostEntry ipEntry = Dns.GetHostByName(strHostName);
IPAddress[] addr = ipEntry.AddressList;
for (int i = 0; i < addr.Length; i++)
{
Console.WriteLine(IP Address {0}: {1} , i, addr[i].ToString());
}
//===================================================================
System.Net.IPAddress localAdd = System.Net.IPAddress.Parse(addr[0].ToString());
TcpListener listener = new TcpListener(localAdd, portNo);
listener.Start();
while (true)
{
ChatClient user = new
ChatClient(listener.AcceptTcpClient());
}
}

}
}
Setelah itu, buat class baru dengan nama ChatClient dengan cara klik kanan pada nama project
seperti di bawah ini.

Setelah itu, akan muncul form berikut.

Pilih Class dan jangan lupa beri nama ChatClient pada bagian bawah form dan klik Add.
Setelah itu coba masukan kode seperti di bawah ini.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Collections;
namespace ConsoleApplication1
{
class ChatClient
{
//berisi daftar semua client
public static Hashtable AllClients = new Hashtable();
//informasi tentang client
private TcpClient _client;

private string _clientIP;


private string _clientNick;
//digunakan untuk mengirim/menerima data
private byte[] data;
//apakah nickname sudah dikirim
private bool ReceiveNick = true;
public ChatClient(TcpClient client)
{
_client = client;
//mendapatkan client IP address
_clientIP = client.Client.RemoteEndPoint.ToString();
//menambahkan client saat ini ke hash table
AllClients.Add(_clientIP, this);
//memulai membaca data dari client pada
// thread terpisah
data = new byte[_client.ReceiveBufferSize];
client.GetStream().BeginRead(data, 0,
System.Convert.ToInt32(_client.ReceiveBufferSize), ReceiveMessage, null);
}
public void ReceiveMessage(IAsyncResult ar)
{
//membaca dari client
int bytesRead;

try
{
lock (_client.GetStream())
{
bytesRead = _client.GetStream().EndRead(ar);
}
//client tidak tersambung
if (bytesRead < 1)
{
AllClients.Remove(_clientIP);
Broadcast(_clientNick + has left the chat.);
return;
}
else
{
//mendapat pesan yang telah dikirim
string messageReceived = System.Text.Encoding.ASCII.GetString(data, 0, bytesRead);
//client mengirimkan nicknamenya
if (ReceiveNick)
{
_clientNick = messageReceived;
//memberitahu semua client memasuki
// chat

Broadcast(_clientNick + has joined the chat.);


ReceiveNick = false;
}
else
{
//memberikan pesan pada semuanya
Broadcast(_clientNick + > + messageReceived);
}
}
//melanjutkan membaca dari client
lock (_client.GetStream())
{
_client.GetStream().BeginRead(data, 0,
System.Convert.ToInt32(_client.ReceiveBufferSize),ReceiveMessage,null);
}
}
catch (Exception ex)
{
AllClients.Remove(_clientIP);
Broadcast(_clientNick + has left the chat.);
}
}
public void SendMessage(string message)

{
try
{
//mengirim text
System.Net.Sockets.NetworkStream ns;
lock (_client.GetStream())
{
ns = _client.GetStream();
}
byte[] bytesToSend =
System.Text.Encoding.ASCII.GetBytes(message);
ns.Write(bytesToSend, 0, bytesToSend.Length);
ns.Flush();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
public void Broadcast(string message)
{
//log secara lokal
Console.WriteLine(message);

foreach (DictionaryEntry c in AllClients)


{
//memberi pesan pada semua user
((ChatClient)(c.Value)).SendMessage(
message + Environment.NewLine);
}
}
}
}
Membuat Client
Buatlah project baru dan pilih template Windows Form Application dan berilah nama project
tersebut dengan nama chat pada bagian bawah form lalu klik OK. Setelah itu, buatlah form
seperti pada gambar di bawah ini.

Setelah itu coba buatlah kode seperti di bawah ini.


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;
using System.Net.Sockets;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
const int portNo = 500;
TcpClient client;
byte[] data;
public Form1()
{
InitializeComponent();
}
private void btnSignIn_Click(object sender, EventArgs e)
{
if (btnSignIn.Text == Sign In)
{
try

{
//menghubungkan ke server
client = new TcpClient();
client.Connect(IPServer.Text, portNo);
data = new byte[client.ReceiveBufferSize];
//membaca dari server
SendMessage(txtNick.Text);
client.GetStream().BeginRead(data, 0,
System.Convert.ToInt32(
client.ReceiveBufferSize),
ReceiveMessage, null);
btnSignIn.Text = Sign Out;
btnSend.Enabled = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
else
{
//disconnect dari server
Disconnect();

btnSignIn.Text = Sign In;


btnSend.Enabled = false;
}
}
private void btnSend_Click(object sender, EventArgs e)
{
SendMessage(txtMessage.Text);
txtMessage.Clear();
}
public void SendMessage(string message)
{
try
{
//mengirim pesan ke server
NetworkStream ns = client.GetStream();
byte[] data =
System.Text.Encoding.ASCII.GetBytes(message);
//mengirim text
ns.Write(data, 0, data.Length);
ns.Flush();
}
catch (Exception ex)
{

MessageBox.Show(ex.ToString());
}
}
public void ReceiveMessage(IAsyncResult ar)
{
try
{
int bytesRead;
//membaca data dari server
bytesRead = client.GetStream().EndRead(ar);
if (bytesRead < 1)
{
return;
}
else
{
//memanggil delegate untuk menampilkan
// data yang diterima
object[] para = {System.Text.Encoding.ASCII.GetString(data, 0, bytesRead) };
this.Invoke(new delUpdateHistory(UpdateHistory),
para);
}
//melanjutkan membaca

client.GetStream().BeginRead(data, 0,
System.Convert.ToInt32(client.ReceiveBufferSize),
ReceiveMessage, null);
}
catch (Exception ex)
{
//abaikan error, dibuang ketika pengguna sign off
}
}
//delegate dan subroutine untuk mengupdate TextBox control
public delegate void delUpdateHistory(string str);
public void UpdateHistory(string str)
{
txtMessageHistory.AppendText(str);
}
public void Disconnect()
{
try
{
//Disconnect dari server
client.GetStream().Close();
client.Close();
}

catch (Exception ex)


{
MessageBox.Show(ex.ToString());
}
}
private void Form_Closing(object sender,FormClosingEventArgs e)
{
Disconnect();
}
}
}
Setelah itu, double clik pada Form1.Designer.cs dan tambahkan kode seperti di bawah ini.
private void InitializeComponent()
{

this.FormClosing += new
System.Windows.Forms.FormClosingEventHandler(this.Form_Closing);
}
Setelah kedua aplikasi diatas (chat server dan client) sudah selesai dibuat, maka program bisa
langsung dites pada komputer yang berbeda atau pada satu komputer. Akan tetapi, jika
menggunakan satu komputer, aturlah IP address yang diakses oleh client adalah 127.0.0.1
(computers loopback address).
Daftar Pustaka
http://www.codeproject.com/KB/cs/network.aspx

Lee, Wei-Meng[2007].Practical .NET 2.0 Networking Projects. Apress, New York, USA.
Filed under electrical engineering Tagged with algoritma, chat, client, Design Software, ethernet,
interfacing perangkat, programmer, Programming, server, socket programming, Software, visual
studio, visual studio 2010, visual studio 2010 express

Aplikasi Komunikasi Serial pada PC Menggunakan Visual


C# 2010 / Express
February 12, 2011 24 Comments

Komunikasi serial pada PC masih sering digunakan untuk beberapa aplikasi yang membutuhkan
koneksi dengan mikrokontroler. Mikrokontroler yang mempunyai USART dapat terkoneksi
dengan port serial pada PC dengan konektor DB9 dengan menggunakan RS232 standard . Jika
menggunakan mikrokontroler avr, maka bisa lihat page berikut
http://wangready.wordpress.com/2011/02/02/pemrograman-usart-pada-mikrokontroler-avr-avrstudio-4/ untuk pemrograman menggunakan AVR Studio 4. Berikut perancangan software untuk
komunikasi serial dengan mode UART.
Pertama buka aplikasi Visual C# 2010. Kemudian, pilih new project. Lalu pilih lagi Windows
Forms Aplication dan ketikan nama project pada bagian bawah form lalu OK. Lalu setelah itu
buatlah Form seperti di bawah ini dengan terlebih daulu double click pada Form1.cs pada panel
Solution Explorer sebelah kanan agar muncul template dari form tersebut.

Setelah
selesai membuat form seperti di atas, perhatikan nilai property pada setiap komponen.
Control

Property

Value

Form1

Text

Komunikasi serial

Form1

AcceptButton

btnSend

lblMessage

BorderStyle

FixedSingle

txtDataReceived

ScrollBars

Vertical

txtDataReceived

MultiLine

True

txtDataToSend

MultiLine

True

Setelah itu klik Toolbox yang biasanya ada di sebelah kiri. Lalu pada sub Components klik
SerialPort dan klik kembali pada form yang tampil untuk menambahkan komponen SerialPort
pada form yang sedang kita buat. Setelah itu ganti nama serialPort1 dengan serialPort sebagai
nama yang akan kita gunakan pada panel Properties.
Setelah selesai mengatur tampilan dari Form1, silakan fahami source code di bawah ini.
1
2
3
4
5
6
7
8
9
10

using
using
using
using
using
using
using
using

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;

namespace serial
{
public partial class Form1 : Form

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//menset event handler untuk DataReceived event
serialPort.DataReceived += new
System.IO.Ports.SerialDataReceivedEventHandler(DataReceived);
//menampilkan nama serialport yang tersedia pada
// komputer
string[] portNames = System.IO.Ports.SerialPort.GetPortNames();
for (int i = 0; i <= portNames.Length - 1; i++)
{
cbbCOMPorts.Items.Add(portNames[i]);
}
btnDisconnect.Enabled = false;
}
private void btnConnect_Click(object sender, EventArgs e)
{
//menutup akses serialport apabila akses serialport terbuka
if (serialPort.IsOpen)
{
serialPort.Close();
}
try
{
//mengatur beberapa parameter untuk koneksi serial
// port
serialPort.PortName = cbbCOMPorts.Text;
serialPort.BaudRate = 9600;
serialPort.Parity = System.IO.Ports.Parity.None;
serialPort.DataBits = 8;
serialPort.StopBits = System.IO.Ports.StopBits.One;
//buka serial port
serialPort.Open();
//menampilkan status dari serial port dan
// enable/disable -kan tombol
lblMessage.Text = cbbCOMPorts.Text + " connected.";
btnConnect.Enabled = false;
btnDisconnect.Enabled = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private void btnDisconnect_Click(object sender, EventArgs e)
{
try
{
//tutup serial port

57 serialPort.Close();
58 //menampilkan status dari serial port dan
// enable/disable -kan tombol
59 lblMessage.Text = serialPort.PortName +" disconnected.";
60 btnConnect.Enabled = true;
61 btnDisconnect.Enabled = false;
62 }
catch (Exception ex)
63 {
64 MessageBox.Show(ex.ToString());
65 }
66 }
67
68 private void btnSend_Click(object sender, EventArgs e)
{
69 try
70 {
71 //menulis tipe data string pada serial port
72 serialPort.Write(txtDataToSend.Text + Environment.NewLine);
string yang telah dikirim pada TextBox control
73 //menambahkan
txtDataReceived.AppendText(">" + txtDataToSend.Text +
74 Environment.NewLine);
75 txtDataReceived.ScrollToCaret();
76 //bersihkanTextBox control
77 txtDataToSend.Text = string.Empty;
}
78 catch (Exception ex)
79 {
80 MessageBox.Show(ex.ToString());
81 }
82 }
83
//Event handler untuk DataReceived event
84 private void DataReceived(object sender,
85 System.IO.Ports.SerialDataReceivedEventArgs e)
86 {
87 //memanggil delegasi untuk mengambil data yang diterima
myDelegate(updateTextBox));
88 txtDataReceived.BeginInvoke(new
}
89
90 //Delegate and subroutine untuk ditampilkan pada TextBox control
91 public delegate void myDelegate();
92 public void updateTextBox()
93 {
//menambahkan data pada TextBox control
94 txtDataReceived.AppendText(serialPort.ReadExisting());
95 txtDataReceived.ScrollToCaret();
96 }
97 }
98 }
99
100
101
102

103
104
105
106
107
108
109
110
111
112
113
114
115
Setelah program jadi dan tidak terdapat pesan pada Error List yang terdapat pada bagian bawah
panel kerja, maka program bisa di debug. Klik tombol Start Debugging atau tekan F5.
Setelah berhasil di debug, maka program bisa langsung di-publish untuk menghasilkan
setup.exe. Klik kanan pada nama project yang ada pada panel Solution Explorer dan klik
properties. Lalu pilih menu Publish dan setting juga Publish Location sesuai keinginan. Lalu
klik Publish Wizard untuk melakukan settingan terlebih dahulu atau Publish Now untuk
publish langsung.

Вам также может понравиться