Wie ein Array Füllen über die RS232

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Wie ein Array Füllen über die RS232

    Hallo ich habe volgendes Problem und zwar möchte ich ein Array befüllen die daten kommen von der RS232,
    egal wie es drehe und wende, ich schaffe es nicht, meine Daten in den Array abzulegen ...

    VB.NET-Quellcode

    1. For I As Integer = 1 To .BytesToRead
    2. Dim ByteArray() As Byte = {.BaseStream.ReadByte}
    3. PufferString = CRC.ByteToHex(ByteArray)
    4. Dim Motoren() As String ' da sollten die daten von pufferstring stehen !!!
    5. Motoren.add(PufferString, 0, PufferString.Length - 1)
    6. Me.Invoke(Datenanzeigen)
    7. Next


    für einen kleinen Tip wäre ich schon dankbar ....
    Ich gehe mal davon aus, das Dein Code irgendwo so aussieht.

    VB.NET-Quellcode

    1. Dim toRead() As Byte
    2. Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    3. Dim nbToRead As Integer = SerialPort1.BytesToRead
    4. ReDim toRead(nbToRead)
    5. SerialPort1.Read(toRead, 0, nbToRead)
    6. End Sub
    Oder hast Du da noch VB6-Zeugs drin stehen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    fast ich habe mir drei möglichkeiten aufgebaut um daten zu empfangen ..

    VB.NET-Quellcode

    1. Select Case SendeVariante
    2. Case 1
    3. SerialPort1.Read(ByteIn, 0, bytesImBuffer)
    4. Me.Invoke(New EventHandler(AddressOf motoren))
    5. Case 2
    6. Dim bytes As Byte = .BytesToRead
    7. Dim comBuffer As Byte() = New Byte(bytes - 1) {}
    8. PufferString = CRC.ByteToHex(comBuffer)
    9. Me.Invoke(Datenanzeigen) ' Delegaten aufrufen
    10. Case 3
    11. For I As Integer = 1 To .BytesToRead ' Alle Bytes einzeln lesen
    12. Dim ByteArray() As Byte = {.BaseStream.ReadByte} ' 1 Byte lesen
    13. PufferString = CRC.ByteToHex(ByteArray)
    14. Me.Invoke(New EventHandler(AddressOf motoren))
    15. 'Me.Invoke(Datenanzeigen)
    16. Next
    17. Case Else

    nein VB 6 habe ich nicht, ist nicht mal auf dem Rechner ...
    Gib Deinem Programm bitte mal Option Strict On.
    Wo liegt denn nun Dein Problem :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. Dim toRead() As Byte
    2. Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    3. Dim nbToRead As Integer = SerialPort1.BytesToRead
    4. ReDim toRead(nbToRead)
    5. SerialPort1.Read(toRead, 0, nbToRead)
    6. End Sub
    toRead ist ein Array.
    Wo ist das Problem?
    Bitte beschreib das so genau, dass ich Dir nich t jede Information einzelnb aus der Nase ziehen muss. X(
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Mach da mal bitte ein neues Thema draus, vllt. mit einem gemalten Diagramm.
    Kopiere Deinen Post in einen neuen Thread, lösche Deinen Post hier und drück auf den Erledigt-Button.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!