visual basic express 2010 kurdum amacım seri porttan veri almak biraz örnek buldum ama pek anlayamadım port ayarları seri port nesnesini koyunca kenarda pencere üzerinde yapılıyo ama forma neler eklemeliyim birde bufferi byteler halinde okuma ve bütün bufferi okumak farklı yollarla oluyor sanırım
tanımlama yapmam gerekiyormu
portu nasıl acıcam
gelen byte textbox içini nasıl yazıcam
asıl amacım lrc hesaplaması yapmak verileri dürüst bütün almayı öğrenmeden başlamayayım dedim.
ilhan yaptığın çalışma ile ilgili kodlarını koyarsan dahada yardımcı oluruz. gayet basit aslında
hocam daha kod yok ortada asıl sorun bu zaten :-\
vb6 için biliyoum, burdaki kritik nokta mscomm1.rthreshold=1 yapmak, gerisi mscomm1.input, belki 2010da da böyle bişey vardır
hocam bir örnek var aslında ama ben bu kadar seçenek istemiyorum
http://tiktakx.wordpress.com/2010/11/21/serial-port-interfacing-with-vb-net (http://tiktakx.wordpress.com/2010/11/21/serial-port-interfacing-with-vb-net)
daha basit bişi yapmaya çalışıyorum adam butonların isimleri falan değiştirmiş bişi anlamıyom hani buton1 buton1 olarak kalsa kodmu butonun adımı anlıyacam formda 1 kutuda gönderdiğim tek bir byte görülsün istiyorum
bunlar ne için eklendi mesela hiç bir fikrim yok
Imports System
Imports System.ComponentModel
Imports System.Threading
Imports System.IO.Ports
http://muhittinkaplan.com/2013/07/stm32f4discovery-ile-mpu-6050-3-eksen-gyro-ve-3-eksen-ivmeolcer/#more-197 (http://muhittinkaplan.com/2013/07/stm32f4discovery-ile-mpu-6050-3-eksen-gyro-ve-3-eksen-ivmeolcer/#more-197)
mesaj birleştirme:: 10 Mayıs 2014, 22:43:32
hocam burada bir seriport örneği vardır
Merhaba,
Seriport1 "SerialPort1_DataReceived"eventına aşağıdaki kod ile PIC PC'ye klavye sıfır yolladığı zaman formdaki
picturebox1'in rengi kırmızı olur.
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim gelen As Byte = SerialPort1.ReadByte
'--------------------------------------------------------
If gelen = 48 Then ' "0" hex(30) PIC'in PC'ye yolladığı bir byte lık data
PictureBox1.BackColor = Color.Red
End If
'--------------------------------------------------------
End Sub
(http://s28.postimg.cc/bwxp1tpih/v_b.jpg) (http://postimg.cc/image/bwxp1tpih/)
Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel
Public Class Form1
'------------------------------------------------
Dim myPort As Array
Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data
'------------------------------------------------
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
myPort = IO.Ports.SerialPort.GetPortNames()
ComboBox1.Items.AddRange(myPort)
End Sub
'------------------------------------------------
Private Sub ComboBox1_Click(sender As System.Object, e As System.EventArgs) Handles ComboBox1.Click
End Sub
'------------------------------------------------
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
SerialPort1.PortName = ComboBox1.Text
SerialPort1.BaudRate = ComboBox2.Text
SerialPort1.Open()
Button1.Enabled = False
Button4.Enabled = True
End Sub
Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
SerialPort1.Close()
Button1.Enabled = True
Button4.Enabled = False
End Sub
Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
ReceivedText(SerialPort1.ReadExisting())
End Sub
Private Sub ReceivedText(ByVal [text] As String) 'input from ReadExisting
If Me.RichTextBox2.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.RichTextBox2.Text &= [text] 'append text
End If
End Sub
Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
End Sub
Private Sub RichTextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox2.TextChanged
End Sub
End Class
muhittin hocam sizin koda bakaraktan bulduğum daha basit bir örneği sadeleştirdim gelen bytelar yazılıyo ama ben bu gelen dataları işlemek istiyorum bunları bir array içine nasıl alırım
ilhan gönderdiğiniz bilgi nasıl bir formatta ?
unsigned char temp[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x0d,0x0a};
hocam ascii olarak gönderdim yukarıdaki diziyi gönderdim denemek için
benim genelde uyguladığım yöntem şu bunların hepsini sprintf ile bir string e alıyorum sonuna \r\n kuyuyorum ve gönderiyorum.
pc tarafınnda readline ile alıyorum. bu \r\yi görene kadar alıp bir değişkenin içerisine atıyor.
sonra istediğin gibi böl parçala
mesaj birleştirme:: 11 Mayıs 2014, 16:04:31
sana verdiğim örnek öyle olması lazım
hocam veriyi read line ile aldım mesaj boyu her veri paketi geldiğinde uzuyor.
bufferi her veri paketi alımında temizlememmi gerikiyor