vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Array Verschiebungen 
Autor: roadresident
Datum: 14.09.06 11:40

Hallo auch! Ich habe ein recht merkwürdiges Verhalten meines Programms...
Zum Hintergund. Ich kommuniziere mit einem Messgerät via RS 232. Wenn ich einenen Befehl zu messen sende ("M"), kommt die Antwort hinein, und wird ausgelesen (sie Code). Byte für Byte wird in einem Array gespeichert. Nun, es ommt zu einer Feldverschiebung innerhalb des Arrays. Eine ganz komische Sache. Wenn ihr möchtet, schicke ich euch den kompletten Code per Mail.
Hier mein Code:

Public Class Hauptfenster
    Dim WithEvents SerialPort As New System.IO.Ports.SerialPort("COM1", 9600, _
      Parity.None, 8, StopBits.One) 'Serial Port definieren
    Dim Befehl As String
    Dim sRead As String
    Dim Hell As String 'Helligkeit
    Dim x As String 'CIE x
    Dim y As String 'CIE y
    Dim Yt()  'Helligkeit Y temporär
    Dim RXArray(2047) As Char
    Public Delegate Sub StringSubPointer(ByVal Buffer As String)
 
 
    Private Function Auslesen()
        Dim array()
        Dim strRxChar As String
        sRead = sRead + strRxChar
        array = sRead.Split(",")
        'Received.Text = Received.Text & sRead
        'MsgBox(array(0))
        'Hell = CDbl(array(2))
        'Hell = CInt(Hell * 3.4262591)
        'TB_Helligkeit.Text = Hell
        'TB_x.Text = CDbl(array(3))
        'TB_y.Text = CDbl(array(4))
    End Function
    Public Sub SerialPort_DataReceived(ByVal sender As Object, ByVal e As _
      System.IO.Ports.SerialDataReceivedEventArgs) Handles _
      SerialPort.DataReceived
        Dim ByteArray(2047) As Byte
        Dim I As Integer = 0
        Dim RXByte As Byte
        While (SerialPort.BytesToRead > 0)
            RXByte = SerialPort.ReadByte
            If RXByte <> 0 Then
                RXArray(I) = Chr(RXByte)
                I = I + 1
            End If
        End While
        Dim RxString As New String(RXArray, 0, I)
        Received.BeginInvoke(New StringSubPointer(AddressOf Display), RxString)
    End Sub
    Private Sub Display(ByVal Buffer As String)
        Dim array() 'Array um Werte zu Extrahieren
        Received.AppendText(Buffer)
        array = Buffer.Split(",")
        Hell = CDbl(array(2))
        Hell = CInt(Hell * 3.4262591)
        TB_Helligkeit.Text = Hell
        'TB_x.Text = CDbl(array(3))
        'TB_y.Text = CDbl(array(4))
        TB_Arr0.Text = (array(0))
        TB_Arr1.Text = (array(1))
    End Sub
 
    Private Sub But_Ini_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles But_Init.Click
        SerialPort.ReceivedBytesThreshold = 20
        SerialPort.WriteBufferSize = 20
        SerialPort.ReadBufferSize = 20
        SerialPort.WriteTimeout = 100
        SerialPort.Open()
        SerialPort.RtsEnable = True
        SerialPort.RtsEnable = False 'RTS High Low zum Initialisieren 
        SerialPort.DtrEnable = True  'Empfangsleitung öffnen
    End Sub
 
    Private Sub But_Mess_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles But_Mess.Click
        SerialPort.RtsEnable = True   'RTS High
        Befehl = ("M1")
        SerialPort.WriteLine(Befehl)
 
    End Sub
Hier sind noch Screenshots:
nach ein mal messen: (links in den textbosen wird das array angezeigt, nur die ersten 3 felder)
http://www.roadresidents.de/carsten/screen1.jpg]
nach 2 mal messen:
http://www.roadresidents.de/carsten/screen2.jpg
nach 3 mal messen: Alles verschoben!
http://www.roadresidents.de/carsten/screen3.jpg
nach 5 mal messen ist alles wieder in Ordnung..
http://www.roadresidents.de/carsten/screen5.jpg

Ich hoffe, ihr könnt mir helfen!
Besten Dank, Carsten

DJ Booking + Veranstaltungstechnik: www.roadresidents.de

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Array Verschiebungen1.437roadresident14.09.06 11:40
Re: Array Verschiebungen674roadresident18.09.06 11:14

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel