Re: VB6 comm vezérlő

Famulus Számítástechnika hwsw at famulus.hu
Wed Nov 8 18:35:14 CET 2006


>Van egy kis gondom a VB6-al. Összedobtam egy progit, ami a soros porton
>>kiküld egy karaktersorozatot, a port végén az avr összehasonlítja 
>>valamivel,
majd vagy azt küldi vissza hogy egyezik vagy azt hogy nem egyezik.

>A gondom a fogadással van. Az első karaktersorozatot még jól fogadja a

....van annak a vezerlonek egy csomo tulajdonsaga ami hat az inputra.

De nem is szoktam inputtal hasznalni inkabb esemeny vezerelten
sajat kezuleg emesztve a bejovo karakterket,
Ugyis kell altalaban egyeb eloirasokat is teljesiteni a
kommunikacio soran.

Valami ilyesmi altalaban...


Private Sub Form_Load()

    'Crctest = Chr(2) + Chr(28) + Chr(184) + Chr(1) + Chr(0) + Chr(0) + 
Chr(0)
    'Debug.Print CRC8F(Crctest)

    MSComm1.CommPort = 1
    'MSComm1.Settings = "57600,N,8,1"
    MSComm1.RThreshold = 1
    MSComm1.InputLen = 1
    MSComm1.PortOpen = True
    'Reset
    MSComm1.Output = "<RE> "

    Maxkar_uart1 = 30
    Status_uart1 = 20


End Sub

----------------------

Private Sub MSComm1_OnComm()

    Dim Getkar_uart1 As String

    If MSComm1.CommEvent = comEvReceive Then
        'DoEvents

        Getkar_uart1 = MSComm1.Input

        Select Case Status_uart1
            Case 0
            'Nem fogad

            Case 99
            'Var a feldolgozasra

            Case 10
            'Var a < karakterre
                If Getkar_uart1 = "<" Then
                    Puffer_uart1 = Space(30)
                    Erkezett_uart1 = 0
                    Timeout_uart1 = 100
                    Status_uart1 = 20
                End If

            Case 20
            'Gyujtoget, vagy hibara fut
                If Timeout_uart1 = 0 Then
                'Nem vegzett idoben
                    Status_uart1 = 10
                ElseIf Erkezett_uart1 = Maxkar_uart1 Then
                'Tul sok jott > nelkul
                    Status_uart1 = 10
                ElseIf Getkar_uart1 = "<" Then
                'Rosszkor jott < karakter
                    Status_uart1 = 10
                ElseIf Getkar_uart1 = ">" Then
                'Itt a vege,meg kell a CRC
                    Status_uart1 = 30
                Else
                'Gyujtogeti a karaktereket
                    Erkezett_uart1 = Erkezett_uart1 + 1
                    Mid(Puffer_uart1, Erkezett_uart1, 1) = Getkar_uart1
                End If

            Case 30
            'CRC-re var
                Crc_uart1 = Getkar_uart1
                Timeout_uart1 = 0
                Status_uart1 = 99
                txtComComplete = IIf(txtComComplete = "<>", "--", "<>")
        End Select

    End If

End Sub

Private Sub Form_Unload(Cancel As Integer)
    'MSComm1.PortOpen = False
End Sub 



More information about the Elektro mailing list