Binärsignal an DCD der seriellen Schnittstelle abfragen..

Cenny

Grünschnabel
Hallo,

ich bin's mal wieder ;)

Also, wir haben noch ein Problem, und zwar haben wir ja eine Fernbedienung und den Infrarotempfänger an den Com-Port angeschlossen. Der Empfänger gibt ein binäres Signal an den DCD-Eingang der seriellen Schnittstelle. Wie kann ich das auslesen?

Also, wir haben es mit einem Timer versucht und dort den Interval auf 1 gesetzt, aber ich glaube, der war noch zu langsam, diese Infrarotsignal ist ja total fix.
Hat jemand von euch eine Ahnung, wie man dort das Signal auslesen und festhalten kann?

Also nochmal zur Erläuterung, das Signal, dass dort ankommt ist 13 Zeichen lang, Beispiel: "1010100110010" Wir müssten also diese dreizehn Zeichen festhalten und dann den Funktionen zuweisen, die dann passieren sollen. das Zuweisen ist kein Problem, aber wie kann ich diese Signal festhalten?

Ich hatte gedacht es in einer versteckten Textbox zu speichern, dort kann man ja einfach Signale immer wieder anhängen (Text1.Text = Text1.Text + NEUESZEICHEN), aber wie kann ich das genau machen. Oder gibt es eine einfachere und will bessere Lösung?

Bitte, bitte helft mir, ihr komme nicht weiter und brauche unbedingt und vor allem schnelle Hilfe!

DANKE

MfG, Cenny..
 
ok, also..
ich bin jetzt schon wieter gekommen.
und zwar habe ich gefunden, dass man das CommControl gut benutzen kann.
Hierfür muss man das "Microsoft Comm Control" in der Componenten Liste hinzufügen. Auf Active VB habe ich auch eine sehr gut Beschreibung für die Benutzung des Controls gefunden (http://www.activevb.de/tutorials/tut_com/com.html).
Jetzt habe ich folgenden Code probiert, nur um zu gucken, ob es klappt, doch funktioniert das nicht..
Auch mit dem Beispiel auf der Seite, umgeschrieben au funseren DCD-Eingang, geht es leider nicht.

hier mal der Source:
Code:
Private Eingang As String
Private Const STARTTOGGLEEINS = "111"
Private Const STARTTOGGLENULL = "110"
Private Const FF = STARTTOGGLENULL + "10101110100"
Private Const RW = STARTTOGGLENULL + "10101110010"
Private Const PAUSE = STARTTOGGLENULL + "10101110000"
Private Const PLAY = STARTTOGGLENULL + "10101110101"
Private Const STOPP = STARTTOGGLENULL + "10101110110"
Private Const POWER = STARTTOGGLENULL + "10101001100"
Private Const BACK = STARTTOGGLENULL + "10101100001"
Private Const NAEXT = STARTTOGGLENULL + "10101100000"
Private Const VOLMIN = STARTTOGGLENULL + "10100010001"
Private Const VOLPLUS = STARTTOGGLENULL + "10100010000"
Private Const PROGRAM = STARTTOGGLENULL + "10101100100"
Private Const REPEAT = STARTTOGGLENULL + "10101011101"
Private Const SHUFFLE = STARTTOGGLENULL + "10101011100"
Private Const FF1 = STARTTOGGLEEINS + "10101110100"
Private Const RW1 = STARTTOGGLEEINS + "10101110010"
Private Const PAUSE1 = STARTTOGGLEEINS + "10101110000"
Private Const PLAY1 = STARTTOGGLEEINS + "10101110101"
Private Const STOPP1 = STARTTOGGLEEINS + "10101110110"
Private Const POWER1 = STARTTOGGLEEINS + "10101001100"
Private Const BACK1 = STARTTOGGLEEINS + "10101100001"
Private Const NAEXT1 = STARTTOGGLEEINS + "10101100000"
Private Const VOLMIN1 = STARTTOGGLEEINS + "10100010001"
Private Const VOLPLUS1 = STARTTOGGLEEINS + "10100010000"
Private Const PROGRAM1 = STARTTOGGLEEINS + "10101100100"
Private Const REPEAT1 = STARTTOGGLEEINS + "10101011101"
Private Const SHUFFLE1 = STARTTOGGLEEINS + "10101011100"

Private Sub cmd_end_Click()
Unload Me
End Sub

Private Sub Form_Load()
MSComm1.PortOpen = True
End Sub

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


Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
    Case comOverrun:   MsgBox "Datenverlust!"
    Case comRxOver:    MsgBox "Datenverlust!"
    Case comEvCD: Eingang.Text = Eingang + MSComm1.Input
End Select
End Sub

Private Sub Timer1_Timer()
Select Case Eingang
    Case FF
        MsgBox ("Fastforward")
    Case FF1
        MsgBox ("Fastforward")
    Case RW
        MsgBox ("Rewind")
    Case RW1
        MsgBox ("Rewind")
    Case PLAY
        MsgBox ("Play")
    Case PLAY1
        MsgBox ("Play")
    Case PAUSE
        MsgBox ("Pause")
    Case PAUSE1
        MsgBox ("Pause")
    Case STOPP
        MsgBox ("Stop")
    Case STOPP1
        MsgBox ("Stop")
    Case BACK
        MsgBox ("Previous")
    Case BACK1
        MsgBox ("Previous")
    Case NAEXT
        MsgBox ("Next")
    Case NAEXT1
        MsgBox ("Next")
    Case VOLMIN
        MsgBox ("Volume -")
    Case VOLMIN1
        MsgBox ("Volume -")
    Case VOLPLUS
        MsgBox ("Volume +")
    Case VOLPLUS1
        MsgBox ("Volume +")
    Case POWER
        MsgBox ("Power")
    Case POWER1
        MsgBox ("Power")
    Case PROGRAM
        MsgBox ("Program")
    Case PROGRAM1
        MsgBox ("Program")
    Case REPEAT
        MsgBox ("Repeat")
    Case REPEAT1
        MsgBox ("Repeat")
    Case SHUFFLE
        MsgBox ("Shuffle")
    Case SHUFFLE1
        MsgBox ("Shuffle")
End Select
End Sub

MfG, Cenny
 
Zurück