Forum: PC-Programmierung VB 6.00 Rs232


von Dirk (Gast)


Lesenswert?

Hi,

ich arbeite mich gerade in Visual Basic 6.00 ein. Ich hatte zuerst mit
VC++ (MFC App) angefangen. Leider bin ich ein Neuling in der
Programmierung am PC und bin erstmal zum Einstieg dabei VB 6.00
zulernen.

Ich hab mich stundenlang durch das Internet gelesen, aber wirklich
verstanden hab ich anscheinend nicht alles.

Dieses VB 6.00 soll eine Debugsoftware für meine AVR's werden.
Die AVR's programmiere ich mittels AVR GCC. Der AVR sendet ueber die
RS232 Schnittstelle mir Hex Werte (z.B. startbyte, adcwert1, adcwert2,
command, crc, endbyte).

Soweit so gut. Mein Problem ist viel mehr die PC Seite. Ich habe
gelesen das man die Windows API zur seriellen Kommunikationen nutzt.

Dabei bin ich auf die diverse Komponenten gestossen. Die Komponenten
die mir gefallen kosten leider alle viel Geld.

Ich wollte Fragen welche Komponente (Freeware) ihr so nehmt oder
empfehlen koennt.

Wie gesagt ich bin Anfänger und suche eigenlich eine Komponente wie
z.B. die Uart Lib von Peter Fleury für AVR GCC. Sprich mit Ringbuffer
für Empfang und senden.

Ich hoffe mir kann jemand ein bischen weiterhelfen.

Mfg
Dirk

von Dirk (Gast)


Lesenswert?

Ups,

die Freeware Komponente sollte auf die WinAPI nutzen.

Dirk

von Rufus T. Firefly (Gast)


Lesenswert?

Um mit VB mit der seriellen Schnittstelle zu kommunizieren, benötigt man
keine zusätzlichen Komponenten.
Das mit VB mitgelieferte MSCOMM.OCX genügt vollends.

von Dirk (Gast)


Lesenswert?

Hi,

hm ist die nicht kostenpflichtig? bzw. installiert ist die bei mir
nicht.

Mfg
Dirk

von Weihnachtsmann (Gast)


Lesenswert?

Hallo

Ich hatte mich früher auch mal mit VB abgemüht und ich glaube die
komponente MSCOMM.OCX war kostenlos.

Wenn nicht schau mal unter:

http://www.b-kainka.de/msrwin.htm

Gruss

Bald kommt der Weihnachtsmann

von Weihnachtsmann (Gast)


Lesenswert?

Hallo

Hier hat dir der Weihnachtsmann noch ein Geschenk:

http://www.the-starbearer.de/Praxis/Programmieren/VBPraxis.htm

Gruss

Übermorgen kommt der Weihnachtsmann

von Dirk (Gast)


Lesenswert?

Hi,

vielen Dank.

Der Weihnachtsmann kommt schon morgen ;)

Mfg
Dirk

von ChrisB (Gast)


Lesenswert?

Schau dir das mal an, falls Du es noch nicht kennst :

http://www.activevb.de/tutorials/tut_com/com.html

Die Seite www.activevb.de kann ich sowieso nur jedem VB Entwickler
empfehlen. Viele gute Tipps, und ein hilfsbereites Forum !!

Gruß

von Jürgen Schuhmacher (Gast)


Lesenswert?

Wenn Du effektiv mit MS an der RS-232 arbeiten willst, empfehle ich Dir
mal frech meine Seite. Dort steht viel über wxWidgets. Wenn Du gerade
beginnst, solltest Du Dir das unbedingt mal ansehen.

http://home.arcor.de/juergen.schuhmacher/programming%20with%20wxwidgets.html

Anschließend findest Du hier die Sources zur seriellen Programmierung:
www.iftools.com. Wenn Du das dortige Beispiel ein wenig umschreibst,
bist du schon fertig!

Als ich damals damit anfing, hatte ich in weniger als 20 Stunden netto
meine komplette RS-232-Applikation fertig, ohne das System vorher je
benutzt zu haben und die meisten Stunden waren Testen, Oberfläche
geraderücken und bunt machen :-)

von Django (Gast)


Lesenswert?

Ich würde auch mscomm empfehlen habe selber ein Programm geschrieben in
dem ich Daten von einem Atmel empfange und auswerte! Lese Dir mal die
Hilfe Von VB6 durch ist eigentlich ziemlich gut erklärt.

von KlaRa (Gast)


Lesenswert?

Hallo Dirk,
unter VB6.0 gibt es das Bespielprogramm VBTerm. Das ist ein komplettes
Terminalprogramm in VB und nutzt den MSCOMM.OCX.

Hier der Anfang der Ereignisfunktion in die Du Dich einklinken musst.
Vergleich ihn mal mit den Originalsource.

' Mit dem OnComm-Ereignis werden
' Kommunikationsereignisse und -fehler
' behandelt.
Private Static Sub MSComm1_OnComm()
    Dim EVMsg$
    Dim ERMsg$
    Dim Zeichenkette As String
    Dim iPos         As Integer
    Dim cMeldeZeile  As String
    Dim iLen         As Integer
    Dim iLenMin      As Integer
    Dim iLenMax      As Integer

    ' Verzweigen entsprechend der CommEvent-
    ' Eigenschaft.
    Select Case MSComm1.CommEvent
        ' Ereignis-Meldungen
        Case comEvReceive
            Dim Buffer As Variant
            Buffer = MSComm1.Input
            Zeichenkette = StrConv(Buffer, vbUnicode)
            Debug.Print "Empfangen - " & Zeichenkette
            ShowData txtTerm, (Zeichenkette)
            If mnuAS_SpeichernAus.Enabled Then
                ' Anzeigen der Eingangswerte EWS
                ' ------------------------------
                ' EWS 1072 B0A2M2K1 255      Länge = 21
                ' Kenner
                '     Zeitschlitz
                '          I2C Bus
                '            I2C Adresse
                '              Muxer 1-3
                '                Kanal 0-7
                cMeldeZeile = ""
                cBufferSW = cBufferSW & Zeichenkette
                iPos = InStr(cBufferSW, "EWS ")
                iLen = 21
                If iPos = 0 Then
                    cBufferSW = ""
                Else
                    If iPos > 1 Then
                        cBufferSW = Mid$(cBufferSW, iPos)
                    Else
                        ' steht schon vorne
                    End If
                    iPos = InStr(cBufferSW, Chr(13) & Chr(10))
                    Select Case iPos
                    Case 0
                        If Len(cBufferSW) > iLen + 1 Then
                            cBufferSW = ""
                        End If
                    Case iLen + 1
                        cMeldeZeile = Left(cBufferSW, iLen)
                        If Len(cBufferSW) > iLen + 2 Then
                            cBufferSW = Mid$(cBufferSW, iLen + 3)
                        Else
                            cBufferSW = ""
                        End If
                        frmZeigeWerte.txtGanzerText.Text = cMeldeZeile
                        MessWertSpeichern (cMeldeZeile)
                    Case Else
                        cBufferSW = ""
                    End Select
                End If

Gruss Klaus.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.