Visual-Basic 6: Joystick Achsen-Wete Auslessen und an Com-Port senden

borsti87

Grünschnabel
Hallo,
ich hab ein Problem, ich will meine Joystick Achsdaten in verträglich werte uwandeln und dan per call an meine send methode übergeben. Die Umwandlung hab ich soweit nur sobald ich versuche meine Send-Methode zu Callen wird mein Programm extrem verlangsammt zw. es hängt sich auf.

Die Joystick Achswert bekomme ich per Directinput als integer -32767 bis 32767
ich wandel dann den Wert in -4 bis 4 um
frage dan ab ob der wert größer oder kleiner 0 ist
wenn er kleiner 0 ist wird der Wert mi -1 Multipliziert und zusätlich eine Integer-Variable auf 1 gesetzt, siehe Code

Code:
Private Sub Timer1_Timer()
' --- Integer Wert -32767 bis 32767 in -4 bis 4
intXWert_new = intJoyXWert /8192

If intXWert_new > 0 then
   intFahrStufe = intXWert
   intFahrRichtung = 0

Elseif intXWert_new < 0 then
   intFahrStufe = intXWert * (-1)
   intFahrRichtung = 1

Elseif intXWert_new = 0 then
   intFahrStufe = 0
End If

End Sub

So jetzt möchte ich die Fahtrichtungs angabe und Die Fahrstufen aber gerne an fogenden Code Callen:
Code:
Public Sub sendFS_128()
' --- sendet den Fahrbefehl zu Zentrale
' --- akt. Adresse einlesen
int Adr = Val(txtAdresse.Text)
' --- Befehl hat die Syntax:
' --- XL Adresse, Fahrstufe, Licht, Fahrtrichtung, F1, F2, F3, F4
' --- und wird nun 'zusammengebaut'
Dummy = "XL" & intAdr & "," _
                      & intFahrStufe & "," _
                      & intLicht & "," _
                      & intFahrRichtung & "," _
                      & intF1 & "," _
                      & intF2 & "," _
                      & intF3 & "," _
                      & intF4 & vbCr

' --- Senden...
ComPort.Output = Dummy
Debug.Print Dummy

End Sub

Der versuch es so zu schreiben:
Code:
Private Sub Timer1_Timer()
' --- Integer Wert -32767 bis 32767 in -4 bis 4
intXWert_new = intJoyXWert /8192

If intXWert_new > 0 then
   intFahrStufe = intXWert
   intFahrRichtung = 0
   Call sendFS_128

Elseif intXWert_new < 0 then
   intFahrStufe = intXWert * (-1)
   intFahrRichtung = 1
   Call sendFS_128

Elseif intXWert_new = 0 then
   intFahrStufe = 0
   Call sendFS_128

End If

End Sub
ist übrigend gecheitert.
 
Zuletzt bearbeitet:
Zurück