Anasayfa » Forum

Bildirimler

seri port read  

  RSS
 Anonim

merhaba arkadaşlar


visual basic 2010 .net kullanmaktayım. bir konuda takıldım yardımcı olabilirmisiniz. acaba. seriport tan gelen bilgiyi textbox a yazdırmak istiyorum. formun üzerine bir tane timer ekledim. bir tanede seriport1 ve textbox1. seri porta gelen veriyi textboxa nasıl aktarabilirim acaba. aşağıda bir kod var ama bununlada bir türlü çalışmıyor


        SerialPort1.Open()
        SerialPort1.Read(Chr(TextBox1.Text))
        SerialPort1.Close() 

Alıntı
Gönderildi : 25/02/2011 17:27
soner koca
(@sonerkoca)
Üye

Private Sub DataAL()
Dim Data As Variant
    Do
        DoEvents



    Loop Until Serialport1.InBufferCount > 0



    Data = Serialport1.Input



     textbox1.text= Data



End Sub

CevapAlıntı
Gönderildi : 25/02/2011 18:42
 Anonim

merhaba, yardımlarınız için teşekkür ederim. yalnız bu kodlar visual basic 2010 da çalışmıyor. ben bir yerde hatamı yapıyorum acaba

CevapAlıntı
Gönderildi : 25/02/2011 19:33
soner koca
(@sonerkoca)
Üye

Projende "Imports System.IO.Ports " class ı eklimi ?


portu açma olayını timer  in dışında yapmayı denermisin? hatta tüm işlemleri timer ın dışında yap.Timer olayının interval süresi içersinde herhangi bir data alınmadığında textboxa yazmaz. Bir buton koy butona tıklandığında portu açsın sonra döngü kurarak gelen veriyi textboxa aktarabilirisn.


"SerialPort1.Read(Chr(TextBox1.Text)) " bu komut satırını


aşağıdaki gibi yaparak deneyebilirsin.


data=SerialPort1.ReadLine()
textbox1.text=data

CevapAlıntı
Gönderildi : 26/02/2011 10:48
 Anonim

merhaba, söylediğiniz şekilde yaptığımda hata veriyor. data komutunun alt satırı hatalı şeklinde uyarısı var. öncelikle şunu anlatayım. bir tane dışardan çalışan özel bir buton var. özel yapım bir buton. butona basınca programda textboxın içerisinde "A1" şeklinde bir komut geliyor. timer nesnesi eklememin nedeni sürekli sorgu yapması. timer ı kullanmak benimde işime gelmiyor. şimdi aşağıdaki şekilde komutları kullandığım da seri port tan veri alışı yapmayı başardım. ama timer nesnesi canımı sıkıyor. aşağıdaki kodları incelerseniz eğer timer nesnesi olmadan nasıl veriyi alabilirim.


Public Class Form1


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If SerialPort1.IsOpen Then
            Dim data As String = SerialPort1.ReadExisting()
            Try
                TextBox1.Text = data
            Catch ex As Exception
            End Try
        End If
        If TextBox1.Text = "1.bant" Then TextBox2.Text = "1.BANT"


    End Sub


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


        Me.Show()


        Try
            SerialPort1.Close()
            SerialPort1.PortName = "COM2"
            SerialPort1.Open()
            TextBox1.Text = SerialPort1.ReadChar
        Catch ex As Exception
            MessageBox.Show(ex.Message, "COM2")
        End Try
    End Sub


End Class

CevapAlıntı
Gönderildi : 07/03/2011 10:59
soner koca
(@sonerkoca)
Üye

*************** Verinin otomatik olarak çekilmesi 


Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, _ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _Handles SerialPort1.DataReceived
inputData = SerialPort1.ReadExisting
Me.Invoke(New EventHandler(AddressOf GelenData))
End Sub


****************  Alınan verinin kontrollerde gösterilmesi
Public Sub GelenData()
TextBox1.Text = TextBox1.Text & inputData
End Sub

CevapAlıntı
Gönderildi : 07/03/2011 12:40
Paylaş: