SerialPort.Read Byte ?

Başlatan ibrahimayhan, 28 Mart 2018, 15:48:04

ibrahimayhan

Merhabalar,
Sizlerden Bir Konu Hakkında Bilgi Paylaşımında Bulunmanızı Rica Etmekteyim,
Geliştirme Aşamasında Bulunduğum Bir Proje Üzerinde Serial Port Bağlı Bulunan İndicator Cihazı Üzerine Veri Gönderme ve Veri Geri Alma İşlemiyle İlgili Bir Sorun Yaşamaktayım,
Kod Blogum Aşağıdaki Gibidir,
SeriPortTLB_DataReceived Event Üzerinde Gelen Verinin Byte Olarak Textbox Üzerine Göndermem Gerekmektedir,
Gelen Veriyi Byte Olarak Nasıl Yazdırabilirim ?
Sizlerden Bu Konu Hakkında Bilgi Beklemekteyim, İyi Çalışmalar...

using DevComponents.DotNetBar.Metro;
using System;
using System.Windows.Forms;

namespace VeriOkuma
{
    public partial class VeriOkuma : MetroForm
    {
        public VeriOkuma()
        {
            InitializeComponent();
            Control.CheckForIllegalCrossThreadCalls = false;
        }

        private void BTNVeriGonder_Click(object sender, EventArgs e)
        {
            if (!SerialPortTLB.IsOpen)
                SerialPortTLB.Open();
            SerialPortTLB.Write(System.Convert.ToChar(2).ToString() + System.Convert.ToChar(1).ToString() + "DNG" + System.Convert.ToChar(13).ToString());
        }

        private void VeriOkuma_Load(object sender, EventArgs e)
        {
            if (SerialPortTLB.IsOpen)
            {
                SerialPortTLB.Close();
            }
        }

        private void SerialPortTLB_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            if (!SerialPortTLB.IsOpen) SerialPortTLB.Open();
            TXBGelenVeri.Text = SerialPortTLB.ReadExisting();
            SerialPortTLB.Close();
        }
    }
}

memoliz188

Merhaba veri gönderme ve almak istediğiniz cihazınız hangi protokolde olduğunu bilmelisiniz. Bir çok haberleşme protokolleri var RS232 bağlantı şeklidir bun yanında direk data alışverişi yapacaksanız aşağıdaki linki bir kontrol edin.
 
https://www.codeproject.com/Articles/75770/Basic-serial-port-listening-application

telbozan

   ReadByte( ) fonksiyonu yerine SerialPort.ReadLine() fonksiyonunu kullanmanızı öneririm. Yalnız bu fonksiyonu kullanabilmeniz için cihazınızın Gönderdiği verilerin sonuna 0x0A, 0x0D verilerini eklemesi gerekir.

telbozan

string yazi = System.Text.Encoding.UTF8.GetString(gelen_veri);
textBox1.Text = yazi;

Şeklinde yazdırabilirsiniz.