MercanSoftYazılım Teknolojileri Günlüğü
01 Mar 2019

C# ile Baykon BX21S Terazi den bilgi okuma

C# ile Baykon BX21S Terazi

Merhaba arkadaşlar,

bu yazımda sizlere Baykon marka bir teraziden veri nasıl okunur onu göstermeye çalışacağım.

bir winform açıyoruz ve 1 combobox , 1 textbox ve 1 tanede buton ekliyoruz.

tüm kaynak kodlarını sizlerle paylaşıyorum açıklamaları kodların arasına yapıyor olacağım hadi şimdi gelin kodları bir inceleyelim.

 

public partial class Form1 : Form
{

// burada bilgisayarınızdaki tüm açık portları getirmesini istedim ve bunuda bir string arrayine attım. bunu daha sonra bir combo boxta döneceğim.
string[] ports = System.IO.Ports.SerialPort.GetPortNames();
bool durum = false;
public Form1()
{
InitializeComponent();

Control.CheckForIllegalCrossThreadCalls = false;
}
private void Form1_Load(object sender, EventArgs e)
{

button3.BackColor = Color.Green;

// evet burada açık portları attığımız string arrayini dönerek comboboxa ekliyoruz.
foreach (string port in ports)
{
_cmbCOM.Items.Add(port);
}
}
private void button3_Click(object sender, EventArgs e)
{

if (durum==false)
{
try
{

// bağlantı için gerekli baudrate databits değerlerini giriyoruz.
serialPort1.BaudRate = 9600;
serialPort1.PortName = _cmbCOM.Text.ToString();
serialPort1.Parity = System.IO.Ports.Parity.None;
serialPort1.StopBits = System.IO.Ports.StopBits.One;
serialPort1.DataBits = 8;
}
catch (Exception ex)
{
_lblDurum.Text = “Bağlantı Hatası :” + ex.Message.ToString();
}
if (!serialPort1.IsOpen)
{
try
{

// portu açıyoruz ve bağlanıyoruz.
serialPort1.Open();
durum = true;
button3.BackColor = Color.Red;
button3.Text = “Bağlantıyı Kes”;
_lblDurum.Text = _cmbCOM.Text.ToString() + ” Portuna Bağlandı.”;
_Kilit(false);

}
catch (Exception ex)
{
_lblDurum.Text = “Bağlantı Hatası :” + ex.Message.ToString();
}
}
}
else
{
serialPort1.Close();
durum = false;
button3.BackColor = Color.Green;
button3.Text = “Bağlan”;
_lblDurum.Text = “Bağlantı Kesildi.”;
_Kilit(true);
}
}
public void _Kilit(bool durum)
{
_cmbCOM.Enabled = durum;
}
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// evet baykon terazilerde butona basınca terazide yazan veriyi gönderiyor bize gelen veri önünde veya arkasında bazı ekstra veriler olulyor

// örnek : Total : 21.45  gibi sadece veriyi almak için önündeki total ve : gibi karakterleri temizlemeniz gerekli _Temizle() metotunuda o nedenle kullandım

string test = serialPort1.ReadExisting();
string yeni = _Temizle(test);

textBox1.Text = string.Empty;
Thread.Sleep(1000);
textBox1.Text = _Temizle(yeni);

 

}

}

 

evet bu kadardır umarım faydalı bir yazı olmuştur sormak istediğiniz soruları lütfen yorum bölümünden sorunuz

 

herkese iyi kodlamalı günler..

C#.Net • Yazılımlarım Leave a comment

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.