Hi,
ich habe eine Verbindung zu einen Mikrocontroller mit einer RS232 Verbindung. Generell klappt die Verbindung, schicke ich nur viele, ca. 80 Strings (z.B.: "83|00|22|44") auf einmal holt er sich die irgendwie nicht alle ab. Er bleibt mittendrin stehen. Wenn ich jetzt was zum Mikrocontroller sende, empfängt die Serielle Schnittstelle wieder 5 Strings von denen die vorher "vergessen" wurden. Das geht dann immer so weiter... Ich habe seit neuem ein Seriell auf Ethernet Konverter Konverter, vermutlich liegt es daran. Die Einstellungen des Gerätes habe ich in den Anhang gepackt!
Dazu sagen muss ich noch, dass wenn ich die Werte mal mit einem Terminal Programm sende und auch empfange, geht alles wunderbar. Die Einstellungen des Terminals habe ich auch nach unten gepackt.
Wodran kann das wohl liegen?
Code im Anhang...
ich habe eine Verbindung zu einen Mikrocontroller mit einer RS232 Verbindung. Generell klappt die Verbindung, schicke ich nur viele, ca. 80 Strings (z.B.: "83|00|22|44") auf einmal holt er sich die irgendwie nicht alle ab. Er bleibt mittendrin stehen. Wenn ich jetzt was zum Mikrocontroller sende, empfängt die Serielle Schnittstelle wieder 5 Strings von denen die vorher "vergessen" wurden. Das geht dann immer so weiter... Ich habe seit neuem ein Seriell auf Ethernet Konverter Konverter, vermutlich liegt es daran. Die Einstellungen des Gerätes habe ich in den Anhang gepackt!
Dazu sagen muss ich noch, dass wenn ich die Werte mal mit einem Terminal Programm sende und auch empfange, geht alles wunderbar. Die Einstellungen des Terminals habe ich auch nach unten gepackt.
Wodran kann das wohl liegen?
Code im Anhang...
VB.NET-Quellcode
- Public Class Form_Homevision
- Dim SerialInput As String = ""
- Private Sub Form_Homevision_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Try
- SerialPort1.PortName = Form_Settings.TB_Com.Text
- SerialPort1.BaudRate = 9600
- SerialPort1.Parity = IO.Ports.Parity.None
- SerialPort1.DataBits = 8
- SerialPort1.StopBits = IO.Ports.StopBits.One
- SerialPort1.Handshake = IO.Ports.Handshake.None
- SerialPort1.RtsEnable = True
- SerialPort1.Open()
- Catch ex As Exception
- Form_Settings.Label2.Text = "Verbindung unterbrochen"
- End Try
- If SerialPort1.IsOpen Then
- Form_Settings.Label2.Text = "Verbindung hergestellt"
- SerialPort1.DiscardInBuffer()
- SerialPort1.DiscardOutBuffer()
- SerialPort1.Write("11|22|33|44" + Chr(13))
- End If
- End Sub
- '//Daten empfangen von der seriellen Schnittstelle
- Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
- Try
- If SerialPort1.IsOpen Then
- SerialInput = SerialPort1.ReadLine()
- Me.Invoke(New EventHandler(AddressOf DoUpdate))
- End If
- Catch ex As Exception
- End Try
- End Sub
- Public Sub DoUpdate()
- ' Dim b As String
- ' ListBox füllen
- If StopAufzeichnung = False Then
- Form_Settings.ListBox1.Items.Insert(0, "Recv: " & SerialInput & " - " & TimeOfDay & " - " & Today)
- End If
- If SerialInput.Contains("|") = True Then
- AuswSerialInp(SerialInput)
- End If
- End Sub
- Public Sub AuswSerialInp(ByVal sInput As String)
- Try
- ' String in Array packen
- Dim sPraefix() As String = {0, 0, 0, 0}
- Dim iPraefix() As Integer = {0, 0, 0, 0}
- ' auf "|" splitten
- sPraefix = sInput.Split(CChar("|")) 'erster Seperator
- ' Integer Wert umwandeln
- iPraefix(0) = CInt(sPraefix(0))
- iPraefix(1) = CInt(sPraefix(1))
- iPraefix(2) = CInt(sPraefix(2))
- iPraefix(3) = CInt(sPraefix(3))
- '##############################################
- '##############################################
- 'Status vom Mikro
- '##############################################
- '##############################################
- Select Case iPraefix(0)
- '79-Heizung ist ein
- Case 79
- '##############################################
- ' Raum
- '##############################################
- Select Case iPraefix(1)
- Case 1
- '##############################################
- '##############################################
- Select Case iPraefix(2)
- '##############################################
- Case 1
- Select Case iPraefix(3)
- ' Aus
- Case 0
- ...
- ...
- ...
- ...
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Alex0815“ ()