PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Com-Port Maus



Michael 123
31.12.2005, 10:05
Hallo,

ich habe in den Ferien mir überlegt wie ich meinen Roboter verbessern kann. Da bin ich auf die Idee gekommen ihm einfach die alte Com-Port Maus zur besseren Nafiagtion unter dran zu bauen. Nun habe ich dann doch ein Problem bekommen. Wie zeige ich die Daten auf dem Monitor an? Ok ein kleines Terminal Programm gesucht und gefunden und die Maus mal in alle Himmelsrichtungen bewegt. Da kammen die Daten nur so gelflogen auf den Bildschirm. Hab dan überlegt welche der Daten nur für die eine Richtung sind und welche für die Anderen. Hab das Programm umgeschrieben und getestet. Maus gerade aus bewegt und es zeigete auf den Bildschirm eiene Schräge lineie nach unten an. Also mal die Maus geöffnet. Das Rädchen welches für dei Bewegung nach oben zustäandig ist gedreht. Nur das kein anderes (Kugel ist ausgebaut). Und die Linie ging immernoch nach untern rechts. Na gut umprogrammiert wieder getestet aber es geht nicht. Das ganze in VIsual Basic.

Nun meine Frage:
Hat jemand schon so ein Programm geschriegen welches ich verwenden kann? Oder kann mir jemand tipps geben wie ich es machen muss.


Dim n
Dim Y1, Y2, X1, X2


Private Sub Check1_Click()
If Check1.Value Then DTR 1 Else DTR 0
End Sub

Private Sub Check2_Click()
If Check2.Value Then RTS 1 Else RTS 0
End Sub

Private Sub Command1_Click()
CLOSECOM
OPENCOM Text1.Text
DTR 0
Check1.Value = False
RTS 0
Check2.Value = False
End Sub

Private Sub Command2_Click()
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
End Sub

Private Sub Form_Load()
OPENCOM "COM2:1200,N,8,1"
DTR 0
Check1.Value = False
RTS 0
Check2.Value = False
Y2 = 50
X2 = 50
End Sub
Private Sub Form_Unload(Cancel As Integer)
CLOSECOM
End Sub
Private Sub Text2_Change()
If Text2.Text > "" Then Char = Asc(Right$(Text2.Text, 1))
If Char = 10 Then
Byt$ = (Right$(Text2.Text, 5))
dat = Val(Byt$)
dat = dat And 255
SENDBYTE dat
End If
End Sub

Private Sub Text4_KeyPress(KeyAscii As Integer)
SENDBYTE KeyAscii
End Sub

Private Sub Timer1_Timer()
Y1 = Y2
X1 = X2
Do
dat = READBYTE
If dat > -1 Then
Text3.Text = Text3.Text + Str$(dat) + " "
n = n + 1
If n = 8 Then n = 0: Text3.Text = Text3.Text + Chr(13) + Chr(10)
Text3.Refresh
End If
If Str$(dat) = 204 Then Y2 = Y1 + 1 'Daten der Maus
If Str$(dat) = 192 Then Y2 = Y1 - 1 ' -"-
If Str$(dat) = 192 Then X2 = X1 + 1 ' -"-
If Str$(dat) = 195 Then X2 = X1 - 1 ' -"-
'runter 204 hoch 192 rechts 195 links 192
Picture1.Line (X1, Y1)-(X2, Y2)
If (dat > -1) And (dat <> 13) And (dat <> 19) Then
Text5.Text = Text5.Text + Chr$(dat)
End If
If dat = 13 Then
Text5.Text = Text5.Text + Chr$(13) + Chr$(10)
Text5.Refresh
End If
Loop Until dat = -1
If CTS = 1 Then Check3.Value = 1 Else Check3.Value = 0
If DSR = 1 Then Check4.Value = 1 Else Check4.Value = 0
If DCD = 1 Then Check5.Value = 1 Else Check5.Value = 0
If RI = 1 Then Check6.Value = 1 Else Check6.Value = 0
End Sub

Hier noch das Progamm in Visual Basic.

mfg
Michael

ruediw
31.12.2005, 10:20
Du musst zuallererst wissen,
was für ein Protokoll deine Maus sendet ...

Habe mal hier eine URL für Dich
http://freedos-32.sourceforge.net/showdoc.php?page=sermouse

Viel Glück
Ruedi

Michael 123
31.12.2005, 10:24
Hallo,

danke für die schnelle Antwort.

Es ist das Protocoll "M" Microsoft (or MS) protocol, 2 buttons .

mfg
Michael

ruediw
31.12.2005, 10:39
Gib mir (uns) bitte in diesem Forum Bescheid wenn es
klappt. Möglicherweise sind andere Benutzer auch daran
interessiert ...
Ruedi

PicNick
31.12.2005, 13:08
Gib mir (uns) bitte in diesem Forum Bescheid wenn es
klappt.
Was meinst du ? das Mäuseprotokoll ?

ruediw
31.12.2005, 13:37
@PicNick:

hast Du den obenstehenden Link mal besucht ?
MfG
Ruedi

PicNick
31.12.2005, 13:50
Ja doch, sonst red' ich ja nix. Die Sache ist aber bekannt, früher waren ja Mäuse für com-ports durchaus üblich.
Man muß ja in der Grundfunktion nur die entsprechenden Bits zusammenklauben.
Ich hab es für praktisch gefunden, weil ja zwischengespeichert wird, eigentlich ein komplettes odometrie-center mit kollissions-buttons.