Minggu, 10 Mei 2015

Serial Receive

Assalammualaikum.wr.wb

Jumpa lagi dengan saya agus waluyo, terima kasih telah berkunjung di blog saya semoga bermanfaat bagi anda yang membacanya, kali ini saya akan menjelaskan tentang serial receive,



Baiklah langsung saja ,
1. pertama kali buka microsoft visual studio atau aplikasi sharpdevelop atau visual studio c#
2. buat solution baru
3. pilih windows application, beri nama file dan tempat penyimpanan. kemudian klik create.
4. setelah muncul, pilih design
5. setelah muncul lembar kerja, kita bisa mengedit tampilan sesuai selera kita sendiri, caranya adalah pilih windows forms disebelah kiri kemudian pilih control type yang digunakan sesuai kebutuhan dengan cara diseret ke layoutnya, propertesnya bisa diganti sesuai yg kita inginkan propertienya di sebelah kanan.
contoh type yang saya gunakan: 
1 button 
1 panel
1 text box
1 timer

1 serialpoart

6. setelah kita membuat design, mari kita buat programnya:
 





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 serial_receive
{
    public partial class Form1 : Form
    {
        string rxString;
        int[] lokasiY = new int[100];
        Graphics objGraphic;
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (button1.Text == "Connect")
            {
                button1.Text = "Disconnect";
                serialPort1.Open();
            }
            else
            {
                button1.Text = "Connect";
                serialPort1.Close();
            }
        }

        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            rxString = serialPort1.ReadLine();
            this.Invoke(new EventHandler(DisplayText));
        }
        private void DisplayText(object sender, EventArgs e)
        {
            textBox1.Text += rxString;
            float tinggi = float.Parse(rxString);
            tinggi = 179 - (tinggi / 1023 * 179);
            // geser arraynya
            for (int i = 0; i < 99; i++)
            {
                lokasiY[i] = lokasiY[i + 1];
            }
            lokasiY[99] = (int)tinggi;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            Pen pena = new Pen(Color.Black);
            int awalX = 0; int titikMulaiX, titikMulaiY, titikAkhirX, titikAkhirY; // hapus dulu semuanya
            objGraphic.Clear(Color.White);
            for(int i=0;i<99;i++)
            {
                titikMulaiX = awalX + i*5;
                titikMulaiY = lokasiY[i];
                titikAkhirX = awalX + (i+1)*5;
                titikAkhirY = lokasiY[i+1];
                objGraphic.DrawLine(pena, titikMulaiX,titikMulaiY,titikAkhirX,titikAkhirY);
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            objGraphic = panel1.CreateGraphics();
        }

        }

}ini design yang telah saya buat
   


ini hasil yang telah diraningkan


Tidak ada komentar:

Posting Komentar