vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 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
Re: Wie fragt man richtig eine COM-Schnistelle ab? 
Autor: Laserbrenner
Datum: 27.08.10 22:22

Option Explicit On
Option Strict Off
Imports System.IO.Ports
 
Public Class Form1
    Dim Wert(0 To 45) As Byte
    Dim zahler As Integer
    Dim PufferString As String
    Dim Startflag As Boolean
    Private Delegate Sub DelegateSub()
    Private Datenanzeigen As New DelegateSub(AddressOf Anzeigen)
 
    Sub Form1Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
      Handles MyBase.Load
        Startflag = False
        Dim EinzelPort As String
        For Each EinzelPort In My.Computer.Ports.SerialPortNames
            ComboBox1.Items.Add(EinzelPort)
        Next EinzelPort
    End Sub
 
    Private Sub Form1_FormClosing(ByVal sender As Object, _
                       ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                       Handles Me.FormClosing
        If SerialPort1.IsOpen Then SerialPort1.Close() ' Port wieder Schließen
    End Sub
 
    Private Sub verbinden_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles verbinden.Click
        With SerialPort1
            If Not .IsOpen Then
                Try
                    .PortName = ComboBox1.Text
                    .BaudRate = 38400
                    .DataBits = 8
                    .Parity = Parity.None
                    .StopBits = StopBits.One
                    .WriteTimeout = 1000                ' 1000 ms = 1 Sek.
                    .ReadTimeout = 1000                 ' 1000 ms = 1 Sek.
                    .Open()
                    verbinden.BackColor = Color.Green
                    verbinden.Text = "Verbunden"
                Catch ex As Exception
                    MessageBox.Show(ex.Message, "Fehler beim Open", _
                      MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Exit Sub
                End Try
            End If
        End With
    End Sub
 
    Sub Start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
      Handles Start.Click
        If Startflag = False Then
            Start.BackColor = Color.Red
            Start.Text = "Stopp"
            Timer1.Start()
            Startflag = True
        Else
            Start.BackColor = Color.Green
            Start.Text = "Starten"
            Timer1.Stop()
            Startflag = False
        End If
    End Sub
 
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Timer1.Tick
        With SerialPort1
            Try
                Dim ByteArray() As Byte = {&HFF, &H20, &H1, &HFE, &H0, &H2, _
                  &H66, &H42, &H10, &HB9}
                .BaseStream.Write(ByteArray, 0, ByteArray.Length)   ' 
                ' Einzelbytes senden
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Fehler beim Senden ...")
                Exit Sub
            End Try
        End With
    End Sub
 
    Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As _
      System.IO.Ports.SerialDataReceivedEventArgs) Handles _
      SerialPort1.DataReceived
        Dim enc As System.Text.Encoding = New System.Text.ASCIIEncoding()
        With SerialPort1
            Try
                For I As Integer = 1 To .BytesToRead    ' Alle Bytes einzeln 
                ' lesen
                    Dim ByteArray() As Byte = {.BaseStream.ReadByte} ' 1 Byte 
                    ' lesen
                    Wert(I) = CInt(ByteArray(0)) ' Array in String
                Next
                Me.Invoke(Datenanzeigen)    ' Delegaten aufrufen
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Fehler beim Empfangen ...")
            End Try
        End With
    End Sub
 
    Sub Anzeigen()
        Label8.Text = Wert(8)
        Label9.Text = Wert(9)
        Label10.Text = (Wert(10) * 255) + Wert(11)
        Label11.Text = Wert(12)
        Label24.Text = Wert(17)
        Label25.Text = (Wert(18) * 255) + Wert(19)
        Label26.Text = Wert(20)
        Label27.Text = Wert(21)
        Label28.Text = Wert(22)
        .
        .
        usw.
 
    End Sub
End Class
habt Ihr Ideen für die Sub SerialPort1_DataReceived und Sub Anzeige? Würde auch gerne eine übertragungsfehler abfrage mit reinmachen.

gruß
Matthias
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wie fragt man richtig eine COM-Schnistelle ab?1.512Laserbrenner27.08.10 22:22
Re: Wie fragt man richtig eine COM-Schnistelle ab?914Laserbrenner27.08.10 22:22
Re: Wie fragt man richtig eine COM-Schnistelle ab?1.031P-Velo28.08.10 09:37
Re: Wie fragt man richtig eine COM-Schnistelle ab?965Laserbrenner28.08.10 11:03
Re: Wie fragt man richtig eine COM-Schnistelle ab?884Laserbrenner30.08.10 14:31
Re: Wie fragt man richtig eine COM-Schnistelle ab?904P-Velo30.08.10 14:54
Re: Wie fragt man richtig eine COM-Schnistelle ab?902Laserbrenner30.08.10 15:54

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