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